Guillaume Nault
d4e4fdf9e4
netns: fix GFP flags in rtnl_net_notifyid()
...
In rtnl_net_notifyid(), we certainly can't pass a null GFP flag to
rtnl_notify(). A GFP_KERNEL flag would be fine in most circumstances,
but there are a few paths calling rtnl_net_notifyid() from atomic
context or from RCU critical sections. The later also precludes the use
of gfp_any() as it wouldn't detect the RCU case. Also, the nlmsg_new()
call is wrong too, as it uses GFP_KERNEL unconditionally.
Therefore, we need to pass the GFP flags as parameter and propagate it
through function calls until the proper flags can be determined.
In most cases, GFP_KERNEL is fine. The exceptions are:
* openvswitch: ovs_vport_cmd_get() and ovs_vport_cmd_dump()
indirectly call rtnl_net_notifyid() from RCU critical section,
* rtnetlink: rtmsg_ifinfo_build_skb() already receives GFP flags as
parameter.
Also, in ovs_vport_cmd_build_info(), let's change the GFP flags used
by nlmsg_new(). The function is allowed to sleep, so better make the
flags consistent with the ones used in the following
ovs_vport_cmd_fill_info() call.
Found by code inspection.
Fixes: 9a9634545c ("netns: notify netns id events")
Signed-off-by: Guillaume Nault <gnault@redhat.com >
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com >
Acked-by: Pravin B Shelar <pshelar@ovn.org >
Signed-off-by: David S. Miller <davem@davemloft.net >
2019-10-25 20:14:42 -07:00
..
2019-05-30 11:29:21 -07:00
2019-09-05 17:27:21 +02:00
2019-05-30 11:29:22 -07:00
2018-09-26 09:56:07 -07:00
2019-09-25 11:01:19 +02:00
2019-09-04 13:29:14 +02:00
2019-06-19 17:09:07 +02:00
2019-06-05 17:37:07 +02:00
2019-10-09 16:27:04 -07:00
2019-09-16 09:18:03 +02:00
2019-09-16 09:18:03 +02:00
2019-08-19 17:19:46 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-02-28 08:24:23 -07:00
2019-06-05 17:37:05 +02:00
2019-05-05 11:25:49 -07:00
2019-01-23 11:18:00 -08:00
2019-06-19 17:09:55 +02:00
2019-05-24 17:37:53 +02:00
2019-05-21 11:28:40 +02:00
2019-07-04 12:30:48 -07:00
2019-10-24 14:53:49 -07:00
2019-08-17 23:18:54 +02:00
2019-06-05 17:37:06 +02:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2019-10-07 22:10:50 +02:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:45 +02:00
2019-05-30 11:26:32 -07:00
2019-04-19 14:07:40 -07:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:29:52 -07:00
2019-09-13 22:11:14 +02:00
2019-05-21 11:52:39 +02:00
2019-05-21 11:52:39 +02:00
2019-08-17 12:40:08 -07:00
2019-09-16 21:32:57 +02:00
2019-07-01 10:48:34 -07:00
2019-06-19 17:09:55 +02:00
2018-05-28 22:59:54 -04:00
2019-04-22 21:50:53 -07:00
2019-07-11 14:22:53 -07:00
2019-10-23 20:13:22 -07:00
2019-09-16 09:18:02 +02:00
2019-02-27 12:50:17 -08:00
2019-10-23 20:13:22 -07:00
2019-10-23 20:13:22 -07:00
2018-11-17 21:37:29 -08:00
2019-04-27 17:07:22 -04:00
2019-03-22 12:09:31 -07:00
2018-12-10 15:53:04 -08:00
2019-07-01 10:58:23 -07:00
2019-10-25 16:24:32 -07:00
2019-05-30 11:26:32 -07:00
2019-02-22 12:56:24 -08:00
2019-05-30 11:26:41 -07:00
2019-08-28 14:43:03 -07:00
2019-04-22 21:50:53 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-07-03 13:51:54 -07:00
2019-08-31 23:44:28 -07:00
2018-10-17 17:45:07 -07:00
2019-08-08 15:55:10 -07:00
2019-05-30 11:26:32 -07:00
2019-09-13 21:44:19 +02:00
2019-09-27 12:05:02 +02:00
2019-02-08 21:50:15 -08:00
2019-05-30 11:26:32 -07:00
2019-06-24 10:18:49 -07:00
2019-06-27 21:06:39 -07:00
2019-06-18 20:48:45 -04:00
2019-09-05 12:35:58 +02:00
2019-02-27 12:50:17 -08:00
2019-07-08 19:48:57 -07:00
2019-10-21 10:46:42 -07:00
2019-06-19 11:37:47 -04:00
2019-05-22 17:48:43 -07:00
2019-09-27 12:05:02 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2018-07-11 23:10:19 -07:00
2019-10-08 13:23:05 -07:00
2018-09-13 09:04:58 -07:00
2019-04-23 19:42:29 -07:00
2019-09-11 09:33:29 +02:00
2019-05-30 11:26:41 -07:00
2019-05-21 11:28:45 +02:00
2019-06-05 17:36:38 +02:00
2019-06-05 17:36:38 +02:00
2019-07-22 12:10:54 -07:00
2019-04-17 23:19:07 -07:00
2018-05-28 22:59:54 -04:00
2019-10-25 20:14:42 -07:00
2018-08-01 09:52:30 -07:00
2019-05-21 11:28:45 +02:00
2019-08-13 20:37:16 -07:00
2019-05-30 11:26:32 -07:00
2019-04-11 13:59:49 -07:00
2019-09-05 12:35:58 +02:00
2019-07-08 14:58:04 -07:00
2019-05-30 11:26:32 -07:00
2019-08-26 14:17:43 -07:00
2019-09-17 23:51:10 +02:00
2019-05-30 11:26:32 -07:00
2019-09-16 09:18:03 +02:00
2019-05-30 11:26:32 -07:00
2018-08-28 11:11:47 +02:00
2019-10-09 21:34:31 -07:00
2019-09-20 18:23:33 -07:00
2018-11-06 15:00:45 -08:00
2019-04-22 21:47:25 -07:00
2019-09-27 10:29:11 +02:00
2018-07-21 10:43:12 -05:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-02-21 10:34:37 -08:00
2019-05-30 11:26:32 -07:00
2019-09-16 09:02:18 +02:00
2019-10-13 10:13:08 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-10-13 10:13:08 -07:00
2019-05-30 11:26:32 -07:00
2019-09-05 09:49:49 +02:00
2018-07-07 10:58:49 +09:00
2019-03-29 10:53:45 -07:00
2019-08-30 19:49:37 -07:00
2019-06-05 17:37:05 +02:00
2019-10-24 14:53:49 -07:00
2019-06-05 17:30:29 +02:00
2019-06-19 11:23:13 -04:00
2019-08-31 01:08:26 +02:00
2019-06-19 11:23:13 -04:00
2019-07-17 10:03:54 +02:00