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

PTR_RET is now PTR_ERR_OR_ZERO(): Replace most.

Sweep of the simple cases.

Cc: netdev@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

+47 -47
+1 -1
arch/arm/mach-omap2/i2c.c
··· 181 181 sizeof(struct omap_i2c_bus_platform_data)); 182 182 WARN(IS_ERR(pdev), "Could not build omap_device for %s\n", name); 183 183 184 - return PTR_RET(pdev); 184 + return PTR_ERR_OR_ZERO(pdev); 185 185 } 186 186 187 187 static int __init omap_i2c_cmdline(void)
+1 -1
arch/m68k/amiga/platform.c
··· 56 56 n = AMIGAHW_PRESENT(ZORRO3) ? 4 : 2; 57 57 pdev = platform_device_register_simple("amiga-zorro", -1, 58 58 zorro_resources, n); 59 - return PTR_RET(pdev); 59 + return PTR_ERR_OR_ZERO(pdev); 60 60 } 61 61 62 62 subsys_initcall(amiga_init_bus);
+1 -1
arch/m68k/kernel/time.c
··· 90 90 return -ENODEV; 91 91 92 92 pdev = platform_device_register_simple("rtc-generic", -1, NULL, 0); 93 - return PTR_RET(pdev); 93 + return PTR_ERR_OR_ZERO(pdev); 94 94 } 95 95 96 96 module_init(rtc_init);
+1 -1
arch/m68k/q40/config.c
··· 338 338 return -ENODEV; 339 339 340 340 pdev = platform_device_register_simple("q40kbd", -1, NULL, 0); 341 - return PTR_RET(pdev); 341 + return PTR_ERR_OR_ZERO(pdev); 342 342 } 343 343 arch_initcall(q40_add_kbd_device);
+1 -1
arch/powerpc/kernel/iommu.c
··· 105 105 struct dentry *dir = fault_create_debugfs_attr("fail_iommu", 106 106 NULL, &fail_iommu); 107 107 108 - return PTR_RET(dir); 108 + return PTR_ERR_OR_ZERO(dir); 109 109 } 110 110 late_initcall(fail_iommu_debugfs); 111 111
+1 -1
arch/powerpc/kernel/time.c
··· 1049 1049 1050 1050 pdev = platform_device_register_simple("rtc-generic", -1, NULL, 0); 1051 1051 1052 - return PTR_RET(pdev); 1052 + return PTR_ERR_OR_ZERO(pdev); 1053 1053 } 1054 1054 1055 1055 module_init(rtc_init);
+1 -1
arch/powerpc/platforms/ps3/time.c
··· 90 90 91 91 pdev = platform_device_register_simple("rtc-ps3", -1, NULL, 0); 92 92 93 - return PTR_RET(pdev); 93 + return PTR_ERR_OR_ZERO(pdev); 94 94 } 95 95 96 96 module_init(ps3_rtc_init);
+1 -1
arch/powerpc/sysdev/rtc_cmos_setup.c
··· 62 62 pd = platform_device_register_simple("rtc_cmos", -1, 63 63 &res[0], num_res); 64 64 65 - return PTR_RET(pd); 65 + return PTR_ERR_OR_ZERO(pd); 66 66 } 67 67 fs_initcall(add_rtc); 68 68
+1 -1
arch/s390/hypfs/hypfs_dbfs.c
··· 105 105 int hypfs_dbfs_init(void) 106 106 { 107 107 dbfs_dir = debugfs_create_dir("s390_hypfs", NULL); 108 - return PTR_RET(dbfs_dir); 108 + return PTR_ERR_OR_ZERO(dbfs_dir); 109 109 } 110 110 111 111 void hypfs_dbfs_exit(void)
+1 -1
drivers/char/tile-srom.c
··· 349 349 350 350 dev = device_create(srom_class, &platform_bus, 351 351 MKDEV(srom_major, index), srom, "%d", index); 352 - return PTR_RET(dev); 352 + return PTR_ERR_OR_ZERO(dev); 353 353 } 354 354 355 355 /** srom_init() - Initialize the driver's module. */
+1 -1
drivers/infiniband/core/cma.c
··· 3205 3205 id_priv->id.port_num, &rec, 3206 3206 comp_mask, GFP_KERNEL, 3207 3207 cma_ib_mc_handler, mc); 3208 - return PTR_RET(mc->multicast.ib); 3208 + return PTR_ERR_OR_ZERO(mc->multicast.ib); 3209 3209 } 3210 3210 3211 3211 static void iboe_mcast_work_handler(struct work_struct *work)
+1 -1
drivers/net/appletalk/cops.c
··· 996 996 printk(KERN_WARNING "%s: You shouldn't autoprobe with insmod\n", 997 997 cardname); 998 998 cops_dev = cops_probe(-1); 999 - return PTR_RET(cops_dev); 999 + return PTR_ERR_OR_ZERO(cops_dev); 1000 1000 } 1001 1001 1002 1002 static void __exit cops_module_exit(void)
+1 -1
drivers/net/appletalk/ltpc.c
··· 1243 1243 "ltpc: Autoprobing is not recommended for modules\n"); 1244 1244 1245 1245 dev_ltpc = ltpc_probe(); 1246 - return PTR_RET(dev_ltpc); 1246 + return PTR_ERR_OR_ZERO(dev_ltpc); 1247 1247 } 1248 1248 module_init(ltpc_module_init); 1249 1249 #endif
+1 -1
drivers/net/ethernet/amd/atarilance.c
··· 1147 1147 static int __init atarilance_module_init(void) 1148 1148 { 1149 1149 atarilance_dev = atarilance_probe(-1); 1150 - return PTR_RET(atarilance_dev); 1150 + return PTR_ERR_OR_ZERO(atarilance_dev); 1151 1151 } 1152 1152 1153 1153 static void __exit atarilance_module_exit(void)
+1 -1
drivers/net/ethernet/amd/mvme147.c
··· 188 188 int __init init_module(void) 189 189 { 190 190 dev_mvme147_lance = mvme147lance_probe(-1); 191 - return PTR_RET(dev_mvme147_lance); 191 + return PTR_ERR_OR_ZERO(dev_mvme147_lance); 192 192 } 193 193 194 194 void __exit cleanup_module(void)
+1 -1
drivers/net/ethernet/amd/ni65.c
··· 1238 1238 int __init init_module(void) 1239 1239 { 1240 1240 dev_ni65 = ni65_probe(-1); 1241 - return PTR_RET(dev_ni65); 1241 + return PTR_ERR_OR_ZERO(dev_ni65); 1242 1242 } 1243 1243 1244 1244 void __exit cleanup_module(void)
+1 -1
drivers/net/ethernet/amd/sun3lance.c
··· 940 940 int __init init_module(void) 941 941 { 942 942 sun3lance_dev = sun3lance_probe(-1); 943 - return PTR_RET(sun3lance_dev); 943 + return PTR_ERR_OR_ZERO(sun3lance_dev); 944 944 } 945 945 946 946 void __exit cleanup_module(void)
+1 -1
drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.c
··· 50 50 return -ENODEV; 51 51 52 52 drvr->dbgfs_dir = debugfs_create_dir(dev_name(dev), root_folder); 53 - return PTR_RET(drvr->dbgfs_dir); 53 + return PTR_ERR_OR_ZERO(drvr->dbgfs_dir); 54 54 } 55 55 56 56 void brcmf_debugfs_detach(struct brcmf_pub *drvr)
+1 -1
drivers/net/wireless/brcm80211/brcmsmac/debug.c
··· 56 56 57 57 drvr->dbgfs_dir = debugfs_create_dir( 58 58 dev_name(&drvr->wlc->hw->d11core->dev), root_folder); 59 - return PTR_RET(drvr->dbgfs_dir); 59 + return PTR_ERR_OR_ZERO(drvr->dbgfs_dir); 60 60 } 61 61 62 62 void brcms_debugfs_detach(struct brcms_pub *drvr)
+1 -1
drivers/platform/x86/samsung-q10.c
··· 176 176 samsungq10_probe, 177 177 NULL, 0, NULL, 0); 178 178 179 - return PTR_RET(samsungq10_device); 179 + return PTR_ERR_OR_ZERO(samsungq10_device); 180 180 } 181 181 182 182 static void __exit samsungq10_exit(void)
+1 -1
drivers/regulator/fan53555.c
··· 219 219 rdesc->owner = THIS_MODULE; 220 220 221 221 di->rdev = regulator_register(&di->desc, config); 222 - return PTR_RET(di->rdev); 222 + return PTR_ERR_OR_ZERO(di->rdev); 223 223 224 224 } 225 225
+1 -1
drivers/spi/spi-fsl-spi.c
··· 901 901 return -EINVAL; 902 902 903 903 master = fsl_spi_probe(&pdev->dev, mem, irq); 904 - return PTR_RET(master); 904 + return PTR_ERR_OR_ZERO(master); 905 905 } 906 906 907 907 static int plat_mpc8xxx_spi_remove(struct platform_device *pdev)
+1 -1
drivers/spi/spidev.c
··· 603 603 dev = device_create(spidev_class, &spi->dev, spidev->devt, 604 604 spidev, "spidev%d.%d", 605 605 spi->master->bus_num, spi->chip_select); 606 - status = PTR_RET(dev); 606 + status = PTR_ERR_OR_ZERO(dev); 607 607 } else { 608 608 dev_dbg(&spi->dev, "no minor number available!\n"); 609 609 status = -ENODEV;
+1 -1
drivers/video/omap2/dss/core.c
··· 189 189 d = debugfs_create_file(name, S_IRUGO, dss_debugfs_dir, 190 190 write, &dss_debug_fops); 191 191 192 - return PTR_RET(d); 192 + return PTR_ERR_OR_ZERO(d); 193 193 } 194 194 #else /* CONFIG_OMAP2_DSS_DEBUGFS */ 195 195 static inline int dss_initialize_debugfs(void)
+1 -1
fs/btrfs/dev-replace.c
··· 747 747 WARN_ON(atomic_xchg( 748 748 &fs_info->mutually_exclusive_operation_running, 1)); 749 749 task = kthread_run(btrfs_dev_replace_kthread, fs_info, "btrfs-devrepl"); 750 - return PTR_RET(task); 750 + return PTR_ERR_OR_ZERO(task); 751 751 } 752 752 753 753 static int btrfs_dev_replace_kthread(void *data)
+1 -1
fs/btrfs/inode.c
··· 3166 3166 found_key.type = BTRFS_INODE_ITEM_KEY; 3167 3167 found_key.offset = 0; 3168 3168 inode = btrfs_iget(root->fs_info->sb, &found_key, root, NULL); 3169 - ret = PTR_RET(inode); 3169 + ret = PTR_ERR_OR_ZERO(inode); 3170 3170 if (ret && ret != -ESTALE) 3171 3171 goto out; 3172 3172
+1 -1
net/bluetooth/hci_sysfs.c
··· 590 590 591 591 bt_class = class_create(THIS_MODULE, "bluetooth"); 592 592 593 - return PTR_RET(bt_class); 593 + return PTR_ERR_OR_ZERO(bt_class); 594 594 } 595 595 596 596 void bt_sysfs_cleanup(void)
+1 -1
net/bridge/netfilter/ebtable_broute.c
··· 64 64 static int __net_init broute_net_init(struct net *net) 65 65 { 66 66 net->xt.broute_table = ebt_register_table(net, &broute_table); 67 - return PTR_RET(net->xt.broute_table); 67 + return PTR_ERR_OR_ZERO(net->xt.broute_table); 68 68 } 69 69 70 70 static void __net_exit broute_net_exit(struct net *net)
+1 -1
net/bridge/netfilter/ebtable_filter.c
··· 100 100 static int __net_init frame_filter_net_init(struct net *net) 101 101 { 102 102 net->xt.frame_filter = ebt_register_table(net, &frame_filter); 103 - return PTR_RET(net->xt.frame_filter); 103 + return PTR_ERR_OR_ZERO(net->xt.frame_filter); 104 104 } 105 105 106 106 static void __net_exit frame_filter_net_exit(struct net *net)
+1 -1
net/bridge/netfilter/ebtable_nat.c
··· 100 100 static int __net_init frame_nat_net_init(struct net *net) 101 101 { 102 102 net->xt.frame_nat = ebt_register_table(net, &frame_nat); 103 - return PTR_RET(net->xt.frame_nat); 103 + return PTR_ERR_OR_ZERO(net->xt.frame_nat); 104 104 } 105 105 106 106 static void __net_exit frame_nat_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/arptable_filter.c
··· 48 48 net->ipv4.arptable_filter = 49 49 arpt_register_table(net, &packet_filter, repl); 50 50 kfree(repl); 51 - return PTR_RET(net->ipv4.arptable_filter); 51 + return PTR_ERR_OR_ZERO(net->ipv4.arptable_filter); 52 52 } 53 53 54 54 static void __net_exit arptable_filter_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/iptable_filter.c
··· 69 69 net->ipv4.iptable_filter = 70 70 ipt_register_table(net, &packet_filter, repl); 71 71 kfree(repl); 72 - return PTR_RET(net->ipv4.iptable_filter); 72 + return PTR_ERR_OR_ZERO(net->ipv4.iptable_filter); 73 73 } 74 74 75 75 static void __net_exit iptable_filter_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/iptable_mangle.c
··· 107 107 net->ipv4.iptable_mangle = 108 108 ipt_register_table(net, &packet_mangler, repl); 109 109 kfree(repl); 110 - return PTR_RET(net->ipv4.iptable_mangle); 110 + return PTR_ERR_OR_ZERO(net->ipv4.iptable_mangle); 111 111 } 112 112 113 113 static void __net_exit iptable_mangle_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/iptable_nat.c
··· 292 292 return -ENOMEM; 293 293 net->ipv4.nat_table = ipt_register_table(net, &nf_nat_ipv4_table, repl); 294 294 kfree(repl); 295 - return PTR_RET(net->ipv4.nat_table); 295 + return PTR_ERR_OR_ZERO(net->ipv4.nat_table); 296 296 } 297 297 298 298 static void __net_exit iptable_nat_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/iptable_raw.c
··· 48 48 net->ipv4.iptable_raw = 49 49 ipt_register_table(net, &packet_raw, repl); 50 50 kfree(repl); 51 - return PTR_RET(net->ipv4.iptable_raw); 51 + return PTR_ERR_OR_ZERO(net->ipv4.iptable_raw); 52 52 } 53 53 54 54 static void __net_exit iptable_raw_net_exit(struct net *net)
+1 -1
net/ipv4/netfilter/iptable_security.c
··· 66 66 net->ipv4.iptable_security = 67 67 ipt_register_table(net, &security_table, repl); 68 68 kfree(repl); 69 - return PTR_RET(net->ipv4.iptable_security); 69 + return PTR_ERR_OR_ZERO(net->ipv4.iptable_security); 70 70 } 71 71 72 72 static void __net_exit iptable_security_net_exit(struct net *net)
+1 -1
net/ipv6/netfilter/ip6table_filter.c
··· 61 61 net->ipv6.ip6table_filter = 62 62 ip6t_register_table(net, &packet_filter, repl); 63 63 kfree(repl); 64 - return PTR_RET(net->ipv6.ip6table_filter); 64 + return PTR_ERR_OR_ZERO(net->ipv6.ip6table_filter); 65 65 } 66 66 67 67 static void __net_exit ip6table_filter_net_exit(struct net *net)
+1 -1
net/ipv6/netfilter/ip6table_mangle.c
··· 101 101 net->ipv6.ip6table_mangle = 102 102 ip6t_register_table(net, &packet_mangler, repl); 103 103 kfree(repl); 104 - return PTR_RET(net->ipv6.ip6table_mangle); 104 + return PTR_ERR_OR_ZERO(net->ipv6.ip6table_mangle); 105 105 } 106 106 107 107 static void __net_exit ip6table_mangle_net_exit(struct net *net)
+1 -1
net/ipv6/netfilter/ip6table_nat.c
··· 293 293 return -ENOMEM; 294 294 net->ipv6.ip6table_nat = ip6t_register_table(net, &nf_nat_ipv6_table, repl); 295 295 kfree(repl); 296 - return PTR_RET(net->ipv6.ip6table_nat); 296 + return PTR_ERR_OR_ZERO(net->ipv6.ip6table_nat); 297 297 } 298 298 299 299 static void __net_exit ip6table_nat_net_exit(struct net *net)
+1 -1
net/ipv6/netfilter/ip6table_raw.c
··· 40 40 net->ipv6.ip6table_raw = 41 41 ip6t_register_table(net, &packet_raw, repl); 42 42 kfree(repl); 43 - return PTR_RET(net->ipv6.ip6table_raw); 43 + return PTR_ERR_OR_ZERO(net->ipv6.ip6table_raw); 44 44 } 45 45 46 46 static void __net_exit ip6table_raw_net_exit(struct net *net)
+1 -1
net/ipv6/netfilter/ip6table_security.c
··· 58 58 net->ipv6.ip6table_security = 59 59 ip6t_register_table(net, &security_table, repl); 60 60 kfree(repl); 61 - return PTR_RET(net->ipv6.ip6table_security); 61 + return PTR_ERR_OR_ZERO(net->ipv6.ip6table_security); 62 62 } 63 63 64 64 static void __net_exit ip6table_security_net_exit(struct net *net)
+5 -5
scripts/coccinelle/api/ptr_ret.cocci
··· 1 1 /// 2 - /// Use PTR_RET rather than if(IS_ERR(...)) + PTR_ERR 2 + /// Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR 3 3 /// 4 4 // Confidence: High 5 5 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. ··· 7 7 // URL: http://coccinelle.lip6.fr/ 8 8 // Options: --no-includes --include-headers 9 9 // 10 - // Keywords: ERR_PTR, PTR_ERR, PTR_RET 10 + // Keywords: ERR_PTR, PTR_ERR, PTR_RET, PTR_ERR_OR_ZERO 11 11 // Version min: 2.6.39 12 12 // 13 13 ··· 21 21 @@ 22 22 23 23 - if (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0; 24 - + return PTR_RET(ptr); 24 + + return PTR_ERR_OR_ZERO(ptr); 25 25 26 26 @depends on patch@ 27 27 expression ptr; 28 28 @@ 29 29 30 30 - if (IS_ERR(ptr)) return PTR_ERR(ptr); return 0; 31 - + return PTR_RET(ptr); 31 + + return PTR_ERR_OR_ZERO(ptr); 32 32 33 33 @depends on patch@ 34 34 expression ptr; 35 35 @@ 36 36 37 37 - (IS_ERR(ptr) ? PTR_ERR(ptr) : 0) 38 - + PTR_RET(ptr) 38 + + PTR_ERR_OR_ZERO(ptr) 39 39 40 40 @r1 depends on !patch@ 41 41 expression ptr;
+1 -1
sound/soc/soc-io.c
··· 158 158 return -EINVAL; 159 159 } 160 160 161 - return PTR_RET(codec->control_data); 161 + return PTR_ERR_OR_ZERO(codec->control_data); 162 162 } 163 163 EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io); 164 164 #else