[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1608301130040.22028@cbobk.fhfr.pm>
Date: Tue, 30 Aug 2016 11:41:28 +0200 (CEST)
From: Jiri Kosina <jikos@...nel.org>
To: Christopher Arges <chris.j.arges@...onical.com>
cc: Petr Mladek <pmladek@...e.com>, live-patching@...r.kernel.org,
Josh Poimboeuf <jpoimboe@...hat.com>,
Jessica Yu <jeyu@...hat.com>, Miroslav Benes <mbenes@...e.cz>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] livepatch: add load/unload hooks to objects
On Mon, 29 Aug 2016, Christopher Arges wrote:
> Another example is CVE-2016-2117. Here we need to unset NETIF_F_SG on a
> particular device. If the device is already loaded we need a way to
> fixup hw_features on an already allocated network device. Again this
> could be done in the init code of the patch, but a nicer solution would
> be to do this on a load/unload hook appropriately.
I am afraid this is more complicated than what you describe. You can't
just unset NETIF_F_SG and be done with it; look for example what might
happen if you clear the flag while skb_segment() is running and gcc is
refetching netdev_features_t (there is no READ_ONCE() for that). The same
holds for __ip6_append_data().
I am not saying this can't be worked around, but it's way much more
complicated than just clearing a bit in a callback.
--
Jiri Kosina
SUSE Labs
Powered by blists - more mailing lists