Received: by 2002:a05:7412:98c1:b0:fa:551:50a7 with SMTP id kc1csp1820297rdb; Mon, 8 Jan 2024 11:10:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IHZ12amlRm8uH+3ben6GD+MKcF69WixTCwLxsnbsPdzc445ZuY6CcDYM8Gs3m8FJAs1yb5z X-Received: by 2002:a05:6a00:230b:b0:6d9:b264:db94 with SMTP id h11-20020a056a00230b00b006d9b264db94mr1767762pfh.39.1704741040598; Mon, 08 Jan 2024 11:10:40 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1704741040; cv=pass; d=google.com; s=arc-20160816; b=xmVOD8VxExYYkK+ZMp5xwFcd4WYZ4FAkS/OUMRdQDbyduGuR8A8HT3PYQ40eDGzGUo xL0IqyokisDIRHjbngTzzqx6am1Tri98wJyY3ti23kgmwVXFbcpTBVeGGYrGUSvYSvta KSJHAzRsBTa9l0CEo68LnrGKTChwGgZ5t48IWMVs48Cb3eVXiUasuqGP3z7OENGqNb1X UWRnX64rNSgXSGE6LHZL2kwXl9SMCEYig5kkDmM3R8y3U2d4akhzTgDRi+qXlWfXF2eR K7YwnY3VIdSMgkWvJsGJCR6nM0aQ03+XP8MgHCA/UE3cQepMdtDvAkWEIE6Q1jd6DarV oYqA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature :dkim-signature; bh=J3px+OU0XxKXAITwpaExTX0RE765Q6Bda/x0EbY4UKA=; fh=LKrxSGJBejPAVmHuCNqNkBcVFGMb5N/KQBvpEeY2hws=; b=mUz9n71ugL2q18Q6kNjVv6P96Aw0bhPtTGKng1nKkWoYFFClR8PDttzH5jkUYX78LV YvabLncalx+qSP9nnVe7zBsvL8s/M4uh/CFRo4yXu+7bvVSlez/Qz+pIYh7Ot9P4dyJs 7QtN+tdf9sp0Dt8mYlwnbjWjUj56Yt9Ore3WSPSs1dL28RS8TxysvwjsvovENoB7WP5k VSVmtJY2FZypx/2y8qT5IfRraoOOI93dLlnVMMmy2Pn0Sm+LuLS6NEYNMTu3qiZ2QSd/ PyXE6t0lqLc7TdABmy8E/57tVKxTILauXFzRcb9tA6UKNNRamGW+KZNxFXI9B5qWDPgE ditQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hartkopp.net header.s=strato-dkim-0002 header.b=dsl1jFZo; dkim=neutral (no key) header.i=@hartkopp.net header.s=strato-dkim-0003; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-20000-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-20000-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=hartkopp.net Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id k191-20020a6384c8000000b005cd8dc9694dsi252451pgd.178.2024.01.08.11.10.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jan 2024 11:10:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-20000-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@hartkopp.net header.s=strato-dkim-0002 header.b=dsl1jFZo; dkim=neutral (no key) header.i=@hartkopp.net header.s=strato-dkim-0003; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-20000-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-20000-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=hartkopp.net Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 2FC55284F49 for ; Mon, 8 Jan 2024 19:01:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 812FE54FA2; Mon, 8 Jan 2024 19:01:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=hartkopp.net header.i=@hartkopp.net header.b="dsl1jFZo"; dkim=permerror (0-bit key) header.d=hartkopp.net header.i=@hartkopp.net header.b="L/p7ZIlt" X-Original-To: linux-kernel@vger.kernel.org Received: from mo4-p01-ob.smtp.rzone.de (mo4-p01-ob.smtp.rzone.de [85.215.255.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B1FD54F86; Mon, 8 Jan 2024 19:01:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=hartkopp.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hartkopp.net ARC-Seal: i=1; a=rsa-sha256; t=1704740263; cv=none; d=strato.com; s=strato-dkim-0002; b=mbX2NOrWlrdLP/l4MXNn3D0/OxHGs/icq//JzU4nXPxA7QAmoAWjcNDV0YjKXxUIQ+ p8wVTd5txLZkvlYFKsAOo8p5s2K2vK8GNBsL0TsWYWOrgjeo+x8GkT/6pD5XHiX7wezH 8/R7U+0fZsPQcAren5iirIEis1rNCUwtiBSJCXDGbniIWTBwjg7jJSJ+mhMD+fFBD79I /goKrkkK1D50R5hvPaamQO+cT1QYgazjNt0hv9QInwkMMq9AtqDHY0xoxZqJXoHRGLSM xEWJdyZmyBVo1t8mfZJUmSGF/+FlYxQVRvOoMtzb7TGBN3lHfBRfvIn6j+lBEGM5OCtS t9GQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1704740263; s=strato-dkim-0002; d=strato.com; h=In-Reply-To:From:References:Cc:To:Subject:Date:Message-ID:Cc:Date: From:Subject:Sender; bh=J3px+OU0XxKXAITwpaExTX0RE765Q6Bda/x0EbY4UKA=; b=NU+UWhid9y8QPwvk9aG3CRfovQpUzyXWG2KRktQ7mBHa+DI10tchcfylD141E1OzPI 9B4Jb1JIOGvboS0+dQEvocFwHgevTO1l80REiaGlWnBaLR9EEiXaZij7TmZHpLekr65u C3/bNmgJ1Xd7bMX5Vl1tTKf3VK6OUvWse/wtk1KjiLOoKq5JDJc26efokX4xyB8lWk6x yqv1F/dnlMcoBE8riSOBbfOBW3WmmBvGEOZ07uk9gUHFK9RStcoAjjh6AWqhodC+8w0w jXAB4fE+L2Wzz57VD3DYgMVM5QLePOmB2PicZSme7/TU5ZVVK1JJ57Xr2JnqDI1RtVuK CHUg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo01 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1704740263; s=strato-dkim-0002; d=hartkopp.net; h=In-Reply-To:From:References:Cc:To:Subject:Date:Message-ID:Cc:Date: From:Subject:Sender; bh=J3px+OU0XxKXAITwpaExTX0RE765Q6Bda/x0EbY4UKA=; b=dsl1jFZoYwOPTFLdBvLOy2raOacaICxcxbKVjSRMTDks9DVuLaVPk48F8R/2GDp3aF S8AaOxg6d8cJ1MtierySMjtClWs63HwooL2vs+bSqLtczgpRdedBjtUOmLfJEM3WGk0+ l0k7EX00xJvlGFNtFtn2IGk243PETZiFRP8bChrbwc9FO0leDGabltouXd2Zz0O86dnl YDI2BFDAJD2Pv9yszHVV9zxjOJN7iWmRcOvKERdo1YJDA/zWwZgtTW/bEfS1UkoG7UUp YQeNdIEKbL3g2EjRxrQPGS4N0unRA0ycN0vuOTL+lDLth6IZ9mHZHa4CXZt6aHHulpXa SIVA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1704740263; s=strato-dkim-0003; d=hartkopp.net; h=In-Reply-To:From:References:Cc:To:Subject:Date:Message-ID:Cc:Date: From:Subject:Sender; bh=J3px+OU0XxKXAITwpaExTX0RE765Q6Bda/x0EbY4UKA=; b=L/p7ZIltLSCCwwiG30j1g+sDiJl6K2ptO3qqejk1iy3zWyAN3QKrg/CKb/hCeqWrok 1SjhE5MF95YYbJow1uCQ== X-RZG-AUTH: ":P2MHfkW8eP4Mre39l357AZT/I7AY/7nT2yrDxb8mjG14FZxedJy6qgO1qCHSa1GLptZHusl129OHEdFr0USPYLtQZHsrzEmm3snIDlVAt06sCg==" Received: from [IPV6:2a00:6020:4a8e:5010:150f:f6b8:d0ef:d443] by smtp.strato.de (RZmta 49.10.2 AUTH) with ESMTPSA id K7b2c2008Ivh0WP (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 8 Jan 2024 19:57:43 +0100 (CET) Message-ID: <14e86ea6-e038-4702-957a-39af27bfc280@hartkopp.net> Date: Mon, 8 Jan 2024 19:57:36 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] can: bcm: add recvmsg flags for own, local and remote traffic To: Nicolas Maier , mkl@pengutronix.de, linux-can@vger.kernel.org Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, corbet@lwn.net, netdev@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org References: <1cf96afe-6a27-4fd5-975e-96122f72df2e@gmail.com> Content-Language: en-US From: Oliver Hartkopp In-Reply-To: <1cf96afe-6a27-4fd5-975e-96122f72df2e@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Nicolas, thanks for the patch! On 07.01.24 07:44, Nicolas Maier wrote: > @@ -642,7 +666,7 @@ static enum hrtimer_restart bcm_rx_thr_handler(struct hrtimer *hrtimer) > static void bcm_rx_handler(struct sk_buff *skb, void *data) > { > struct bcm_op *op = (struct bcm_op *)data; > - const struct canfd_frame *rxframe = (struct canfd_frame *)skb->data; > + struct canfd_frame *rxframe = (struct canfd_frame *)skb->data; > unsigned int i; > > if (op->can_id != rxframe->can_id) > @@ -657,6 +681,13 @@ static void bcm_rx_handler(struct sk_buff *skb, void *data) > return; > } > > + /* add flags to distinguish between own/local/remote CAN traffic */ > + if (skb->sk) { > + rxframe->flags |= RX_LOCAL; > + if (skb->sk == op->sk) > + rxframe->flags |= RX_OWN; > + } > + > /* disable timeout */ > hrtimer_cancel(&op->timer); > No. You are writing to a read-only skbuff, which is not yet cloned or copied. The read-only handling of the skb is done in the NET_RX_SOFTIRQ triggering can_rcv_filter() and friends. See this note: https://elixir.bootlin.com/linux/v6.7/source/net/can/af_can.c#L430 When you are also changing the CAN frames' content you need to skb_copy() the provided skb, see: https://elixir.bootlin.com/linux/v6.7/source/net/can/gw.c#L504 So if you want to pass these new flags to the user space you should think of extending the parameter list of bcm_rx_update_and_send() and bcm_rx_cmp_to_index(). But in the first place I'm interested to know what the use-case for this extension is. Best regards, Oliver