I have no record of the original patch, you'll need to send a v2. Bruce
In message: Re: [linux-yocto][v6.1/standard/preempt-rt/sdkv6.1/xlnx-soc][PATCH] driver: soc: xilinx: rename cpu_number1 to dummy_cpu_number on 19/01/2024 Quanyang Wang wrote: > ping. > > On 1/17/24 10:53, quanyang.wang via lists.yoctoproject.org wrote: > > From: Quanyang Wang <quanyang.w...@windriver.com> > > > > The per cpu variable cpu_number1 is passed to xlnx_event_handler as > > argument "dev_id", but is not used in this function. So drop the > > initialization of this variable and rename it to dummy_cpu_number. > > This patch is to fix the following calltrace when the kernel option > > CONFIG_DEBUG_ATOMIC_SLEEP is enabled: > > > > BUG: sleeping function called from invalid context at > > include/linux/sched/mm.h:274 > > in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: > > swapper/0 > > preempt_count: 1, expected: 0 > > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.0 #53 > > Hardware name: Xilinx Versal vmk180 Eval board rev1.1 (QSPI) (DT) > > Call trace: > > dump_backtrace+0xd0/0xe0 > > show_stack+0x18/0x40 > > dump_stack_lvl+0x7c/0xa0 > > dump_stack+0x18/0x34 > > __might_resched+0x10c/0x140 > > __might_sleep+0x4c/0xa0 > > __kmem_cache_alloc_node+0xf4/0x168 > > kmalloc_trace+0x28/0x38 > > __request_percpu_irq+0x74/0x138 > > xlnx_event_manager_probe+0xf8/0x298 > > platform_probe+0x68/0xd8 > > > > Signed-off-by: Quanyang Wang <quanyang.w...@windriver.com> > > --- > > Hi Bruce, > > Would you please help merge this patch to the branches: > > v6.1/standard/preempt-rt/sdkv6.1/xlnx-soc > > v6.1/standard/sdkv6.1/xlnx-soc > > Thanks, > > Quanyang > > --- > > drivers/soc/xilinx/xlnx_event_manager.c | 14 +++----------- > > 1 file changed, 3 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/soc/xilinx/xlnx_event_manager.c > > b/drivers/soc/xilinx/xlnx_event_manager.c > > index 9b6fe19666946..9156cb45bd533 100644 > > --- a/drivers/soc/xilinx/xlnx_event_manager.c > > +++ b/drivers/soc/xilinx/xlnx_event_manager.c > > @@ -22,7 +22,7 @@ > > #include <linux/platform_device.h> > > #include <linux/slab.h> > > -static DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number1); > > +static DEFINE_PER_CPU_READ_MOSTLY(int, dummy_cpu_number); > > static int virq_sgi; > > static int event_manager_availability = -EACCES; > > @@ -569,7 +569,6 @@ static void xlnx_disable_percpu_irq(void *data) > > static int xlnx_event_init_sgi(struct platform_device *pdev) > > { > > int ret = 0; > > - int cpu; > > /* > > * IRQ related structures are used for the following: > > * for each SGI interrupt ensure its mapped by GIC IRQ domain > > @@ -606,11 +605,8 @@ static int xlnx_event_init_sgi(struct platform_device > > *pdev) > > sgi_fwspec.param[0] = sgi_num; > > virq_sgi = irq_create_fwspec_mapping(&sgi_fwspec); > > - cpu = get_cpu(); > > - per_cpu(cpu_number1, cpu) = cpu; > > ret = request_percpu_irq(virq_sgi, xlnx_event_handler, > > "xlnx_event_mgmt", > > - &cpu_number1); > > - put_cpu(); > > + &dummy_cpu_number); > > WARN_ON(ret); > > if (ret) { > > @@ -626,16 +622,12 @@ static int xlnx_event_init_sgi(struct platform_device > > *pdev) > > static void xlnx_event_cleanup_sgi(struct platform_device *pdev) > > { > > - int cpu = smp_processor_id(); > > - > > - per_cpu(cpu_number1, cpu) = cpu; > > - > > cpuhp_remove_state(CPUHP_AP_ONLINE_DYN); > > on_each_cpu(xlnx_disable_percpu_irq, NULL, 1); > > irq_clear_status_flags(virq_sgi, IRQ_PER_CPU); > > - free_percpu_irq(virq_sgi, &cpu_number1); > > + free_percpu_irq(virq_sgi, &dummy_cpu_number); > > irq_dispose_mapping(virq_sgi); > > } > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#13508): https://lists.yoctoproject.org/g/linux-yocto/message/13508 Mute This Topic: https://lists.yoctoproject.org/mt/103778951/21656 Group Owner: linux-yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/leave/6687884/21656/624485779/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-