[RFC/RFT] p54usb: Regression due to commit b19fa1f
In commit b19fa1fa91845234961c64dbd564671aa7c0fd27, the configuration
parameter NETDEVICES_MULTIQUEUE was eliminated making multiple TX queues
the normal behavior. For p54usb, enabling multiple queues broke the driver.
A temporary hack that forces only one queue is presented here. With it, the
driver works as before. Obviously, a proper fix is needed in the long run.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
---
Index: linux-2.6/drivers/net/wireless/p54/p54common.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/p54/p54common.c
+++ linux-2.6/drivers/net/wireless/p54/p54common.c
@@ -150,7 +150,7 @@ void p54_parse_firmware(struct ieee80211
priv->tx_stats[1].limit = 4;
priv->tx_stats[2].limit = 3;
priv->tx_stats[3].limit = 1;
- dev->queues = 4;
+ dev->queues = 1; /* temp. hack, set to 1 as 4 breaks p54usb */
}
}
EXPORT_SYMBOL_GPL(p54_parse_firmware);
In commit b19fa1fa91845234961c64dbd564671aa7c0fd27, the configuration
parameter NETDEVICES_MULTIQUEUE was eliminated making multiple TX queues
the normal behavior. For p54usb, enabling multiple queues broke the driver.
The real failure is not known, but a temporary hack that forces only one
queue is presented here.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
---
Index: linux-2.6/drivers/net/wireless/p54/p54common.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/p54/p54common.c
+++ linux-2.6/drivers/net/wireless/p54/p54common.c
@@ -150,7 +150,7 @@ void p54_parse_firmware(struct ieee80211
priv->tx_stats[1].limit = 4;
priv->tx_stats[2].limit = 3;
priv->tx_stats[3].limit = 1;
- dev->queues = 4;
+ dev->queues = 1; /* temp. hack, set to 1 as 4 breaks p54usb */
}
}
EXPORT_SYMBOL_GPL(p54_parse_firmware);
Relevant Pages
- Re: Changes in the network interface queueing handoff model
... With the current scheme you have two separate queues and the start method handles prioritization by polling the mgt q before the data q. ... If instead the packet is passed to the start method then it needs to be tagged in some way so the it's prioritized properly. ... Indeed, it does, but structurally, SLIP is split over the link layer and driver layer, which I had forgotten. ... I think I would be more comfortable with an explicit queue identifier argument to if_start, where the link layer and driver layer agree on how to identify queues. ... (freebsd-arch) - Re: Changes in the network interface queueing handoff model
... With the current scheme you have two separate queues and the start method handles prioritization by polling the mgt q before the data q. ... If instead the packet is passed to the start method then it needs to be tagged in some way so the it's prioritized properly. ... Indeed, it does, but structurally, SLIP is split over the link layer and driver layer, which I had forgotten. ... I think I would be more comfortable with an explicit queue identifier argument to if_start, where the link layer and driver layer agree on how to identify queues. ... (freebsd-net) - Re: Changes in the network interface queueing handoff model
... With the current scheme you have two separate queues and the start method handles prioritization by polling the mgt q before the data q. ... If instead the packet is passed to the start method then it needs to be tagged in some way so the it's prioritized properly. ... I suspect this will be ok but the end result will be that we'll need to add a priority field to mbufs. ... Indeed, it does, but structurally, SLIP is split over the link layer and driver layer, which I had forgotten. ... (freebsd-arch) - Re: Changes in the network interface queueing handoff model
... With the current scheme you have two separate queues and the start method handles prioritization by polling the mgt q before the data q. ... If instead the packet is passed to the start method then it needs to be tagged in some way so the it's prioritized properly. ... I suspect this will be ok but the end result will be that we'll need to add a priority field to mbufs. ... Indeed, it does, but structurally, SLIP is split over the link layer and driver layer, which I had forgotten. ... (freebsd-net) - Re: Changes in the network interface queueing handoff model
... The main complication I've seen is when a driver needs to process multiple queues of packets things get more involved. ... With the current scheme you have two separate queues and the start method handles prioritization by polling the mgt q before the data q. ... If instead the packet is passed to the start method then it needs to be tagged in some way so the it's prioritized properly. ... Indeed, it does, but structurally, SLIP is split over the link layer and driver layer, which I had forgotten. ... (freebsd-net) |
|