diff options
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 12 | ||||
| -rw-r--r-- | include/linux/bnxt/ulp.h | 1 |
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c index 3705ef3a75c9..052bf69cfa4c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -50,6 +50,8 @@ static bool bnxt_auxdev_is_active(struct bnxt *bp, int idx) static struct bnxt_aux_device bnxt_aux_devices[__BNXT_AUXDEV_MAX] = {{ .name = "rdma", +}, { + .name = "fwctl", }}; static void bnxt_fill_msix_vecs(struct bnxt *bp, struct bnxt_msix_entry *ent) @@ -278,6 +280,11 @@ void bnxt_ulp_stop(struct bnxt *bp) aux_priv = bp->aux_priv[i]; edev = bp->edev[i]; mutex_lock(&edev->en_dev_lock); + if (i == BNXT_AUXDEV_FWCTL) { + edev->flags |= BNXT_EN_FLAG_ULP_STOPPED; + mutex_unlock(&edev->en_dev_lock); + continue; + } if (!bnxt_ulp_registered(edev) || (edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) { mutex_unlock(&edev->en_dev_lock); @@ -316,7 +323,7 @@ void bnxt_ulp_start(struct bnxt *bp) aux_priv = bp->aux_priv[i]; edev = bp->edev[i]; mutex_lock(&edev->en_dev_lock); - if (!bnxt_ulp_registered(edev) || + if (i == BNXT_AUXDEV_FWCTL || !bnxt_ulp_registered(edev) || !(edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) { goto clear_flag_continue; } @@ -520,7 +527,8 @@ void bnxt_aux_devices_add(struct bnxt *bp) aux_dev = &bp->aux_priv[idx]->aux_dev; rc = auxiliary_device_add(aux_dev); if (rc) { - netdev_warn(bp->dev, "Failed to add auxiliary device for ROCE\n"); + netdev_warn(bp->dev, "Failed to add auxiliary device for auxdev type %d\n", + idx); auxiliary_device_uninit(aux_dev); if (idx == BNXT_AUXDEV_RDMA) bp->flags &= ~BNXT_FLAG_ROCE_CAP; diff --git a/include/linux/bnxt/ulp.h b/include/linux/bnxt/ulp.h index 1a4643c46f86..0851ad3394b0 100644 --- a/include/linux/bnxt/ulp.h +++ b/include/linux/bnxt/ulp.h @@ -24,6 +24,7 @@ struct bnxt; enum bnxt_auxdev_type { BNXT_AUXDEV_RDMA = 0, + BNXT_AUXDEV_FWCTL, __BNXT_AUXDEV_MAX }; |
