forked from Minki/linux
bnxt_en: Fix TX push operation on ARM64.
There is a code path where we are calling __iowrite64_copy() on an address that is not 64-bit aligned. This causes an exception on some architectures such as arm64. Fix that code path by using __iowrite32_copy(). Reported-by: JD Zheng <jiandong.zheng@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5a56a0b3a4
commit
9d13744bb7
@ -353,8 +353,8 @@ static netdev_tx_t bnxt_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
push_len = (length + sizeof(*tx_push) + 7) / 8;
|
||||
if (push_len > 16) {
|
||||
__iowrite64_copy(txr->tx_doorbell, tx_push_buf, 16);
|
||||
__iowrite64_copy(txr->tx_doorbell + 4, tx_push_buf + 1,
|
||||
push_len - 16);
|
||||
__iowrite32_copy(txr->tx_doorbell + 4, tx_push_buf + 1,
|
||||
(push_len - 16) << 1);
|
||||
} else {
|
||||
__iowrite64_copy(txr->tx_doorbell, tx_push_buf,
|
||||
push_len);
|
||||
|
Loading…
Reference in New Issue
Block a user