<!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&nbsp;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 &lt; 
hostap_pci.patch".</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Hope it will be useful !</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Chris</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>---------------------------------------------- cut 
here -----------------------------------------------</FONT></DIV>
<DIV><FONT face=Arial size=2>--- old/hostap_hw.c&nbsp;Thu Mar 20 13:38:53 
2003<BR>+++ new/hostap_hw.c&nbsp;Thu Mar 20 13:39:36 2003<BR>@@ -696,9 +696,7 
@@<BR>&nbsp;&nbsp;return 0;<BR>&nbsp;}<BR>&nbsp;<BR>-<BR>-static int 
hfa384x_get_rid(struct net_device *dev, u16 rid, void *buf, int 
len,<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int exact_len)<BR>+static int 
hfa384x_get_rid_deported(struct net_device *dev, u16 rid, void *buf, int len, 
int exact_len)<BR>&nbsp;{<BR>&nbsp;&nbsp;local_info_t *local = (local_info_t *) 
dev-&gt;priv;<BR>&nbsp;&nbsp;int res, rlen = 0;<BR>@@ -750,6 +748,19 
@@<BR>&nbsp;&nbsp;return rlen;<BR>&nbsp;}<BR>&nbsp;<BR>+static int 
hfa384x_get_rid(struct net_device *dev, u16 rid, void *buf, int len, int 
exact_len)<BR>+{<BR>+&nbsp;int ret;<BR>+&nbsp;int counter = 
0;<BR>+<BR>+&nbsp;ret = hfa384x_get_rid_deported(dev, rid, buf, len, 
exact_len);<BR>+&nbsp;while((ret &lt; 0) &amp;&amp; (counter&lt;20)) 
{<BR>+&nbsp;&nbsp;counter++;<BR>+&nbsp;&nbsp;ret = hfa384x_get_rid_deported(dev, 
rid, buf, len, exact_len);<BR>+&nbsp;}<BR>+<BR>+&nbsp;return 
ret;<BR>+}<BR>&nbsp;<BR>&nbsp;static int hfa384x_set_rid(struct net_device *dev, 
u16 rid, void *buf, int len)<BR>&nbsp;{<BR>@@ -884,13 +895,21 
@@<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;<BR>-static int prism2_get_version_info(struct 
net_device *dev, u16 rid,<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char 
*txt)<BR>+static int prism2_get_version_info(struct net_device *dev, u16 rid, 
const char *txt)<BR>&nbsp;{<BR>&nbsp;&nbsp;struct hfa384x_comp_ident 
comp;<BR>+&nbsp;int ret;<BR>+&nbsp;int counter = 0;<BR>&nbsp;<BR>-&nbsp;if 
(hfa384x_get_rid(dev, rid, &amp;comp, sizeof(comp), 1) &lt; 0) 
{<BR>-&nbsp;&nbsp;printk(KERN_DEBUG "Could not get RID for component %s\n", 
txt);<BR>+&nbsp;ret = hfa384x_get_rid(dev, rid, &amp;comp, sizeof(comp), 
1);<BR>+&nbsp;printk(KERN_DEBUG "Reading %s with multiple attempts :\n", 
txt);<BR>+&nbsp;while((ret &lt; 0) &amp;&amp; (counter&lt;20)) 
{<BR>+&nbsp;&nbsp;counter++;<BR>+&nbsp;&nbsp;ret = hfa384x_get_rid(dev, rid, 
&amp;comp, sizeof(comp), 1);<BR>+&nbsp;}<BR>+<BR>+&nbsp;if (counter&gt;=20) 
{<BR>+&nbsp;&nbsp;printk(KERN_DEBUG "\nAborting\nCould not get RID for component 
%s\n", txt);<BR>&nbsp;&nbsp;&nbsp;return -1;<BR>&nbsp;&nbsp;}<BR>&nbsp;<BR>@@ 
-1077,6 +1096,8 @@<BR>&nbsp;{<BR>&nbsp;&nbsp;local_info_t *local = (local_info_t 
*) dev-&gt;priv;<BR>&nbsp;&nbsp;int ret, i, first = 1;<BR>+&nbsp;int counter = 
0;<BR>+<BR>&nbsp;<BR>&nbsp;&nbsp;PDEBUG(DEBUG_FLOW, 
"prism2_hw_init()\n");<BR>&nbsp;<BR>@@ -1165,11 +1186,20 
@@<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;prism2_check_sta_fw_version(local);<BR>&nbsp;<BR>-&nbsp;&nbsp;if 
(hfa384x_get_rid(dev, 
HFA384X_RID_CNFOWNMACADDR,<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&amp;dev-&gt;dev_addr, 6, 1) &lt; 0) {<BR>-&nbsp;&nbsp;&nbsp;printk("%s: could 
not get own MAC 
address\n",<BR>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dev-&gt;name);<BR>+&nbsp;&nbsp;ret = hfa384x_get_rid(dev, 
HFA384X_RID_CNFOWNMACADDR, &amp;dev-&gt;dev_addr, 6, 
1);<BR>+&nbsp;&nbsp;printk(KERN_DEBUG "Reading MAC address with multiple 
attempts :\n");<BR>+&nbsp;&nbsp;while((ret &lt; 0) &amp;&amp; (counter&lt;20)) 
{<BR>+&nbsp;&nbsp;&nbsp;counter++;<BR>+&nbsp;&nbsp;&nbsp;ret = 
hfa384x_get_rid(dev, HFA384X_RID_CNFOWNMACADDR, &amp;dev-&gt;dev_addr, 6, 
1);<BR>&nbsp;&nbsp;&nbsp;}<BR>+<BR>+&nbsp;&nbsp;if (counter&gt;=20) 
{<BR>+&nbsp;&nbsp;&nbsp;printk(KERN_DEBUG "\nAborting\n%s: could not get own MAC 
address\n", dev-&gt;name);<BR>+&nbsp;&nbsp;&nbsp;return 
-1;<BR>+&nbsp;&nbsp;}<BR>+<BR>+&nbsp;&nbsp;printk(KERN_DEBUG "%s: MAC address 
OK\n", dev-&gt;name);<BR>+<BR>&nbsp;#ifdef 
PRISM2_HOSTAPD<BR>&nbsp;&nbsp;&nbsp;memcpy(local-&gt;apdev-&gt;dev_addr, 
dev-&gt;dev_addr, ETH_ALEN);<BR>&nbsp;#endif /* PRISM2_HOSTAPD 
*/<BR>---------------------------------------------- cut here 
-----------------------------------------------</FONT></DIV></BODY></HTML>