From: Michal Kosiarz Date: Tue, 11 Oct 2016 22:26:56 +0000 (-0700) Subject: i40e: Fix for division by zero X-Git-Tag: v4.1.12-98.0.20170517_2143~42^2~120 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b028b69c661050507866e1f61ac5c4b4b1c34f6e;p=users%2Fjedix%2Flinux-maple.git i40e: Fix for division by zero Orabug: 24568124 For some cases when reading from device are incorrect or image is incorrect, this part of code causes crash due to division by zero. Change-ID: I8961029a7a87b0a479995823ef8fcbf6471405e1 Signed-off-by: Michal Kosiarz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher (cherry picked from commit 999b315d39906341fadcb65ee6aba7f5cf38b830) Signed-off-by: Brian Maly Signed-off-by: Dhaval Giani --- diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c index a47594603d69..98791ba57211 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_common.c +++ b/drivers/net/ethernet/intel/i40e/i40e_common.c @@ -3313,8 +3313,10 @@ static void i40e_parse_discover_capabilities(struct i40e_hw *hw, void *buff, /* partition id is 1-based, and functions are evenly spread * across the ports as partitions */ - hw->partition_id = (hw->pf_id / hw->num_ports) + 1; - hw->num_partitions = num_functions / hw->num_ports; + if (hw->num_ports != 0) { + hw->partition_id = (hw->pf_id / hw->num_ports) + 1; + hw->num_partitions = num_functions / hw->num_ports; + } /* additional HW specific goodies that might * someday be HW version specific