Patch "net: thunderx: Fix OOPs with ethtool --register-dump" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net: thunderx: Fix OOPs with ethtool --register-dump
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-thunderx-fix-oops-with-ethtool-register-dump.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1423661fed2c40d6d71b5e2e3aa390f85157f9d5Mon Sep 17 00:00:00 2001
From: David Daney <[email protected]>
Date: Tue, 16 Aug 2016 13:30:36 -0700
Subject: net: thunderx: Fix OOPs with ethtool --register-dump
From: David Daney <[email protected]>
commit 1423661fed2c40d6d71b5e2e3aa390f85157f9d5 upstream.
The ethtool_ops .get_regs function attempts to read the nonexistent register NIC_QSET_SQ_0_7_CNM_CHG, which produces a "bus error" type OOPs.
Fix by not attempting to read, and removing the definition of, NIC_QSET_SQ_0_7_CNM_CHG. A zero is written into the register dump to keep the layout unchanged.
--- drivers/net/ethernet/cavium/thunder/nic_reg.h | 1 - drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-)
drivers/net/ethernet/cavium/thunder/nic_reg.h +0 -1
@@ -170,7 +170,6 @@#define NIC_QSET_SQ_0_7_DOOR (0x010838)#define NIC_QSET_SQ_0_7_STATUS (0x010840)#define NIC_QSET_SQ_0_7_DEBUG (0x010848) -#define NIC_QSET_SQ_0_7_CNM_CHG (0x010860)#define NIC_QSET_SQ_0_7_STAT_0_1 (0x010900)#define NIC_QSET_RBDR_0_1_CFG (0x010C00)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c +4 -1
@@ -380,7 +380,10 @@ static void nicvf_get_regs(struct net_de p[i++] =nicvf_queue_reg_read (nic,NIC_QSET_SQ_0_7_DOOR , q); p[i++] =nicvf_queue_reg_read (nic,NIC_QSET_SQ_0_7_STATUS , q); p[i++] =nicvf_queue_reg_read (nic,NIC_QSET_SQ_0_7_DEBUG , q); - p[i++] =nicvf_queue_reg_read (nic,NIC_QSET_SQ_0_7_CNM_CHG , q); +/* Padding, was NIC_QSET_SQ_0_7_CNM_CHG, which +* produces bus errors when read +*/ + p[i++] =0 ; p[i++] =nicvf_queue_reg_read (nic,NIC_QSET_SQ_0_7_STAT_0_1 , q); reg_offset =NIC_QSET_SQ_0_7_STAT_0_1 | (1 <<3 ); p[i++] =nicvf_queue_reg_read (nic, reg_offset, q);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/net-thunderx-fix-oops-with-ethtool-register-dump.patch