All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sven Eckelmann <sven@narfation.org>,
	Simon Wunderlich <sw@simonwunderlich.de>,
	Sasha Levin <sashal@kernel.org>,
	b.a.t.m.a.n@lists.open-mesh.org, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 01/32] batman-adv: Fix DAT candidate selection on little endian systems
Date: Fri, 24 Jan 2020 09:20:48 -0500	[thread overview]
Message-ID: <20200124142119.30484-1-sashal@kernel.org> (raw)

From: Sven Eckelmann <sven@narfation.org>

[ Upstream commit 4cc4a1708903f404d2ca0dfde30e71e052c6cbc9 ]

The distributed arp table is using a DHT to store and retrieve MAC address
information for an IP address. This is done using unicast messages to
selected peers. The potential peers are looked up using the IP address and
the VID.

While the IP address is always stored in big endian byte order, this is not
the case of the VID. It can (depending on the host system) either be big
endian or little endian. The host must therefore always convert it to big
endian to ensure that all devices calculate the same peers for the same
lookup data.

Fixes: be1db4f6615b ("batman-adv: make the Distributed ARP Table vlan aware")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/batman-adv/distributed-arp-table.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 8d1d0fdb157e7..1519cbf70150b 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -243,6 +243,7 @@ static u32 batadv_hash_dat(const void *data, u32 size)
 	u32 hash = 0;
 	const struct batadv_dat_entry *dat = data;
 	const unsigned char *key;
+	__be16 vid;
 	u32 i;
 
 	key = (const unsigned char *)&dat->ip;
@@ -252,7 +253,8 @@ static u32 batadv_hash_dat(const void *data, u32 size)
 		hash ^= (hash >> 6);
 	}
 
-	key = (const unsigned char *)&dat->vid;
+	vid = htons(dat->vid);
+	key = (__force const unsigned char *)&vid;
 	for (i = 0; i < sizeof(dat->vid); i++) {
 		hash += key[i];
 		hash += (hash << 10);
-- 
2.20.1


             reply	other threads:[~2020-01-24 14:21 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-24 14:20 Sasha Levin [this message]
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 02/32] dt-bindings: reset: meson8b: fix duplicate reset IDs Sasha Levin
2020-01-24 14:20   ` Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 03/32] ARM: dts: sun8i: a83t: Correct USB3503 GPIOs polarity Sasha Levin
2020-01-24 14:20   ` Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 04/32] ARM: dts: beagle-x15-common: Model 5V0 regulator Sasha Levin
2020-01-24 14:20   ` Sasha Levin
2020-01-24 14:20   ` Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 05/32] soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot Sasha Levin
2020-01-24 14:20   ` Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 06/32] clk: Don't try to enable critical clocks if prepare failed Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 07/32] mac80211: mesh: restrict airtime metric to peered established plinks Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 08/32] clk: mmp2: Fix the order of timer mux parents Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 09/32] ixgbevf: Remove limit of 10 entries for unicast filter list Sasha Levin
2020-01-24 14:20   ` [Intel-wired-lan] " Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 10/32] ixgbe: Fix calculation of queue with VFs and flow director on interface flap Sasha Levin
2020-01-24 14:20   ` [Intel-wired-lan] " Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 11/32] igb: Fix SGMII SFP module discovery for 100FX/LX Sasha Levin
2020-01-24 14:20   ` [Intel-wired-lan] " Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.14 12/32] ASoC: msm8916-wcd-analog: Fix selected events for MIC BIAS External1 Sasha Levin
2020-01-24 14:20   ` [alsa-devel] " Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 13/32] ASoC: sti: fix possible sleep-in-atomic Sasha Levin
2020-01-24 14:21   ` [alsa-devel] " Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 14/32] netfilter: fix a use-after-free in mtype_destroy() Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 15/32] netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 16/32] qmi_wwan: Add support for Quectel RM500Q Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 17/32] NFC: pn533: fix bulk-message timeout Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 18/32] ptp: free ptp device pin descriptors properly Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 19/32] net: usb: lan78xx: limit size of local TSO packets Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 20/32] r8152: add missing endpoint sanity check Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 21/32] wireless: fix enabling channel 12 for custom regulatory domain Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 22/32] cfg80211: Fix radar event during another phy CAC Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 23/32] mac80211: Fix TKIP replay protection immediately after key setup Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 24/32] wireless: wext: avoid gcc -O3 warning Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 25/32] cfg80211: check for set_wiphy_params Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 26/32] tick/sched: Annotate lockless access to last_jiffies_update Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 27/32] hv_netvsc: Fix memory leak when removing rndis device Sasha Levin
2020-01-24 14:21   ` Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 28/32] net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 29/32] scsi: mptfusion: Fix double fetch bug in ioctl Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 30/32] net: hns: fix soft lockup when there is not enough memory Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 31/32] net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec Sasha Levin
2020-01-24 14:21 ` [PATCH AUTOSEL 4.14 32/32] bnxt_en: Fix ipv6 RFS filter matching logic 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=20200124142119.30484-1-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=sven@narfation.org \
    --cc=sw@simonwunderlich.de \
    /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.