On 14.04.2015 00:31, Ben Hutchings wrote: >> >> This driver looks somewhat similar to sh-eth, but lacks some of the >> >> recent bug fixes made to that. At least commit 283e38db65e7 ("sh_eth: >> >> Fix serialisation of interrupt disable with interrupt & NAPI handler") >> >> appears to be applicable, but there are probably others. >> > >> > I suspect this issue applies to many drivers... >> > I couldn't reproduce the bug that patch was fixing, so left this fix out >> > for the time being. Others cases were fixed (if applicable). >> >> Maybe its just harder to trigger but it indeed looks similar to what Ben >> has fixed for sh-eth. I wonder if that shutdown flag in the fix is >> really needed though. IMHO it should be save if we simply call >> napi_disable first, then disable irqs on hardware and finally >> synchronize_irq... > > In sh_eth: if we call napi_disable() first, EESR_RX_CHECK can still be > set and nothing will clear it. If only one CPU is online this can hard > hang the system. Please trust that I did consider and rule out the > simpler approaches first. > The idea was to check the return value from napi_schedule_prep() and in case it returns "false" use this as an indication for a shutdown. In case of sh_eth this would be sh_eth_write(ndev, 0, EESIPR) for example. Lino -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html