[PATCH] e1000: Fix invalid memory reference

Fix an invalid memory reference in the e1000 driver which would cause
kernel panic.

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: Jeb Cramer <cramerj@intel.com>
Cc: John Ronciak <john.ronciak@intel.com>
Cc: Ganesh Venkatesan <ganesh.venkatesan@intel.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

authored by

Kenji Kaneshige and committed by
Jeff Garzik
32a4ec97 504ddff4

+7 -3
+7 -3
drivers/net/e1000/e1000_param.c
··· 545 static void __devinit 546 e1000_check_copper_options(struct e1000_adapter *adapter) 547 { 548 - int speed, dplx; 549 int bd = adapter->bd_number; 550 551 { /* Speed */ ··· 641 .p = an_list }} 642 }; 643 644 - int an = AutoNeg[bd]; 645 - e1000_validate_option(&an, &opt, adapter); 646 adapter->hw.autoneg_advertised = an; 647 } 648
··· 545 static void __devinit 546 e1000_check_copper_options(struct e1000_adapter *adapter) 547 { 548 + int speed, dplx, an; 549 int bd = adapter->bd_number; 550 551 { /* Speed */ ··· 641 .p = an_list }} 642 }; 643 644 + if (num_AutoNeg > bd) { 645 + an = AutoNeg[bd]; 646 + e1000_validate_option(&an, &opt, adapter); 647 + } else { 648 + an = opt.def; 649 + } 650 adapter->hw.autoneg_advertised = an; 651 } 652