[SCSI] qla2xxx: only free_irq() after request_irq() succeeds
authorZach Brown <zach.brown@oracle.com>
Wed, 19 Apr 2006 04:09:22 +0000 (21:09 -0700)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Thu, 20 Apr 2006 00:52:13 +0000 (20:52 -0400)
commit77347ff7554b317a0120cb774b3bd6258a2c4bb4
tree772b973546b20e6251f57914ad40af8d6e62492f
parent1a34456bbbdaa939ffa567d15a0797c269f901b7
[SCSI] qla2xxx: only free_irq() after request_irq() succeeds

If qla2x00_probe_one() fails before calling request_irq() but gets to
qla2x00_free_device() then it will mistakenly try to free an irq it didn't
request.  It's chosing to free based on ha->pdev->irq which is always set.

host->irq is set after request_irq() succeeds so let's use that to decide
to free or not.

This was observed and tested when a silly set of circumstances lead to
firmware loading failing on a 2100.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/qla2xxx/qla_os.c