Commit 4c9ca2fd authored by Matthew Wilcox's avatar Matthew Wilcox

cb710: Convert to new IDA API

Eliminates the custom spinlock and the call to ida_pre_get.
Signed-off-by: default avatarMatthew Wilcox <willy@infradead.org>
Acked-by: default avatarMichał Mirosław <mirq-linux@rere.qmqm.pl>
parent 37ae133c
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <linux/gfp.h> #include <linux/gfp.h>
static DEFINE_IDA(cb710_ida); static DEFINE_IDA(cb710_ida);
static DEFINE_SPINLOCK(cb710_ida_lock);
void cb710_pci_update_config_reg(struct pci_dev *pdev, void cb710_pci_update_config_reg(struct pci_dev *pdev,
int reg, uint32_t mask, uint32_t xor) int reg, uint32_t mask, uint32_t xor)
...@@ -205,7 +204,6 @@ static int cb710_probe(struct pci_dev *pdev, ...@@ -205,7 +204,6 @@ static int cb710_probe(struct pci_dev *pdev,
const struct pci_device_id *ent) const struct pci_device_id *ent)
{ {
struct cb710_chip *chip; struct cb710_chip *chip;
unsigned long flags;
u32 val; u32 val;
int err; int err;
int n = 0; int n = 0;
...@@ -256,18 +254,10 @@ static int cb710_probe(struct pci_dev *pdev, ...@@ -256,18 +254,10 @@ static int cb710_probe(struct pci_dev *pdev,
if (err) if (err)
return err; return err;
do { err = ida_alloc(&cb710_ida, GFP_KERNEL);
if (!ida_pre_get(&cb710_ida, GFP_KERNEL)) if (err < 0)
return -ENOMEM; return err;
chip->platform_id = err;
spin_lock_irqsave(&cb710_ida_lock, flags);
err = ida_get_new(&cb710_ida, &chip->platform_id);
spin_unlock_irqrestore(&cb710_ida_lock, flags);
if (err && err != -EAGAIN)
return err;
} while (err);
dev_info(&pdev->dev, "id %d, IO 0x%p, IRQ %d\n", dev_info(&pdev->dev, "id %d, IO 0x%p, IRQ %d\n",
chip->platform_id, chip->iobase, pdev->irq); chip->platform_id, chip->iobase, pdev->irq);
...@@ -308,7 +298,6 @@ static int cb710_probe(struct pci_dev *pdev, ...@@ -308,7 +298,6 @@ static int cb710_probe(struct pci_dev *pdev,
static void cb710_remove_one(struct pci_dev *pdev) static void cb710_remove_one(struct pci_dev *pdev)
{ {
struct cb710_chip *chip = pci_get_drvdata(pdev); struct cb710_chip *chip = pci_get_drvdata(pdev);
unsigned long flags;
cb710_unregister_slot(chip, CB710_SLOT_SM); cb710_unregister_slot(chip, CB710_SLOT_SM);
cb710_unregister_slot(chip, CB710_SLOT_MS); cb710_unregister_slot(chip, CB710_SLOT_MS);
...@@ -317,9 +306,7 @@ static void cb710_remove_one(struct pci_dev *pdev) ...@@ -317,9 +306,7 @@ static void cb710_remove_one(struct pci_dev *pdev)
BUG_ON(atomic_read(&chip->slot_refs_count) != 0); BUG_ON(atomic_read(&chip->slot_refs_count) != 0);
#endif #endif
spin_lock_irqsave(&cb710_ida_lock, flags); ida_free(&cb710_ida, chip->platform_id);
ida_remove(&cb710_ida, chip->platform_id);
spin_unlock_irqrestore(&cb710_ida_lock, flags);
} }
static const struct pci_device_id cb710_pci_tbl[] = { static const struct pci_device_id cb710_pci_tbl[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment