You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(46) |
Sep
(117) |
Oct
(24) |
Nov
(10) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(11) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(1) |
Nov
|
Dec
|
2007 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(3) |
Apr
(3) |
May
(1) |
Jun
(5) |
Jul
(7) |
Aug
(1) |
Sep
(8) |
Oct
(2) |
Nov
(27) |
Dec
(33) |
2009 |
Jan
(11) |
Feb
(10) |
Mar
(10) |
Apr
(16) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Johannes B. <joh...@si...> - 2005-11-29 11:02:23
|
There's a comment in the header file saying: /* NOTE: This data is for statistical purposes; not all hardware provides t= his * information for frames received. Not setting these will not cause * any adverse affects. */ Now, this is false. As it happens, both ieee80211_handle_assoc_resp and ieee80211_network_init rely on stats->len being correct while calling ieee80211_parse_info_param, which in turn are called if one calls ieee80211_rx_mgt. It seems that ieee80211_rx_mgt should have a length parameter and pass that down (probably instead of the stats, since all those functions don't really need them), but fixing the comment would be good enough I guess. Please fix either the comment or the code. johannes |
From: Zhu Yi <yi...@in...> - 2005-11-28 03:03:00
|
On Fri, 2005-11-25 at 09:27 +0800, mike lee wrote: > which functions do the exact work? wx_set_encode? > It is a little bit difficult for me to hack all the ieee80211 source > code. Do there exist a document on ieee80211 stack? ieee80211_crypt_*.c. For example ieee80211_crypt_wep.c does WEP encryption and decryption. Currently the only document is the code. Thanks, -yi |
From: Alejandro B. B. <abo...@li...> - 2005-11-25 16:45:55
|
mike lee wrote: > > > Alejandro Bonilla wrote: > >> On Thu, 24 Nov 2005 18:03:28 +0800, mike lee wrote >> >> >>> Hi all >>> Does ieee80211 stack support hardware encryption ? or by crypt >>> subsystem of linux? >>> >> >> >> I might think it has both hooks? >> >> IPW uses both and I think the ieee80211 has all the stuff for the >> linux crypt >> subsystem, but maybe depending on the hardware, might need some extra >> things >> to support the specific network card? >> >> .Alejandro >> >> > which functions do the exact work? wx_set_encode? > It is a little bit difficult for me to hack all the ieee80211 source > code. Do there exist a document on ieee80211 stack? I don't have an answer for you. I hope someone else can help you here. Sorry. .Alejandro > > Thx Alejandro. > >> >> >>> Mike,Lee >> |
From: Zhu Yi <yi...@in...> - 2005-11-25 03:25:44
|
On Fri, 2005-11-25 at 09:29 +0800, mike lee wrote: > Hi all > For a linux wireless lan driver, what does it need for wpa_supplicant > to work with full functions? Take a look at http://hostap.epitest.fi/wpa_supplicant/ and how ipw2200 implemented it. Thanks, -yi |
From: mike l. <mi...@av...> - 2005-11-25 01:31:22
|
Hi all For a linux wireless lan driver, what does it need for wpa_supplicant to work with full functions? Mike,Lee |
From: mike l. <mi...@av...> - 2005-11-25 01:28:42
|
Alejandro Bonilla wrote: >On Thu, 24 Nov 2005 18:03:28 +0800, mike lee wrote > > >>Hi all >> Does ieee80211 stack support hardware encryption ? or by crypt >>subsystem of linux? >> >> > >I might think it has both hooks? > >IPW uses both and I think the ieee80211 has all the stuff for the linux crypt >subsystem, but maybe depending on the hardware, might need some extra things >to support the specific network card? > >.Alejandro > > which functions do the exact work? wx_set_encode? It is a little bit difficult for me to hack all the ieee80211 source code. Do there exist a document on ieee80211 stack? Thx Alejandro. > > >>Mike,Lee >> >> > > > > |
From: Alejandro B. <abo...@li...> - 2005-11-24 18:17:21
|
On Thu, 24 Nov 2005 18:03:28 +0800, mike lee wrote > Hi all > Does ieee80211 stack support hardware encryption ? or by crypt > subsystem of linux? I might think it has both hooks? IPW uses both and I think the ieee80211 has all the stuff for the linux crypt subsystem, but maybe depending on the hardware, might need some extra things to support the specific network card? .Alejandro > > Mike,Lee |
From: mike l. <mi...@av...> - 2005-11-24 10:05:02
|
Hi all Does ieee80211 stack support hardware encryption ? or by crypt subsystem of linux? Mike,Lee -- Software Engineer Mike Lee AvantWave Ltd. Direct: (852) 2952 7125 |
From: Maximilian E. <ma...@da...> - 2005-11-18 20:36:24
|
Hello, are there any plans for adding master mode to ieee80211 or is it even under development ATM? If so, is there any web page where I can get more information about this? Maxi |
From: Michael B. <mb...@fr...> - 2005-11-13 11:34:51
|
Hi, I see we have the ieee80211_rx_mgt(). It works (more or less). I could not find a corresponding function like ieee80211_tx_mgt() for sending management frames (like assoc requests). So, as far as I can see, every driver has to compose the mgt frames themselfes. I would do a function like extern void ieee80211_tx_mgt(struct ieee80211_device *ieee, __u16 stype); This function interprets some stuff (maybe, which is not there, yet) from the ieee, like supported rates and so on. After building the frame, it packs it into a txb and fires ieee->hard_start_xmit() What's your opinion on this? =2D-=20 Greetings Michael. |
From: Pavel R. <pr...@gn...> - 2005-10-28 05:42:15
|
Appending the local include directory to EXTRA_CFLAGS doesn't ensure that the local headers are used. The local include directory should be prepended to CPPFLAGS to make the build system prefer the local headers over those from the kernel sources. Signed-off-by: Pavel Roskin <pr...@gn...> --- Makefile +++ Makefile @@ -19,7 +19,7 @@ endif ifdef KBUILD_EXTMOD - EXTRA_CFLAGS += -I$(KBUILD_EXTMOD) + CPPFLAGS := -I$(KBUILD_EXTMOD) $(CPPFLAGS) endif ifeq ($(IEEE80211_INC),) -- Regards, Pavel Roskin |
From: Hendrik-Jan H. <hj...@gm...> - 2005-10-26 14:44:53
|
I'm on Mandrake 2005LE / 10.2 and I get exactly the same error that was already mentioned on the ipw2100 mailinglist. Kernel version: 2.6.11; gcc version: 3.4.3. Version 1.1.5 with patch did work. Here's the error: # make <stdin>:1:28: linux/rhconfig.h: No such file or directory Checking in /lib/modules/2.6.11-6mdk/build/ for ieee80211 components... make -C /lib/modules/2.6.11-6mdk/build M=3D/usr/src/ieee80211-1.1.6 MODVERDIR=3D/usr/src/ieee80211-1.1.6 modules make[1]: Entering directory `/usr/src/linux-2.6.11-6mdk' CC [M] /usr/src/ieee80211-1.1.6/ieee80211_module.o CC [M] /usr/src/ieee80211-1.1.6/ieee80211_tx.o /usr/src/ieee80211-1.1.6/ieee80211_tx.c:193: error: syntax error before "gfp_mask" /usr/src/ieee80211-1.1.6/ieee80211_tx.c:194: warning: function declaration isn't a prototype /usr/src/ieee80211-1.1.6/ieee80211_tx.c: In function `ieee80211_alloc_txb': /usr/src/ieee80211-1.1.6/ieee80211_tx.c:197: error: `nr_frags' undeclared (first use in thisfunction) /usr/src/ieee80211-1.1.6/ieee80211_tx.c:197: error: (Each undeclared identifier is reported only once /usr/src/ieee80211-1.1.6/ieee80211_tx.c:197: error: for each function it appears in.) /usr/src/ieee80211-1.1.6/ieee80211_tx.c:198: error: `gfp_mask' undeclared (first use in thisfunction) /usr/src/ieee80211-1.1.6/ieee80211_tx.c:204: error: `txb_size' undeclared (first use in thisfunction) make[2]: *** [/usr/src/ieee80211-1.1.6/ieee80211_tx.o] Error 1 make[1]: *** [_module_/usr/src/ieee80211-1.1.6] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.11-6mdk' make: *** [modules] Error 2 Hendrik-Jan Heins |
From: James K. <jke...@li...> - 2005-10-25 14:54:48
|
Mike Hommey wrote: >I needed the attached patch to build against 2.6.8. I don't know if the >driver works correctly, though. > > Thanks. I'll add the other compatibility declarations you list for the next set of snapshots. James |
From: Mike H. <mh...@gl...> - 2005-10-24 19:31:47
|
On Mon, Oct 24, 2005 at 11:16:17AM -0500, James Ketrenos <jke...@li...> wrote: > Patrick Bogen wrote: > > >Yeah, it compiles fine with GCC 4.0.2; I'm afraid that might be it. > > > > > Looks like __nocast is the problem. > > Can you both try the attached patch against 1.1.6 and see if it builds > for both (want to check new gcc and old gcc) > > Thanks, > James > > I needed the attached patch to build against 2.6.8. I don't know if the driver works correctly, though. Mike |
From: Pedro R. <ram...@se...> - 2005-10-24 19:08:39
|
On Mon, 2005-10-24 at 13:32 -0500, James Ketrenos wrote: > Pedro Ramalhais wrote: > > >Volker Braun wrote: > > > > > >>The functions ieee80211_wx_{get,set}_encodeext fail if one tries to set > >>unicast (IW_ENCODE_EXT_GROUP_KEY not set) keys at key indices>0. But at > >>least some Cisco APs dish out dynamic WEP unicast keys at index !=0. > >> > >>I think the best behaviour is to not make any assumptions on key indices > >>when using WEP. The patch below implements this and works for me. > >> > >> > Thanks. I've applied and updated the GIT overlay at > rsync://bughost.org/repos/ieee80211-delta/.git/ > > James James, can we have a new release with that code? My university uses Cisco APs exclusively and we have that problem. It would be nice to tell the users "version X works" instead of "get version Y, get patch X, do this, hack that". Thanks! -- Pedro Ramalhais <ram...@se...> |
From: James K. <jke...@li...> - 2005-10-24 18:31:51
|
Pedro Ramalhais wrote: >Volker Braun wrote: > > >>The functions ieee80211_wx_{get,set}_encodeext fail if one tries to set >>unicast (IW_ENCODE_EXT_GROUP_KEY not set) keys at key indices>0. But at >>least some Cisco APs dish out dynamic WEP unicast keys at index !=0. >> >>I think the best behaviour is to not make any assumptions on key indices >>when using WEP. The patch below implements this and works for me. >> >> Thanks. I've applied and updated the GIT overlay at rsync://bughost.org/repos/ieee80211-delta/.git/ James |
From: James K. <jke...@li...> - 2005-10-24 16:16:28
|
Patrick Bogen wrote: >Yeah, it compiles fine with GCC 4.0.2; I'm afraid that might be it. > > Looks like __nocast is the problem. Can you both try the attached patch against 1.1.6 and see if it builds for both (want to check new gcc and old gcc) Thanks, James |
From: Pedro R. <ram...@se...> - 2005-10-23 21:17:06
|
Volker Braun wrote: > The functions ieee80211_wx_{get,set}_encodeext fail if one tries to set > unicast (IW_ENCODE_EXT_GROUP_KEY not set) keys at key indices>0. But at > least some Cisco APs dish out dynamic WEP unicast keys at index !=0. > > I think the best behaviour is to not make any assumptions on key indices > when using WEP. The patch below implements this and works for me. > > Volker > > > --- ieee80211-1.1.6-original/ieee80211_wx.c 2005-10-21 13:29:47.000000000 -0400 > +++ ieee80211-1.1.6/ieee80211_wx.c 2005-10-23 16:02:28.000000000 -0400 > @@ -521,8 +521,9 @@ > crypt = &ieee->crypt[idx]; > group_key = 1; > } else { > - if (idx != 0) > - return -EINVAL; > + /* some Cisco APs use idx>0 for unicast in dynamic WEP */ > + if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) > + return -EINVAL; > if (ieee->iw_mode == IW_MODE_INFRA) > crypt = &ieee->crypt[idx]; > else > @@ -689,7 +690,8 @@ > } else > idx = ieee->tx_keyidx; > > - if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) > + if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY && > + ext->alg != IW_ENCODE_ALG_WEP) > if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA) > return -EINVAL; > > > > > I had to apply a similar patch to be able to use WEP with cisco APs. In my patch, i didn't take into account other algorythms other than WEP, so your patch seems more correct. -- Pedro Ramalhais |
From: Volker B. <vol...@ph...> - 2005-10-23 20:43:00
|
The functions ieee80211_wx_{get,set}_encodeext fail if one tries to set unicast (IW_ENCODE_EXT_GROUP_KEY not set) keys at key indices>0. But at least some Cisco APs dish out dynamic WEP unicast keys at index !=0. I think the best behaviour is to not make any assumptions on key indices when using WEP. The patch below implements this and works for me. Volker --- ieee80211-1.1.6-original/ieee80211_wx.c 2005-10-21 13:29:47.000000000 -0400 +++ ieee80211-1.1.6/ieee80211_wx.c 2005-10-23 16:02:28.000000000 -0400 @@ -521,8 +521,9 @@ crypt = &ieee->crypt[idx]; group_key = 1; } else { - if (idx != 0) - return -EINVAL; + /* some Cisco APs use idx>0 for unicast in dynamic WEP */ + if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP) + return -EINVAL; if (ieee->iw_mode == IW_MODE_INFRA) crypt = &ieee->crypt[idx]; else @@ -689,7 +690,8 @@ } else idx = ieee->tx_keyidx; - if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) + if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY && + ext->alg != IW_ENCODE_ALG_WEP) if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA) return -EINVAL; |
From: James K. <jke...@li...> - 2005-10-21 17:36:46
|
GIT overlay updated at rsync://bughost.org/repos/ieee80211-delta/.git/ Snapshot available at http://ieee80211.sf.net/#downloads Changes in 1.1.6 * Fixed oops if an uninitialized key is used for Tx encryption * Fixed problem with not encrypting/decrypting broadcast packets * Fixed Wireless Extension backward compatibility problems * Updated to contain latest fixes and changes from netdev-2.6#upstream * Added 'patch_kernel' makefile target -- do not use unless you are willing to reinstall your kernel sources if it fails (still being tested) |
From: Hendrik-Jan H. <hj...@gm...> - 2005-10-19 18:09:59
|
I got the solution. The patch posted by James on the ipw2100 list fixes it for me. I made a DKMS package for Mandriva linux 2005LE, you can find it at: http://www.passys.nl/RPM/ Hendrik-Jan Heins |
From: Hendrik-Jan H. <hj...@gm...> - 2005-10-19 14:12:58
|
I get a strange error when trying to build ieee80211-1.1.5 (see below). How do I fix this? Hendrik-Jan # make <stdin>:1:28: linux/rhconfig.h: No such file or directory Checking in /lib/modules/2.6.11-6mdk/build/ for ieee80211 components... make -C /lib/modules/2.6.11-6mdk/build M=3D/usr/src/ieee80211-1.1.5 MODVERDIR=3D/usr/src/ieee80211-1.1.5 modules make[1]: Entering directory `/usr/src/linux-2.6.11-6mdk' CC [M] /usr/src/ieee80211-1.1.5/ieee80211_wx.o /usr/src/ieee80211-1.1.5/ieee80211_wx.c: In function `ieee80211_wx_set_encodeext': /usr/src/ieee80211-1.1.5/ieee80211_wx.c:516: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:516: error: `IW_ENCODE_EXT_GROUP_KEY' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:516: error: (Each undeclared identifier is reported only once /usr/src/ieee80211-1.1.5/ieee80211_wx.c:516: error: for each function it appears in.) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:530: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:530: error: `IW_ENCODE_ALG_NONE' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:555: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:556: error: `IW_ENCODE_ALG_WEP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:560: error: `IW_ENCODE_ALG_TKIP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:564: error: `IW_ENCODE_ALG_CCMP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:569: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:581: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:610: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:611: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:611: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:611: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:619: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:619: error: `IW_ENCODE_EXT_SET_TX_KEY' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:625: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:626: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:626: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:626: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:626: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:626: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:627: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:629: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:633: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:637: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c: In function `ieee80211_wx_get_encodeext': /usr/src/ieee80211-1.1.5/ieee80211_wx.c:676: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:688: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:688: error: `IW_ENCODE_EXT_GROUP_KEY' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:693: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:696: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:696: error: `IW_ENCODE_ALG_NONE' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:697: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:701: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:701: error: `IW_ENCODE_ALG_WEP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:703: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:703: error: `IW_ENCODE_ALG_TKIP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:705: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:705: error: `IW_ENCODE_ALG_CCMP' undeclared (first use in this function) /usr/src/ieee80211-1.1.5/ieee80211_wx.c:709: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:710: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:710: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:710: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:710: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:710: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:712: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:713: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:714: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:715: error: dereferencing pointer to incomplete type /usr/src/ieee80211-1.1.5/ieee80211_wx.c:715: error: `IW_ENCODE_EXT_TX_SEQ_VALID' undeclared (first use in this function) make[2]: *** [/usr/src/ieee80211-1.1.5/ieee80211_wx.o] Error 1 make[1]: *** [_module_/usr/src/ieee80211-1.1.5] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.11-6mdk' make: *** [modules] Error 2 |
From: James K. <jke...@li...> - 2005-10-17 22:29:06
|
We just uploaded the 1.1.5 snapshot of the ieee80211 subsystem. This catches the snapshots up to the latest set of patches available on the GIT overlay at rsync://bughost.org/repos/ieee80211-delta/.git/ You can download the snapshot from http://ieee80211.sf.net/#downloads If anyone would like to provide a makefile target that would install the ieee80211 subsystem into the current kernel (patching Kconfig, Makefile as appropriate, etc.) there are a lot of users that would appreciate that. James Changes in 1.1.5 * Lindent and trailing whitespace script executed ieee80211 subsystem * When an assoc_resp is received the network structure is not completely initialized which can cause problems for drivers that expect the network structure to be completely filled in (thanks to Ivo van Doorn) * Currently the info_element is parsed by 2 seperate functions, this results in a lot of duplicate code. (thanks to Ivo van Doorn) * Fix implicit nocast warnings in ieee80211 code: net/ieee80211/ieee80211_tx.c:215:9: warning: implicit cast to nocast type (thanks to Randy Dunlap) * Move the ieee80211_is_ofdm_rate function to the ieee80211.h header, and I also added the ieee80211_is_cck_rate counterpart (thanks to Ivo van Doorn) * Fixes a typo in ieee80211.h: ieee82011_deauth -> ieee80211_deauth (thanks to Michael Wu) * Changed crypto method from requiring a struct ieee80211_device reference to the init handler. Instead we now have a get/set flags method for each crypto component. * Added handle_deauth() callback , enhanced tkip/ccmp support of varying hw/sw offload. * Fixed #768 Keep auth mode unchanged after iwconfig key off/on cycle * Switched to sscanf in store_debug_level |
From: Michael B. <mb...@fr...> - 2005-10-13 23:18:18
|
On Friday 14 October 2005 01:04, you wrote: > Michael Buesch wrote: > > @@ -221,11 +221,13 @@ static struct ieee80211_txb *ieee80211_a > > txb->frag_size = txb_size; > > > > for (i = 0; i < nr_frags; i++) { > > - txb->fragments[i] = dev_alloc_skb(txb_size); > > + txb->fragments[i] = __dev_alloc_skb(txb_size + headroom, > > + gfp_mask | GFP_DMA); > > if (unlikely(!txb->fragments[i])) { > > i--; > > Very wrong. GFP_DMA means ISA DMA. > > See pci_map_xxx() and other DMA API functions. Ok, the size issue is still valid and the real reason for doing this patch. Please apply this: ieee80211: Use tx_headroom --- linux-2.6.14-rc4-git2/net/ieee80211/ieee80211_tx.c.orig 2005-10-13 22:45:13.000000000 +0200 +++ linux-2.6.14-rc4-git2/net/ieee80211/ieee80211_tx.c 2005-10-14 01:11:29.000000000 +0200 @@ -207,7 +207,7 @@ void ieee80211_txb_free(struct ieee80211 } static struct ieee80211_txb *ieee80211_alloc_txb(int nr_frags, int txb_size, - gfp_t gfp_mask) + int headroom, gfp_t gfp_mask) { struct ieee80211_txb *txb; int i; @@ -221,11 +221,13 @@ static struct ieee80211_txb *ieee80211_a txb->frag_size = txb_size; for (i = 0; i < nr_frags; i++) { - txb->fragments[i] = dev_alloc_skb(txb_size); + txb->fragments[i] = __dev_alloc_skb(txb_size + headroom, + gfp_mask); if (unlikely(!txb->fragments[i])) { i--; break; } + skb_reserve(txb->fragments[i], headroom); } if (unlikely(i != nr_frags)) { while (i >= 0) @@ -350,7 +352,8 @@ int ieee80211_xmit(struct sk_buff *skb, /* When we allocate the TXB we allocate enough space for the reserve * and full fragment bytes (bytes_per_frag doesn't include prefix, * postfix, header, FCS, etc.) */ - txb = ieee80211_alloc_txb(nr_frags, frag_size, GFP_ATOMIC); + txb = ieee80211_alloc_txb(nr_frags, frag_size, + ieee->tx_headroom, GFP_ATOMIC); if (unlikely(!txb)) { printk(KERN_WARNING "%s: Could not allocate TXB\n", ieee->dev->name); Signed-off-by: Michael Buesch <mb...@fr...> -- Greetings Michael. |
From: Jeff G. <jg...@po...> - 2005-10-13 23:06:26
|
Michael Buesch wrote: > @@ -221,11 +221,13 @@ static struct ieee80211_txb *ieee80211_a > txb->frag_size = txb_size; > > for (i = 0; i < nr_frags; i++) { > - txb->fragments[i] = dev_alloc_skb(txb_size); > + txb->fragments[i] = __dev_alloc_skb(txb_size + headroom, > + gfp_mask | GFP_DMA); > if (unlikely(!txb->fragments[i])) { > i--; Very wrong. GFP_DMA means ISA DMA. See pci_map_xxx() and other DMA API functions. Jeff |