On Fri, 2008-02-22 at 15:26 +0100, Andrew Lunn wrote: > Hi Folks > > I found a problem with the IPW2100/ieee80211 drivers which i think > also affects other users of ieee80211 in stock 2.6.24 and earlier. > > The function net/ieee80211/ieee80211_rx.c:update_network() gets called > in response to a beacon or a probe response. It is responsible for > updating the information we already have about the network described > by the beacon or the probe response. At the beginning of the function > is: > > /* We only update the statistics if they were created by receiving > * the network information on the actual channel the network is on. > * > * This keeps beacons received on neighbor channels from bringing > * down the signal level of an AP. */ > if (dst->channel == src->stats.received_channel) > memcpy(&dst->stats, &src->stats, > sizeof(struct ieee80211_rx_stats)); > else > IEEE80211_DEBUG_SCAN("Network %s info received " > "off channel (%d vs. %d)\n", print_mac(mac, src->bssid), > dst->channel, src->stats.received_channel); > > The problem is that the ipw2100 driver never fills in the > stats.received_channel. So the RSSI and other link quality parameters > never get updated. The RSSI is always the RSSI of the first frame > which caused the network record to be created. Can you try the attached patch instead? stats.received_channel really should be filled by the hardware driver itself. This patch essentially does what bcm43xx does. Can you test it please? Dan diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index 5bf9e00..8a3ce3a 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c @@ -2654,6 +2654,8 @@ static void __ipw2100_rx_process(struct ipw2100_priv *priv) stats.mask |= IEEE80211_STATMASK_RSSI; stats.freq = IEEE80211_24GHZ_BAND; + stats.received_channel = priv->channel; + IPW_DEBUG_RX("%s: '%s' frame type received (%d).\n", priv->net_dev->name, frame_types[frame_type], stats.len); - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html