lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 5 Feb 2019 20:57:39 +0100 (CET) From: Stefan Wahren <stefan.wahren@...e.com> To: netdev@...r.kernel.org Cc: eric@...olt.net, UNGLinuxDriver@...rochip.com, marc.zyngier@....com, linux-arm-kernel@...ts.infradead.org, Woojung.Huh@...rochip.com Subject: RE: lan78xx: WARNING: irq 79 handler enabled interrupts Hi, > Stefan Wahren <stefan.wahren@...e.com> hat am 1. Januar 2019 um 22:31 geschrieben: > > > Hi Woojung, > > > Woojung.Huh@...rochip.com hat am 30. Dezember 2018 um 04:25 geschrieben: > > > > > > HI Marc & Stephen, > > > > Most of engineers are out until New Year's Day. > > thanks. I didn't expect a reply that fast. > > > > > LAN78xx driver uses irq_domain for phy interrupt, but smsc95xx uses polling. > > Need to check flow again, you can try that comment out "lan78xx_setup_irq_domain" to > > make dev->domain_data.phyirq = 0 which forces PHY polling. > > I tested your suggestion with multi_v7_defconfig (32 bit) and arm64/defconfig. > The warning disappeared and Ethernet is still working. > > Only the old issue that we can't receive until a first packet has been send out reappear. But this should be manageable. > i got informed that the engineers are busy with other issues and come back later to this :-( Since i'm getting requests to provide my PHY polling patch, here it is: diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index e96bc0c..a5bb292 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2982,13 +2982,6 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf) dev->net->hw_features = dev->net->features; - ret = lan78xx_setup_irq_domain(dev); - if (ret < 0) { - netdev_warn(dev->net, - "lan78xx_setup_irq_domain() failed : %d", ret); - goto out1; - } - dev->net->hard_header_len += TX_OVERHEAD; dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; @@ -2996,13 +2989,13 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf) ret = lan78xx_reset(dev); if (ret) { netdev_warn(dev->net, "Registers INIT FAILED...."); - goto out2; + goto out1; } ret = lan78xx_mdio_init(dev); if (ret) { netdev_warn(dev->net, "MDIO INIT FAILED....."); - goto out2; + goto out1; } dev->net->flags |= IFF_MULTICAST; @@ -3011,9 +3004,6 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf) return ret; -out2: - lan78xx_remove_irq_domain(dev); - out1: netdev_warn(dev->net, "Bind routine FAILED"); cancel_work_sync(&pdata->set_multicast);
Powered by blists - more mailing lists