[PATCH] Orinoco: ignore_disconnect flag
  
  Adds an ignore_disconnect module parameter.  When enabled, the driver
  will continue attempting to send packets even when the firmware has
  told us we've lost our link to the AP.  On some firmwares this
  substantially increases the usable range of the card (presumably
  because we have an interrmittent connection, but the firmware is able
  to queue the packets for us until we're connected again).  On some
  other cards, it causes the firmware to fall in a screaming heap :(
  (hence, default off).
  
  Signed-off-by: David Gibson <hermes@gibson.dropbear.id.au>
  Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 3eab7e0..01cf285 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -492,6 +492,9 @@
 static int suppress_linkstatus; /* = 0 */
 module_param(suppress_linkstatus, bool, 0644);
 MODULE_PARM_DESC(suppress_linkstatus, "Don't log link status changes");
+static int ignore_disconnect; /* = 0 */
+module_param(ignore_disconnect, int, 0644);
+MODULE_PARM_DESC(ignore_disconnect, "Don't report lost link to the network layer");
 
 /********************************************************************/
 /* Compile time configuration and compatibility stuff               */
@@ -1320,7 +1323,7 @@
 
 		if (connected)
 			netif_carrier_on(dev);
-		else
+		else if (!ignore_disconnect)
 			netif_carrier_off(dev);
 
 		if (newstatus != priv->last_linkstatus)