diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2012-03-04 17:23:00 +0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2012-03-10 20:41:19 +0400 |
commit | c13ccfcf66b2e70f8d01f7fe7e1e20ba60e733e1 (patch) | |
tree | 82b06c527c5d514a64a9d95bbc1390100d00bdad | |
parent | 6503de65459da619d3ade0824c9cc17ea0a57141 (diff) | |
download | linux-c13ccfcf66b2e70f8d01f7fe7e1e20ba60e733e1.tar.xz |
firewire: sbp2: replace a GFP_ATOMIC allocation
sbp2_send_management_orb() is called by sbp2_login, sbp2_reconnect, and
sbp2_remove, all which are able to sleep during memory allocations.
Actually, sbp2_send_management_orb() itself is a sleeping function.
Login and remove could allocate with GFP_KERNEL but reconnect needs
GFP_NOIO to ensure progress in low memory situations.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r-- | drivers/firewire/sbp2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c index cc5828e7c735..1bd78d8f182e 100644 --- a/drivers/firewire/sbp2.c +++ b/drivers/firewire/sbp2.c @@ -569,7 +569,7 @@ static int sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id, if (function == SBP2_LOGOUT_REQUEST && fw_device_is_shutdown(device)) return 0; - orb = kzalloc(sizeof(*orb), GFP_ATOMIC); + orb = kzalloc(sizeof(*orb), GFP_NOIO); if (orb == NULL) return -ENOMEM; |