summaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-xp
diff options
context:
space:
mode:
authorFuqian Huang <huangfq.daxian@gmail.com>2019-08-05 14:56:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-15 18:20:32 +0200
commit672a749b4df68909e4a9dbb4ff7de3c795affd35 (patch)
tree6bab02604716863f3c0a24fbc2849cab0d9148d3 /drivers/misc/sgi-xp
parentsgi-xp: xpc_uv: Make structure xpc_arch_ops_uv constant (diff)
downloadlinux-672a749b4df68909e4a9dbb4ff7de3c795affd35.tar.xz
linux-672a749b4df68909e4a9dbb4ff7de3c795affd35.zip
sgi-xpc: Use GFP_ATOMIC for kmalloc in atomic context.
xpc_send_activate_IRQ_uv is called from <-xpc_send_activate_IRQ_part_uv <-xpc_indicate_partition_disengaged_uv (xpc_arch_ops.indicate_partition_disengaged) <-xpc_die_deactivate <-xpc_system_die xpc_system_die is registered by atomic_notifier_chain_register, which indicates xpc_system_die may be called in atomic context. So the kmalloc in xpc_send_activate_IRQ_uv may be in atomic context. Use GFP_ATOMIC instead of GFP_KERNEL in kmalloc. Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com> Link: https://lore.kernel.org/r/20190805125625.24963-1-huangfq.daxian@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/sgi-xp')
-rw-r--r--drivers/misc/sgi-xp/xpc_uv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c
index 89c4b04337d3..7f34b97fd02e 100644
--- a/drivers/misc/sgi-xp/xpc_uv.c
+++ b/drivers/misc/sgi-xp/xpc_uv.c
@@ -694,7 +694,7 @@ again:
if (gru_mq_desc == NULL) {
gru_mq_desc = kmalloc(sizeof(struct
gru_message_queue_desc),
- GFP_KERNEL);
+ GFP_ATOMIC);
if (gru_mq_desc == NULL) {
ret = xpNoMemory;
goto done;