summaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2012-03-04 14:23:00 +0100
committerStefan Richter <stefanr@s5r6.in-berlin.de>2012-03-10 17:41:19 +0100
commitc13ccfcf66b2e70f8d01f7fe7e1e20ba60e733e1 (patch)
tree82b06c527c5d514a64a9d95bbc1390100d00bdad /drivers/firewire
parent6503de65459da619d3ade0824c9cc17ea0a57141 (diff)
downloadlinux-c13ccfcf66b2e70f8d01f7fe7e1e20ba60e733e1.tar.bz2
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>
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/sbp2.c2
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;