[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201812070218.O9FSheSi%fengguang.wu@intel.com>
Date: Fri, 7 Dec 2018 02:32:01 +0800
From: kbuild test robot <lkp@...el.com>
To: Pavel Machek <pavel@....cz>
Cc: kbuild-all@...org, andrew@...n.ch,
vivien.didelot@...oirfairelinux.com, netdev@...r.kernel.org,
f.fainelli@...il.com, buytenh@...vell.com, buytenh@...tstofly.org,
nico@...vell.com
Subject: Re: [RFD] mv88e6060: Allow the driver to be probed from device tree
Hi Pavel,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on v4.20-rc5 next-20181206]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Pavel-Machek/mv88e6060-Allow-the-driver-to-be-probed-from-device-tree/20181207-013430
config: i386-randconfig-x007-201848 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
drivers/net/dsa/mv88e6060.c: In function 'mv88e6060_probe':
>> drivers/net/dsa/mv88e6060.c:316:16: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
char *name = mv88e6060_get_name(mdiodev->bus, addr);
^~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/mv88e6060.c:317:34: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'struct mii_bus *' [-Wformat=]
printk("e6060: got name %s @ %lx %lx\n", name, mdiodev->bus, addr);
~~^ ~~~~~~~~~~~~
>> drivers/net/dsa/mv88e6060.c:317:38: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat=]
printk("e6060: got name %s @ %lx %lx\n", name, mdiodev->bus, addr);
~~^
%x
drivers/net/dsa/mv88e6060.c:307:6: warning: unused variable 'err' [-Wunused-variable]
int err;
^~~
drivers/net/dsa/mv88e6060.c:306:6: warning: unused variable 'eeprom_len' [-Wunused-variable]
u32 eeprom_len;
^~~~~~~~~~
drivers/net/dsa/mv88e6060.c:304:31: warning: unused variable 'compat_info' [-Wunused-variable]
const struct mv88e6060_info *compat_info;
^~~~~~~~~~~
drivers/net/dsa/mv88e6060.c:303:22: warning: unused variable 'np' [-Wunused-variable]
struct device_node *np = dev->of_node;
^~
drivers/net/dsa/mv88e6060.c: In function 'mv88e6060_remove':
drivers/net/dsa/mv88e6060.c:344:25: warning: unused variable 'chip' [-Wunused-variable]
struct mv88e6060_chip *chip = ds->priv;
^~~~
Cyclomatic Complexity 1 include/linux/device.h:devm_kzalloc
Cyclomatic Complexity 1 include/linux/device.h:dev_get_drvdata
Cyclomatic Complexity 1 include/linux/device.h:dev_set_drvdata
Cyclomatic Complexity 1 include/linux/etherdevice.h:eth_random_addr
Cyclomatic Complexity 1 include/net/dsa.h:dsa_to_port
Cyclomatic Complexity 1 include/net/dsa.h:dsa_is_cpu_port
Cyclomatic Complexity 1 include/net/dsa.h:dsa_is_user_port
Cyclomatic Complexity 3 include/net/dsa.h:dsa_user_ports
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:mv88e6060_get_tag_protocol
Cyclomatic Complexity 2 drivers/net/dsa/mv88e6060.c:alloc_priv
Cyclomatic Complexity 2 drivers/net/dsa/mv88e6060.c:mv88e6060_port_to_phy_addr
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:mv88e6060_init
Cyclomatic Complexity 0 drivers/net/dsa/mv88e6060.c:mv88e6060_remove
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:reg_read
Cyclomatic Complexity 2 drivers/net/dsa/mv88e6060.c:mv88e6060_phy_read
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:reg_write
Cyclomatic Complexity 2 drivers/net/dsa/mv88e6060.c:mv88e6060_phy_write
Cyclomatic Complexity 3 drivers/net/dsa/mv88e6060.c:mv88e6060_setup_global
Cyclomatic Complexity 4 drivers/net/dsa/mv88e6060.c:mv88e6060_setup_addr
Cyclomatic Complexity 6 drivers/net/dsa/mv88e6060.c:mv88e6060_setup_port
Cyclomatic Complexity 13 drivers/net/dsa/mv88e6060.c:mv88e6060_switch_reset
Cyclomatic Complexity 6 drivers/net/dsa/mv88e6060.c:mv88e6060_setup
Cyclomatic Complexity 5 drivers/net/dsa/mv88e6060.c:mv88e6060_get_name
Cyclomatic Complexity 3 drivers/net/dsa/mv88e6060.c:mv88e6060_probe
Cyclomatic Complexity 3 drivers/net/dsa/mv88e6060.c:mv88e6060_drv_probe
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:mv88e6060_cleanup
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:_GLOBAL__sub_I_00100_0_mv88e6060.c
Cyclomatic Complexity 1 drivers/net/dsa/mv88e6060.c:_GLOBAL__sub_D_00100_1_mv88e6060.c
vim +/const +316 drivers/net/dsa/mv88e6060.c
299
300 static int mv88e6060_probe(struct mdio_device *mdiodev)
301 {
302 struct device *dev = &mdiodev->dev;
303 struct device_node *np = dev->of_node;
304 const struct mv88e6060_info *compat_info;
305 struct mv88e6060_priv *chip;
306 u32 eeprom_len;
307 int err;
308
309 int addr = 0x10 /* mdiodev->addr */ ;
310
311 chip = alloc_priv(dev, mdiodev->bus, addr);
312 if (!chip)
313 return -ENOMEM;
314
315 {
> 316 char *name = mv88e6060_get_name(mdiodev->bus, addr);
> 317 printk("e6060: got name %s @ %lx %lx\n", name, mdiodev->bus, addr);
318 }
319 {
320 struct dsa_switch *ds;
321
322 ds = dsa_switch_alloc(dev, 6);
323 if (!ds)
324 return -ENOMEM;
325
326 ds->priv = chip;
327 ds->dev = dev;
328 ds->ops = &mv88e6060_switch_ops;
329 ds->ageing_time_min = 15000;
330 ds->ageing_time_max = 15000 * U8_MAX;
331
332 dev_set_drvdata(dev, ds);
333
334 return dsa_register_switch(ds);
335 }
336
337 printk("e6060: probe ok\n");
338 return 0;
339 }
340
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (23961 bytes)
Powered by blists - more mailing lists