Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: fman: Clean up error handling

This removes the _return label, since something like

err = -EFOO;
goto _return;

can be replaced by the briefer

return -EFOO;

Additionally, this skips going to _return_of_node_put when dev_node has
already been put (preventing a double put).

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Acked-by: Camelia Groza <camelia.groza@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Sean Anderson and committed by
David S. Miller
aedbeb4e 5b6acb55

+15 -28
+15 -28
drivers/net/ethernet/freescale/fman/mac.c
··· 291 291 init = of_device_get_match_data(dev); 292 292 293 293 mac_dev = devm_kzalloc(dev, sizeof(*mac_dev), GFP_KERNEL); 294 - if (!mac_dev) { 295 - err = -ENOMEM; 296 - goto _return; 297 - } 294 + if (!mac_dev) 295 + return -ENOMEM; 298 296 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 299 - if (!priv) { 300 - err = -ENOMEM; 301 - goto _return; 302 - } 297 + if (!priv) 298 + return -ENOMEM; 303 299 304 300 /* Save private information */ 305 301 mac_dev->priv = priv; ··· 308 312 if (!dev_node) { 309 313 dev_err(dev, "of_get_parent(%pOF) failed\n", 310 314 mac_node); 311 - err = -EINVAL; 312 - goto _return_of_node_put; 315 + return -EINVAL; 313 316 } 314 317 315 318 of_dev = of_find_device_by_node(dev_node); ··· 347 352 err = devm_request_resource(dev, fman_get_mem_region(priv->fman), res); 348 353 if (err) { 349 354 dev_err_probe(dev, err, "could not request resource\n"); 350 - goto _return_of_node_put; 355 + return err; 351 356 } 352 357 353 358 mac_dev->vaddr = devm_ioremap(dev, res->start, resource_size(res)); 354 359 if (!mac_dev->vaddr) { 355 360 dev_err(dev, "devm_ioremap() failed\n"); 356 - err = -EIO; 357 - goto _return_of_node_put; 361 + return -EIO; 358 362 } 359 363 mac_dev->vaddr_end = mac_dev->vaddr + resource_size(res); 360 364 361 - if (!of_device_is_available(mac_node)) { 362 - err = -ENODEV; 363 - goto _return_of_node_put; 364 - } 365 + if (!of_device_is_available(mac_node)) 366 + return -ENODEV; 365 367 366 368 /* Get the cell-index */ 367 369 err = of_property_read_u32(mac_node, "cell-index", &val); 368 370 if (err) { 369 371 dev_err(dev, "failed to read cell-index for %pOF\n", mac_node); 370 - err = -EINVAL; 371 - goto _return_of_node_put; 372 + return -EINVAL; 372 373 } 373 374 priv->cell_index = (u8)val; 374 375 ··· 378 387 if (unlikely(nph < 0)) { 379 388 dev_err(dev, "of_count_phandle_with_args(%pOF, fsl,fman-ports) failed\n", 380 389 mac_node); 381 - err = nph; 382 - goto _return_of_node_put; 390 + return nph; 383 391 } 384 392 385 393 if (nph != ARRAY_SIZE(mac_dev->port)) { 386 394 dev_err(dev, "Not supported number of fman-ports handles of mac node %pOF from device tree\n", 387 395 mac_node); 388 - err = -EINVAL; 389 - goto _return_of_node_put; 396 + return -EINVAL; 390 397 } 391 398 392 399 for (i = 0; i < ARRAY_SIZE(mac_dev->port); i++) { ··· 393 404 if (!dev_node) { 394 405 dev_err(dev, "of_parse_phandle(%pOF, fsl,fman-ports) failed\n", 395 406 mac_node); 396 - err = -EINVAL; 397 - goto _return_of_node_put; 407 + return -EINVAL; 398 408 } 399 409 400 410 of_dev = of_find_device_by_node(dev_node); ··· 453 465 if (err < 0) { 454 466 dev_err(dev, "mac_dev->init() = %d\n", err); 455 467 of_node_put(mac_dev->phy_node); 456 - goto _return_of_node_put; 468 + return err; 457 469 } 458 470 459 471 /* pause frame autonegotiation enabled */ ··· 480 492 priv->eth_dev = NULL; 481 493 } 482 494 483 - goto _return; 495 + return err; 484 496 485 497 _return_of_node_put: 486 498 of_node_put(dev_node); 487 - _return: 488 499 return err; 489 500 } 490 501