On Thu, 26 Jul 2007, Matthew Wilcox wrote:You can't really share an interrupt handler that wants to run with interrupts on with one that wants to run with them off. That said, I think the whole IRQF_DISABLED thing should go away. It is total legacy crud, methinks - it used to be SA_INTERRUPT, and it's always worked the way IRQF_DISABLED works now: it only looks at the first one in the chain. I think you should just consider it to be a "if you mix them, you get randomr results". There really is no excuse for using IRQF_DISABLED unless you're something like a system device (like the timer interrupt or similar) and you have an exclusive irq handler. A SCSI driver almost certainly has no business doing it. Generally, I would say that "IRQF_DISABLED | IRQF_SHARED" is an insane combination, but a quick grep shows that it's distressingly common. The real fix is to just leave it as it is. It's always worked that way. IRQF_DISABLED basically cannot have any sane behaviour in the presense of mixing. Linus -
| Andrew Morton | -mm merge plans for 2.6.23 |
| jjohansen | [AppArmor 39/45] AppArmor: Profile loading and manipulation, pathname matching |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| holzheu | Re: [RFC/PATCH] Documentation of kernel messages |
git: | |
| David Miller | Re: [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 36/37] dccp: Initialisation and type-checking of feature sysctls |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
