[Intel-wired-lan] [next-queue PATCH] fm10k: Avoid crashing the kernel
Alexander Duyck
alexander.duyck at gmail.com
Wed Dec 23 16:22:43 UTC 2015
On Tue, Dec 22, 2015 at 2:10 PM, Bruce Allan <bruce.w.allan at intel.com> wrote:
> Use BUILD_BUG_ON() instead of BUG_ON() where appropriate to get a compile
> error rather than crash the kernel.
>
> Signed-off-by: Bruce Allan <bruce.w.allan at intel.com>
> ---
> drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> index 28837ae..6a9f988 100644
> --- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> +++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> @@ -398,7 +398,7 @@ static void fm10k_get_reg_q(struct fm10k_hw *hw, u32 *buff, int i)
> buff[idx++] = fm10k_read_reg(hw, FM10K_TX_SGLORT(i));
> buff[idx++] = fm10k_read_reg(hw, FM10K_PFVTCTL(i));
>
> - BUG_ON(idx != FM10K_REGS_LEN_Q);
> + BUILD_BUG_ON(idx != FM10K_REGS_LEN_Q);
> }
>
> /* If function above adds more registers this define needs to be updated */
> @@ -414,7 +414,7 @@ static void fm10k_get_reg_vsi(struct fm10k_hw *hw, u32 *buff, int i)
> for (j = 0; j < 32; j++)
> buff[idx++] = fm10k_read_reg(hw, FM10K_RETA(i, j));
>
> - BUG_ON(idx != FM10K_REGS_LEN_VSI);
> + BUILD_BUG_ON(idx != FM10K_REGS_LEN_VSI);
> }
>
> static void fm10k_get_regs(struct net_device *netdev,
I'm not sure that is entirely valid. It seems like BUILD_BUG_ON
should be given an expression that can be tested at build time, but
the way this code is written I would suspect idx is likely not going
to be a fixed value unless you are compiling with -03 which would
likely unfold most of the loops, so I don't see how BUILD_BUG_ON will
do anything other than be compiled out.
- Alex
More information about the Intel-wired-lan
mailing list