bnx2x: fix sending VF->PF messages on big-endian
authorMichal Schmidt <mschmidt@redhat.com>
Wed, 2 Mar 2016 12:47:06 +0000 (13:47 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Mar 2016 18:31:55 +0000 (13:31 -0500)
When a VF is sending a message to the PF, it needs to trigger the PF
to tell it the message is ready.
The trigger did not work on ppc64. No interrupt appeared in the PF.

The bug is due to confusion about the layout of struct trigger_vf_zone.
In bnx2x_send_msg2pf() the trigger is written using writeb(), not
writel(), so the attempt to define the struct with a reversed layout on
big-endian is counter-productive.

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h

index 90a4dba3eccf07c4c05fbcb391c96e4fe3458e0b..47b13ed6a01a364c3946e2e06d11a3c3754ef0c8 100644 (file)
@@ -5114,15 +5114,9 @@ struct vf_pf_channel_zone_trigger {
  * zone that triggers the in-bound interrupt
  */
 struct trigger_vf_zone {
-#if defined(__BIG_ENDIAN)
-       u16 reserved1;
-       u8 reserved0;
-       struct vf_pf_channel_zone_trigger vf_pf_channel;
-#elif defined(__LITTLE_ENDIAN)
        struct vf_pf_channel_zone_trigger vf_pf_channel;
        u8 reserved0;
        u16 reserved1;
-#endif
        u32 reserved2;
 };