Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp382341pxb; Fri, 15 Jan 2021 16:09:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJzq3VvpovcFaRQxkcD4r4xuBC2YnY5maCl9EF7LoCz6ewUFoAYA6/Jsb1CGtbIHpCA36Srk X-Received: by 2002:a17:906:4ec4:: with SMTP id i4mr10560483ejv.302.1610755760418; Fri, 15 Jan 2021 16:09:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610755760; cv=none; d=google.com; s=arc-20160816; b=VMPsJhMwm87RjVQ5wP49JLqiwdjFXdkpUMyvd+4HAbezM8XYrkJckWojoL3iPUbg1L qpHK8fxcdqwEYP0Co2mU4l90WyW5e6pDI1EUq9nFnEVXQgXUnOVKHmxSnhVllVX9oGjO DL/bu7nb6Z+etHH7j9FBysj3zWbwdr52bMeJCKohpTWw37LZDnMaj0KmOmt2abPFmXra JUpQOXvNOVp4NT4iag0n5L9vrp+QN+4tNhv2DV9JSDB0cRE2JkHjs6pcb/3O8wqPrbia JNpc6amYcEzh2f/Xy9H6SAyNWJ7SjonZ35wDfht9s3dAojI6zG8NBIXy39nqrue7GZwy 8a6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=OM1knJY2Z6PsRlNJ4P8qoXfXxp4bQq8plSeKVwRtjUY=; b=BNCHBSAt2rl8Xik33N7eYA2u7KhoqmMJwVjUeZ6ZK3DIULmnipiFFIj+dHar3Gffzn rljG6q/PfhRjuvBtPInsCXie1mVdBMQrxC+H3NKS+gRAOZLCMedOmoqM1sZwrT0/Mrkf amFprZc+YVT88xkhD8f5f265w8bVxDr14+nw/bGsU8PNQ6iFOGPQmclETQoxCfh4OEc6 WzoMkjFi4QJ/Jw7T7fP9hwZeeSDouC+qmaYOh2EcIZK+wdSCk4dH5x1uzVJ8QfPlokPu m+F0rUJc57WV9r6b2FA7OcSc90mYo8knhC8+yfzvUxVpJ97pchXmseAyk0XOxXA7op+8 lggQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OiR5cD0o; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk23si4724177edb.368.2021.01.15.16.08.56; Fri, 15 Jan 2021 16:09:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OiR5cD0o; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728238AbhAPAIG (ORCPT + 99 others); Fri, 15 Jan 2021 19:08:06 -0500 Received: from mail.kernel.org ([198.145.29.99]:44606 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726176AbhAPAIF (ORCPT ); Fri, 15 Jan 2021 19:08:05 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id D20C923A01; Sat, 16 Jan 2021 00:07:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1610755645; bh=yYr2q7lNAq/q/Obg++NQkrKqBVKTH2282wttNpy5bM8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=OiR5cD0oCTw30+tm55FACqWBQc8Tq5JCFpac9JbwqQM/dgPzt34V+hCcsgCs1p9P5 BYiKibSThr8u+d5Ac6ViitpJjlqMsewFTcEhEycsGtXxP/Q34wm58tNrzBVlY4Y6Fa oOjDJ+WT85Nn9Fnm4UWhufxz24HiXkTOwjAtc1csTNfyocrHqKY9yoazMuSqk1+xFD VdRlN6h3tJcSHSsdh+auZ3GtzXOv4xwyttgDQt81KKo5vn3GyA1Tiap6NKTSJNXfcz Mi7CnKxrNQUHv8FvsGeFYUpHBygUqgSoK+DKa1ZKNLPL74bgiS7nhnDdgfh0XGbrHL xuxVZAN02rA0A== Date: Fri, 15 Jan 2021 16:07:23 -0800 From: Jakub Kicinski To: Oleksij Rempel Cc: mkl@pengutronix.de, "David S. Miller" , Oliver Hartkopp , Robin van der Gracht , syzbot+5138c4dd15a0401bec7b@syzkaller.appspotmail.com, kernel@pengutronix.de, linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH net 1/2] net: introduce CAN specific pointer in the struct net_device Message-ID: <20210115160723.7abd75ec@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <20210115143036.31275-1-o.rempel@pengutronix.de> References: <20210115143036.31275-1-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 15 Jan 2021 15:30:35 +0100 Oleksij Rempel wrote: > Since 20dd3850bcf8 ("can: Speed up CAN frame receiption by using > ml_priv") the CAN framework uses per device specific data in the AF_CAN > protocol. For this purpose the struct net_device->ml_priv is used. Later > the ml_priv usage in CAN was extended for other users, one of them being > CAN_J1939. > > Later in the kernel ml_priv was converted to an union, used by other > drivers. E.g. the tun driver started storing it's stats pointer. > > Since tun devices can claim to be a CAN device, CAN specific protocols > will wrongly interpret this pointer, which will cause system crashes. > Mostly this issue is visible in the CAN_J1939 stack. > > To fix this issue, we request a dedicated CAN pointer within the > net_device struct. No strong objection, others already added their pointers, but I wonder if we can't save those couple of bytes by adding a ml_priv_type, to check instead of dev->type? And leave it 0 for drivers using stats? That way other device types which are limited by all being ARPHDR_ETHER can start using ml_priv as well? > +#if IS_ENABLED(CONFIG_CAN) > + struct can_ml_priv *can; > +#endif Perhaps put it next to all the _ptr fields?