> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Michal Schmidt > Sent: Friday, October 6, 2023 4:42 PM > To: [email protected] > Cc: Brandeburg, Jesse <[email protected]>; [email protected]; > Nguyen, Anthony L <[email protected]>; Jeff Kirsher > <[email protected]>; Shannon Nelson <[email protected]> > Subject: [Intel-wired-lan] [PATCH net] i40e: prevent crash on probe if hw > registers have invalid values > > The hardware provides the indexes of the first and the last available > queue and VF. From the indexes, the driver calculates the numbers of > queues and VFs. In theory, a faulty device might say the last index is > smaller than the first index. In that case, the driver's calculation > would underflow, it would attempt to write to non-existent registers > outside of the ioremapped range and crash. > > I ran into this not by having a faulty device, but by an operator error. > I accidentally ran a QE test meant for i40e devices on an ice device. > The test used 'echo i40e > /sys/...ice PCI device.../driver_override', > bound the driver to the device and crashed in one of the wr32 calls in > i40e_clear_hw. > > Add checks to prevent underflows in the calculations of num_queues and > num_vfs. With this fix, the wrong device probing reports errors and > returns a failure without crashing. > > Fixes: 838d41d92a90 ("i40e: clear all queues and interrupts") > Signed-off-by: Michal Schmidt <[email protected]> > --- > drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) >
Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel) _______________________________________________ Intel-wired-lan mailing list [email protected] https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
