mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
aqc111: fix double endianness swap on BE
If you are using a function that does a swap in place, you cannot just reuse the buffer on the assumption that it has not been changed. Signed-off-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
369b46e9fb
commit
2cf672709b
@ -1428,7 +1428,7 @@ static int aqc111_resume(struct usb_interface *intf)
|
||||
{
|
||||
struct usbnet *dev = usb_get_intfdata(intf);
|
||||
struct aqc111_data *aqc111_data = dev->driver_priv;
|
||||
u16 reg16;
|
||||
u16 reg16, oldreg16;
|
||||
u8 reg8;
|
||||
|
||||
netif_carrier_off(dev->net);
|
||||
@ -1444,9 +1444,11 @@ static int aqc111_resume(struct usb_interface *intf)
|
||||
/* Configure RX control register => start operation */
|
||||
reg16 = aqc111_data->rxctl;
|
||||
reg16 &= ~SFR_RX_CTL_START;
|
||||
/* needs to be saved in case endianness is swapped */
|
||||
oldreg16 = reg16;
|
||||
aqc111_write16_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, ®16);
|
||||
|
||||
reg16 |= SFR_RX_CTL_START;
|
||||
reg16 = oldreg16 | SFR_RX_CTL_START;
|
||||
aqc111_write16_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, ®16);
|
||||
|
||||
aqc111_set_phy_speed(dev, aqc111_data->autoneg,
|
||||
|
Loading…
Reference in New Issue
Block a user