Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c673d15 authored by Hariprasad Shenai's avatar Hariprasad Shenai Committed by David S. Miller
Browse files

cxgb4: Use vmalloc, if kmalloc fails

parent 6ac5fe75
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -851,7 +851,7 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,
{
	int i, err = 0;
	struct adapter *adapter = netdev2adap(dev);
	u8 *buf = kmalloc(EEPROMSIZE, GFP_KERNEL);
	u8 *buf = t4_alloc_mem(EEPROMSIZE);

	if (!buf)
		return -ENOMEM;
@@ -862,7 +862,7 @@ static int get_eeprom(struct net_device *dev, struct ethtool_eeprom *e,

	if (!err)
		memcpy(data, buf + e->offset, e->len);
	kfree(buf);
	t4_free_mem(buf);
	return err;
}

@@ -891,7 +891,7 @@ static int set_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
	if (aligned_offset != eeprom->offset || aligned_len != eeprom->len) {
		/* RMW possibly needed for first or last words.
		 */
		buf = kmalloc(aligned_len, GFP_KERNEL);
		buf = t4_alloc_mem(aligned_len);
		if (!buf)
			return -ENOMEM;
		err = eeprom_rd_phys(adapter, aligned_offset, (u32 *)buf);
@@ -919,7 +919,7 @@ static int set_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
		err = t4_seeprom_wp(adapter, true);
out:
	if (buf != data)
		kfree(buf);
		t4_free_mem(buf);
	return err;
}