Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #1926 (closed defect: fixed)

Opened 11 years ago

Last modified 11 years ago

Error with Andrew Morton patchset (2.6.25-mm1)

Reported by: Assigned to:
Priority: minor Milestone: version 0.9.5
Component: madwifi: 802.11 stack Version: trunk
Keywords: Cc:
Patch is attached: 0 Pending:


I found a problem to compile the madwifi using patchset of Andrew Morton to the kernel 2.6.25, the 2.6.25-mm1. The error message was:

  CC [M]  /home/daniel/temp/madwifi/net80211/ieee80211_node.o
  CC [M]  /home/daniel/temp/madwifi/net80211/ieee80211_output.o
  CC [M]  /home/daniel/temp/madwifi/net80211/ieee80211_power.o
/home/daniel/temp/madwifi/net80211/ieee80211_power.c: In function 'ieee80211_pwrsave':
/home/daniel/temp/madwifi/net80211/ieee80211_power.c:247: error: implicit declaration of function '__skb_append'
make[3]: *** [/home/daniel/temp/madwifi/net80211/ieee80211_power.o] Error 1
make[2]: *** [/home/daniel/temp/madwifi/net80211] Error 2
make[1]: *** [_module_/home/daniel/temp/madwifi] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25'
make: ** [modules] Erro 2

Reading the kernel changelog noted that the function was modified. Changed the source "net80211/ieee80211_power.c", in line 247

from : skb_append(tail, skb, &ni->ni_savedq);

to: skb_queue_after(&ni->ni_savedq, skb, tail);

And the compilation and operation (I'm using it now) is apparently ok. I using the svn version.

Change History

05/05/08 00:46:36 changed by anonymous

Shouldn't that be skb_queue_after(&ni->ni_savedq, tail, skb)

commit 7de6c033367ab86f39c7723392caf73325cbf286 Author: Gerrit Renker <> Date: Mon Apr 14 00:05:09 2008 -0700

[SKB]: skb_append = skb_queue_after

This expresses skb_append in terms of skb_queue_after, exploiting that

skb_append(old, new, list) = skb_queue_after(list, old, new).

05/05/08 02:33:20 changed by

You are correct, I typed in the wrong here trac. Excuse me.

The correct is:

age = ((ni->ni_intval * ic->ic_lintval) << 2) / 1024; /* TU -> secs */
	tail = skb_peek_tail(&ni->ni_savedq);
	if (tail != NULL) {
		age -= M_AGE_GET(tail);
		__skb_queue_after(&ni->ni_savedq, tail, skb);
	} else
		__skb_queue_head(&ni->ni_savedq, skb);
	M_AGE_SET(skb, age);
	qlen = IEEE80211_NODE_SAVEQ_QLEN(ni);

05/05/08 06:34:49 changed by mrenzmann

What revision of trunk is that?

05/05/08 06:54:24 changed by mrenzmann

Should be fixed in r3602. Please confirm.

05/06/08 01:13:21 changed by

Yes, this patch fixes the problem. For me, this bug is closed. Thank you very much!

06/06/08 07:43:35 changed by proski

  • status changed from new to closed.
  • resolution set to fixed.

06/06/08 09:20:35 changed by mrenzmann

  • milestone set to version 0.9.5.