2003-09-09 12:13:38

by Eyal Lebedinsky

[permalink] [raw]
Subject: Re: Linux 2.6.0-test5: CONFIG_PCMCIA_WL3501 build fails

allmodconfig, i386:

CC [M] drivers/net/wireless/wl3501_cs.o
drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_join':
drivers/net/wireless/wl3501_cs.c:641: unknown field `id' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:641: warning: missing braces around
initializer
drivers/net/wireless/wl3501_cs.c:641: warning: (near initialization for
`sig.ds_
pset.el')
drivers/net/wireless/wl3501_cs.c:642: unknown field `el' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:643: unknown field `chan' specified in
initiali
zer
drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_start':
drivers/net/wireless/wl3501_cs.c:658: unknown field `id' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:658: warning: missing braces around
initializer
drivers/net/wireless/wl3501_cs.c:658: warning: (near initialization for
`sig.ds_
pset.el')
drivers/net/wireless/wl3501_cs.c:659: unknown field `el' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:660: unknown field `chan' specified in
initiali
zer
drivers/net/wireless/wl3501_cs.c:663: unknown field `id' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:664: unknown field `el' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:665: unknown field `data_rate_labels'
specified
in initializer
drivers/net/wireless/wl3501_cs.c:673: unknown field `id' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:674: unknown field `el' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:675: unknown field `data_rate_labels'
specified
in initializer
drivers/net/wireless/wl3501_cs.c:683: unknown field `id' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:684: unknown field `el' specified in
initialize
r
drivers/net/wireless/wl3501_cs.c:685: unknown field `atim_window'
specified in i
nitializer
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_mgmt_scan_confirm':
drivers/net/wireless/wl3501_cs.c:702: parse error before `)'
drivers/net/wireless/wl3501_cs.c:705: parse error before `)'
drivers/net/wireless/wl3501_cs.c:740: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_auth':
drivers/net/wireless/wl3501_cs.c:899: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_association':
drivers/net/wireless/wl3501_cs.c:913: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_mgmt_join_confirm':
drivers/net/wireless/wl3501_cs.c:923: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_md_confirm_interrupt':
drivers/net/wireless/wl3501_cs.c:982: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_get_confirm_interrupt':
drivers/net/wireless/wl3501_cs.c:1038: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_start_confirm_interrupt':
drivers/net/wireless/wl3501_cs.c:1050: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_assoc_confirm_interrupt':
drivers/net/wireless/wl3501_cs.c:1062: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function
`wl3501_auth_confirm_interrupt':
drivers/net/wireless/wl3501_cs.c:1074: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function `wl3501_rx_interrupt':
drivers/net/wireless/wl3501_cs.c:1090: parse error before `)'
drivers/net/wireless/wl3501_cs.c: In function `wl3501_exit_module':
drivers/net/wireless/wl3501_cs.c:2350: parse error before `)'
make[3]: *** [drivers/net/wireless/wl3501_cs.o] Error 1
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2

--
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>


2003-09-09 12:28:25

by Russell King

[permalink] [raw]
Subject: Re: Linux 2.6.0-test5: CONFIG_PCMCIA_WL3501 build fails

On Tue, Sep 09, 2003 at 10:12:11PM +1000, Eyal Lebedinsky wrote:
> allmodconfig, i386:
>
> CC [M] drivers/net/wireless/wl3501_cs.o
> drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_join':
> drivers/net/wireless/wl3501_cs.c:641: unknown field `id' specified in
> initializer

I notice that this driver uses .foo.bar = baz type initialisers. These
do not work on gcc 2.95 (and last time I checked, the kernels minimum
compiler version was still 2.95.x)

--
Russell King ([email protected]) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core

2003-09-09 17:15:29

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.0-test5: CONFIG_PCMCIA_WL3501 build fails


On Tue, 9 Sep 2003, Russell King wrote:

> On Tue, Sep 09, 2003 at 10:12:11PM +1000, Eyal Lebedinsky wrote:
> > allmodconfig, i386:
> >
> > CC [M] drivers/net/wireless/wl3501_cs.o
> > drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_join':
> > drivers/net/wireless/wl3501_cs.c:641: unknown field `id' specified in
> > initializer
>
> I notice that this driver uses .foo.bar = baz type initialisers. These
> do not work on gcc 2.95 (and last time I checked, the kernels minimum
> compiler version was still 2.95.x)

Yeah, the ".foo.bar = baz" thing should go. Something like the following,
but it would be good to have somebody verify that this was all of it and
that it actually works.

Linus

----
===== drivers/net/wireless/wl3501_cs.c 1.70 vs edited =====
--- 1.70/drivers/net/wireless/wl3501_cs.c Tue Aug 19 07:24:34 2003
+++ edited/drivers/net/wireless/wl3501_cs.c Tue Sep 9 10:12:46 2003
@@ -638,8 +638,10 @@
.sig_id = WL3501_SIG_JOIN_REQ,
.timeout = 10,
.ds_pset = {
- .el.id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
- .el.len = 1,
+ .el = {
+ .id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
+ .len = 1,
+ },
.chan = this->chan,
},
};
@@ -655,13 +657,17 @@
.beacon_period = 400,
.dtim_period = 1,
.ds_pset = {
- .el.id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
- .el.len = 1,
+ .el = {
+ .id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
+ .len = 1,
+ },
.chan = this->chan,
},
.bss_basic_rset = {
- .el.id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
- .el.len = 2,
+ .el = {
+ .id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
+ .len = 2,
+ },
.data_rate_labels = {
[0] = IW_MGMT_RATE_LABEL_MANDATORY |
IW_MGMT_RATE_LABEL_1MBIT,
@@ -670,8 +676,10 @@
},
},
.operational_rset = {
- .el.id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
- .el.len = 2,
+ .el = {
+ .id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
+ .len = 2,
+ },
.data_rate_labels = {
[0] = IW_MGMT_RATE_LABEL_MANDATORY |
IW_MGMT_RATE_LABEL_1MBIT,
@@ -680,8 +688,10 @@
},
},
.ibss_pset = {
- .el.id = IW_MGMT_INFO_ELEMENT_IBSS_PARAMETER_SET,
- .el.len = 2,
+ .el = {
+ .id = IW_MGMT_INFO_ELEMENT_IBSS_PARAMETER_SET,
+ .len = 2,
+ },
.atim_window = 10,
},
.bss_type = wl3501_fw_bss_type(this),

2003-09-09 17:18:25

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: Linux 2.6.0-test5: CONFIG_PCMCIA_WL3501 build fails

Good patch, Linus please apply 8)

Die, 2.95, die :-)

- Arnaldo

Em Tue, Sep 09, 2003 at 10:13:37AM -0700, Linus Torvalds escreveu:
>
> On Tue, 9 Sep 2003, Russell King wrote:
>
> > On Tue, Sep 09, 2003 at 10:12:11PM +1000, Eyal Lebedinsky wrote:
> > > allmodconfig, i386:
> > >
> > > CC [M] drivers/net/wireless/wl3501_cs.o
> > > drivers/net/wireless/wl3501_cs.c: In function `wl3501_mgmt_join':
> > > drivers/net/wireless/wl3501_cs.c:641: unknown field `id' specified in
> > > initializer
> >
> > I notice that this driver uses .foo.bar = baz type initialisers. These
> > do not work on gcc 2.95 (and last time I checked, the kernels minimum
> > compiler version was still 2.95.x)
>
> Yeah, the ".foo.bar = baz" thing should go. Something like the following,
> but it would be good to have somebody verify that this was all of it and
> that it actually works.
>
> Linus
>
> ----
> ===== drivers/net/wireless/wl3501_cs.c 1.70 vs edited =====
> --- 1.70/drivers/net/wireless/wl3501_cs.c Tue Aug 19 07:24:34 2003
> +++ edited/drivers/net/wireless/wl3501_cs.c Tue Sep 9 10:12:46 2003
> @@ -638,8 +638,10 @@
> .sig_id = WL3501_SIG_JOIN_REQ,
> .timeout = 10,
> .ds_pset = {
> - .el.id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
> - .el.len = 1,
> + .el = {
> + .id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
> + .len = 1,
> + },
> .chan = this->chan,
> },
> };
> @@ -655,13 +657,17 @@
> .beacon_period = 400,
> .dtim_period = 1,
> .ds_pset = {
> - .el.id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
> - .el.len = 1,
> + .el = {
> + .id = IW_MGMT_INFO_ELEMENT_DS_PARAMETER_SET,
> + .len = 1,
> + },
> .chan = this->chan,
> },
> .bss_basic_rset = {
> - .el.id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
> - .el.len = 2,
> + .el = {
> + .id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
> + .len = 2,
> + },
> .data_rate_labels = {
> [0] = IW_MGMT_RATE_LABEL_MANDATORY |
> IW_MGMT_RATE_LABEL_1MBIT,
> @@ -670,8 +676,10 @@
> },
> },
> .operational_rset = {
> - .el.id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
> - .el.len = 2,
> + .el = {
> + .id = IW_MGMT_INFO_ELEMENT_SUPPORTED_RATES,
> + .len = 2,
> + },
> .data_rate_labels = {
> [0] = IW_MGMT_RATE_LABEL_MANDATORY |
> IW_MGMT_RATE_LABEL_1MBIT,
> @@ -680,8 +688,10 @@
> },
> },
> .ibss_pset = {
> - .el.id = IW_MGMT_INFO_ELEMENT_IBSS_PARAMETER_SET,
> - .el.len = 2,
> + .el = {
> + .id = IW_MGMT_INFO_ELEMENT_IBSS_PARAMETER_SET,
> + .len = 2,
> + },
> .atim_window = 10,
> },
> .bss_type = wl3501_fw_bss_type(this),