ntb_netdev: set the net_device's parent
Subsystems (2)
PATCH 1/1 ntb_netdev: set the net_device's parent
At present, ntb_netdev devices end up under /sys/devices/virtual/net completely unconnected to the ntb trees below them. This patch sets the parent of the net_device (using SET_NETDEV_DEV) to the client_dev device. This results in a better connected sysfs path for the network device:
/sys/devices/pci0000:00/0000:00:03.0/0000:03:00.1/0000:03:00.1/ntb_netdev0/net/eth2
--- drivers/net/ntb_netdev.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/net/ntb_netdev.c +2 -0
@@ -418,6 +418,8 @@ static int ntb_netdev_probe(struct device *client_dev)if (!ndev)return -ENOMEM ; +SET_NETDEV_DEV (ndev, client_dev); + dev =netdev_priv (ndev); dev->ndev = ndev; dev->pdev = pdev;
Signature · 1 line
2.11.0
PATCH 1/1 ntb_transport: fix qp count bug
In cases where there are more mw's than spads/2-2, the mw count gets reduced to match the limitation. ntb_transport also tries to ensure that there are fewer qps than mws but uses the full mw count instead of the reduced one. When this happens, the math in 'ntb_transport_setup_qp_mw' will get confused and result in a kernel paging request bug.
This patch fixes the bug by reducing qp_count to the reduced mw count instead of the full mw count.
--- drivers/ntb/ntb_transport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/ntb/ntb_transport.c +2 -2
@@ -1128,8 +1128,8 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev) qp_count =ilog2 (qp_bitmap);if (max_num_clients && max_num_clients < qp_count) qp_count = max_num_clients; -else if (mw_count < qp_count) - qp_count = mw_count; +else if (nt->mw_count < qp_count) + qp_count = nt->mw_count; qp_bitmap &=BIT_ULL (qp_count) -1 ;
Signature · 1 line
2.11.0
Re: [PATCH] ntb_transport: fix qp count bug
Sorry, ignore this. I sent an old patch.
Logan
Quoted 34 lines · Logan Gunthorpe
In cases where there are more mw's than spads/2-2, the mw count gets reduced to match the limitation.
ntb_transportalso tries to ensure that there are fewer qps than mws but uses the full mw count instead of the reduced one. When this happens, the math in 'ntb_transport_setup_qp_mw' will get confused and result in a kernel paging request bug.This patch fixes the bug by reducing
qp_countto the reduced mw count instead of the full mw count.Signed-off-by Logan Gunthorpe <[email protected]>Cc Jon Mason <[email protected]>Cc Dave Jiang <[email protected]>Cc Allen Hubbe <[email protected]>--- drivers/ntb/ntb_transport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/ntb/ntb_transport.c +2
-2@@ -1128,8 +1128,8 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev) qp_count =ilog2 (qp_bitmap);if (max_num_clients && max_num_clients < qp_count) qp_count = max_num_clients; -else if (mw_count < qp_count) - qp_count = mw_count; +else if (nt->mw_count < qp_count) + qp_count = nt->mw_count; qp_bitmap &=BIT_ULL (qp_count) -1 ;
Sorry ignore this. I sent an old patch :(
Logan
Quoted 30 lines · Logan Gunthorpe
At present,
ntb_netdevdevices end up under/sys/devices/virtual/netcompletely unconnected to the ntb trees below them. This patch sets the parent of thenet_device(usingSET_NETDEV_DEV) to theclient_devdevice. This results in a better connected sysfs path for the network device:/sys/devices/pci0000:00/0000:00:03.0/0000:03:00.1/0000:03:00.1/ntb_netdev0/net/eth2
Signed-off-by Logan Gunthorpe <[email protected]>Cc Jon Mason <[email protected]>Cc Dave Jiang <[email protected]>Cc Allen Hubbe <[email protected]>--- drivers/net/ntb_netdev.c | 2 ++ 1 file changed, 2 insertions(+)drivers/net/ntb_netdev.c +2
-0@@ -418,6 +418,8 @@ static int ntb_netdev_probe(struct device *client_dev)if (!ndev)return -ENOMEM ; +SET_NETDEV_DEV (ndev, client_dev); + dev =netdev_priv (ndev); dev->ndev = ndev; dev->pdev = pdev;