Re: [PATCH net-next net] netdev: Hide the netdev_priv() origin from GCC in netdev_from_priv()
From: Qingfang Deng
Date: Fri Oct 16 2026 - 11:20:47 EST
Hi,
On 10/16/2026 1:00 AM, Kees Cook wrote:
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2838,6 +2838,13 @@ static inline void *netdev_priv(const struct net_device *dev)
*/
static inline struct net_device *netdev_from_priv(const void *priv)
{
+ /*
+ * When GCC can see that @priv came from netdev_priv(), it can
+ * compute an object size of 0 for the net_device and its members,
+ * which makes FORTIFY_SOURCE fail valid accesses through the result:
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127875
+ */
+ OPTIMIZER_HIDE_VAR(priv);
If this bug only affects GCC, you may wrap it with a
#ifdef CONFIG_CC_IS_GCC block.
return container_of(priv, struct net_device, priv);
}
Kind regards,