sfc: Downgrade or remove some error messages
authorBert Kenward <bkenward@solarflare.com>
Wed, 23 Dec 2015 08:58:15 +0000 (08:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Dec 2015 03:06:39 +0000 (22:06 -0500)
Depending on configuration the NIC may return errors for unprivileged
functions and/or VFs. Where these are expected and handled, reduce the
level of any output.

Signed-off-by: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c
drivers/net/ethernet/sfc/efx.c

index b0c6c61216d8f9b93985463d68dae014bf873886..98d33d462c6ca0f6b78499cde0b8d3e2b51f8b07 100644 (file)
@@ -486,10 +486,17 @@ static int efx_ef10_alloc_piobufs(struct efx_nic *efx, unsigned int n)
        BUILD_BUG_ON(MC_CMD_ALLOC_PIOBUF_IN_LEN != 0);
 
        for (i = 0; i < n; i++) {
-               rc = efx_mcdi_rpc(efx, MC_CMD_ALLOC_PIOBUF, NULL, 0,
-                                 outbuf, sizeof(outbuf), &outlen);
-               if (rc)
+               rc = efx_mcdi_rpc_quiet(efx, MC_CMD_ALLOC_PIOBUF, NULL, 0,
+                                       outbuf, sizeof(outbuf), &outlen);
+               if (rc) {
+                       /* Don't display the MC error if we didn't have space
+                        * for a VF.
+                        */
+                       if (!(efx_ef10_is_vf(efx) && rc == -ENOSPC))
+                               efx_mcdi_display_error(efx, MC_CMD_ALLOC_PIOBUF,
+                                                      0, outbuf, outlen, rc);
                        break;
+               }
                if (outlen < MC_CMD_ALLOC_PIOBUF_OUT_LEN) {
                        rc = -EIO;
                        break;
@@ -4028,9 +4035,10 @@ static int efx_ef10_filter_insert_def(struct efx_nic *efx, bool multicast,
 
        rc = efx_ef10_filter_insert(efx, &spec, true);
        if (rc < 0) {
-               netif_warn(efx, drv, efx->net_dev,
-                          "%scast mismatch filter insert failed rc=%d\n",
-                          multicast ? "Multi" : "Uni", rc);
+               netif_printk(efx, drv, rc == -EPERM ? KERN_DEBUG : KERN_WARNING,
+                            efx->net_dev,
+                            "%scast mismatch filter insert failed rc=%d\n",
+                            multicast ? "Multi" : "Uni", rc);
        } else if (multicast) {
                table->mcdef_id = efx_ef10_filter_get_unsafe_id(efx, rc);
                if (!nic_data->workaround_26807) {
index 6f697438545d9404b71b796456f86c5e1d45c493..0705ec869487921f89252c8ef99420375a83f491 100644 (file)
@@ -3174,14 +3174,15 @@ static int efx_pci_probe(struct pci_dev *pci_dev,
        rtnl_lock();
        rc = efx_mtd_probe(efx);
        rtnl_unlock();
-       if (rc)
+       if (rc && rc != -EPERM)
                netif_warn(efx, probe, efx->net_dev,
                           "failed to create MTDs (%d)\n", rc);
 
        rc = pci_enable_pcie_error_reporting(pci_dev);
        if (rc && rc != -EINVAL)
-               netif_warn(efx, probe, efx->net_dev,
-                          "pci_enable_pcie_error_reporting failed (%d)\n", rc);
+               netif_notice(efx, probe, efx->net_dev,
+                            "PCIE error reporting unavailable (%d).\n",
+                            rc);
 
        return 0;