net: dsa: bcm_sf2: cleanup resources in remove callback
RFC PATCH 1/3 net: dsa: bcm_sf2: cleanup resources in remove callback
Implement a remove callback allowing the switch driver to cleanup resources it used: interrupts and remapped register ranges.
--- drivers/net/dsa/bcm_sf2.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
drivers/net/dsa/bcm_sf2.c +20 -0
@@ -1054,6 +1054,25 @@ out_unmap:return ret; } +static void bcm_sf2_sw_remove (struct dsa_switch *ds) +{ +struct bcm_sf2_priv *priv =ds_to_priv (ds); +void __iomem **base; +unsigned int i; + +/* Disable all interrupts and free them */ +bcm_sf2_intr_disable (priv); + +free_irq (priv->irq0, priv); +free_irq (priv->irq1, priv); + + base = &priv->core; +for (i =0 ; i <BCM_SF2_REGS_NUM ; i++) { +iounmap (*base); + base++; + } +} +static int bcm_sf2_sw_set_addr (struct dsa_switch *ds,u8 *addr) {return 0 ;
@@ -1367,6 +1386,7 @@ static struct dsa_switch_driver bcm_sf2_switch_driver = { .tag_protocol = DSA_TAG_PROTO_BRCM, .priv_size = sizeof(struct bcm_sf2_priv), .probe = bcm_sf2_sw_probe, + .remove = bcm_sf2_sw_remove, .setup = bcm_sf2_sw_setup, .set_addr = bcm_sf2_sw_set_addr, .get_phy_flags = bcm_sf2_sw_get_phy_flags,
Signature · 1 line
1.9.1
kbuild test robot
build botreproduce:
Hi Neil,
[auto build test ERROR on net/master -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Neil-Armstrong/net-dsa-cleanup-dsa-driver/20151028-003842 config: x86_64-allmodconfig (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
>> drivers/net/dsa/bcm_sf2.c:1077:2: error: unknown field 'remove' specified in initializer
.remove = bcm_sf2_sw_remove,
^
>> drivers/net/dsa/bcm_sf2.c:1077:14: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] .remove = bcm_sf2_sw_remove,
^
drivers/net/dsa/bcm_sf2.c:1077:14: note: (near initialization for 'bcm_sf2_switch_driver.setup')
vim +/remove +1077 drivers/net/dsa/bcm_sf2.c
1071 }
1072
1073 static struct dsa_switch_driver bcm_sf2_switch_driver = {
1074 .tag_protocol = DSA_TAG_PROTO_BRCM,
1075 .priv_size = sizeof(struct bcm_sf2_priv),
1076 .probe = bcm_sf2_sw_probe,
> 1077 .remove = bcm_sf2_sw_remove,
1078 .setup = bcm_sf2_sw_setup,
1079 .set_addr = bcm_sf2_sw_set_addr,
1080 .get_phy_flags = bcm_sf2_sw_get_phy_flags,
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation