Merge branch 'net-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6

+19 -18
+1 -1
arch/arm/mach-ixp4xx/ixp4xx_npe.c
··· 714 714 } 715 715 716 716 if (!found) 717 - return -ENOSYS; 717 + return -ENODEV; 718 718 return 0; 719 719 } 720 720
+16 -15
drivers/net/arm/ixp4xx_eth.c
··· 338 338 if (cpu_is_ixp43x()) { 339 339 /* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */ 340 340 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH)) 341 - return -ENOSYS; 341 + return -ENODEV; 342 342 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT; 343 343 } else { 344 344 /* All MII PHY accesses use NPE-B Ethernet registers */ 345 345 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0)) 346 - return -ENOSYS; 346 + return -ENODEV; 347 347 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT; 348 348 } 349 349 ··· 1174 1174 regs_phys = IXP4XX_EthC_BASE_PHYS; 1175 1175 break; 1176 1176 default: 1177 - err = -ENOSYS; 1177 + err = -ENODEV; 1178 1178 goto err_free; 1179 1179 } 1180 1180 ··· 1189 1189 goto err_free; 1190 1190 } 1191 1191 1192 - if (register_netdev(dev)) { 1193 - err = -EIO; 1194 - goto err_npe_rel; 1195 - } 1196 - 1197 1192 port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name); 1198 1193 if (!port->mem_res) { 1199 1194 err = -EBUSY; 1200 - goto err_unreg; 1195 + goto err_npe_rel; 1201 1196 } 1202 1197 1203 1198 port->plat = plat; ··· 1210 1215 snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy); 1211 1216 port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0, 1212 1217 PHY_INTERFACE_MODE_MII); 1213 - if (IS_ERR(port->phydev)) { 1214 - printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); 1215 - return PTR_ERR(port->phydev); 1216 - } 1218 + if ((err = IS_ERR(port->phydev))) 1219 + goto err_free_mem; 1217 1220 1218 1221 port->phydev->irq = PHY_POLL; 1222 + 1223 + if ((err = register_netdev(dev))) 1224 + goto err_phy_dis; 1219 1225 1220 1226 printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy, 1221 1227 npe_name(port->npe)); 1222 1228 1223 1229 return 0; 1224 1230 1225 - err_unreg: 1226 - unregister_netdev(dev); 1231 + err_phy_dis: 1232 + phy_disconnect(port->phydev); 1233 + err_free_mem: 1234 + npe_port_tab[NPE_ID(port->id)] = NULL; 1235 + platform_set_drvdata(pdev, NULL); 1236 + release_resource(port->mem_res); 1227 1237 err_npe_rel: 1228 1238 npe_release(port->npe); 1229 1239 err_free: ··· 1242 1242 struct port *port = netdev_priv(dev); 1243 1243 1244 1244 unregister_netdev(dev); 1245 + phy_disconnect(port->phydev); 1245 1246 npe_port_tab[NPE_ID(port->id)] = NULL; 1246 1247 platform_set_drvdata(pdev, NULL); 1247 1248 npe_release(port->npe);
+2 -2
drivers/net/wan/ixp4xx_hss.c
··· 1249 1249 return -ENOMEM; 1250 1250 1251 1251 if ((port->npe = npe_request(0)) == NULL) { 1252 - err = -ENOSYS; 1252 + err = -ENODEV; 1253 1253 goto err_free; 1254 1254 } 1255 1255 ··· 1311 1311 if ((ixp4xx_read_feature_bits() & 1312 1312 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) != 1313 1313 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) 1314 - return -ENOSYS; 1314 + return -ENODEV; 1315 1315 1316 1316 spin_lock_init(&npe_lock); 1317 1317