Hi,

 Indeed that seems to be the problem.
 Thank you.

Regards,

Sergio

Quoting Nathan Anderson <nat...@andersonsplace.net>:

 Sergio,

        Maybe the actual problem is that 62 is not a multiple of 4.   the
sizeof(void (*)) should be 4 on 32 bit platforms.   So if you read that; you
get:
62-8 (=54)
54 / 4 (=13.5)

On the old value you get
48-8 (=40)
40/4 (=10)


What happens if you change it to
        char                    cb[64];

The compiler could be having a issue because of 13.5 and just masking the
issue until later.  (Gotta love C/C++ compilers, you can chase your tail
sometimes <G>)

Nathan





-----Original Message-----
From: maemo-developers-boun...@maemo.org
[mailto:maemo-developers-boun...@maemo.org] On Behalf Of Sergio Lembo
Sent: Thursday, June 17, 2010 1:59 PM
To: maemo-developers@maemo.org
Subject: RE: N900 kernel 2.6.28 no compiles after changing cb[] array size


Hi,

Thank you for your answer.

I observe that in include/net/mac80211.h the defines pasted below are
introducing a non-linear sizing (observe the hardcoded number 8) that may
cause problems for some ranges and thus validating (sizeof(struct
ieee80211_tx_info) > sizeof(skb->cb)).

#define IEEE80211_TX_INFO_DRIVER_DATA_SIZE \
        (sizeof(((struct sk_buff *)0)->cb) - 8)

#define IEEE80211_TX_INFO_DRIVER_DATA_PTRS \
        (IEEE80211_TX_INFO_DRIVER_DATA_SIZE / sizeof(void *))

Although this is not directly the problem that I have and

   BUILD_BUG_ON(sizeof(struct ieee80211_tx_info) > sizeof(skb->cb));

is failing for some other reason that I did not find yet..

Regards,

Sergio




Quoting Nathan Anderson <nat...@andersonsplace.net>:

Sergio,

        If I had a guess, I would guess that the n900 probably has a
different set of compile time defines, that cause the ieee80211
structure to be defined differently on the n900 vs a stock machine.
The compile time failsafe is to make sure that the structure iee80211 is
larger than skb->cb.
Run a grep on the code to find out where/how the ieee80211 structure
is being defined and you will probably find the issue.

Nathan.

-----Original Message-----
From: maemo-developers-boun...@maemo.org
[mailto:maemo-developers-boun...@maemo.org] On Behalf Of Sergio Lembo
Sent: Thursday, June 17, 2010 3:08 AM
To: maemo-developers@maemo.org
Subject: N900 kernel 2.6.28 no compiles after changing cb[] array size


Hi,

   I am having an inconsistent state in the N900 kernel 2.6.28 when I
make a very simple
change:

   The problem is reproduced easily by just increasing the size of the
control buffer cb[] in struct sk_buff{} (include/linux/skbuff.h):

-       char                    cb[48];
-
+       char                    cb[62];

   Using cb[62] I get a compilation error :

CC [M]  net/mac80211/main.o
net/mac80211/main.c: In function 'ieee80211_init':
net/mac80211/main.c:1026: error: size of array 'type name' is negative
make[2]: *** [net/mac80211/main.o] Error 1
make[1]: *** [net/mac80211] Error 2
make: *** [net] Error 2

   The line with the error is a failsafe at compilation time
(net/mac80211/main.c):

        BUILD_BUG_ON(sizeof(struct ieee80211_tx_info) >
sizeof(skb->cb));

   Bypassing such failsafe line the kernel compiles Ok, but the binary
flashed to the N900 fails to boot the system.

   I observe that such compilation error does not happen when
compiling a plain 2.6.28 kernel for a PC.

   And note that this error is just caused by changing the size of
cb[] from
48 to 62; that is the only modification we made to the kernel sources.


Regards,

Sergio



_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers





--
-----------------------
Sergio Lembo
sergio.le...@tkk.fi
-----------------------

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers





--
-----------------------
Sergio Lembo
sergio.le...@tkk.fi
-----------------------

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to