[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230317171636.ftelyp6ty7mgo4rt@dhcp-172-26-102-232.dhcp.thefacebook.com>
Date: Fri, 17 Mar 2023 10:16:36 -0700
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: starmiku1207184332@...il.com
Cc: ast@...nel.org, daniel@...earbox.net, andrii@...nel.org,
martin.lau@...ux.dev, song@...nel.org, yhs@...com,
john.fastabend@...il.com, kpsingh@...nel.org, sdf@...gle.com,
haoluo@...gle.com, jolsa@...nel.org, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org, baijiaju1990@...look.com
Subject: Re: [PATCH v2] kernel: bpf: stackmap: fix a possible sleep-in-atomic
bug in bpf_mmap_unlock_get_irq_work()
On Fri, Mar 17, 2023 at 03:52:27AM +0000, starmiku1207184332@...il.com wrote:
> context because of its possible sleep operation. However, mmap_read_unlock()
> is unsafely called in a preempt disabled context when spin_lock() or
> rcu_read_lock() has been called.
Why is that unsafe?
See __up_read(). It's doing preempt_disable().
> - if (irqs_disabled()) {
> + if (in_atomic() || irqs_disabled()) {
We cannot do this. It will significantly hurt stack traces with build_id.
Powered by blists - more mailing lists