]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
sfc: Log MTD errors using partition name, not just net device name
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 23 Jun 2010 11:29:24 +0000 (11:29 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Jun 2010 05:13:22 +0000 (22:13 -0700)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/mtd.c

index f3ac7f30b5e718e3178dbdcf2797b5a0d13703d7..02e54b4f701fe7dba48c7bb851fab668a62d6126 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/slab.h>
 #include <linux/rtnetlink.h>
 
-#define EFX_DRIVER_NAME "sfc_mtd"
 #include "net_driver.h"
 #include "spi.h"
 #include "efx.h"
@@ -71,8 +70,10 @@ static int siena_mtd_probe(struct efx_nic *efx);
 
 /* SPI utilities */
 
-static int efx_spi_slow_wait(struct efx_mtd *efx_mtd, bool uninterruptible)
+static int
+efx_spi_slow_wait(struct efx_mtd_partition *part, bool uninterruptible)
 {
+       struct efx_mtd *efx_mtd = part->mtd.priv;
        const struct efx_spi_device *spi = efx_mtd->spi;
        struct efx_nic *efx = efx_mtd->efx;
        u8 status;
@@ -92,7 +93,7 @@ static int efx_spi_slow_wait(struct efx_mtd *efx_mtd, bool uninterruptible)
                if (signal_pending(current))
                        return -EINTR;
        }
-       EFX_ERR(efx, "timed out waiting for %s\n", efx_mtd->name);
+       pr_err("%s: timed out waiting for %s\n", part->name, efx_mtd->name);
        return -ETIMEDOUT;
 }
 
@@ -131,8 +132,10 @@ efx_spi_unlock(struct efx_nic *efx, const struct efx_spi_device *spi)
        return 0;
 }
 
-static int efx_spi_erase(struct efx_mtd *efx_mtd, loff_t start, size_t len)
+static int
+efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len)
 {
+       struct efx_mtd *efx_mtd = part->mtd.priv;
        const struct efx_spi_device *spi = efx_mtd->spi;
        struct efx_nic *efx = efx_mtd->efx;
        unsigned pos, block_len;
@@ -156,7 +159,7 @@ static int efx_spi_erase(struct efx_mtd *efx_mtd, loff_t start, size_t len)
                            NULL, 0);
        if (rc)
                return rc;
-       rc = efx_spi_slow_wait(efx_mtd, false);
+       rc = efx_spi_slow_wait(part, false);
 
        /* Verify the entire region has been wiped */
        memset(empty, 0xff, sizeof(empty));
@@ -198,13 +201,14 @@ static int efx_mtd_erase(struct mtd_info *mtd, struct erase_info *erase)
 
 static void efx_mtd_sync(struct mtd_info *mtd)
 {
+       struct efx_mtd_partition *part = to_efx_mtd_partition(mtd);
        struct efx_mtd *efx_mtd = mtd->priv;
-       struct efx_nic *efx = efx_mtd->efx;
        int rc;
 
        rc = efx_mtd->ops->sync(mtd);
        if (rc)
-               EFX_ERR(efx, "%s sync failed (%d)\n", efx_mtd->name, rc);
+               pr_err("%s: %s sync failed (%d)\n",
+                      part->name, efx_mtd->name, rc);
 }
 
 static void efx_mtd_remove_partition(struct efx_mtd_partition *part)
@@ -338,7 +342,7 @@ static int falcon_mtd_erase(struct mtd_info *mtd, loff_t start, size_t len)
        rc = mutex_lock_interruptible(&efx->spi_lock);
        if (rc)
                return rc;
-       rc = efx_spi_erase(efx_mtd, part->offset + start, len);
+       rc = efx_spi_erase(part, part->offset + start, len);
        mutex_unlock(&efx->spi_lock);
        return rc;
 }
@@ -363,12 +367,13 @@ static int falcon_mtd_write(struct mtd_info *mtd, loff_t start,
 
 static int falcon_mtd_sync(struct mtd_info *mtd)
 {
+       struct efx_mtd_partition *part = to_efx_mtd_partition(mtd);
        struct efx_mtd *efx_mtd = mtd->priv;
        struct efx_nic *efx = efx_mtd->efx;
        int rc;
 
        mutex_lock(&efx->spi_lock);
-       rc = efx_spi_slow_wait(efx_mtd, true);
+       rc = efx_spi_slow_wait(part, true);
        mutex_unlock(&efx->spi_lock);
        return rc;
 }