qede: Notify qedr when mtu has changed
MTU change on ethtool is currently not supported for iWARP. Notify qedr driver so that appropriate logging can take place. Link: https://lore.kernel.org/r/20200902165741.8355-6-michal.kalderon@marvell.com Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
8a5a10a1a7
commit
97fb3e3347
@ -1026,7 +1026,9 @@ int qede_change_mtu(struct net_device *ndev, int new_mtu)
|
||||
args.u.mtu = new_mtu;
|
||||
args.func = &qede_update_mtu;
|
||||
qede_reload(edev, &args, false);
|
||||
|
||||
#if IS_ENABLED(CONFIG_QED_RDMA)
|
||||
qede_rdma_event_change_mtu(edev);
|
||||
#endif
|
||||
edev->ops->common->update_mtu(edev->cdev, new_mtu);
|
||||
|
||||
return 0;
|
||||
|
@ -234,6 +234,15 @@ static void qede_rdma_changeaddr(struct qede_dev *edev)
|
||||
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_CHANGE_ADDR);
|
||||
}
|
||||
|
||||
static void qede_rdma_change_mtu(struct qede_dev *edev)
|
||||
{
|
||||
if (qede_rdma_supported(edev)) {
|
||||
if (qedr_drv && edev->rdma_info.qedr_dev && qedr_drv->notify)
|
||||
qedr_drv->notify(edev->rdma_info.qedr_dev,
|
||||
QEDE_CHANGE_MTU);
|
||||
}
|
||||
}
|
||||
|
||||
static struct qede_rdma_event_work *
|
||||
qede_rdma_get_free_event_node(struct qede_dev *edev)
|
||||
{
|
||||
@ -287,6 +296,9 @@ static void qede_rdma_handle_event(struct work_struct *work)
|
||||
case QEDE_CHANGE_ADDR:
|
||||
qede_rdma_changeaddr(edev);
|
||||
break;
|
||||
case QEDE_CHANGE_MTU:
|
||||
qede_rdma_change_mtu(edev);
|
||||
break;
|
||||
default:
|
||||
DP_NOTICE(edev, "Invalid rdma event %d", event);
|
||||
}
|
||||
@ -338,3 +350,8 @@ void qede_rdma_event_changeaddr(struct qede_dev *edev)
|
||||
{
|
||||
qede_rdma_add_event(edev, QEDE_CHANGE_ADDR);
|
||||
}
|
||||
|
||||
void qede_rdma_event_change_mtu(struct qede_dev *edev)
|
||||
{
|
||||
qede_rdma_add_event(edev, QEDE_CHANGE_MTU);
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ enum qede_rdma_event {
|
||||
QEDE_UP,
|
||||
QEDE_DOWN,
|
||||
QEDE_CHANGE_ADDR,
|
||||
QEDE_CLOSE
|
||||
QEDE_CLOSE,
|
||||
QEDE_CHANGE_MTU,
|
||||
};
|
||||
|
||||
struct qede_rdma_event_work {
|
||||
@ -54,6 +55,7 @@ void qede_rdma_dev_event_open(struct qede_dev *dev);
|
||||
void qede_rdma_dev_event_close(struct qede_dev *dev);
|
||||
void qede_rdma_dev_remove(struct qede_dev *dev, bool recovery);
|
||||
void qede_rdma_event_changeaddr(struct qede_dev *edr);
|
||||
void qede_rdma_event_change_mtu(struct qede_dev *edev);
|
||||
|
||||
#else
|
||||
static inline int qede_rdma_dev_add(struct qede_dev *dev,
|
||||
|
Loading…
x
Reference in New Issue
Block a user