Re: [PATCH net-next 5/6] net: dsa: mv88e6xxx: add VTU ops

2017-02-17 Thread kbuild test robot
Hi Vivien,

[auto build test WARNING on net-next/master]

url:
https://github.com/0day-ci/linux/commits/Vivien-Didelot/net-dsa-mv88e6xxx-88E6390-ATU-VTU/20170217-113559
config: openrisc-allmodconfig (attached as .config)
compiler: or32-linux-gcc (GCC) 4.5.1-or32-1.0rc1
reproduce:
wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=openrisc 

All warnings (new ones prefixed by >>):

   drivers/net/dsa/mv88e6xxx/chip.c: In function 'mv88e6xxx_vtu_getnext':
>> drivers/net/dsa/mv88e6xxx/chip.c:1223:6: warning: unused variable 'err'
   drivers/net/dsa/mv88e6xxx/chip.c: In function 'mv88e6xxx_vtu_loadpurge':
   drivers/net/dsa/mv88e6xxx/chip.c:1234:6: warning: unused variable 'err'

vim +/err +1223 drivers/net/dsa/mv88e6xxx/chip.c

749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1207  
static void mv88e6xxx_port_fast_age(struct dsa_switch *ds, int port)
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1208  {
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1209   
struct mv88e6xxx_chip *chip = ds->priv;
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1210   
int err;
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1211  
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1212   
mutex_lock(&chip->reg_lock);
4663f0f0 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1213   
err = mv88e6xxx_atu_remove(chip, 0, port);
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1214   
mutex_unlock(&chip->reg_lock);
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1215  
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1216   
if (err)
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1217   
netdev_err(ds->ports[port].netdev, "failed to flush ATU\n");
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1218  }
749efcb8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-22  1219  
5bdaf1f8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1220  
static int mv88e6xxx_vtu_getnext(struct mv88e6xxx_chip *chip,
b4e47c0f drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2016-09-29  1221   
 struct mv88e6xxx_vtu_entry *entry)
15d7d7d4 drivers/net/dsa/mv88e6xxx.c  Vivien Didelot 2016-05-10  1222  {
5bdaf1f8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16 @1223   
int err;
7dad08d7 drivers/net/dsa/mv88e6xxx.c  Vivien Didelot 2015-08-13  1224  
5bdaf1f8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1225   
if (!mv88e6xxx_has_vtu(chip))
5bdaf1f8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1226   
return -EOPNOTSUPP;
7dad08d7 drivers/net/dsa/mv88e6xxx.c  Vivien Didelot 2015-08-13  1227  
ab37f7c5 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1228   
return chip->info->ops->vtu_getnext(chip, entry);
7dad08d7 drivers/net/dsa/mv88e6xxx.c  Vivien Didelot 2015-08-13  1229  }
7dad08d7 drivers/net/dsa/mv88e6xxx.c  Vivien Didelot 2015-08-13  1230  
5bdaf1f8 drivers/net/dsa/mv88e6xxx/chip.c Vivien Didelot 2017-02-16  1231  
static int mv88e6xxx_vtu_loadpurge(struct mv88e6xxx_chip *chip,

:: The code at line 1223 was first introduced by commit
:: 5bdaf1f8afa18557bba4f236a53dee259a0469c4 net: dsa: mv88e6xxx: move VTU 
code to its own file

:: TO: Vivien Didelot 
:: CC: 0day robot 

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip


[PATCH net-next 5/6] net: dsa: mv88e6xxx: add VTU ops

2017-02-16 Thread Vivien Didelot
Because there are several variant of the VTU operations and because
checking for the presence of an STU is not enough, add new ops to the
info structure to describe the VTU operations that a chip supports.

Signed-off-by: Vivien Didelot 
---
 drivers/net/dsa/mv88e6xxx/chip.c  | 54 +++
 drivers/net/dsa/mv88e6xxx/mv88e6xxx.h |  8 +-
 2 files changed, 49 insertions(+), 13 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 7010c3313e35..08a7b9d2ad14 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -1225,12 +1225,7 @@ static int mv88e6xxx_vtu_getnext(struct mv88e6xxx_chip 
*chip,
if (!mv88e6xxx_has_vtu(chip))
return -EOPNOTSUPP;
 
-   if (mv88e6xxx_has(chip, MV88E6XXX_FLAG_STU))
-   err = mv88e6352_g1_vtu_getnext(chip, entry);
-   else
-   err = mv88e6185_g1_vtu_getnext(chip, entry);
-
-   return err;
+   return chip->info->ops->vtu_getnext(chip, entry);
 }
 
 static int mv88e6xxx_vtu_loadpurge(struct mv88e6xxx_chip *chip,
@@ -1241,12 +1236,7 @@ static int mv88e6xxx_vtu_loadpurge(struct mv88e6xxx_chip 
*chip,
if (!mv88e6xxx_has_vtu(chip))
return -EOPNOTSUPP;
 
-   if (mv88e6xxx_has(chip, MV88E6XXX_FLAG_STU))
-   err = mv88e6352_g1_vtu_loadpurge(chip, entry);
-   else
-   err = mv88e6185_g1_vtu_loadpurge(chip, entry);
-
-   return err;
+   return chip->info->ops->vtu_loadpurge(chip, entry);
 }
 
 static int mv88e6xxx_vtu_flush(struct mv88e6xxx_chip *chip)
@@ -2611,6 +2601,8 @@ static const struct mv88e6xxx_ops mv88e6085_ops = {
.ppu_enable = mv88e6185_g1_ppu_enable,
.ppu_disable = mv88e6185_g1_ppu_disable,
.reset = mv88e6185_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6095_ops = {
@@ -2632,6 +2624,8 @@ static const struct mv88e6xxx_ops mv88e6095_ops = {
.ppu_enable = mv88e6185_g1_ppu_enable,
.ppu_disable = mv88e6185_g1_ppu_disable,
.reset = mv88e6185_g1_reset,
+   .vtu_getnext = mv88e6185_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6185_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6097_ops = {
@@ -2658,6 +2652,8 @@ static const struct mv88e6xxx_ops mv88e6097_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6123_ops = {
@@ -2679,6 +2675,8 @@ static const struct mv88e6xxx_ops mv88e6123_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6131_ops = {
@@ -2708,6 +2706,8 @@ static const struct mv88e6xxx_ops mv88e6131_ops = {
.ppu_enable = mv88e6185_g1_ppu_enable,
.ppu_disable = mv88e6185_g1_ppu_disable,
.reset = mv88e6185_g1_reset,
+   .vtu_getnext = mv88e6185_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6185_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6161_ops = {
@@ -2734,6 +2734,8 @@ static const struct mv88e6xxx_ops mv88e6161_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6165_ops = {
@@ -2753,6 +2755,8 @@ static const struct mv88e6xxx_ops mv88e6165_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6171_ops = {
@@ -2780,6 +2784,8 @@ static const struct mv88e6xxx_ops mv88e6171_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6172_ops = {
@@ -2809,6 +2815,8 @@ static const struct mv88e6xxx_ops mv88e6172_ops = {
.watchdog_ops = &mv88e6097_watchdog_ops,
.mgmt_rsvd2cpu = mv88e6095_g2_mgmt_rsvd2cpu,
.reset = mv88e6352_g1_reset,
+   .vtu_getnext = mv88e6352_g1_vtu_getnext,
+   .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
 };
 
 static const struct mv88e6xxx_ops mv88e6175_ops = {
@@ -2836,6 +2844,8 @@