aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/wlags-modules/files/bugs.patch
blob: 12fcceaa05e7b9e0fb109078dab28c353ac391b3 (plain)
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