test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation
commit 7dae593cd226a0bca61201cf85ceb9335cf63682 upstream. In a couple of situations like name = kstrndup(buf, count, GFP_KERNEL); if (!name) return -ENOSPC; the error is not actually "No space left on device", but "Out of memory". It is semantically correct to return -ENOMEM in all failed kstrndup() and kzalloc() cases in this driver, as it is not a problem with disk space, but with kernel memory allocator failing allocation. The semantically correct should be: name = kstrndup(buf, count, GFP_KERNEL); if (!name) return -ENOMEM; Cc: Dan Carpenter <error27@gmail.com> Cc: Takashi Iwai <tiwai@suse.de> Cc: Kees Cook <keescook@chromium.org> Cc: "Luis R. Rodriguez" <mcgrof@ruslug.rutgers.edu> Cc: Scott Branden <sbranden@broadcom.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Brian Norris <briannorris@chromium.org> Fixes:c92316bf8e
("test_firmware: add batched firmware tests") Fixes:0a8adf5847
("test: add firmware_class loader test") Fixes: 548193cba2a7d ("test_firmware: add support for firmware_request_platform") Fixes:eb910947c8
("test: firmware_class: add asynchronous request trigger") Fixes:061132d2b9
("test_firmware: add test custom fallback trigger") Fixes:7feebfa487
("test_firmware: add support for request_firmware_into_buf") Signed-off-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr> Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org> Message-ID: <20230606070808.9300-1-mirsad.todorovac@alu.unizg.hr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0f68b0f8eb
commit
2af8ed1197
@ -173,7 +173,7 @@ static int __kstrncpy(char **dst, const char *name, size_t count, gfp_t gfp)
|
||||
{
|
||||
*dst = kstrndup(name, count, gfp);
|
||||
if (!*dst)
|
||||
return -ENOSPC;
|
||||
return -ENOMEM;
|
||||
return count;
|
||||
}
|
||||
|
||||
@ -509,7 +509,7 @@ static ssize_t trigger_request_store(struct device *dev,
|
||||
|
||||
name = kstrndup(buf, count, GFP_KERNEL);
|
||||
if (!name)
|
||||
return -ENOSPC;
|
||||
return -ENOMEM;
|
||||
|
||||
pr_info("loading '%s'\n", name);
|
||||
|
||||
@ -552,7 +552,7 @@ static ssize_t trigger_async_request_store(struct device *dev,
|
||||
|
||||
name = kstrndup(buf, count, GFP_KERNEL);
|
||||
if (!name)
|
||||
return -ENOSPC;
|
||||
return -ENOMEM;
|
||||
|
||||
pr_info("loading '%s'\n", name);
|
||||
|
||||
@ -597,7 +597,7 @@ static ssize_t trigger_custom_fallback_store(struct device *dev,
|
||||
|
||||
name = kstrndup(buf, count, GFP_KERNEL);
|
||||
if (!name)
|
||||
return -ENOSPC;
|
||||
return -ENOMEM;
|
||||
|
||||
pr_info("loading '%s' using custom fallback mechanism\n", name);
|
||||
|
||||
@ -648,7 +648,7 @@ static int test_fw_run_batch_request(void *data)
|
||||
|
||||
test_buf = kzalloc(TEST_FIRMWARE_BUF_SIZE, GFP_KERNEL);
|
||||
if (!test_buf)
|
||||
return -ENOSPC;
|
||||
return -ENOMEM;
|
||||
|
||||
req->rc = request_firmware_into_buf(&req->fw,
|
||||
req->name,
|
||||
|
Loading…
Reference in New Issue
Block a user