Commit 9c3a6670 authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville

b43: fix NULL pointer dereference in b43_phy_copy()

phy_read and phy_write are not set for every phy any more sine this:
commit d342b95d
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Thu Jul 31 21:59:43 2014 +0200

    b43: don't duplicate common PHY read/write ops

b43_phy_copy() accesses phy_read and phy_write directly and will fail
with some phys. This patch fixes the regression by using the
b43_phy_read() and b43_phy_write() functions which should be used for
read and write access.

This should fix this bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=87731Reported-by: default avatarVolker Kempter <v.kempter@pe.tu-clausthal.de>
Tested-by: default avatarVolker Kempter <v.kempter@pe.tu-clausthal.de>
Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d1cd5ba4
...@@ -300,9 +300,7 @@ void b43_phy_write(struct b43_wldev *dev, u16 reg, u16 value) ...@@ -300,9 +300,7 @@ void b43_phy_write(struct b43_wldev *dev, u16 reg, u16 value)
void b43_phy_copy(struct b43_wldev *dev, u16 destreg, u16 srcreg) void b43_phy_copy(struct b43_wldev *dev, u16 destreg, u16 srcreg)
{ {
assert_mac_suspended(dev); b43_phy_write(dev, destreg, b43_phy_read(dev, srcreg));
dev->phy.ops->phy_write(dev, destreg,
dev->phy.ops->phy_read(dev, srcreg));
} }
void b43_phy_mask(struct b43_wldev *dev, u16 offset, u16 mask) void b43_phy_mask(struct b43_wldev *dev, u16 offset, u16 mask)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment