[ Jeff, apologies. I hit "reply" instead of "group reply" on previous email. I've added everyone back on the cc list.]
On Fri, Jun 16, 2006 at 11:30:32AM -0400, Jeff Garzik wrote: ... > >Are you saying this sequence won't mask interrupts on tulip? > > > > /* Disable interrupts by clearing the interrupt mask. */ > > iowrite32 (0x00000000, ioaddr + CSR7); > > ioread32 (ioaddr + CSR7); /* flush posted write */ > > It does not stop the generation of interrupt events. This use of "interrupt events" is misleading. The CPU does not sees these "interrupt events" once we mask interrupts. > The DMA engine is still running, packets are still being received. > The above code sequence does not change that. I agree. And I'm asking why does anyone care? We clean that up after IRQs are stopped from being delivered to the CPU. ... > >Secondly, since you have ignored the two previous times I've asked, > >I'll presume you agree that if firmware leaves it in this state > >(pending, masked interrupts), that the driver has to (and does) > >handle it. > > There is no firmware involved here, at any level, after boot. I agree. What about at boot time? > The needed task in the driver has been the same since this thread > started: (1) stop generating new work [stop DMA engine], and (2) > quiesce the hardware. And it must happen in that order. No it doesn't. I've proven it works in the order I've proposed on pretty damn anal HW. > Setting the interrupt mask register to zero doesn't stop new work from > appearing. I agree. It stops the "screaming interrupt" problem. The fact that we are in "close" or "down" routine means the user already decided they don't care if new packets do or do not arrive. Unless you can point to a real user who is affected by my proposed patch, I ask again patch v3 be accepted. thanks, grant - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html