mac8390: Fix mmio access size probe
authorFinn Thain <fthain@telegraphics.com.au>
Sat, 16 Mar 2019 03:21:19 +0000 (14:21 +1100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 Mar 2019 23:56:57 +0000 (16:56 -0700)
commitbb9e5c5bcd76f4474eac3baf643d7a39f7bac7bb
tree14ad28530cd21c714a0ba951677611dab8861009
parentc22da36688d6298f2e546dcc43fdc1ad35036467
mac8390: Fix mmio access size probe

The bug that Stan reported is as follows. After a restart, a 16-bit NIC
may be incorrectly identified as a 32-bit NIC and stop working.

mac8390 slot.E: Memory length resource not found, probing
mac8390 slot.E: Farallon EtherMac II-C (type farallon)
mac8390 slot.E: MAC 00:00:c5:30:c2:99, IRQ 61, 32 KB shared memory at 0xfeed0000, 32-bit access.

The bug never arises after a cold start and only intermittently after a
warm start. (I didn't investigate why the bug is intermittent.)

It turns out that memcpy_toio() is deprecated and memcmp_withio() also
has issues. Replacing these calls with mmio accessors fixes the problem.

Reported-and-tested-by: Stan Johnson <userm57@yahoo.com>
Fixes: 2964db0f5904 ("m68k: Mac DP8390 update")
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/8390/mac8390.c