From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Jiri Benc <jbenc@redhat.com>,
"David S . Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
idosch@nvidia.com, razor@blackwall.org,
simon.horman@corigine.com, gavinl@nvidia.com,
richardbgobert@gmail.com, wsa+renesas@sang-engineering.com,
vladimir@nikishkin.pw, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 6.4 21/54] vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
Date: Sun, 13 Aug 2023 11:49:00 -0400 [thread overview]
Message-ID: <20230813154934.1067569-21-sashal@kernel.org> (raw)
In-Reply-To: <20230813154934.1067569-1-sashal@kernel.org>
From: Jiri Benc <jbenc@redhat.com>
[ Upstream commit 17a0a64448b568442a101de09575f81ffdc45d15 ]
The vxlan_parse_gpe_hdr function extracts the next protocol value from
the GPE header and marks GPE bits as parsed.
In order to be used in the next patch, split the function into protocol
extraction and bit marking. The bit marking is meaningful only in
vxlan_rcv; move it directly there.
Rename the function to vxlan_parse_gpe_proto to reflect what it now
does. Remove unused arguments skb and vxflags. Move the function earlier
in the file to allow it to be called from more places in the next patch.
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/vxlan/vxlan_core.c | 58 ++++++++++++++++------------------
1 file changed, 28 insertions(+), 30 deletions(-)
diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
index 561fe1b314f5f..3e3cdd4c18d43 100644
--- a/drivers/net/vxlan/vxlan_core.c
+++ b/drivers/net/vxlan/vxlan_core.c
@@ -623,6 +623,32 @@ static int vxlan_fdb_append(struct vxlan_fdb *f,
return 1;
}
+static bool vxlan_parse_gpe_proto(struct vxlanhdr *hdr, __be16 *protocol)
+{
+ struct vxlanhdr_gpe *gpe = (struct vxlanhdr_gpe *)hdr;
+
+ /* Need to have Next Protocol set for interfaces in GPE mode. */
+ if (!gpe->np_applied)
+ return false;
+ /* "The initial version is 0. If a receiver does not support the
+ * version indicated it MUST drop the packet.
+ */
+ if (gpe->version != 0)
+ return false;
+ /* "When the O bit is set to 1, the packet is an OAM packet and OAM
+ * processing MUST occur." However, we don't implement OAM
+ * processing, thus drop the packet.
+ */
+ if (gpe->oam_flag)
+ return false;
+
+ *protocol = tun_p_to_eth_p(gpe->next_protocol);
+ if (!*protocol)
+ return false;
+
+ return true;
+}
+
static struct vxlanhdr *vxlan_gro_remcsum(struct sk_buff *skb,
unsigned int off,
struct vxlanhdr *vh, size_t hdrlen,
@@ -1525,35 +1551,6 @@ static void vxlan_parse_gbp_hdr(struct vxlanhdr *unparsed,
unparsed->vx_flags &= ~VXLAN_GBP_USED_BITS;
}
-static bool vxlan_parse_gpe_hdr(struct vxlanhdr *unparsed,
- __be16 *protocol,
- struct sk_buff *skb, u32 vxflags)
-{
- struct vxlanhdr_gpe *gpe = (struct vxlanhdr_gpe *)unparsed;
-
- /* Need to have Next Protocol set for interfaces in GPE mode. */
- if (!gpe->np_applied)
- return false;
- /* "The initial version is 0. If a receiver does not support the
- * version indicated it MUST drop the packet.
- */
- if (gpe->version != 0)
- return false;
- /* "When the O bit is set to 1, the packet is an OAM packet and OAM
- * processing MUST occur." However, we don't implement OAM
- * processing, thus drop the packet.
- */
- if (gpe->oam_flag)
- return false;
-
- *protocol = tun_p_to_eth_p(gpe->next_protocol);
- if (!*protocol)
- return false;
-
- unparsed->vx_flags &= ~VXLAN_GPE_USED_BITS;
- return true;
-}
-
static bool vxlan_set_mac(struct vxlan_dev *vxlan,
struct vxlan_sock *vs,
struct sk_buff *skb, __be32 vni)
@@ -1655,8 +1652,9 @@ static int vxlan_rcv(struct sock *sk, struct sk_buff *skb)
* used by VXLAN extensions if explicitly requested.
*/
if (vs->flags & VXLAN_F_GPE) {
- if (!vxlan_parse_gpe_hdr(&unparsed, &protocol, skb, vs->flags))
+ if (!vxlan_parse_gpe_proto(&unparsed, &protocol))
goto drop;
+ unparsed.vx_flags &= ~VXLAN_GPE_USED_BITS;
raw_proto = true;
}
--
2.40.1
next prev parent reply other threads:[~2023-08-13 15:51 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-13 15:48 [PATCH AUTOSEL 6.4 01/54] ksmbd: Fix unsigned expression compared with zero Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 02/54] phy: qcom-snps-femto-v2: keep cfg_ahb_clk enabled during runtime suspend Sasha Levin
2023-08-13 15:48 ` Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 03/54] phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code Sasha Levin
2023-08-13 15:48 ` Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 04/54] media: amphion: use dev_err_probe Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 05/54] media: imx-jpeg: Support to assign slot for encoder/decoder Sasha Levin
2023-08-13 15:48 ` Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 06/54] media: pulse8-cec: handle possible ping error Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 07/54] media: pci: cx23885: fix error handling for cx23885 ATSC boards Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 08/54] platform/x86: serial-multi-instantiate: Auto detect IRQ resource for CSC3551 Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 09/54] 9p: virtio: fix unlikely null pointer deref in handle_rerror Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 10/54] 9p: virtio: make sure 'offs' is initialized in zc_request Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 11/54] ksmbd: fix out of bounds in smb3_decrypt_req() Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 12/54] ksmbd: validate session id and tree id in compound request Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 13/54] ksmbd: no response from compound read Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 14/54] ksmbd: fix out of bounds in init_smb2_rsp_hdr() Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 15/54] ASoC: da7219: Flush pending AAD IRQ when suspending Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 16/54] ASoC: da7219: Check for failure reading AAD IRQ events Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 17/54] ASoC: nau8821: Add DMI quirk mechanism for active-high jack-detect Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 18/54] thermal: core: constify params in thermal_zone_device_register Sasha Levin
2023-08-22 10:43 ` Pavel Machek
2023-08-22 11:31 ` Greg KH
2023-09-05 6:03 ` Ahmad Fatoum
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 19/54] net: hns3: add tm flush when setting tm Sasha Levin
2023-08-13 15:48 ` [PATCH AUTOSEL 6.4 20/54] ethernet: atheros: fix return value check in atl1c_tso_csum() Sasha Levin
2023-08-13 15:49 ` Sasha Levin [this message]
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 22/54] m68k: Fix invalid .section syntax Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 23/54] btrfs: remove BUG_ON()'s in add_new_free_space() Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 24/54] s390/dasd: use correct number of retries for ERP requests Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 25/54] s390/dasd: fix hanging device after request requeue Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 26/54] fs/nls: make load_nls() take a const parameter Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 27/54] cifs: fix charset issue in reconnection Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 28/54] ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0 Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 29/54] ASoc: codecs: ES8316: Fix DMIC config Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 30/54] ASoC: rt712-sdca: fix for JD event handling in ClockStop Mode0 Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 31/54] ASoC: rt711: " Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 32/54] ASoC: rt711-sdca: " Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 33/54] ASoC: atmel: Fix the 8K sample parameter in I2SC master Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 34/54] ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 35/54] platform/x86/amd/pmf: reduce verbosity of apmf_get_system_params Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 36/54] platform/x86/amd/pmf: Notify OS power slider update Sasha Levin
2023-08-22 10:44 ` Pavel Machek
2023-08-22 14:46 ` Mario Limonciello
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 37/54] platform/x86: intel: hid: Always call BTNL ACPI method Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 38/54] platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 39/54] platform/x86: think-lmi: Use kfree_sensitive instead of kfree Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 40/54] platform/x86: asus-wmi: Fix setting RGB mode on some TUF laptops Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 41/54] platform/x86: huawei-wmi: Silence ambient light sensor Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 42/54] drm/amd/smu: use AverageGfxclkFrequency* to replace previous GFX Curr Clock Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 43/54] drm/amd/display: Guard DCN31 PHYD32CLK logic against chip family Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 44/54] drm/amd/display: Exit idle optimizations before attempt to access PHY Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 45/54] ovl: Always reevaluate the file signature for IMA Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 46/54] ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer() Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 47/54] rbd: make get_lock_owner_info() return a single locker or NULL Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 48/54] rbd: harden get_lock_owner_info() a bit Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 49/54] ALSA: usb-audio: Update for native DSD support quirks Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 50/54] staging: fbtft: ili9341: use macro FBTFT_REGISTER_SPI_DRIVER Sasha Levin
2023-08-13 15:49 ` Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 51/54] LoongArch: Only fiddle with CHECKFLAGS if `need-compiler' Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 52/54] LoongArch: Fix CMDLINE_EXTEND and CMDLINE_BOOTLOADER handling Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 53/54] security: keys: perform capable check only on privileged operations Sasha Levin
2023-08-13 15:49 ` [PATCH AUTOSEL 6.4 54/54] kprobes: Prohibit probing on CFI preamble symbol Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230813154934.1067569-21-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gavinl@nvidia.com \
--cc=idosch@nvidia.com \
--cc=jbenc@redhat.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
--cc=richardbgobert@gmail.com \
--cc=simon.horman@corigine.com \
--cc=stable@vger.kernel.org \
--cc=vladimir@nikishkin.pw \
--cc=wsa+renesas@sang-engineering.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.