| From foo@baz Thu Dec 21 09:02:40 CET 2017 |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Date: Sun, 27 Aug 2017 08:39:51 +0200 |
| Subject: igb: check memory allocation failure |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| |
| [ Upstream commit 18eb86362a52f0af933cc0fd5e37027317eb2d1c ] |
| |
| Check memory allocation failures and return -ENOMEM in such cases, as |
| already done for other memory allocations in this function. |
| |
| This avoids NULL pointers dereference. |
| |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Tested-by: Aaron Brown <aaron.f.brown@intel.com> |
| Acked-by: PJ Waskiewicz <peter.waskiewicz.jr@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/igb/igb_main.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/net/ethernet/intel/igb/igb_main.c |
| +++ b/drivers/net/ethernet/intel/igb/igb_main.c |
| @@ -3102,6 +3102,8 @@ static int igb_sw_init(struct igb_adapte |
| /* Setup and initialize a copy of the hw vlan table array */ |
| adapter->shadow_vfta = kcalloc(E1000_VLAN_FILTER_TBL_SIZE, sizeof(u32), |
| GFP_ATOMIC); |
| + if (!adapter->shadow_vfta) |
| + return -ENOMEM; |
| |
| /* This call may decrease the number of queues */ |
| if (igb_init_interrupt_scheme(adapter, true)) { |