diff mbox series

usbnet: fix memory allocation in helpers

Message ID 20220628093517.7469-1-oneukum@suse.com
State New
Headers show
Series usbnet: fix memory allocation in helpers | expand

Commit Message

Oliver Neukum June 28, 2022, 9:35 a.m. UTC
usbnet provides some helper functions that are also used in
the context of reset() operations. During a reset the other
drivers on a device are unable to operate. As that can be block
drivers, a driver for another interface cannot use paging
in its memory allocations without risking a deadlock.
Use GFP_NOIO in the helpers.

Fixes: 877bd862f32b8 ("usbnet: introduce usbnet 3 command helpers")
Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 drivers/net/usb/usbnet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org June 30, 2022, 3:40 a.m. UTC | #1
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 28 Jun 2022 11:35:17 +0200 you wrote:
> usbnet provides some helper functions that are also used in
> the context of reset() operations. During a reset the other
> drivers on a device are unable to operate. As that can be block
> drivers, a driver for another interface cannot use paging
> in its memory allocations without risking a deadlock.
> Use GFP_NOIO in the helpers.
> 
> [...]

Here is the summary with links:
  - usbnet: fix memory allocation in helpers
    https://git.kernel.org/netdev/net/c/e65af5403e46

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index c66d2a097b0c..02b915b1e142 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -2004,7 +2004,7 @@  static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
 		   cmd, reqtype, value, index, size);
 
 	if (size) {
-		buf = kmalloc(size, GFP_KERNEL);
+		buf = kmalloc(size, GFP_NOIO);
 		if (!buf)
 			goto out;
 	}
@@ -2036,7 +2036,7 @@  static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
 		   cmd, reqtype, value, index, size);
 
 	if (data) {
-		buf = kmemdup(data, size, GFP_KERNEL);
+		buf = kmemdup(data, size, GFP_NOIO);
 		if (!buf)
 			goto out;
 	} else {