net: fec: Call swap_buffer() prior to IP header alignment
authorFabio Estevam <fabio.estevam@nxp.com>
Fri, 21 Oct 2016 11:34:29 +0000 (09:34 -0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Oct 2016 21:41:41 +0000 (17:41 -0400)
commit235bde1ed3f0fff0f68f367ec8807b89ea151258
treeb6a4b5958de3cd03351164b333a3fe2dcabeef98
parentb678aa578c9e400429e027269e8de2783e5e73ce
net: fec: Call swap_buffer() prior to IP header alignment

Commit 3ac72b7b63d5 ("net: fec: align IP header in hardware") breaks
networking on mx28.

There is an erratum on mx28 (ENGR121613 - ENET big endian mode
not compatible with ARM little endian) that requires an additional
byte-swap operation to workaround this problem.

So call swap_buffer() prior to performing the IP header alignment
to restore network functionality on mx28.

Fixes: 3ac72b7b63d5 ("net: fec: align IP header in hardware")
Reported-and-tested-by: Henri Roosen <henri.roosen@ginzinger.com>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c