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
| ||
|
Date: Wed, 21 Dec 2016 20:16:19 +0100 From: Daniel Borkmann <daniel@...earbox.net> To: Cong Wang <xiyou.wangcong@...il.com> CC: David Miller <davem@...emloft.net>, Shahar Klein <shahark@...lanox.com>, Or Gerlitz <gerlitz.or@...il.com>, Roi Dayan <roid@...lanox.com>, Jiri Pirko <jiri@...lanox.com>, John Fastabend <john.fastabend@...il.com>, Linux Kernel Network Developers <netdev@...r.kernel.org> Subject: Re: [PATCH net] net, sched: fix soft lockup in tc_classify On 12/21/2016 07:51 PM, Cong Wang wrote: > On Wed, Dec 21, 2016 at 9:04 AM, Daniel Borkmann <daniel@...earbox.net> wrote: >> What happens is that in tc_ctl_tfilter(), thread A allocates a new >> tp, initializes it, sets tp_created to 1, and calls into tp->ops->change() >> with it. In that classifier callback we had to unlock/lock the rtnl >> mutex and returned with -EAGAIN. One reason why we need to drop there >> is, for example, that we need to request an action module to be loaded. > > Excellent catch! > > But why do we have to replay the request here? Shouldn't we just return > EAGAIN to user-space and let user-space decide to retry or not? > Replaying is the root of the evil here. Right, this behavior is already pretty old (2005), see history tree 8d7c694553dc ("[PKT_SCHED]: act_api.c: drop rtnl for loading modules") and 437293de63d8 ("[PKT_SCHED]: cls_api.c: drop rtnl for loading modules"), some binaries could rely on that behavior in one way or another I'd presume.
Powered by blists - more mailing lists