bnx2x: Fail probe of VFs using an old incompatible driver
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Thu, 26 Jun 2014 11:31:06 +0000 (14:31 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Jul 2014 22:52:30 +0000 (15:52 -0700)
commitebf457f931e363cd5f57e661e103386af5a21629
treef687862474b84b2b6679e543a4e780914336e8e3
parent9927b51469494d50956978b533d848748b792cef
bnx2x: Fail probe of VFs using an old incompatible driver

There are linux distributions where the inbox bnx2x driver contains SRIOV
support but doesn't contain the changes introduced in b9871bcf
"bnx2x: VF RSS support - PF side".

A VF in a VM running that distribution over a new hypervisor will access
incorrect addresses when trying to transmit packets, causing an attention
in the hypervisor and making that VF inactive until FLRed.

The driver in the VM has to ne upgraded [no real way to overcome this], but
due to the HW attention currently arising upgrading the driver in the VM
would not suffice [since the VF needs also be FLRed if the previous driver
was already loaded].

This patch causes the PF to fail the acquire message from a VF running an
old problematic driver; The VF will then gracefully fail it's probe preventing
the HW attention [and allow clean upgrade of driver in VM].

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: Ariel Elior <Ariel.Elior@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h