Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: pcs: xpcs: mask readl() return value to 16 bits

readl() returns 32-bit value but Clause 22/45 registers are 16-bit wide.
Masking with 0xFFFF avoids using garbage upper bits.

Signed-off-by: Jack Ping CHNG <jchng@maxlinear.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20250716030349.3796806-1-jchng@maxlinear.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Jack Ping CHNG and committed by
Jakub Kicinski
2b0ba7b5 49be1e24

+2 -2
+2 -2
drivers/net/pcs/pcs-xpcs-plat.c
··· 66 66 switch (pxpcs->reg_width) { 67 67 case 4: 68 68 writel(page, pxpcs->reg_base + (DW_VR_CSR_VIEWPORT << 2)); 69 - ret = readl(pxpcs->reg_base + (ofs << 2)); 69 + ret = readl(pxpcs->reg_base + (ofs << 2)) & 0xffff; 70 70 break; 71 71 default: 72 72 writew(page, pxpcs->reg_base + (DW_VR_CSR_VIEWPORT << 1)); ··· 124 124 125 125 switch (pxpcs->reg_width) { 126 126 case 4: 127 - ret = readl(pxpcs->reg_base + (csr << 2)); 127 + ret = readl(pxpcs->reg_base + (csr << 2)) & 0xffff; 128 128 break; 129 129 default: 130 130 ret = readw(pxpcs->reg_base + (csr << 1));