Search Linux Wireless

prism54: revert "prism54: set carrier flags correctly"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;
 }

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux