When the device is disconnected attempts to access device registers
via the control endpoint will fail. This can result in a stream
of warning messages in the kernel log.

Use net_ratelimit() to limit the number of warning messages emitted
following device disconnection.

Signed-off-by: John Efstathiades <john.efstathia...@pebblebay.com>
---
 drivers/net/usb/lan78xx.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 7c815061e02e..a4278f9dc319 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -624,7 +624,7 @@ static int lan78xx_read_reg(struct lan78xx_net *dev, u32 
index, u32 *data)
        if (likely(ret >= 0)) {
                le32_to_cpus(buf);
                *data = *buf;
-       } else {
+       } else if (net_ratelimit()) {
                netdev_warn(dev->net,
                            "Failed to read register index 0x%08x. ret = %d",
                            index, ret);
@@ -654,7 +654,8 @@ static int lan78xx_write_reg(struct lan78xx_net *dev, u32 
index, u32 data)
                              USB_VENDOR_REQUEST_WRITE_REGISTER,
                              USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
                              0, index, buf, 4, USB_CTRL_SET_TIMEOUT);
-       if (unlikely(ret < 0)) {
+       if (unlikely(ret < 0) &&
+           net_ratelimit()) {
                netdev_warn(dev->net,
                            "Failed to write register index 0x%08x. ret = %d",
                            index, ret);
-- 
2.17.1

Reply via email to