mirror of https://github.com/hak5/openwrt.git
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@openwrt.org> SVN-Revision: 36229lede-17.01
parent
32d3b456f0
commit
f5d8d80ca9
|
@ -863,19 +863,26 @@ static int rtl8367b_extif_init(struct rtl8366_smi *smi, int id,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, const char *name)
|
||||
static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id,
|
||||
const char *name)
|
||||
{
|
||||
struct rtl8367_extif_config *cfg;
|
||||
const __be32 *prop;
|
||||
int size;
|
||||
int err;
|
||||
|
||||
prop = of_get_property(smi->parent->of_node, name, &size);
|
||||
if (!prop || size != (9 * sizeof(*prop)))
|
||||
return 0;
|
||||
if (!prop)
|
||||
return rtl8367b_extif_init(smi, id, NULL);
|
||||
|
||||
if (size != (9 * sizeof(*prop))) {
|
||||
dev_err(smi->parent, "%s property is invalid\n", name);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
cfg = kzalloc(sizeof(struct rtl8367_extif_config), GFP_KERNEL);
|
||||
if (!cfg)
|
||||
return -1;
|
||||
return -ENOMEM;
|
||||
|
||||
cfg->txdelay = be32_to_cpup(prop++);
|
||||
cfg->rxdelay = be32_to_cpup(prop++);
|
||||
|
@ -887,12 +894,16 @@ static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, const char *n
|
|||
cfg->ability.duplex = be32_to_cpup(prop++);
|
||||
cfg->ability.speed = be32_to_cpup(prop++);
|
||||
|
||||
return rtl8367b_extif_init(smi, id, cfg);
|
||||
err = rtl8367b_extif_init(smi, id, cfg);
|
||||
kfree(cfg);
|
||||
|
||||
return err;
|
||||
}
|
||||
#else
|
||||
static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id, const char *name)
|
||||
static int rtl8367b_extif_init_of(struct rtl8366_smi *smi, int id,
|
||||
const char *name)
|
||||
{
|
||||
return -1;
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue