Following is the sequence of events:
- interrupt generated at line 1.
- line 1 disable.
- ISR executed. Set sofirq bit 1
- line 1 enable.
- softirq executes and suddenly interrupts come at line 1.
- softirq preempted.
- ISR executed. softirq bit 1 (it was aready 1 as sofirq 1 was not executed completely)
- line 1 enable.
Now which softirq will execute: preempted one or a new one?
If the preempted one resumes, then it will reset sotirq bit hence new softirq won't execute. Same case if the new softirq executes first.