diff options
author | Maxim Levitsky <maximlevitsky@gmail.com> | 2010-06-02 09:01:45 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-06-02 09:53:16 -0400 |
commit | cc1fed00c9ba84f38717a6cab84409cd48f340e3 (patch) | |
tree | d22d5c9f0ec4a4d6a83d57df04133df1f82bf7f9 /drivers/mtd | |
parent | df1f1d1cb43b4ffdef5ba5f0623e2f73e94ce030 (diff) |
mtd/r852: register IRQ as last step
Otherwise, if it fires right away, it might access
uninitialized spinlock
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/r852.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/mtd/nand/r852.c b/drivers/mtd/nand/r852.c index 78a423295474..20a654a94d30 100644 --- a/drivers/mtd/nand/r852.c +++ b/drivers/mtd/nand/r852.c | |||
@@ -940,18 +940,19 @@ int r852_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) | |||
940 | 940 | ||
941 | r852_dma_test(dev); | 941 | r852_dma_test(dev); |
942 | 942 | ||
943 | dev->irq = pci_dev->irq; | ||
944 | spin_lock_init(&dev->irqlock); | ||
945 | |||
946 | dev->card_detected = 0; | ||
947 | r852_card_update_present(dev); | ||
948 | |||
943 | /*register irq handler*/ | 949 | /*register irq handler*/ |
944 | error = -ENODEV; | 950 | error = -ENODEV; |
945 | if (request_irq(pci_dev->irq, &r852_irq, IRQF_SHARED, | 951 | if (request_irq(pci_dev->irq, &r852_irq, IRQF_SHARED, |
946 | DRV_NAME, dev)) | 952 | DRV_NAME, dev)) |
947 | goto error10; | 953 | goto error10; |
948 | 954 | ||
949 | dev->irq = pci_dev->irq; | ||
950 | spin_lock_init(&dev->irqlock); | ||
951 | |||
952 | /* kick initial present test */ | 955 | /* kick initial present test */ |
953 | dev->card_detected = 0; | ||
954 | r852_card_update_present(dev); | ||
955 | queue_delayed_work(dev->card_workqueue, | 956 | queue_delayed_work(dev->card_workqueue, |
956 | &dev->card_detect_work, 0); | 957 | &dev->card_detect_work, 0); |
957 | 958 | ||