Messages in this thread | | | Date | Tue, 9 Apr 2024 18:23:33 -0400 | From | Rodrigo Vivi <> | Subject | Re: [PATCH v4 1/2] devcoredump: Add dev_coredump_put() |
| |
On Tue, Apr 09, 2024 at 01:02:05PM -0700, José Roberto de Souza wrote: > It is useful for modules that do not want to keep coredump available > after its unload. > Otherwise, the coredump would only be removed after DEVCD_TIMEOUT > seconds. > > v2: > - dev_coredump_put() documentation updated (Mukesh) > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > Cc: Mukesh Ojha <quic_mojha@quicinc.com> > Cc: Johannes Berg <johannes@sipsolutions.net> > Cc: Jonathan Cavitt <jonathan.cavitt@intel.com> > Reviewed-by: Johannes Berg <johannes@sipsolutions.net> > Acked-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Greg, can I have you ack to merge this through the drm-next?
> --- > drivers/base/devcoredump.c | 23 +++++++++++++++++++++++ > include/linux/devcoredump.h | 5 +++++ > 2 files changed, 28 insertions(+) > > diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c > index 7e2d1f0d903a6..82aeb09b3d1b5 100644 > --- a/drivers/base/devcoredump.c > +++ b/drivers/base/devcoredump.c > @@ -304,6 +304,29 @@ static ssize_t devcd_read_from_sgtable(char *buffer, loff_t offset, > offset); > } > > +/** > + * dev_coredump_put - remove device coredump > + * @dev: the struct device for the crashed device > + * > + * dev_coredump_put() removes coredump, if exists, for a given device from > + * the file system and free its associated data otherwise, does nothing. > + * > + * It is useful for modules that do not want to keep coredump > + * available after its unload. > + */ > +void dev_coredump_put(struct device *dev) > +{ > + struct device *existing; > + > + existing = class_find_device(&devcd_class, NULL, dev, > + devcd_match_failing); > + if (existing) { > + devcd_free(existing, NULL); > + put_device(existing); > + } > +} > +EXPORT_SYMBOL_GPL(dev_coredump_put); > + > /** > * dev_coredumpm - create device coredump with read/free methods > * @dev: the struct device for the crashed device > diff --git a/include/linux/devcoredump.h b/include/linux/devcoredump.h > index c008169ed2c6f..c8f7eb6cc1915 100644 > --- a/include/linux/devcoredump.h > +++ b/include/linux/devcoredump.h > @@ -63,6 +63,8 @@ void dev_coredumpm(struct device *dev, struct module *owner, > > void dev_coredumpsg(struct device *dev, struct scatterlist *table, > size_t datalen, gfp_t gfp); > + > +void dev_coredump_put(struct device *dev); > #else > static inline void dev_coredumpv(struct device *dev, void *data, > size_t datalen, gfp_t gfp) > @@ -85,6 +87,9 @@ static inline void dev_coredumpsg(struct device *dev, struct scatterlist *table, > { > _devcd_free_sgtable(table); > } > +static inline void dev_coredump_put(struct device *dev) > +{ > +} > #endif /* CONFIG_DEV_COREDUMP */ > > #endif /* __DEVCOREDUMP_H */ > -- > 2.44.0 >
| |