From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Andrew Vasquez <andrew.vasquez@qlogic.com>
Cc: Linux SCSI Mailing List <linux-scsi@vger.kernel.org>,
Seokmann Ju <seokmann.ju@qlogic.com>
Subject: Re: [PATCH 06/21] qla2xxx: Simplify interrupt handler locking.
Date: Thu, 03 Apr 2008 15:36:50 -0500 [thread overview]
Message-ID: <1207255010.3048.66.camel@localhost.localdomain> (raw)
In-Reply-To: <1207253612-15538-6-git-send-email-andrew.vasquez@qlogic.com>
On Thu, 2008-04-03 at 13:13 -0700, Andrew Vasquez wrote:
> There's no need to use the heavier (albiet safer)
> *_irq[save|restore]() locking primitives within the driver's
> interrupt handlers, interrupts are guaranteed to be
> non-reentrant. Use lightweight spin_lock() and spin_unlock()
> primitives while acquiring the hardware_lock.
The above statement isn't entirely true: interrupts are not guaranteed
to be non re-entrant. They are guaranteed not to be re-entered from the
*same* interrupt, but if you've got more than one card, the interrupt
routine can be executing simultaneously on an SMP system which is in
contravention of the classical definition of re-entrancy.
So, the rules for locks in interrupt is that as long as the lock is
unique per interrupting instance (which it looks like yours are) you can
get away with not requiring interrupt disables within critical sections
but if you have a more global lock which could be taken by different
interrupting entities then you must do interrupt disables still.
James
next prev parent reply other threads:[~2008-04-03 20:36 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-03 20:11 [PATCH 0/21] qla2xxx: Driver update [8.02.01-k1] Andrew Vasquez
2008-04-03 20:13 ` [PATCH 01/21] qla2xxx: Update firmware filenames for new ISP parts Andrew Vasquez
2008-04-03 20:13 ` [PATCH 02/21] qla2xxx: Update copyright banner Andrew Vasquez
2008-04-03 20:13 ` [PATCH 03/21] qla2xxx: Add support for host supported speeds FC transport attribute Andrew Vasquez
2008-04-03 20:13 ` [PATCH 04/21] qla2xxx: Remove unused and obsolete #define's Andrew Vasquez
2008-04-03 20:13 ` [PATCH 05/21] qla2xxx: Use an rport's scsi_target_id member consistently throughout driver Andrew Vasquez
2008-04-03 20:13 ` [PATCH 06/21] qla2xxx: Simplify interrupt handler locking Andrew Vasquez
2008-04-03 20:36 ` James Bottomley [this message]
2008-04-03 22:07 ` Andrew Vasquez
2008-04-03 22:39 ` James Bottomley
2008-04-03 20:13 ` [PATCH 07/21] qla2xxx: Add FC-transport Asynchronous Event Notification support Andrew Vasquez
2008-04-03 20:13 ` [PATCH 08/21] qla2xxx: Add hardware trace-logging support Andrew Vasquez
2008-04-03 20:13 ` [PATCH 09/21] qla2xxx: Cruft cleanup of functions and structures Andrew Vasquez
2008-04-03 20:13 ` [PATCH 10/21] qla2xxx: Use PCI-SIG nomenclature for PCIe bandwidth units Andrew Vasquez
2008-04-03 20:13 ` [PATCH 11/21] qla2xxx: Add Flash Descriptor Table layout support Andrew Vasquez
2008-04-03 20:13 ` [PATCH 12/21] qla2xxx: Check alternate 'reason' code during GPSC status handling Andrew Vasquez
2008-04-03 20:13 ` [PATCH 13/21] qla2xxx: Add midlayer target/device reset support Andrew Vasquez
2008-04-03 20:13 ` [PATCH 14/21] qla2xxx: Assign mailbox command timeout values in a consistent manner Andrew Vasquez
2008-04-03 20:13 ` [PATCH 15/21] qla2xxx: Add ISP84XX support Andrew Vasquez
2008-04-03 20:13 ` [PATCH 16/21] qla2xxx: Remove unused member (dma_handle) from srb_t structure Andrew Vasquez
2008-04-03 20:13 ` [PATCH 17/21] qla2xxx: Consistently access the physical HA port Andrew Vasquez
2008-04-03 20:13 ` [PATCH 18/21] qla2xxx: Check DFLG_NO_CABLE only on physical port Andrew Vasquez
2008-04-03 20:13 ` [PATCH 19/21] qla2xxx: Use proper HA during asynchrounous event handling Andrew Vasquez
2008-04-03 20:13 ` [PATCH 20/21] qla2xxx: Correct vport configuration-change handling Andrew Vasquez
2008-04-03 20:13 ` [PATCH 21/21] qla2xxx: Update version number to 8.02.01-k1 Andrew Vasquez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1207255010.3048.66.camel@localhost.localdomain \
--to=james.bottomley@hansenpartnership.com \
--cc=andrew.vasquez@qlogic.com \
--cc=linux-scsi@vger.kernel.org \
--cc=seokmann.ju@qlogic.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox