lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAAo+4rW=zh_d7AxJSP0uLuO7w+_PmbBfBr6D4=4X2Ays7ATqoA@mail.gmail.com> Date: Thu, 5 Oct 2023 17:01:07 +0800 From: Chengfeng Ye <dg573847474@...il.com> To: Jakub Kicinski <kuba@...nel.org> Cc: jhs@...atatu.com, xiyou.wangcong@...il.com, jiri@...nulli.us, davem@...emloft.net, edumazet@...gle.com, pabeni@...hat.com, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] net/sched: use spin_lock_bh() on &gact->tcf_lock Hi Jakub, Thanks for the reply, I inspected the code a bit more, it seems that the TC action is called from tcf_proto_ops.classify() callback, which is called from Qdisc_ops enqueue callback. Then Qdisc enqueue callback is from -> __dev_queue_xmit() -> __dev_xmit_skb() -> dev_qdisc_enqueue() inside the net core. It seems that this __dev_queue_xmit() callback is typically called from BH context (e.g., NET_TX_SOFTIRQ) with BH already disabled, but sometimes also can from a work queue under process context, one case is the br_mrp_test_work_expired() inside net/bridge/br_mrp.c. Does it indicate that this TC action could also be called with BH enable? I am not a developer so really not sure about it, as the networking code is a bit long and complicated. Thanks again, Chengfeng
Powered by blists - more mailing lists