Fix prom_getproperty calls
Subsystems (7)
Network drivers Framebuffer layer Char and misc drivers SPARC + UltraSPARC (sparc/sparc64) +3 more subsystems
PATCH 1/1 Fix prom_getproperty calls
This patch fixes the remaining prom_getproperty calls in 2.6 to actually do something with the result.
Signed-off-by Tom 'spot' Callaway <[email protected]>
~spot
Signature · 4 lines
Tom "spot" Callaway: Red Hat Senior Sales Engineer || GPG ID: 93054260 Fedora Extras Steering Committee Member (RPM Standards and Practices) Aurora Linux Project Leader: http://auroralinux.org Lemurs, llamas, and sparcs, oh my!
drivers/video/cg14.c renamed from drivers/video/cg14.c.BAD +2 -1
@@ -532,7 +532,8 @@ static void cg14_init_one(struct sbus_de all->info.screen_base = (char __iomem *)(unsigned long )bases[1 ]; } -prom_getproperty (node,"reg" , (char *) &bases[0 ],sizeof (bases)); +if (prom_getproperty (node,"reg" , (char *) &bases[0 ],sizeof (bases)) <=0 ) +return ; is_8mb = (bases[5 ] ==0x800000 );if (sizeof (all->par.mmap_map) !=sizeof (__cg14_mmap_map)) {
drivers/video/ffb.c renamed from drivers/video/ffb.c.BAD +3 -1
@@ -894,7 +894,9 @@ static int ffb_apply_upa_parent_ranges(ichar name[128 ];int len, i; -prom_getproperty (parent,"name" , name,sizeof (name)); +if (prom_getproperty (parent,"name" , name,sizeof (name)) <=0 ) +return 1 ; +if (strcmp (name,"upa" ) !=0 )return 0 ;
drivers/net/tulip/tulip_core.c renamed from drivers/net/tulip/tulip_core.c.BAD +3 -2
@@ -1566,8 +1566,9 @@ static int __devinit tulip_init_one (str#if defined(__sparc__)if ((pcp !=NULL ) &&prom_getproplen (pcp->prom_node,"local-mac-address" ) ==6 ) { -prom_getproperty (pcp->prom_node,"local-mac-address" , - dev->dev_addr,6 ); +if (prom_getproperty (pcp->prom_node,"local-mac-address" , + dev->dev_addr,6 ) <=0 ) + goto err_out_free_ring; }#endif #if defined(__i386__)/* Patch up x86 BIOS bug. */
drivers/net/sunhme.c renamed from drivers/net/sunhme.c.BAD +6 -4
@@ -2742,8 +2742,9 @@ static int __init happy_meal_sbus_init(s }else if (qfe_slot !=-1 &&prom_getproplen (sdev->prom_node,"local-mac-address" ) ==6 ) { -prom_getproperty (sdev->prom_node,"local-mac-address" , - dev->dev_addr,6 ); +if (prom_getproperty (sdev->prom_node,"local-mac-address" , + dev->dev_addr,6 ) <=0 ) + goto err_out; }else {memcpy (dev->dev_addr, idprom->id_ethaddr,6 ); }
@@ -3126,8 +3127,9 @@ static int __init happy_meal_pci_init(st#ifdef __sparc__if (qfe_slot !=-1 &&prom_getproplen (node,"local-mac-address" ) ==6 ) { -prom_getproperty (node,"local-mac-address" , - dev->dev_addr,6 ); +if (prom_getproperty (node,"local-mac-address" , + dev->dev_addr,6 ) <=0 ) + goto err_out_free_res; }else {memcpy (dev->dev_addr, idprom->id_ethaddr,6 ); }
drivers/net/sungem.c renamed from drivers/net/sungem.c.BAD +3 -2
@@ -2756,8 +2756,9 @@ static int __devinit gem_get_device_addrif (pcp !=NULL ) { node = pcp->prom_node;if (prom_getproplen (node,"local-mac-address" ) ==6 ) -prom_getproperty (node,"local-mac-address" , - dev->dev_addr,6 ); +if (prom_getproperty (node,"local-mac-address" , + dev->dev_addr,6 ) <=0 ) +return -1 ;else node =-1 ; }
drivers/char/drm/ffb_drv.c renamed from drivers/char/drm/ffb_drv.c.BAD +2 -1
@@ -93,7 +93,8 @@ static void ffb_apply_upa_parent_ranges(char name[128 ];int len, i; -prom_getproperty (parent,"name" , name,sizeof (name)); +if (prom_getproperty (parent,"name" , name,sizeof (name)) <=0 ) +return ;if (strcmp (name,"upa" ) !=0 )return ;
drivers/fc4/socal.c renamed from drivers/fc4/socal.c.BAD +3 -2
@@ -712,9 +712,10 @@ static inline void socal_init(struct sbucase 0 :case 1 :if (prom_getproplen (node,"port-wwn" ) ==sizeof (fc_wwn)) -prom_getproperty (node,"port-wwn" , +if (prom_getproperty (node,"port-wwn" , (char *)&s->port[port].fc.wwn_nport, -sizeof (fc_wwn)); +sizeof (fc_wwn)) <=0 ) +return ;break ;default :break ;
drivers/atm/fore200e.c renamed from drivers/atm/fore200e.c.BAD +7 -3
@@ -957,12 +957,16 @@ fore200e_sba_prom_read(struct fore200e*if (len <0 )return -EBUSY ; -prom_getproperty (sbus_dev->prom_node,"serialnumber" , + len =prom_getproperty (sbus_dev->prom_node,"serialnumber" , (char *)&prom->serial_number,sizeof (prom->serial_number)); +if (len <0 ) +return -EBUSY ; -prom_getproperty (sbus_dev->prom_node,"promversion" , + len =prom_getproperty (sbus_dev->prom_node,"promversion" , (char *)&prom->hw_revision,sizeof (prom->hw_revision)); - +if (len <0 ) +return -EBUSY ; +return 0 ; }
drivers/sbus/char/openprom.c renamed from drivers/sbus/char/openprom.c.BAD +2 -1
@@ -391,7 +391,8 @@ static int openprom_bsd_ioctl(struct inoreturn -ENOMEM ; } -prom_getproperty (op.op_nodeid, str, tmp, len); +if (prom_getproperty (op.op_nodeid, str, tmp, len) <=0 ) +return -EINVAL ; tmp[len] ='\0' ;
drivers/sbus/char/jsflash.c renamed from drivers/sbus/char/jsflash.c.BAD +2 -1
@@ -486,7 +486,8 @@ static int jsflash_init(void) }else {/* XXX Remove this code once PROLL ID12 got widespread */ printk ("jsflash: no /flash-memory node, use PROLL >= 12\n" ); -prom_getproperty (prom_root_node,"banner-name" , banner,128 ); +if (prom_getproperty (prom_root_node,"banner-name" , banner,128 ) <=0 ) +return -EINVAL ;if (strcmp (banner,"JavaStation-NC" ) !=0 &&strcmp (banner,"JavaStation-E" ) !=0 ) {return -ENXIO ;
drivers/sbus/char/cpwatchdog.c renamed from drivers/sbus/char/cpwatchdog.c.BAD +2 -1
@@ -221,7 +221,8 @@ static inline int wd_isbroken(void)* ubiquitous on CP1400s */ char val[32 ]; -prom_getproperty (prom_root_node,"model" , val,sizeof (val)); +if (prom_getproperty (prom_root_node,"model" , val,sizeof (val)) <=0 ) +return 1 ;return ((!strcmp (val,WD_BADMODEL )) ?1 :0 ); }
arch/sparc64/kernel/chmc.c renamed from arch/sparc64/kernel/chmc.c.BAD +3 -2
@@ -360,9 +360,10 @@ static int init_one_mctrl(int node, int goto fail;if (mp->layout_size >0 ) -prom_getproperty (node,"memory-layout" , +if (prom_getproperty (node,"memory-layout" , (char *) &mp->layout_prop, - mp->layout_size); + mp->layout_size) <=0 ) + goto fail; t = prom_getproperty(node, "reg", (char *) &p_reg_prop,
arch/sparc64/prom/tree.c renamed from arch/sparc64/prom/tree.c.BAD +4 -1
@@ -162,8 +162,11 @@ prom_getstring(int node, char *prop, chaint prom_nodematch (int node,char *name) { +int error; +char namebuf[128 ]; -prom_getproperty (node,"name" , namebuf,sizeof (namebuf)); + error =prom_getproperty (node,"name" , namebuf,sizeof (namebuf)); +if (error ==-1 )return 0 ;if (strcmp (namebuf, name) ==0 )return 1 ;return 0 ; }
arch/sparc64/prom/console.c renamed from arch/sparc64/prom/console.c.BAD +6 -3
@@ -84,13 +84,15 @@ prom_query_input_device(void) st_p =prom_inst2pkg (prom_stdin);if (prom_node_has_property (st_p,"keyboard" ))return PROMDEV_IKBD ; -prom_getproperty (st_p,"device_type" , propb,sizeof (propb)); +if (prom_getproperty (st_p,"device_type" , propb,sizeof (propb)) <0 ) +return PROMDEV_I_UNK ;if (strncmp (propb,"serial" ,6 ))return PROMDEV_I_UNK ;/* FIXME: Is there any better way how to find out? */ memset (propb,0 ,sizeof (propb)); st_p =prom_finddevice ("/options" ); -prom_getproperty (st_p,"input-device" , propb,sizeof (propb)); +if (prom_getproperty (st_p,"input-device" , propb,sizeof (propb)) <0 ) +return PROMDEV_I_UNK ;/* * If we get here with propb == 'keyboard', we are on ttya, as
@@ -127,7 +129,8 @@ prom_query_output_device(void)/* FIXME: Is there any better way how to find out? */ memset (propb,0 ,sizeof (propb)); st_p =prom_finddevice ("/options" ); -prom_getproperty (st_p,"output-device" , propb,sizeof (propb)); +if (prom_getproperty (st_p,"output-device" , propb,sizeof (propb)) <0 ) +return PROMDEV_O_UNK ;/* * If we get here with propb == 'screen', we are on ttya, as
arch/m68k/sun3/prom/console.c renamed from arch/m68k/sun3/prom/console.c.BAD +6 -3
@@ -91,10 +91,12 @@ prom_query_input_device()local_irq_restore (flags);if (prom_node_has_property (st_p,"keyboard" ))return PROMDEV_IKBD ; -prom_getproperty (st_p,"device_type" , propb,sizeof (propb)); +if (prom_getproperty (st_p,"device_type" , propb,sizeof (propb)) <0 ) +return PROMDEV_I_UNK ;if (strncmp (propb,"serial" ,sizeof ("serial" )))return PROMDEV_I_UNK ; -prom_getproperty (prom_root_node,"stdin-path" , propb,sizeof (propb)); +if (prom_getproperty (prom_root_node,"stdin-path" , propb,sizeof (propb)) <0 ) +return PROMDEV_I_UNK ; p = propb;while (*p) p++; p -=2 ;if (p[0 ] ==':' ) {
@@ -148,7 +150,8 @@ prom_query_output_device()if (prom_vers ==PROM_V3 ) {if (strncmp ("serial" , propb,sizeof ("serial" )))return PROMDEV_O_UNK ; -prom_getproperty (prom_root_node,"stdout-path" , propb,sizeof (propb)); +if (prom_getproperty (prom_root_node,"stdout-path" , propb,sizeof (propb)) <0 ) +return PROMDEV_O_UNK ; p = propb;while (*p) p++; p -=2 ;if (p[0 ]==':' ) {
include/asm-sparc64/floppy.h renamed from include/asm-sparc64/floppy.h.BAD +4 -2
@@ -632,8 +632,10 @@ static unsigned long __init sun_floppy_i#endif } -prom_getproperty (edev->prom_node,"status" , - state,sizeof (state)); +if (prom_getproperty (edev->prom_node,"status" , + state,sizeof (state)) <=0 ) +return 0 ; +if (!strncmp (state,"disabled" ,8 ))return 0 ;
drivers/net/tg3.c renamed from drivers/net/tg3.c.BAD +3 -2
@@ -9782,8 +9782,9 @@ static int __devinit tg3_get_macaddr_spaint node = pcp->prom_node;if (prom_getproplen (node,"local-mac-address" ) ==6 ) { -prom_getproperty (node,"local-mac-address" , - dev->dev_addr,6 ); +if (prom_getproperty (node,"local-mac-address" , + dev->dev_addr,6 ) <=0 ) +return -ENODEV ;memcpy (dev->perm_addr, dev->dev_addr,6 );return 0 ; }
David S. Miller
maintainerFrom: "Tom 'spot' Callaway" <[email protected]>
Date: Thu, 06 Oct 2005 08:39:19 -0500
drivers/video/cg14.c static void cg14_init_one(struct sbus_de · line 539
Quoted 12 lines
drivers/video/cg14.c renamed from drivers/video/cg14.c.BAD +2
-1@@ -532,7 +532,8 @@ static void cg14_init_one(struct sbus_de all->info.screen_base = (char __iomem *)(unsigned long )bases[1 ]; } -prom_getproperty (node,"reg" , (char *) &bases[0 ],sizeof (bases)); +if (prom_getproperty (node,"reg" , (char *) &bases[0 ],sizeof (bases)) <=0 ) +return ; is_8mb = (bases[5 ] =0x800000 );if (sizeof (all->par.mmap_map) !=sizeof (__cg14_mmap_map)) {
Leaks memory... and bad coding style "if ()" not "if()" please.
sunffb.c, sunhme.c, arch/sparc64/prom/console.c, and arch/m68k/sun3/prom/console.c all need the same coding style fix.
Please fixup and resubmit, thanks.