netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/5] ionic bits and bytes
@ 2020-03-16  2:14 Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 1/5] ionic: don't register mgmt device as devlink port Shannon Nelson
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

These are a few little updates to the ionic driver while we
are in between other feature work.

Shannon Nelson (5):
  ionic: stop devlink warn on mgmt device
  ionic: deinit rss only if selected
  ionic: remove adminq napi instance
  ionic: return error for unknown xcvr type
  ionic: add decode for IONIC_RC_ENOSUPP

 .../net/ethernet/pensando/ionic/ionic_devlink.c    |  9 +++++++--
 .../net/ethernet/pensando/ionic/ionic_ethtool.c    | 14 +++++++++++++-
 drivers/net/ethernet/pensando/ionic/ionic_lif.c    |  4 +++-
 drivers/net/ethernet/pensando/ionic/ionic_main.c   |  3 +++
 4 files changed, 26 insertions(+), 4 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH net-next 1/5] ionic: don't register mgmt device as devlink port
  2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
@ 2020-03-16  2:14 ` Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 2/5] ionic: deinit rss only if selected Shannon Nelson
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

If we don't set a port type, the devlink code will eventually
print a WARN in the kernel log.  Because the mgmt device is
not really a useful port, don't register it as a devlink port.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
---
 drivers/net/ethernet/pensando/ionic/ionic_devlink.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
index ed14164468a1..273c889faaad 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
@@ -77,12 +77,16 @@ int ionic_devlink_register(struct ionic *ionic)
 		return err;
 	}
 
+	/* don't register the mgmt_nic as a port */
+	if (ionic->is_mgmt_nic)
+		return 0;
+
 	devlink_port_attrs_set(&ionic->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
 			       0, false, 0, NULL, 0);
 	err = devlink_port_register(dl, &ionic->dl_port, 0);
 	if (err)
 		dev_err(ionic->dev, "devlink_port_register failed: %d\n", err);
-	else if (!ionic->is_mgmt_nic)
+	else
 		devlink_port_type_eth_set(&ionic->dl_port,
 					  ionic->master_lif->netdev);
 
@@ -93,6 +97,7 @@ void ionic_devlink_unregister(struct ionic *ionic)
 {
 	struct devlink *dl = priv_to_devlink(ionic);
 
-	devlink_port_unregister(&ionic->dl_port);
+	if (ionic->dl_port.registered)
+		devlink_port_unregister(&ionic->dl_port);
 	devlink_unregister(dl);
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 2/5] ionic: deinit rss only if selected
  2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 1/5] ionic: don't register mgmt device as devlink port Shannon Nelson
@ 2020-03-16  2:14 ` Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 3/5] ionic: remove adminq napi instance Shannon Nelson
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

Don't bother de-initing RSS if it wasn't selected.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
---
 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
index b903016193df..19fd7cc36f28 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
@@ -2066,7 +2066,8 @@ static void ionic_lif_deinit(struct ionic_lif *lif)
 	clear_bit(IONIC_LIF_F_INITED, lif->state);
 
 	ionic_rx_filters_deinit(lif);
-	ionic_lif_rss_deinit(lif);
+	if (lif->netdev->features & NETIF_F_RXHASH)
+		ionic_lif_rss_deinit(lif);
 
 	napi_disable(&lif->adminqcq->napi);
 	ionic_lif_qcq_deinit(lif, lif->notifyqcq);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 3/5] ionic: remove adminq napi instance
  2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 1/5] ionic: don't register mgmt device as devlink port Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 2/5] ionic: deinit rss only if selected Shannon Nelson
@ 2020-03-16  2:14 ` Shannon Nelson
  2020-03-16  6:52   ` Leon Romanovsky
  2020-03-16  2:14 ` [PATCH net-next 4/5] ionic: return error for unknown xcvr type Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP Shannon Nelson
  4 siblings, 1 reply; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

Remove the adminq's napi struct when tearing down
the adminq.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
---
 drivers/net/ethernet/pensando/ionic/ionic_lif.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
index 19fd7cc36f28..12e3823b0bc1 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
@@ -2070,6 +2070,7 @@ static void ionic_lif_deinit(struct ionic_lif *lif)
 		ionic_lif_rss_deinit(lif);
 
 	napi_disable(&lif->adminqcq->napi);
+	netif_napi_del(&lif->adminqcq->napi);
 	ionic_lif_qcq_deinit(lif, lif->notifyqcq);
 	ionic_lif_qcq_deinit(lif, lif->adminqcq);
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 4/5] ionic: return error for unknown xcvr type
  2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
                   ` (2 preceding siblings ...)
  2020-03-16  2:14 ` [PATCH net-next 3/5] ionic: remove adminq napi instance Shannon Nelson
@ 2020-03-16  2:14 ` Shannon Nelson
  2020-03-16  2:14 ` [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP Shannon Nelson
  4 siblings, 0 replies; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

If we don't recognize the transceiver type, return an error
so that ethtool doesn't try dumping bogus eeprom contents.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
---
 .../net/ethernet/pensando/ionic/ionic_ethtool.c    | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
index a233716eac29..3f92f301a020 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
@@ -694,7 +694,7 @@ static int ionic_get_module_info(struct net_device *netdev,
 	default:
 		netdev_info(netdev, "unknown xcvr type 0x%02x\n",
 			    xcvr->sprom[0]);
-		break;
+		return -EINVAL;
 	}
 
 	return 0;
@@ -714,7 +714,19 @@ static int ionic_get_module_eeprom(struct net_device *netdev,
 	/* The NIC keeps the module prom up-to-date in the DMA space
 	 * so we can simply copy the module bytes into the data buffer.
 	 */
+
 	xcvr = &idev->port_info->status.xcvr;
+	switch (xcvr->sprom[0]) {
+	case 0x03: /* SFP */
+	case 0x0D: /* QSFP */
+	case 0x11: /* QSFP28 */
+		break;
+	default:
+		netdev_info(netdev, "unknown xcvr type 0x%02x\n",
+			    xcvr->sprom[0]);
+		return -EINVAL;
+	}
+
 	len = min_t(u32, sizeof(xcvr->sprom), ee->len);
 
 	do {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP
  2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
                   ` (3 preceding siblings ...)
  2020-03-16  2:14 ` [PATCH net-next 4/5] ionic: return error for unknown xcvr type Shannon Nelson
@ 2020-03-16  2:14 ` Shannon Nelson
  2020-03-16  6:49   ` Leon Romanovsky
  4 siblings, 1 reply; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16  2:14 UTC (permalink / raw)
  To: netdev, davem; +Cc: Shannon Nelson

Signed-off-by: Shannon Nelson <snelson@pensando.io>
---
 drivers/net/ethernet/pensando/ionic/ionic_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_main.c b/drivers/net/ethernet/pensando/ionic/ionic_main.c
index e4a76e66f542..c5e3d7639f7e 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_main.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_main.c
@@ -58,6 +58,8 @@ static const char *ionic_error_to_str(enum ionic_status_code code)
 		return "IONIC_RC_BAD_ADDR";
 	case IONIC_RC_DEV_CMD:
 		return "IONIC_RC_DEV_CMD";
+	case IONIC_RC_ENOSUPP:
+		return "IONIC_RC_ENOSUPP";
 	case IONIC_RC_ERROR:
 		return "IONIC_RC_ERROR";
 	case IONIC_RC_ERDMA:
@@ -76,6 +78,7 @@ static int ionic_error_to_errno(enum ionic_status_code code)
 	case IONIC_RC_EQTYPE:
 	case IONIC_RC_EQID:
 	case IONIC_RC_EINVAL:
+	case IONIC_RC_ENOSUPP:
 		return -EINVAL;
 	case IONIC_RC_EPERM:
 		return -EPERM;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP
  2020-03-16  2:14 ` [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP Shannon Nelson
@ 2020-03-16  6:49   ` Leon Romanovsky
  0 siblings, 0 replies; 9+ messages in thread
From: Leon Romanovsky @ 2020-03-16  6:49 UTC (permalink / raw)
  To: Shannon Nelson; +Cc: netdev, davem

On Sun, Mar 15, 2020 at 07:14:28PM -0700, Shannon Nelson wrote:
> Signed-off-by: Shannon Nelson <snelson@pensando.io>
> ---
>  drivers/net/ethernet/pensando/ionic/ionic_main.c | 3 +++
>  1 file changed, 3 insertions(+)
>

Please try to refrain from patches with empty commit messages.
See submitting-patches guide, section about canonical patch format.
https://elixir.bootlin.com/linux/latest/source/Documentation/process/submitting-patches.rst#L665

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH net-next 3/5] ionic: remove adminq napi instance
  2020-03-16  2:14 ` [PATCH net-next 3/5] ionic: remove adminq napi instance Shannon Nelson
@ 2020-03-16  6:52   ` Leon Romanovsky
  2020-03-16 18:01     ` Shannon Nelson
  0 siblings, 1 reply; 9+ messages in thread
From: Leon Romanovsky @ 2020-03-16  6:52 UTC (permalink / raw)
  To: Shannon Nelson; +Cc: netdev, davem

On Sun, Mar 15, 2020 at 07:14:26PM -0700, Shannon Nelson wrote:
> Remove the adminq's napi struct when tearing down
> the adminq.
>
> Signed-off-by: Shannon Nelson <snelson@pensando.io>
> ---
>  drivers/net/ethernet/pensando/ionic/ionic_lif.c | 1 +
>  1 file changed, 1 insertion(+)
>

It looks like a fix to me, and I would expect Fixes line here.

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH net-next 3/5] ionic: remove adminq napi instance
  2020-03-16  6:52   ` Leon Romanovsky
@ 2020-03-16 18:01     ` Shannon Nelson
  0 siblings, 0 replies; 9+ messages in thread
From: Shannon Nelson @ 2020-03-16 18:01 UTC (permalink / raw)
  To: Leon Romanovsky; +Cc: netdev, davem

On 3/15/20 11:52 PM, Leon Romanovsky wrote:
> On Sun, Mar 15, 2020 at 07:14:26PM -0700, Shannon Nelson wrote:
>> Remove the adminq's napi struct when tearing down
>> the adminq.
>>
>> Signed-off-by: Shannon Nelson <snelson@pensando.io>
>> ---
>>   drivers/net/ethernet/pensando/ionic/ionic_lif.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
> It looks like a fix to me, and I would expect Fixes line here.

I suppose they all could include Fixes tags, so I'll re-tag them and add 
a description line to the last one.

Perhaps all but the first could be promoted to net but they're not 
serious issues so I wasn't going to worry about that.

Thanks,
sln


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-03-16 18:01 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-16  2:14 [PATCH net-next 0/5] ionic bits and bytes Shannon Nelson
2020-03-16  2:14 ` [PATCH net-next 1/5] ionic: don't register mgmt device as devlink port Shannon Nelson
2020-03-16  2:14 ` [PATCH net-next 2/5] ionic: deinit rss only if selected Shannon Nelson
2020-03-16  2:14 ` [PATCH net-next 3/5] ionic: remove adminq napi instance Shannon Nelson
2020-03-16  6:52   ` Leon Romanovsky
2020-03-16 18:01     ` Shannon Nelson
2020-03-16  2:14 ` [PATCH net-next 4/5] ionic: return error for unknown xcvr type Shannon Nelson
2020-03-16  2:14 ` [PATCH net-next 5/5] ionic: add decode for IONIC_RC_ENOSUPP Shannon Nelson
2020-03-16  6:49   ` Leon Romanovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).