diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-06-27 16:36:57 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-06-27 16:39:29 +0200 |
commit | 38a523a2946d3a0961d141d477a1ee2b1f3bdbb1 (patch) | |
tree | 40a2a7ecb942e52c06068d46dbee1c266a3cf1df /drivers/base | |
parent | 5f8954e099b8ae96e7de1bb95950e00c85bedd40 (diff) | |
download | linux-38a523a2946d3a0961d141d477a1ee2b1f3bdbb1.tar.gz linux-38a523a2946d3a0961d141d477a1ee2b1f3bdbb1.tar.bz2 linux-38a523a2946d3a0961d141d477a1ee2b1f3bdbb1.zip |
Revert "devcoredump: remove the useless gfp_t parameter in dev_coredumpv and dev_coredumpm"
This reverts commit 77515ebaf01920e2db49e04672ef669a7c2907f2 as it
causes build problems in linux-next. It needs to be reintroduced in a
way that can allow the api to evolve and not require a "flag day" to
catch all users.
Link: https://lore.kernel.org/r/20220623160723.7a44b573@canb.auug.org.au
Cc: Duoming Zhou <duoming@zju.edu.cn>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Johannes Berg <johannes@sipsolutions.net>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/devcoredump.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c index 8535f0bd5dfb..f4d794d6bb85 100644 --- a/drivers/base/devcoredump.c +++ b/drivers/base/devcoredump.c @@ -173,13 +173,15 @@ static void devcd_freev(void *data) * @dev: the struct device for the crashed device * @data: vmalloc data containing the device coredump * @datalen: length of the data + * @gfp: allocation flags * * This function takes ownership of the vmalloc'ed data and will free * it when it is no longer used. See dev_coredumpm() for more information. */ -void dev_coredumpv(struct device *dev, void *data, size_t datalen) +void dev_coredumpv(struct device *dev, void *data, size_t datalen, + gfp_t gfp) { - dev_coredumpm(dev, NULL, data, datalen, devcd_readv, devcd_freev); + dev_coredumpm(dev, NULL, data, datalen, gfp, devcd_readv, devcd_freev); } EXPORT_SYMBOL_GPL(dev_coredumpv); @@ -234,6 +236,7 @@ static ssize_t devcd_read_from_sgtable(char *buffer, loff_t offset, * @owner: the module that contains the read/free functions, use %THIS_MODULE * @data: data cookie for the @read/@free functions * @datalen: length of the data + * @gfp: allocation flags * @read: function to read from the given buffer * @free: function to free the given buffer * @@ -243,7 +246,7 @@ static ssize_t devcd_read_from_sgtable(char *buffer, loff_t offset, * function will be called to free the data. */ void dev_coredumpm(struct device *dev, struct module *owner, - void *data, size_t datalen, + void *data, size_t datalen, gfp_t gfp, ssize_t (*read)(char *buffer, loff_t offset, size_t count, void *data, size_t datalen), void (*free)(void *data)) @@ -265,7 +268,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, if (!try_module_get(owner)) goto free; - devcd = kzalloc(sizeof(*devcd), GFP_KERNEL); + devcd = kzalloc(sizeof(*devcd), gfp); if (!devcd) goto put_module; @@ -315,6 +318,7 @@ EXPORT_SYMBOL_GPL(dev_coredumpm); * @dev: the struct device for the crashed device * @table: the dump data * @datalen: length of the data + * @gfp: allocation flags * * Creates a new device coredump for the given device. If a previous one hasn't * been read yet, the new coredump is discarded. The data lifetime is determined @@ -322,9 +326,9 @@ EXPORT_SYMBOL_GPL(dev_coredumpm); * it will free the data. */ void dev_coredumpsg(struct device *dev, struct scatterlist *table, - size_t datalen) + size_t datalen, gfp_t gfp) { - dev_coredumpm(dev, NULL, table, datalen, devcd_read_from_sgtable, + dev_coredumpm(dev, NULL, table, datalen, gfp, devcd_read_from_sgtable, devcd_free_sgtable); } EXPORT_SYMBOL_GPL(dev_coredumpsg); |