From d607f059a74244e5d9118ea59a757c38229b9672 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 30 Jun 2010 01:42:21 -0300 Subject: [PATCH] --- yaml --- r: 200774 b: refs/heads/master c: 2d95d8158b5ab51339f8482c98c01469c45ff6d7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/edac/i7core_edac.c | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index e8438978461d..e2698e4f355f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bda142890e6bdd9b1115715e50b0276ea4b9978a +refs/heads/master: 2d95d8158b5ab51339f8482c98c01469c45ff6d7 diff --git a/trunk/drivers/edac/i7core_edac.c b/trunk/drivers/edac/i7core_edac.c index d7c76800988e..cc9357da0e34 100644 --- a/trunk/drivers/edac/i7core_edac.c +++ b/trunk/drivers/edac/i7core_edac.c @@ -1947,21 +1947,26 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev, * 0 for FOUND a device * < 0 for error code */ + +static int probed = 0; + static int __devinit i7core_probe(struct pci_dev *pdev, const struct pci_device_id *id) { - int dev_idx = id->driver_data; int rc; struct i7core_dev *i7core_dev; + /* get the pci devices we want to reserve for our use */ + mutex_lock(&i7core_edac_lock); + /* * All memory controllers are allocated at the first pass. */ - if (unlikely(dev_idx >= 1)) + if (unlikely(probed >= 1)) { + mutex_unlock(&i7core_edac_lock); return -EINVAL; - - /* get the pci devices we want to reserve for our use */ - mutex_lock(&i7core_edac_lock); + } + probed++; rc = i7core_get_devices(pci_dev_table); if (unlikely(rc < 0)) @@ -2033,6 +2038,8 @@ static void __devexit i7core_remove(struct pci_dev *pdev) i7core_dev->socket); } } + probed--; + mutex_unlock(&i7core_edac_lock); }