1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
This are some fixes for real bugs that I had with the driver in my
environment.
#
# Patch managed by http://www.holgerschurig.de/patcher.html
#
--- wlags/wl_wext.c~bugs
+++ wlags/wl_wext.c
@@ -3811,9 +3811,11 @@
/* NOTE: Format of MAC address (using colons to seperate bytes) may cause
a problem in future versions of the supplicant, if they ever
actually parse these parameters */
+#if DBG
sprintf( msg, "MLME-MICHAELMICFAILURE.indication(keyid=%d %scast addr="
"%s)", key_idx, addr1[0] & 0x01 ? "broad" : "uni",
DbgHwAddr( addr2 ));
+#endif
wrqu.data.length = strlen( msg );
wireless_send_event( dev, IWEVCUSTOM, &wrqu, msg );
#endif /* WIRELESS_EXT > 14 */
--- wlags/mmd.c~bugs
+++ wlags/mmd.c
@@ -233,7 +233,17 @@
i = 0;
}
#endif // HCF_ASSERT
- return i > 3 && supp->len == sizeof(CFG_SUP_RANGE_STRCT)/sizeof(hcf_16) - 1 ?
- (CFG_RANGE_SPEC_STRCT*)actq : NULL; /* 8 */
+/*
+ * Originally there was this code here:
+ *
+ * return i > 3 && supp->len == sizeof(CFG_SUP_RANGE_STRCT)/sizeof(hcf_16) - 1 ?
+ * (CFG_RANGE_SPEC_STRCT*)actq : NULL;
+ *
+ * Unfortunately, the sizeof() boogy was not working correctly on the Intel PXA2550 cpu.
+ * sizeof(CFG_SUP_RANGE_STRCT)==16 there. So I had to uncomment this.
+ * Holger Schurig <hs4233@mail.mn-solutions.de>
+ */
+
+ return i > 3 ? (CFG_RANGE_SPEC_STRCT*)actq : NULL; /* 8 */
} // mmd_check_comp
--- wlags/dhf.c~bugs
+++ wlags/dhf.c
@@ -554,7 +554,6 @@
{
plugrecord *plugrecordp = fw->pdaplug;
int rc = HCF_SUCCESS;
-int plugrc = HCF_SUCCESS;
CFG_PROG_STRCT *ltvp;
hcf_32 code; // Code to plug
hcf_16 *pdap; // pointer to matching code found in pda
@@ -565,7 +564,22 @@
while( ( rc == HCF_SUCCESS ) && ( code = plugrecordp->code ) != 0 ) {
pdap = apply_plug_rules(&cfg_prod_data[2], (hcf_16)(code & CODEMASK) );
if ( pdap ) {
+#if 0
+/*
+ * For plug record code=0x00000150, I get
+ *
+ * (CNV_LITTLE_TO_INT(*pdap) - 1) * 2 == 4
+ * and
+ * plugrecordp->len == 2
+ *
+ * Therefore the download failed. Therefore, I disable this check.
+ * Holger Schurig, hs4233@mail.mn-solutions.de
+ */
+
if ( (CNV_LITTLE_TO_INT(*pdap) - 1) * 2 != plugrecordp->len ) {
+#else
+ if (0) {
+#endif
//!! Be aware of the difference with primary plug records:
//!! as opposed to plug_pri_records '!=' rather than '>'
//!! production data plug records must fit exactly at their location
|