aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Levitsky <maximlevitsky@gmail.com>2010-06-02 09:01:45 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-06-02 09:53:16 -0400
commitcc1fed00c9ba84f38717a6cab84409cd48f340e3 (patch)
treed22d5c9f0ec4a4d6a83d57df04133df1f82bf7f9
parentdf1f1d1cb43b4ffdef5ba5f0623e2f73e94ce030 (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>
-rw-r--r--drivers/mtd/nand/r852.c11
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