ssb: return -ENOMEM on alloc fail (instead of CRC check's result)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
54435f9ec8
commit
ca4a083191
@ -619,7 +619,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
|
|||||||
struct ssb_sprom *sprom)
|
struct ssb_sprom *sprom)
|
||||||
{
|
{
|
||||||
const struct ssb_sprom *fallback;
|
const struct ssb_sprom *fallback;
|
||||||
int err = -ENOMEM;
|
int err;
|
||||||
u16 *buf;
|
u16 *buf;
|
||||||
|
|
||||||
if (!ssb_is_sprom_available(bus)) {
|
if (!ssb_is_sprom_available(bus)) {
|
||||||
@ -646,7 +646,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
|
|||||||
|
|
||||||
buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
|
buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
goto out;
|
return -ENOMEM;
|
||||||
bus->sprom_size = SSB_SPROMSIZE_WORDS_R123;
|
bus->sprom_size = SSB_SPROMSIZE_WORDS_R123;
|
||||||
sprom_do_read(bus, buf);
|
sprom_do_read(bus, buf);
|
||||||
err = sprom_check_crc(buf, bus->sprom_size);
|
err = sprom_check_crc(buf, bus->sprom_size);
|
||||||
@ -656,7 +656,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
|
|||||||
buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
|
buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
goto out;
|
return -ENOMEM;
|
||||||
bus->sprom_size = SSB_SPROMSIZE_WORDS_R4;
|
bus->sprom_size = SSB_SPROMSIZE_WORDS_R4;
|
||||||
sprom_do_read(bus, buf);
|
sprom_do_read(bus, buf);
|
||||||
err = sprom_check_crc(buf, bus->sprom_size);
|
err = sprom_check_crc(buf, bus->sprom_size);
|
||||||
@ -678,7 +678,6 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
|
|||||||
|
|
||||||
out_free:
|
out_free:
|
||||||
kfree(buf);
|
kfree(buf);
|
||||||
out:
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user