commit 47230a6beff4656a55bf23d92daee27f96c5b5a1 Author: Patrick McHardy <kaber@xxxxxxxxx> Date: Mon May 12 18:25:51 2008 +0200 prism54: revert "prism54: set carrier flags correctly" Commit 7b463ced6 (prism54: set carrier flags correctly) causes a regression: in AP-mode, the device comes up without a carrier, which (in my case) causes IPv6 to not add a link-local address, which in turn causes radvd (configured to announce routes on that device) to refuse to start, breaking IPv6 for the entire network. Additionally it most likely will be unable to pass packets because the queue in never started. A patch that seems to fix the issue is available, however the wireless developers have not merged it upstream for three weeks now and not responded to further email, so this patch reverts the faulty change. Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx> diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index 5b375b2..5d7951a 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c @@ -2081,7 +2081,6 @@ link_changed(struct net_device *ndev, u32 bitrate) islpci_private *priv = netdev_priv(ndev); if (bitrate) { - netif_carrier_on(ndev); if (priv->iw_mode == IW_MODE_INFRA) { union iwreq_data uwrq; prism54_get_wap(ndev, NULL, (struct sockaddr *) &uwrq, @@ -2090,10 +2089,8 @@ link_changed(struct net_device *ndev, u32 bitrate) } else send_simple_event(netdev_priv(ndev), "Link established"); - } else { - netif_carrier_off(ndev); + } else send_simple_event(netdev_priv(ndev), "Link lost"); - } } /* Beacon/ProbeResp payload header */ diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index 04c2638..eb7c1c6 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c @@ -387,9 +387,7 @@ islpci_open(struct net_device *ndev) } netif_start_queue(ndev); - - /* Turn off carrier unless we know we have associated */ - netif_carrier_off(ndev); +/* netif_mark_up( ndev ); */ return 0; }