--- linux-2.6.0-test9/3rdparty/prism25/src/prism2sta.c.orig	2003-11-12 21:38:49.000000000 +0100
+++ linux-2.6.0-test9/3rdparty/prism25/src/prism2sta.c	2003-11-12 21:38:56.000000000 +0100
@@ -572,7 +572,7 @@
 dev_link_t	*prism2sta_attach(void);
 static void	prism2sta_detach(dev_link_t *link);
 static void	prism2sta_config(dev_link_t *link);
-static void	prism2sta_release(UINT32 arg);
+static void	prism2sta_release(dev_link_t *link);
 static int 	prism2sta_event (event_t event, int priority, event_callback_args_t *args);
 #endif
 
@@ -2824,8 +2824,6 @@
 	hw->cs_link = link;
 
 	/* Initialize the PC card device object. */
-	link->release.function = &prism2sta_release;
-	link->release.data = (u_long)link;
 	link->conf.IntType = INT_MEMORY_AND_IO;
 	link->priv = wlandev;
 #if CS_RELEASE_CODE > 0x2911
@@ -2915,14 +2913,13 @@
 		save_flags(flags);
 		cli();
 		if (link->state & DEV_RELEASE_PENDING) {
-			del_timer(&link->release);
 			link->state &= ~DEV_RELEASE_PENDING;
 		}
 		restore_flags(flags);
 		
 		/* If link says we're still config'd, call release */
 		if (link->state & DEV_CONFIG) {
-			prism2sta_release((u_long)link);
+			prism2sta_release(link);
 			if (link->state & DEV_STALE_CONFIG) {
 				link->state |= DEV_STALE_LINK;
 				return;
@@ -3220,7 +3217,7 @@
 	WLAN_LOG_ERROR0("NextTuple failure? It's probably a Vcc mismatch.\n");
 
 failed:
-	prism2sta_release((UINT32)link);
+	prism2sta_release(link);
 	return;
 }
 
@@ -3253,9 +3250,8 @@
 *	Possibly in a timer context.  Don't do anything that'll
 *	block.
 ----------------------------------------------------------------*/
-void prism2sta_release(UINT32 arg)
+void prism2sta_release(dev_link_t *link)
 {
-        dev_link_t	*link = (dev_link_t *)arg;
 
 	DBFENTER;
 
@@ -3383,8 +3379,7 @@
 
 		if (link->state & DEV_CONFIG)
 		{
-			link->release.expires = jiffies + (HZ/20);
-			add_timer(&link->release);
+			prism2sta_release(link);
 		}
 		break;
 	case CS_EVENT_RESET_REQUEST:
