<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>I modified the sources from version 2002-10-12
of HostAP.</FONT></DIV>
<DIV><FONT face=Arial size=2>Here is the patch of my modifications.</FONT></DIV>
<DIV><FONT face=Arial size=2>Copy the diff above in the file "hostap_pci.patch"
and a</FONT><FONT face=Arial size=2>pply with "patch -p1 <
hostap_pci.patch".</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Hope it will be useful !</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Chris</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>---------------------------------------------- cut
here -----------------------------------------------</FONT></DIV>
<DIV><FONT face=Arial size=2>--- old/hostap_hw.c Thu Mar 20 13:38:53
2003<BR>+++ new/hostap_hw.c Thu Mar 20 13:39:36 2003<BR>@@ -696,9 +696,7
@@<BR> return 0;<BR> }<BR> <BR>-<BR>-static int
hfa384x_get_rid(struct net_device *dev, u16 rid, void *buf, int
len,<BR>- int exact_len)<BR>+static int
hfa384x_get_rid_deported(struct net_device *dev, u16 rid, void *buf, int len,
int exact_len)<BR> {<BR> local_info_t *local = (local_info_t *)
dev->priv;<BR> int res, rlen = 0;<BR>@@ -750,6 +748,19
@@<BR> return rlen;<BR> }<BR> <BR>+static int
hfa384x_get_rid(struct net_device *dev, u16 rid, void *buf, int len, int
exact_len)<BR>+{<BR>+ int ret;<BR>+ int counter =
0;<BR>+<BR>+ ret = hfa384x_get_rid_deported(dev, rid, buf, len,
exact_len);<BR>+ while((ret < 0) && (counter<20))
{<BR>+ counter++;<BR>+ ret = hfa384x_get_rid_deported(dev,
rid, buf, len, exact_len);<BR>+ }<BR>+<BR>+ return
ret;<BR>+}<BR> <BR> static int hfa384x_set_rid(struct net_device *dev,
u16 rid, void *buf, int len)<BR> {<BR>@@ -884,13 +895,21
@@<BR> }<BR> <BR> <BR>-static int prism2_get_version_info(struct
net_device *dev, u16 rid,<BR>- const char
*txt)<BR>+static int prism2_get_version_info(struct net_device *dev, u16 rid,
const char *txt)<BR> {<BR> struct hfa384x_comp_ident
comp;<BR>+ int ret;<BR>+ int counter = 0;<BR> <BR>- if
(hfa384x_get_rid(dev, rid, &comp, sizeof(comp), 1) < 0)
{<BR>- printk(KERN_DEBUG "Could not get RID for component %s\n",
txt);<BR>+ ret = hfa384x_get_rid(dev, rid, &comp, sizeof(comp),
1);<BR>+ printk(KERN_DEBUG "Reading %s with multiple attempts :\n",
txt);<BR>+ while((ret < 0) && (counter<20))
{<BR>+ counter++;<BR>+ ret = hfa384x_get_rid(dev, rid,
&comp, sizeof(comp), 1);<BR>+ }<BR>+<BR>+ if (counter>=20)
{<BR>+ printk(KERN_DEBUG "\nAborting\nCould not get RID for component
%s\n", txt);<BR> return -1;<BR> }<BR> <BR>@@
-1077,6 +1096,8 @@<BR> {<BR> local_info_t *local = (local_info_t
*) dev->priv;<BR> int ret, i, first = 1;<BR>+ int counter =
0;<BR>+<BR> <BR> PDEBUG(DEBUG_FLOW,
"prism2_hw_init()\n");<BR> <BR>@@ -1165,11 +1186,20
@@<BR> <BR> prism2_check_sta_fw_version(local);<BR> <BR>- if
(hfa384x_get_rid(dev,
HFA384X_RID_CNFOWNMACADDR,<BR>-
&dev->dev_addr, 6, 1) < 0) {<BR>- printk("%s: could
not get own MAC
address\n",<BR>-
dev->name);<BR>+ ret = hfa384x_get_rid(dev,
HFA384X_RID_CNFOWNMACADDR, &dev->dev_addr, 6,
1);<BR>+ printk(KERN_DEBUG "Reading MAC address with multiple
attempts :\n");<BR>+ while((ret < 0) && (counter<20))
{<BR>+ counter++;<BR>+ ret =
hfa384x_get_rid(dev, HFA384X_RID_CNFOWNMACADDR, &dev->dev_addr, 6,
1);<BR> }<BR>+<BR>+ if (counter>=20)
{<BR>+ printk(KERN_DEBUG "\nAborting\n%s: could not get own MAC
address\n", dev->name);<BR>+ return
-1;<BR>+ }<BR>+<BR>+ printk(KERN_DEBUG "%s: MAC address
OK\n", dev->name);<BR>+<BR> #ifdef
PRISM2_HOSTAPD<BR> memcpy(local->apdev->dev_addr,
dev->dev_addr, ETH_ALEN);<BR> #endif /* PRISM2_HOSTAPD
*/<BR>---------------------------------------------- cut here
-----------------------------------------------</FONT></DIV></BODY></HTML>