Changeset 36229


Ignore:
Timestamp:
2013-04-06T19:03:09+02:00 (5 years ago)
Author:
juhosg
Message:

generic: rtl8367b: fix rtl8367b_extif_init_of

  • disable external interface if its property is not present
  • show an error message if the extif property is not valid
  • use proper error values intead of -1
  • fix memory leak
  • wrap long lines

Signed-off-by: Gabor Juhos <juhosg@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/files/drivers/net/phy/rtl8367b.c

    r36159 r36229  
    864864 
    865865#ifdef CONFIG_OF 
    866 static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, const char *name) 
     866static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, 
     867                                  const char *name) 
    867868{ 
    868869        struct rtl8367_extif_config *cfg; 
    869870        const __be32 *prop; 
    870871        int size; 
     872        int err; 
    871873 
    872874        prop = of_get_property(smi->parent->of_node, name, &size); 
    873         if (!prop || size != (9 * sizeof(*prop))) 
    874                 return 0; 
     875        if (!prop) 
     876                return rtl8367b_extif_init(smi, id, NULL); 
     877 
     878        if (size != (9 * sizeof(*prop))) { 
     879                dev_err(smi->parent, "%s property is invalid\n", name); 
     880                return -EINVAL; 
     881        } 
    875882 
    876883        cfg = kzalloc(sizeof(struct rtl8367_extif_config), GFP_KERNEL); 
    877884        if (!cfg) 
    878                 return -1; 
     885                return -ENOMEM; 
    879886 
    880887        cfg->txdelay = be32_to_cpup(prop++); 
     
    888895        cfg->ability.speed = be32_to_cpup(prop++); 
    889896 
    890         return rtl8367b_extif_init(smi, id, cfg); 
     897        err = rtl8367b_extif_init(smi, id, cfg); 
     898        kfree(cfg); 
     899 
     900        return err; 
    891901} 
    892902#else 
    893 static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, const char *name) 
    894 { 
    895         return -1; 
     903static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, 
     904                                  const char *name) 
     905{ 
     906        return -EINVAL; 
    896907} 
    897908#endif 
Note: See TracChangeset for help on using the changeset viewer.