All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 4.4 01/31] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match()
@ 2021-07-06 11:29 Sasha Levin
  2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 02/31] hugetlb: clear huge pte during flush function on mips platform Sasha Levin
                   ` (29 more replies)
  0 siblings, 30 replies; 42+ messages in thread
From: Sasha Levin @ 2021-07-06 11:29 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Andy Shevchenko, kernel test robot, Flavio Suligoi,
	David S . Miller, Sasha Levin, netdev

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

[ Upstream commit 443ef39b499cc9c6635f83238101f1bb923e9326 ]

Sparse is not happy about handling of strict types in pch_ptp_match():

  .../pch_gbe_main.c:158:33: warning: incorrect type in argument 2 (different base types)
  .../pch_gbe_main.c:158:33:    expected unsigned short [usertype] uid_hi
  .../pch_gbe_main.c:158:33:    got restricted __be16 [usertype]
  .../pch_gbe_main.c:158:45: warning: incorrect type in argument 3 (different base types)
  .../pch_gbe_main.c:158:45:    expected unsigned int [usertype] uid_lo
  .../pch_gbe_main.c:158:45:    got restricted __be32 [usertype]
  .../pch_gbe_main.c:158:56: warning: incorrect type in argument 4 (different base types)
  .../pch_gbe_main.c:158:56:    expected unsigned short [usertype] seqid
  .../pch_gbe_main.c:158:56:    got restricted __be16 [usertype]

Fix that by switching to use proper accessors to BE data.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Flavio Suligoi <f.suligoi@asem.it>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c  | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
index 3b98b263bad0..5f49175f18ea 100644
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
@@ -124,7 +124,7 @@ static int pch_ptp_match(struct sk_buff *skb, u16 uid_hi, u32 uid_lo, u16 seqid)
 {
 	u8 *data = skb->data;
 	unsigned int offset;
-	u16 *hi, *id;
+	u16 hi, id;
 	u32 lo;
 
 	if (ptp_classify_raw(skb) == PTP_CLASS_NONE)
@@ -135,14 +135,11 @@ static int pch_ptp_match(struct sk_buff *skb, u16 uid_hi, u32 uid_lo, u16 seqid)
 	if (skb->len < offset + OFF_PTP_SEQUENCE_ID + sizeof(seqid))
 		return 0;
 
-	hi = (u16 *)(data + offset + OFF_PTP_SOURCE_UUID);
-	id = (u16 *)(data + offset + OFF_PTP_SEQUENCE_ID);
+	hi = get_unaligned_be16(data + offset + OFF_PTP_SOURCE_UUID + 0);
+	lo = get_unaligned_be32(data + offset + OFF_PTP_SOURCE_UUID + 2);
+	id = get_unaligned_be16(data + offset + OFF_PTP_SEQUENCE_ID);
 
-	memcpy(&lo, &hi[1], sizeof(lo));
-
-	return (uid_hi == *hi &&
-		uid_lo == lo &&
-		seqid  == *id);
+	return (uid_hi == hi && uid_lo == lo && seqid == id);
 }
 
 static void
@@ -152,7 +149,6 @@ pch_rx_timestamp(struct pch_gbe_adapter *adapter, struct sk_buff *skb)
 	struct pci_dev *pdev;
 	u64 ns;
 	u32 hi, lo, val;
-	u16 uid, seq;
 
 	if (!adapter->hwts_rx_en)
 		return;
@@ -168,10 +164,7 @@ pch_rx_timestamp(struct pch_gbe_adapter *adapter, struct sk_buff *skb)
 	lo = pch_src_uuid_lo_read(pdev);
 	hi = pch_src_uuid_hi_read(pdev);
 
-	uid = hi & 0xffff;
-	seq = (hi >> 16) & 0xffff;
-
-	if (!pch_ptp_match(skb, htons(uid), htonl(lo), htons(seq)))
+	if (!pch_ptp_match(skb, hi, lo, hi >> 16))
 		goto out;
 
 	ns = pch_rx_snap_read(pdev);
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2021-07-14 16:49 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06 11:29 [PATCH AUTOSEL 4.4 01/31] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 02/31] hugetlb: clear huge pte during flush function on mips platform Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 03/31] atm: iphase: fix possible use-after-free in ia_module_exit() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 04/31] mISDN: fix possible use-after-free in HFC_cleanup() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 05/31] atm: nicstar: Fix possible use-after-free in nicstar_cleanup() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 06/31] net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 07/31] reiserfs: add check for invalid 1st journal block Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 08/31] drm/virtio: Fixes a potential NULL pointer dereference on probe failure Sasha Levin
2021-07-06 11:29   ` Sasha Levin
2021-07-06 11:29   ` Sasha Levin
2021-07-12 21:59   ` Pavel Machek
2021-07-12 21:59     ` Pavel Machek
2021-07-14 16:49     ` Sasha Levin
2021-07-14 16:49       ` Sasha Levin
2021-07-14 16:49       ` Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 09/31] drm/virtio: Fix double free " Sasha Levin
2021-07-06 11:29   ` Sasha Levin
2021-07-06 11:29   ` Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 10/31] udf: Fix NULL pointer dereference in udf_symlink function Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 11/31] e100: handle eeprom as little endian Sasha Levin
2021-07-06 11:29   ` [Intel-wired-lan] " Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 12/31] ipv6: use prandom_u32() for ID generation Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 13/31] RDMA/cxgb4: Fix missing error code in create_qp() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 14/31] dm space maps: don't reset space map allocation cursor when committing Sasha Levin
2021-07-06 11:29   ` [dm-devel] " Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 15/31] net: micrel: check return value after calling platform_get_resource() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 16/31] net: moxa: Use devm_platform_get_and_ioremap_resource() Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 17/31] selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 18/31] xfrm: Fix error reporting in xfrm_state_construct Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 19/31] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 20/31] wl1251: Fix possible buffer overflow in wl1251_cmd_scan Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 21/31] cw1200: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 22/31] atm: nicstar: use 'dma_free_coherent' instead of 'kfree' Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 23/31] atm: nicstar: register the interrupt handler in the right place Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 24/31] sfc: avoid double pci_remove of VFs Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 25/31] sfc: error code if SRIOV cannot be disabled Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 26/31] wireless: wext-spy: Fix out-of-bounds warning Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 27/31] RDMA/cma: Fix rdma_resolve_route() memory leak Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 28/31] Bluetooth: Fix the HCI to MGMT status conversion table Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 29/31] Bluetooth: Shutdown controller after workqueues are flushed or cancelled Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 30/31] Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc Sasha Levin
2021-07-06 11:29 ` [PATCH AUTOSEL 4.4 31/31] sctp: add size validation when walking chunks Sasha Levin

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.