cciss: check for msi in interrupt_not_for_us
Subsystems (2)
PATCH 3/6 cciss: check for msi in interrupt_not_for_us
Patch 3 of 4
cciss: check for msi in interrupt_no_for_us
This patch checks to see if h->msi[x]_vector is set. We need this for a following patch. Without this check we process one interrupt then stop because in msi[x] mode the interrupt pending bit is not set. Not sure why we didn't encounter this before.
From: Mike Miller <[email protected]>
Cc: Stephen M. Cameron <[email protected]>
Signed-off-by Mike Miller <[email protected]>
--- drivers/block/cciss.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
drivers/block/cciss.c +3 -2
@@ -3333,8 +3333,9 @@ static inline int interrupt_pending(ctlr_info_t *h)static inline long interrupt_not_for_us (ctlr_info_t *h) { -return (((h->access.intr_pending (h) ==0 ) || - (h->interrupts_enabled ==0 ))); +return !(h->msi_vector || h->msix_vector) && + ((h->access.intr_pending (h) ==0 ) || + (h->interrupts_enabled ==0 )); } static inline int bad_tag(ctlr_info_t *h, u32 tag_index,