From cd010d9b986f05b17adc02563eef4ebd38e6037f Mon Sep 17 00:00:00 2001 From: Nishka Dasgupta Date: Thu, 8 Aug 2019 13:34:22 +0530 Subject: sgi-xp: xpc_uv: Make structure xpc_arch_ops_uv constant The static xpc_arch_operations structure xpc_arch_ops_uv is only copied into the structure xpc_arch_ops, after which it is never modified; nor is it used in any other way. Hence it can be declared as a constant to prevent unintended modifications of its fields. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Acked-by: Robin Holt Link: https://lore.kernel.org/r/20190808080422.16503-1-nishkadg.linux@gmail.com Signed-off-by: Greg Kroah-Hartman --- drivers/misc/sgi-xp/xpc_uv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/misc/sgi-xp') diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0c6de97dd347..89c4b04337d3 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -1678,7 +1678,7 @@ xpc_received_payload_uv(struct xpc_channel *ch, void *payload) XPC_DEACTIVATE_PARTITION(&xpc_partitions[ch->partid], ret); } -static struct xpc_arch_operations xpc_arch_ops_uv = { +static const struct xpc_arch_operations xpc_arch_ops_uv = { .setup_partitions = xpc_setup_partitions_uv, .teardown_partitions = xpc_teardown_partitions_uv, .process_activate_IRQ_rcvd = xpc_process_activate_IRQ_rcvd_uv, -- cgit v1.2.3 From 672a749b4df68909e4a9dbb4ff7de3c795affd35 Mon Sep 17 00:00:00 2001 From: Fuqian Huang Date: Mon, 5 Aug 2019 20:56:25 +0800 Subject: 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 Link: https://lore.kernel.org/r/20190805125625.24963-1-huangfq.daxian@gmail.com Signed-off-by: Greg Kroah-Hartman --- drivers/misc/sgi-xp/xpc_uv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/misc/sgi-xp') 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; -- cgit v1.2.3