public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* msi_free_irqs #2
@ 2007-05-24 16:07 Mike Miller (OS Dev)
  2007-05-24 17:27 ` Andrew Morton
  0 siblings, 1 reply; 14+ messages in thread
From: Mike Miller (OS Dev) @ 2007-05-24 16:07 UTC (permalink / raw)
  To: linux-kernel, tom.l.nguyen; +Cc: iss_storagedev, akpm, jens.axboe

So I guess I found the answer to my own question. msi_free_irqs was apparently added
in 2.6.22-something. I don't find it in 2.6.21.2 or anywhere else. So somebody broke a
couple of things.
The most noticable is cciss hangs after turning on interrupts. The reason for that is
the kernel now looks at my array of MSI-X vectors in reverse order. We have 4 ways of
generating an interrupt on Smart Array hw. They are:

#       define DOORBELL_INT     0
#       define PERF_MODE_INT    1
#       define SIMPLE_MODE_INT  2
#       define MEMQ_MODE_INT    3

For INTx these four lines are OR'ed together and run to one interrupt pin. MSI-X
breaks this hardware OR'ing so we must register either all 4 or at the least the
correct interrupt. When I first submitted the MSI/X support I was registering all 4.
Someone changed that to only register a single MSI-X vector. That worked fine until
2.6.22-something. 
Now it appears that the kernel is looking at the array in reverse order. IOW, I must
register PERF_MODE_INT in order for cciss to work. That's messed up. Anybody want to
`fess up to making these changes? :)
I'll keep working this, but I'm going to undo someones change when I figure out where
it's broke.

mikem

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2007-05-25  3:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-24 16:07 msi_free_irqs #2 Mike Miller (OS Dev)
2007-05-24 17:27 ` Andrew Morton
2007-05-24 19:42   ` Eric W. Biederman
2007-05-24 20:59     ` Mike Miller (OS Dev)
2007-05-24 21:08       ` [PATCH] msi: Fix the ordering of msix irqs Eric W. Biederman
2007-05-24 21:17         ` Andrew Morton
2007-05-24 21:36           ` Eric W. Biederman
2007-05-25  2:32         ` Michael Ellerman
2007-05-25  3:04           ` kernel crash in timer interrupt handler gshan
2007-05-24 20:07   ` msi_free_irqs #2 Mike Miller (OS Dev)
2007-05-24 20:53     ` Eric W. Biederman
2007-05-24 21:01       ` Mike Miller (OS Dev)
2007-05-24 21:11       ` Mike Miller (OS Dev)
2007-05-25  3:16         ` [PATCH] msi: mask the msix vector before we unmap it Eric W. Biederman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox