2009-10-12 21:20:01

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 0/10] [compat-2.6 and compat-stable] Mostly build fixes

This patch series is for compat-2.6 and compat-stable-2.6.32. I have
compiled compat-wireless against mainline kernel 2.6.25 to 2.6.32. This
was all done with Ubuntu 9.04. compat-wireless should still compile with
openSuse, but I have not tried it.

The compat-stable fixes are addressing some compile problems with older
kernel versions. I have not tested all supported kernels.

The last stable kernel was added later so the number does not match.

Hauke Mehrtens (10):
[compat-2.6 and compat-stable] Export round_jiffies_up again.
[compat-2.6 and compat-stable] Remove unused code
[compat-2.6] Move trace headers
[compat-2.6] Fix compile bug with kernel 2.6.32
[compat-2.6] Remove temporary fix
[compat-2.6] Fix build with kernel < 2.6.27
[compat-2.6] b44 fix
[compat-2.6] refresh patches
[compat-2.6] Add skb_add_rx_frag to backport.
[compat-stable] fix build with recent mainline kernel

compat/compat-2.6.27.h | 20 +++++
compat/compat-2.6.28.c | 12 +++-
compat/compat-2.6.28.h | 32 ++------
compat/patches/01-netdev.patch | 77 ++++++--------------
compat/patches/06-header-changes.patch | 19 -----
compat/patches/08-rename-iwl4965-config.patch | 2 +-
compat/patches/09-threaded-irq.patch | 4 +-
.../patches/10-add-wext-handlers-to-netdev.patch | 2 +-
compat/patches/12-iw_handler-changes.patch | 7 ++-
compat/patches/13-trace.patch | 35 ++++++++-
scripts/admin-update.sh | 2 +-
11 files changed, 101 insertions(+), 111 deletions(-)



2009-10-13 19:40:23

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 1/9] [compat-2.6 and compat-stable] Export round_jiffies_up again.

On Mon, Oct 12, 2009 at 2:19 PM, Hauke Mehrtens <[email protected]> wrote:
> The 2.6.27 mainline kernel does not export round_jiffies_up. It looks
> like the openSuse kernel 2.6.27 does export this symbol. Rename the
> compat symbol to not conflict with the openSuse kernel.
>
> CC: [email protected]
> Signed-off-by: Hauke Mehrtens <[email protected]>
> ---
>  compat/compat-2.6.28.c |    2 --
>  compat/compat-2.6.28.h |    5 +++++
>  2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/compat/compat-2.6.28.c b/compat/compat-2.6.28.c
> index 613b009..33871a2 100644
> --- a/compat/compat-2.6.28.c
> +++ b/compat/compat-2.6.28.c
> @@ -260,7 +260,6 @@ static unsigned long round_jiffies_common(unsigned long j, int cpu,
>        return j;
>  }
>
> -#if 0
>  /**
>  * round_jiffies_up - function to round jiffies up to a full second
>  * @j: the time in (absolute) jiffies that should be rounded
> @@ -275,6 +274,5 @@ unsigned long round_jiffies_up(unsigned long j)
>        return round_jiffies_common(j, raw_smp_processor_id(), true);
>  }
>  EXPORT_SYMBOL_GPL(round_jiffies_up);
> -#endif

Did you then mean to rename the above to backport_round_jiffies_up then?

>  #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) */
> diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
> index 4e5a2ef..90d080c 100644
> --- a/compat/compat-2.6.28.h
> +++ b/compat/compat-2.6.28.h
> @@ -195,6 +195,11 @@ static inline void tracepoint_update_probe_range(struct tracepoint *begin,
>
>  #endif
>
> +/* openSuse includes round_jiffies_up in it's kernel 2.6.27.
> + * This is needed to prevent conflicts with the openSuse definition.
> + */
> +#define round_jiffies_up backport_round_jiffies_up
> +
>  unsigned long round_jiffies_up(unsigned long j);
>
>  #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)) */

because otherwise then we have here the define so existing
wireless-testing code maps to the backport_round_jiffies_up(), and the
declaration of round_jiffies_up() also gets preprocessed as
backport_round_jiffies_up() -- the only thing missing would be the
compat exported symbol but I saw that didn't change.

Luis

2009-10-13 19:57:02

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 6/9] [compat-2.6] Fix build with kernel < 2.6.27

On Mon, Oct 12, 2009 at 2:19 PM, Hauke Mehrtens <[email protected]> wrote:
> iw_handler.h have changed in kernel 2.6.27.
> For older kernel we need some extra backport code.
>
> Signed-off-by: Hauke Mehrtens <[email protected]>
> ---
>  compat/compat-2.6.27.h |   20 ++++++++++++++++++++
>  1 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/compat/compat-2.6.27.h b/compat/compat-2.6.27.h
> index 2543482..8cc6c22 100644
> --- a/compat/compat-2.6.27.h
> +++ b/compat/compat-2.6.27.h
> @@ -163,6 +163,26 @@ static inline void list_splice_tail_init(struct list_head *list,
>  extern unsigned int mmc_align_data_size(struct mmc_card *, unsigned int);
>  extern unsigned int sdio_align_size(struct sdio_func *func, unsigned int sz);
>
> +/** Include iw_handler.h before we redefine some methods **/
> +#include <net/iw_handler.h>
> +
> +#define iwe_stream_add_value(info, event, value, ends, iwe, event_len) iwe_stream_add_value(event, value, ends, iwe, event_len)
> +#define iwe_stream_add_point(info, stream, ends, iwe, extra) iwe_stream_add_point(stream, ends, iwe, extra)
> +#define iwe_stream_add_event(info, stream, ends, iwe, event_len) iwe_stream_add_event(stream, ends, iwe, event_len)
> +
> +/* Flags available in struct iw_request_info */
> +#define IW_REQUEST_FLAG_COMPAT 0x0001  /* Compat ioctl call */
> +
> +static inline int iwe_stream_lcp_len(struct iw_request_info *info)
> +{
> +#ifdef CONFIG_COMPAT
> +       if (info->flags & IW_REQUEST_FLAG_COMPAT)
> +               return IW_EV_COMPAT_LCP_LEN;
> +#endif
> +       return IW_EV_LCP_LEN;
> +}
> +/** source: include/net/iw_handler.h **/
> +
>  #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) */
>
>  #endif /* LINUX_26_27_COMPAT_H */

I guess for older releases where we copied over the iw_handler.h we
were then sending the kernel the wrong data for these callers. We
could just try to propagate the iw_handler changes to
compat-wireless-stable. This would probably fix a few unreported
issues.

Luis

2009-10-14 00:19:00

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

On Tue, Oct 13, 2009 at 5:12 PM, Hin-Tak Leung <[email protected]> wrote:
> On Tue, Oct 13, 2009 at 10:12 PM, Hauke Mehrtens <[email protected]> wrote:
>
>> The condition #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)) was
>> added recently because without it openSuse with kernel 2.6.27 will not
>> compile. OpenSuse backports the tracepoint part into their 2.6.27 kernel.
>
> I remember that thread now. It is probably wrong as a matter of policy
> to incorporate patches for distro kernels with backport bits through.
> - I am not saying you shouldn't be helpful and provide them - after
> all, more users == better testing, and no doubt the investigation
> itself throws more insights on the detailed mechanisms - but it is
> just that compat-wireless probably should not try to support arbitrary
> and substantial changes from a vanilla kernel. I know Suse is popular
> so it is important to support Suse users, but I am wondering if
> distro-specific changes should be separate or at least, clearly
> documented.

Not sure why opensuse added round_jiffies_up() to their 2.6.27
kernels, greg may know better, but since its only once change I'm
willing to live with what we did to resolve for it.

Luis

2009-10-13 20:12:54

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 0/10] [compat-2.6 and compat-stable] Mostly build fixes

On Mon, Oct 12, 2009 at 2:19 PM, Hauke Mehrtens <[email protected]> wrote:
> This patch series is for compat-2.6 and compat-stable-2.6.32. I have
> compiled compat-wireless against mainline kernel 2.6.25 to 2.6.32. This
> was all done with Ubuntu 9.04. compat-wireless should still compile with
> openSuse, but I have not tried it.
>
> The compat-stable fixes are addressing some compile problems with older
> kernel versions. I have not tested all supported kernels.
>
> The last stable kernel was added later so the number does not match.

Thanks -- I've applied all these patches to bleeding edge, will apply
the stable patches to stable now. I was doubtful of propagating the
iw_handler changes to stable compat-wireless releases but your patch
clarifies we should otherwise we end up sending incorrect data.

Luis

2009-10-14 00:13:33

by Hin-Tak Leung

[permalink] [raw]
Subject: Re: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

On Tue, Oct 13, 2009 at 10:12 PM, Hauke Mehrtens <[email protected]> wrote:

> The condition #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)) was
> added recently because without it openSuse with kernel 2.6.27 will not
> compile. OpenSuse backports the tracepoint part into their 2.6.27 kernel.

I remember that thread now. It is probably wrong as a matter of policy
to incorporate patches for distro kernels with backport bits through.
- I am not saying you shouldn't be helpful and provide them - after
all, more users == better testing, and no doubt the investigation
itself throws more insights on the detailed mechanisms - but it is
just that compat-wireless probably should not try to support arbitrary
and substantial changes from a vanilla kernel. I know Suse is popular
so it is important to support Suse users, but I am wondering if
distro-specific changes should be separate or at least, clearly
documented.

2009-10-12 21:20:44

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 7/9] [compat-2.6] b44 fix

encapsulate $ in bash script

Signed-off-by: Hauke Mehrtens <[email protected]>
---
scripts/admin-update.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/admin-update.sh b/scripts/admin-update.sh
index 84f58a4..f85dacf 100755
--- a/scripts/admin-update.sh
+++ b/scripts/admin-update.sh
@@ -149,7 +149,7 @@ done
# b44 is dependent on ssb, so its has to be rebuilt as well.
DIR="drivers/net"
cp $GIT_TREE/$DIR/b44.[ch] $DIR
-echo "obj-$(CONFIG_B44) += b44.o" > $DIR/Makefile
+echo "obj-\$(CONFIG_B44) += b44.o" > $DIR/Makefile

# Misc
mkdir -p drivers/misc/eeprom/
--
1.6.2.1


2009-10-12 21:20:08

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 3/9] [compat-2.6] Move trace headers

Move tracepoint headers into own patch file.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/patches/06-header-changes.patch | 19 -----------------
compat/patches/13-trace.patch | 35 +++++++++++++++++++++++++++++--
2 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/compat/patches/06-header-changes.patch b/compat/patches/06-header-changes.patch
index b2e8fd8..ee0be7f 100644
--- a/compat/patches/06-header-changes.patch
+++ b/compat/patches/06-header-changes.patch
@@ -40,25 +40,6 @@ cases.
#include <linux/spi/spi.h>
#include <linux/spi/wl12xx.h>

---- a/net/mac80211/driver-trace.h 2009-08-18 16:19:34.574352433 -0700
-+++ b/net/mac80211/driver-trace.h 2009-08-18 16:19:35.694367614 -0700
-@@ -1,7 +1,9 @@
- #if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
- #define __MAC80211_DRIVER_TRACE
-
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
- #include <linux/tracepoint.h>
-+#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27)) */
- #include <net/mac80211.h>
- #include "ieee80211_i.h"
-
-@@ -669,4 +671,6 @@ TRACE_EVENT(drv_ampdu_action,
- #define TRACE_INCLUDE_PATH .
- #undef TRACE_INCLUDE_FILE
- #define TRACE_INCLUDE_FILE driver-trace
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30))
- #include <trace/define_trace.h>
-+#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30)) */
--- a/net/mac80211/key.c
+++ b/net/mac80211/key.c
@@ -21,6 +21,9 @@
diff --git a/compat/patches/13-trace.patch b/compat/patches/13-trace.patch
index c43e723..144cae5 100644
--- a/compat/patches/13-trace.patch
+++ b/compat/patches/13-trace.patch
@@ -4,12 +4,41 @@ in or compat headers.

[1] http://lxr.linux.no/#linux+v2.6.31/include/trace/define_trace.h

---- a/drivers/net/wireless/iwlwifi/iwl-devtrace.h 2009-10-08 16:21:09.000000000 -0400
-+++ b/drivers/net/wireless/iwlwifi/iwl-devtrace.h 2009-10-08 16:23:34.000000000 -0400
+--- a/drivers/net/wireless/iwlwifi/iwl-devtrace.h
++++ b/drivers/net/wireless/iwlwifi/iwl-devtrace.h
+@@ -1,7 +1,9 @@
+ #if !defined(__IWLWIFI_DEVICE_TRACE) || defined(TRACE_HEADER_MULTI_READ)
+ #define __IWLWIFI_DEVICE_TRACE
+
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
+ #include <linux/tracepoint.h>
++#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27)) */
+ #include "iwl-dev.h"
+
+ #if !defined(CONFIG_IWLWIFI_DEVICE_TRACING) || defined(__CHECKER__)
@@ -175,4 +175,6 @@
#define TRACE_INCLUDE_PATH .
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE iwl-devtrace
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30))
#include <trace/define_trace.h>
+#endif
+--- a/net/mac80211/driver-trace.h 2009-08-18 16:19:34.574352433 -0700
++++ b/net/mac80211/driver-trace.h 2009-08-18 16:19:35.694367614 -0700
+@@ -1,7 +1,9 @@
+ #if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
+ #define __MAC80211_DRIVER_TRACE
+
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27))
+ #include <linux/tracepoint.h>
++#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27)) */
+ #include <net/mac80211.h>
+ #include "ieee80211_i.h"
+
+@@ -669,4 +671,6 @@ TRACE_EVENT(drv_ampdu_action,
+ #define TRACE_INCLUDE_PATH .
+ #undef TRACE_INCLUDE_FILE
+ #define TRACE_INCLUDE_FILE driver-trace
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30))
+ #include <trace/define_trace.h>
++#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30)) */
--
1.6.2.1


2009-10-13 02:33:29

by Hin-Tak Leung

[permalink] [raw]
Subject: Re: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

On Mon, Oct 12, 2009 at 10:19 PM, Hauke Mehrtens <[email protected]> wrote:
> LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28) can not be true in
> compat-2.6.28.h. The definitions are not needed in compat-wireless any
> more. Removing this does not break compiling with mainline kernel 2.6.25
> to 2.6.32

Hmm, I am not questioning your decision for removing unused code, but
if they are genuinely unused, why were they introduced in the first
place?

As a side comment, while it is unusual (compared to the usual <
version_X), it is a possible scenario for compat-X.h to have codes
that conditions on LINUX_VERSION_CODE >= version_X - and if memory
serves the bits you are removing were added only recently; and they
looks like what they are (i.e. public kernel symbols became
private-static during 2.6.27<->2.6.28 or the other way round).

I guess I am looking for a reason why they were added in the first
place, if they serve no purpose.

>
> Signed-off-by: Hauke Mehrtens <[email protected]>
> ---
> compat/compat-2.6.28.h | 24 ------------------------
> 1 files changed, 0 insertions(+), 24 deletions(-)
>
> diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
> index 90d080c..dd223c6 100644
> --- a/compat/compat-2.6.28.h
> +++ b/compat/compat-2.6.28.h
> @@ -146,22 +146,6 @@ static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,
> }
> } /* From include/linux/skbuff.h */
>
> -struct module;
> -struct tracepoint;
> -
> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
> -struct tracepoint {
> - const char *name; /* Tracepoint name */
> - int state; /* State. */
> - void **funcs;
> -} __attribute__((aligned(32))); /*
> - * Aligned on 32 bytes because it is
> - * globally visible and gcc happily
> - * align these on the structure size.
> - * Keep in sync with vmlinux.lds.h.
> - */
> -#endif
> -
> #ifndef DECLARE_TRACE
>
> #define TP_PROTO(args...) args
> @@ -181,17 +165,9 @@ struct tracepoint {
> return -ENOSYS; \
> }
>
> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
> -#define DEFINE_TRACE(name)
> -#endif
> #define EXPORT_TRACEPOINT_SYMBOL_GPL(name)
> #define EXPORT_TRACEPOINT_SYMBOL(name)
>
> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
> -static inline void tracepoint_update_probe_range(struct tracepoint *begin,
> - struct tracepoint *end)
> -{ }
> -#endif
>
> #endif
>
> --
> 1.6.2.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2009-10-12 21:20:01

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 1/9] [compat-2.6 and compat-stable] Export round_jiffies_up again.

The 2.6.27 mainline kernel does not export round_jiffies_up. It looks
like the openSuse kernel 2.6.27 does export this symbol. Rename the
compat symbol to not conflict with the openSuse kernel.

CC: [email protected]
Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/compat-2.6.28.c | 2 --
compat/compat-2.6.28.h | 5 +++++
2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/compat/compat-2.6.28.c b/compat/compat-2.6.28.c
index 613b009..33871a2 100644
--- a/compat/compat-2.6.28.c
+++ b/compat/compat-2.6.28.c
@@ -260,7 +260,6 @@ static unsigned long round_jiffies_common(unsigned long j, int cpu,
return j;
}

-#if 0
/**
* round_jiffies_up - function to round jiffies up to a full second
* @j: the time in (absolute) jiffies that should be rounded
@@ -275,6 +274,5 @@ unsigned long round_jiffies_up(unsigned long j)
return round_jiffies_common(j, raw_smp_processor_id(), true);
}
EXPORT_SYMBOL_GPL(round_jiffies_up);
-#endif

#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) */
diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
index 4e5a2ef..90d080c 100644
--- a/compat/compat-2.6.28.h
+++ b/compat/compat-2.6.28.h
@@ -195,6 +195,11 @@ static inline void tracepoint_update_probe_range(struct tracepoint *begin,

#endif

+/* openSuse includes round_jiffies_up in it's kernel 2.6.27.
+ * This is needed to prevent conflicts with the openSuse definition.
+ */
+#define round_jiffies_up backport_round_jiffies_up
+
unsigned long round_jiffies_up(unsigned long j);

#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)) */
--
1.6.2.1


2009-10-12 21:20:04

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28) can not be true in
compat-2.6.28.h. The definitions are not needed in compat-wireless any
more. Removing this does not break compiling with mainline kernel 2.6.25
to 2.6.32

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/compat-2.6.28.h | 24 ------------------------
1 files changed, 0 insertions(+), 24 deletions(-)

diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
index 90d080c..dd223c6 100644
--- a/compat/compat-2.6.28.h
+++ b/compat/compat-2.6.28.h
@@ -146,22 +146,6 @@ static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,
}
} /* From include/linux/skbuff.h */

-struct module;
-struct tracepoint;
-
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
-struct tracepoint {
- const char *name; /* Tracepoint name */
- int state; /* State. */
- void **funcs;
-} __attribute__((aligned(32))); /*
- * Aligned on 32 bytes because it is
- * globally visible and gcc happily
- * align these on the structure size.
- * Keep in sync with vmlinux.lds.h.
- */
-#endif
-
#ifndef DECLARE_TRACE

#define TP_PROTO(args...) args
@@ -181,17 +165,9 @@ struct tracepoint {
return -ENOSYS; \
}

-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
-#define DEFINE_TRACE(name)
-#endif
#define EXPORT_TRACEPOINT_SYMBOL_GPL(name)
#define EXPORT_TRACEPOINT_SYMBOL(name)

-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
-static inline void tracepoint_update_probe_range(struct tracepoint *begin,
- struct tracepoint *end)
-{ }
-#endif

#endif

--
1.6.2.1


2009-10-14 04:11:10

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

On Tue, Oct 13, 2009 at 05:18:04PM -0700, Luis R. Rodriguez wrote:
> On Tue, Oct 13, 2009 at 5:12 PM, Hin-Tak Leung <[email protected]> wrote:
> > On Tue, Oct 13, 2009 at 10:12 PM, Hauke Mehrtens <[email protected]> wrote:
> >
> >> The condition #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)) was
> >> added recently because without it openSuse with kernel 2.6.27 will not
> >> compile. OpenSuse backports the tracepoint part into their 2.6.27 kernel.
> >
> > I remember that thread now. It is probably wrong as a matter of policy
> > to incorporate patches for distro kernels with backport bits through.
> > - I am not saying you shouldn't be helpful and provide them - after
> > all, more users == better testing, and no doubt the investigation
> > itself throws more insights on the detailed mechanisms - but it is
> > just that compat-wireless probably should not try to support arbitrary
> > and substantial changes from a vanilla kernel. I know Suse is popular
> > so it is important to support Suse users, but I am wondering if
> > distro-specific changes should be separate or at least, clearly
> > documented.
>
> Not sure why opensuse added round_jiffies_up() to their 2.6.27
> kernels, greg may know better, but since its only once change I'm
> willing to live with what we did to resolve for it.

We added that to the SLE 11 kernel as it was requred for a bunch of
block layer backports to resolve a number of issues that we needed to
do.

Hope this helps explain things,

greg k-h

2009-10-12 21:20:43

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 4/9] [compat-2.6] Fix compile bug with kernel 2.6.32


Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/patches/12-iw_handler-changes.patch | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/compat/patches/12-iw_handler-changes.patch b/compat/patches/12-iw_handler-changes.patch
index 50c9b1a..7a700b1 100644
--- a/compat/patches/12-iw_handler-changes.patch
+++ b/compat/patches/12-iw_handler-changes.patch
@@ -1,11 +1,14 @@
--- a/drivers/net/wireless/ipw2x00/ipw2100.c 2009-10-08 11:01:52.000000000 -0400
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c 2009-10-08 11:01:43.000000000 -0400
-@@ -6057,7 +6057,7 @@
+@@ -6057,7 +6057,11 @@

dev->ethtool_ops = &ipw2100_ethtool_ops;
dev->wireless_handlers = &ipw2100_wx_handler_def;
-- priv->wireless_data.libipw = priv->ieee;
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,31))
+ priv->wireless_data.libipw = priv->ieee;
++#else
+ priv->wireless_data.ieee80211 = (struct ieee80211_device *) priv->ieee;
++#endif
dev->wireless_data = &priv->wireless_data;
dev->watchdog_timeo = 3 * HZ;
dev->irq = 0;
--
1.6.2.1


2009-10-12 21:20:43

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 5/9] [compat-2.6] Remove temporary fix

Remove temporary fix from 6dae19ce42f4f6424a37c25f9ec393c1b4bc5c32
it is now in John's tree

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/patches/01-netdev.patch | 35 -----------------------------------
1 files changed, 0 insertions(+), 35 deletions(-)

diff --git a/compat/patches/01-netdev.patch b/compat/patches/01-netdev.patch
index a619a01..6ec1827 100644
--- a/compat/patches/01-netdev.patch
+++ b/compat/patches/01-netdev.patch
@@ -534,38 +534,3 @@ without creating a headache on maintenance of the pathes.
dev->destructor = free_netdev;
ether_setup(dev);
dev->tx_queue_len = 0;
-
-
-Remove this after John picks this up:
-
-From 8fe3f6159c61a7c88a2bd160e8281d62e3978bed Mon Sep 17 00:00:00 2001
-From: Luis R. Rodriguez <[email protected]>
-Date: Thu, 8 Oct 2009 16:43:57 -0400
-Subject: [PATCH] libertas: remove double assignment of dev->netdev_ops
-
-This came in through the patch titled:
- libertas: first stab at cfg80211 support
-
-I only noticed it because it breaks compat-wireless :)
-
-Cc: Holger Schurig <[email protected]>
-Signed-off-by: Luis R. Rodriguez <[email protected]>
----
- drivers/net/wireless/libertas/main.c | 1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index e6da1df..87bfd17 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1276,7 +1276,6 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
- goto err_adapter;
- }
-
-- dev->netdev_ops = &lbs_netdev_ops;
- dev->ieee80211_ptr = wdev;
- dev->ml_priv = priv;
- SET_NETDEV_DEV(dev, dmdev);
---
-1.6.0.4
-
--
1.6.2.1


2009-10-12 21:20:43

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 6/9] [compat-2.6] Fix build with kernel < 2.6.27

iw_handler.h have changed in kernel 2.6.27.
For older kernel we need some extra backport code.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/compat-2.6.27.h | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/compat/compat-2.6.27.h b/compat/compat-2.6.27.h
index 2543482..8cc6c22 100644
--- a/compat/compat-2.6.27.h
+++ b/compat/compat-2.6.27.h
@@ -163,6 +163,26 @@ static inline void list_splice_tail_init(struct list_head *list,
extern unsigned int mmc_align_data_size(struct mmc_card *, unsigned int);
extern unsigned int sdio_align_size(struct sdio_func *func, unsigned int sz);

+/** Include iw_handler.h before we redefine some methods **/
+#include <net/iw_handler.h>
+
+#define iwe_stream_add_value(info, event, value, ends, iwe, event_len) iwe_stream_add_value(event, value, ends, iwe, event_len)
+#define iwe_stream_add_point(info, stream, ends, iwe, extra) iwe_stream_add_point(stream, ends, iwe, extra)
+#define iwe_stream_add_event(info, stream, ends, iwe, event_len) iwe_stream_add_event(stream, ends, iwe, event_len)
+
+/* Flags available in struct iw_request_info */
+#define IW_REQUEST_FLAG_COMPAT 0x0001 /* Compat ioctl call */
+
+static inline int iwe_stream_lcp_len(struct iw_request_info *info)
+{
+#ifdef CONFIG_COMPAT
+ if (info->flags & IW_REQUEST_FLAG_COMPAT)
+ return IW_EV_COMPAT_LCP_LEN;
+#endif
+ return IW_EV_LCP_LEN;
+}
+/** source: include/net/iw_handler.h **/
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) */

#endif /* LINUX_26_27_COMPAT_H */
--
1.6.2.1


2009-10-12 21:20:06

by Hauke Mehrtens

[permalink] [raw]
Subject: [compat-stable] fix build with recent mainline kernel

DIV_ROUND_CLOSEST is needed by the b44 driver
refresh patch for rfkill

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/compat-2.6.29.h | 7 +++++++
compat/patches/03-rfkill.patch | 22 +++++++++++-----------
2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/compat/compat-2.6.29.h b/compat/compat-2.6.29.h
index 8ea43cb..fc7d983 100644
--- a/compat/compat-2.6.29.h
+++ b/compat/compat-2.6.29.h
@@ -43,6 +43,13 @@ static inline struct sk_buff *skb_queue_prev(const struct sk_buff_head *list,

extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor);

+#define DIV_ROUND_CLOSEST(x, divisor)( \
+{ \
+ typeof(divisor) __divisor = divisor; \
+ (((x) + ((__divisor) / 2)) / (__divisor)); \
+} \
+)
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)) */

#endif /* LINUX_26_29_COMPAT_H */
diff --git a/compat/patches/03-rfkill.patch b/compat/patches/03-rfkill.patch
index dadcb9a..d7a7e7f 100644
--- a/compat/patches/03-rfkill.patch
+++ b/compat/patches/03-rfkill.patch
@@ -71,10 +71,10 @@ This would do the policing from within mac80211.
#include <linux/mutex.h>
-#include <linux/rfkill.h>
+#include <linux/rfkill_backport.h>
+ #include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/miscdevice.h>
- #include <linux/wait.h>
-@@ -61,7 +61,7 @@
+@@ -62,7 +62,7 @@
const struct rfkill_ops *ops;
void *data;

@@ -83,7 +83,7 @@ This would do the policing from within mac80211.
struct led_trigger led_trigger;
const char *ledtrigname;
#endif
-@@ -122,7 +122,7 @@
+@@ -123,7 +123,7 @@
static bool rfkill_epo_lock_active;


@@ -92,7 +92,7 @@ This would do the policing from within mac80211.
static void rfkill_led_trigger_event(struct rfkill *rfkill)
{
struct led_trigger *trigger;
-@@ -316,7 +316,7 @@
+@@ -317,7 +317,7 @@
rfkill_event(rfkill);
}

@@ -101,7 +101,7 @@ This would do the policing from within mac80211.
static atomic_t rfkill_input_disabled = ATOMIC_INIT(0);

/**
-@@ -776,7 +776,7 @@
+@@ -777,7 +777,7 @@
}

static struct class rfkill_class = {
@@ -110,7 +110,7 @@ This would do the policing from within mac80211.
.dev_release = rfkill_release,
.dev_attrs = rfkill_dev_attrs,
.dev_uevent = rfkill_dev_uevent,
-@@ -922,7 +922,7 @@
+@@ -923,7 +923,7 @@
if (!rfkill->persistent || rfkill_epo_lock_active) {
schedule_work(&rfkill->sync_work);
} else {
@@ -119,7 +119,7 @@ This would do the policing from within mac80211.
bool soft_blocked = !!(rfkill->state & RFKILL_BLOCK_SW);

if (!atomic_read(&rfkill_input_disabled))
-@@ -1150,7 +1150,7 @@
+@@ -1151,7 +1151,7 @@
list_for_each_entry_safe(ev, tmp, &data->events, list)
kfree(ev);

@@ -128,7 +128,7 @@ This would do the policing from within mac80211.
if (data->input_handler)
if (atomic_dec_return(&rfkill_input_disabled) == 0)
printk(KERN_DEBUG "rfkill: input handler enabled\n");
-@@ -1161,7 +1161,7 @@
+@@ -1162,7 +1162,7 @@
return 0;
}

@@ -137,7 +137,7 @@ This would do the policing from within mac80211.
static long rfkill_fop_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{
-@@ -1193,7 +1193,7 @@
+@@ -1194,7 +1194,7 @@
.write = rfkill_fop_write,
.poll = rfkill_fop_poll,
.release = rfkill_fop_release,
@@ -146,7 +146,7 @@ This would do the policing from within mac80211.
.unlocked_ioctl = rfkill_fop_ioctl,
.compat_ioctl = rfkill_fop_ioctl,
#endif
-@@ -1223,7 +1223,7 @@
+@@ -1224,7 +1224,7 @@
goto out;
}

@@ -155,7 +155,7 @@ This would do the policing from within mac80211.
error = rfkill_handler_init();
if (error) {
misc_deregister(&rfkill_miscdev);
-@@ -1239,7 +1239,7 @@
+@@ -1240,7 +1240,7 @@

static void __exit rfkill_exit(void)
{
--
1.6.2.1


2009-10-13 21:12:53

by Hauke Mehrtens

[permalink] [raw]
Subject: Re: [PATCH 2/9] [compat-2.6 and compat-stable] Remove unused code

Hin-Tak Leung wrote:
> On Mon, Oct 12, 2009 at 10:19 PM, Hauke Mehrtens <[email protected]> wrote:
>> LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28) can not be true in
>> compat-2.6.28.h. The definitions are not needed in compat-wireless any
>> more. Removing this does not break compiling with mainline kernel 2.6.25
>> to 2.6.32
>
> Hmm, I am not questioning your decision for removing unused code, but
> if they are genuinely unused, why were they introduced in the first
> place?

I have added them in edcf845e4bd65d00132f02237bee3fd3daca318f but I can
not find any references to them in compat-wireless. For me it looks like
it was a mistake to introduce them. The commit comment does not say
anything about it (my bad) and I forgot why I added it.

> As a side comment, while it is unusual (compared to the usual <
> version_X), it is a possible scenario for compat-X.h to have codes
> that conditions on LINUX_VERSION_CODE >= version_X - and if memory
> serves the bits you are removing were added only recently; and they
> looks like what they are (i.e. public kernel symbols became
> private-static during 2.6.27<->2.6.28 or the other way round).

The condition #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)) was
added recently because without it openSuse with kernel 2.6.27 will not
compile. OpenSuse backports the tracepoint part into their 2.6.27 kernel.

> I guess I am looking for a reason why they were added in the first
> place, if they serve no purpose.
>
>> Signed-off-by: Hauke Mehrtens <[email protected]>
>> ---
>> compat/compat-2.6.28.h | 24 ------------------------
>> 1 files changed, 0 insertions(+), 24 deletions(-)
>>
>> diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
>> index 90d080c..dd223c6 100644
>> --- a/compat/compat-2.6.28.h
>> +++ b/compat/compat-2.6.28.h
>> @@ -146,22 +146,6 @@ static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,
>> }
>> } /* From include/linux/skbuff.h */
>>
>> -struct module;
>> -struct tracepoint;
>> -
>> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
>> -struct tracepoint {
>> - const char *name; /* Tracepoint name */
>> - int state; /* State. */
>> - void **funcs;
>> -} __attribute__((aligned(32))); /*
>> - * Aligned on 32 bytes because it is
>> - * globally visible and gcc happily
>> - * align these on the structure size.
>> - * Keep in sync with vmlinux.lds.h.
>> - */
>> -#endif
>> -
>> #ifndef DECLARE_TRACE
>>
>> #define TP_PROTO(args...) args
>> @@ -181,17 +165,9 @@ struct tracepoint {
>> return -ENOSYS; \
>> }
>>
>> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
>> -#define DEFINE_TRACE(name)
>> -#endif
>> #define EXPORT_TRACEPOINT_SYMBOL_GPL(name)
>> #define EXPORT_TRACEPOINT_SYMBOL(name)
>>
>> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
>> -static inline void tracepoint_update_probe_range(struct tracepoint *begin,
>> - struct tracepoint *end)
>> -{ }
>> -#endif
>>
>> #endif
>>
>> --
>> 1.6.2.1



Attachments:
signature.asc (898.00 B)
OpenPGP digital signature

2009-10-12 21:20:46

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 9/9] [compat-2.6] Add skb_add_rx_frag to backport.

This is needed by iwl-3945.c.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/compat-2.6.28.c | 10 ++++++++++
compat/compat-2.6.28.h | 3 +++
2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/compat/compat-2.6.28.c b/compat/compat-2.6.28.c
index 33871a2..c379b19 100644
--- a/compat/compat-2.6.28.c
+++ b/compat/compat-2.6.28.c
@@ -275,4 +275,14 @@ unsigned long round_jiffies_up(unsigned long j)
}
EXPORT_SYMBOL_GPL(round_jiffies_up);

+void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off,
+ int size)
+{
+ skb_fill_page_desc(skb, i, page, off, size);
+ skb->len += size;
+ skb->data_len += size;
+ skb->truesize += size;
+}
+EXPORT_SYMBOL(skb_add_rx_frag);
+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) */
diff --git a/compat/compat-2.6.28.h b/compat/compat-2.6.28.h
index dd223c6..f158cbe 100644
--- a/compat/compat-2.6.28.h
+++ b/compat/compat-2.6.28.h
@@ -178,6 +178,9 @@ static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,

unsigned long round_jiffies_up(unsigned long j);

+extern void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page,
+ int off, int size);
+
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)) */

#endif /* LINUX_26_28_COMPAT_H */
--
1.6.2.1


2009-10-13 20:08:49

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 1/9] [compat-2.6 and compat-stable] Export round_jiffies_up again.

On Tue, Oct 13, 2009 at 12:39 PM, Luis R. Rodriguez
<[email protected]> wrote:

> because otherwise then we have here the define so existing
> wireless-testing code maps to the backport_round_jiffies_up(), and the
> declaration of round_jiffies_up() also gets preprocessed as
> backport_round_jiffies_up() -- the only thing missing would be the
> compat exported symbol but I saw that didn't change.

Come to think of it -- because of the define you added the
compat-2.6.28 code *will* rename the code to add the backport_ prefix
so that is why this compiles. I'll leave it like that. Thanks.

Luis

2009-10-12 21:20:46

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 8/9] [compat-2.6] refresh patches


Signed-off-by: Hauke Mehrtens <[email protected]>
---
compat/patches/01-netdev.patch | 42 ++++++++++----------
compat/patches/08-rename-iwl4965-config.patch | 2 +-
compat/patches/09-threaded-irq.patch | 4 +-
.../patches/10-add-wext-handlers-to-netdev.patch | 2 +-
4 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/compat/patches/01-netdev.patch b/compat/patches/01-netdev.patch
index 6ec1827..dd2e33d 100644
--- a/compat/patches/01-netdev.patch
+++ b/compat/patches/01-netdev.patch
@@ -102,7 +102,7 @@ without creating a headache on maintenance of the pathes.
retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp,
--- a/net/mac80211/iface.c 2009-09-02 14:09:58.557123328 -0700
+++ b/net/mac80211/iface.c 2009-09-02 14:10:02.137093336 -0700
-@@ -642,6 +642,7 @@
+@@ -644,6 +644,7 @@
WARN_ON(flushed);
}

@@ -110,7 +110,7 @@ without creating a headache on maintenance of the pathes.
static const struct net_device_ops ieee80211_dataif_ops = {
.ndo_open = ieee80211_open,
.ndo_stop = ieee80211_stop,
-@@ -661,11 +662,22 @@
+@@ -663,11 +664,22 @@
.ndo_change_mtu = ieee80211_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
};
@@ -133,7 +133,7 @@ without creating a headache on maintenance of the pathes.
dev->destructor = free_netdev;
}

-@@ -680,7 +692,11 @@
+@@ -682,7 +694,11 @@

/* and set some type-dependent values */
sdata->vif.type = type;
@@ -145,7 +145,7 @@ without creating a headache on maintenance of the pathes.
sdata->wdev.iftype = type;

/* only monitor differs */
-@@ -703,7 +719,11 @@
+@@ -705,7 +721,11 @@
break;
case NL80211_IFTYPE_MONITOR:
sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP;
@@ -157,7 +157,7 @@ without creating a headache on maintenance of the pathes.
sdata->u.mntr_flags = MONITOR_FLAG_CONTROL |
MONITOR_FLAG_OTHER_BSS;
break;
-@@ -774,6 +794,8 @@
+@@ -776,6 +796,8 @@
return -ENOMEM;
dev_net_set(ndev, wiphy_net(local->hw.wiphy));

@@ -166,7 +166,7 @@ without creating a headache on maintenance of the pathes.
ndev->needed_headroom = local->tx_headroom +
4*6 /* four MAC addresses */
+ 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
-@@ -782,6 +804,7 @@
+@@ -784,6 +806,7 @@
- ETH_HLEN /* ethernet hard_header_len */
+ IEEE80211_ENCRYPT_HEADROOM;
ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM;
@@ -174,7 +174,7 @@ without creating a headache on maintenance of the pathes.

ret = dev_alloc_name(ndev, ndev->name);
if (ret < 0)
-@@ -815,6 +838,10 @@
+@@ -818,6 +841,10 @@
if (ret)
goto fail;

@@ -335,7 +335,7 @@ without creating a headache on maintenance of the pathes.
priv->wireless_data.libipw = priv->ieee;
--- a/drivers/net/wireless/ipw2x00/ipw2200.c 2009-08-20 13:47:07.311291621 -0700
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c 2009-08-20 13:47:07.783268230 -0700
-@@ -11624,6 +11624,7 @@
+@@ -11626,6 +11626,7 @@
return NETDEV_TX_OK;
}

@@ -343,7 +343,7 @@ without creating a headache on maintenance of the pathes.
static const struct net_device_ops ipw_prom_netdev_ops = {
.ndo_open = ipw_prom_open,
.ndo_stop = ipw_prom_stop,
-@@ -11632,6 +11633,7 @@
+@@ -11634,6 +11635,7 @@
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
};
@@ -351,7 +351,7 @@ without creating a headache on maintenance of the pathes.

static int ipw_prom_alloc(struct ipw_priv *priv)
{
-@@ -11652,7 +11654,13 @@
+@@ -11654,7 +11656,13 @@
memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN);

priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP;
@@ -365,7 +365,7 @@ without creating a headache on maintenance of the pathes.

priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR;
SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev);
-@@ -11680,6 +11688,7 @@
+@@ -11682,6 +11690,7 @@

#endif

@@ -373,7 +373,7 @@ without creating a headache on maintenance of the pathes.
static const struct net_device_ops ipw_netdev_ops = {
.ndo_init = ipw_net_init,
.ndo_open = ipw_net_open,
-@@ -11690,6 +11699,7 @@
+@@ -11692,6 +11701,7 @@
.ndo_change_mtu = libipw_change_mtu,
.ndo_validate_addr = eth_validate_addr,
};
@@ -381,7 +381,7 @@ without creating a headache on maintenance of the pathes.

static int __devinit ipw_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
-@@ -11791,7 +11801,15 @@
+@@ -11793,7 +11803,15 @@
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;

@@ -399,7 +399,7 @@ without creating a headache on maintenance of the pathes.
net_dev->wireless_handlers = &ipw_wx_handler_def;
--- a/drivers/net/wireless/libertas/main.c 2009-10-07 01:42:20.000000000 -0400
+++ b/drivers/net/wireless/libertas/main.c 2009-10-07 01:42:21.000000000 -0400
-@@ -1227,6 +1227,7 @@
+@@ -1229,6 +1229,7 @@
lbs_deb_leave(LBS_DEB_MAIN);
}

@@ -407,7 +407,7 @@ without creating a headache on maintenance of the pathes.
static const struct net_device_ops lbs_netdev_ops = {
.ndo_open = lbs_dev_open,
.ndo_stop = lbs_eth_stop,
-@@ -1237,6 +1238,7 @@
+@@ -1239,6 +1240,7 @@
.ndo_change_mtu = eth_change_mtu,
.ndo_validate_addr = eth_validate_addr,
};
@@ -415,7 +415,7 @@ without creating a headache on maintenance of the pathes.

/**
* @brief This function adds the card. it will probe the
-@@ -1283,7 +1285,16 @@
+@@ -1284,7 +1286,16 @@
wdev->netdev = dev;
priv->dev = dev;

@@ -432,7 +432,7 @@ without creating a headache on maintenance of the pathes.
dev->watchdog_timeo = 5 * HZ;
dev->ethtool_ops = &lbs_ethtool_ops;
#ifdef WIRELESS_EXT
-@@ -1530,6 +1541,7 @@
+@@ -1531,6 +1542,7 @@
EXPORT_SYMBOL_GPL(lbs_stop_card);


@@ -440,7 +440,7 @@ without creating a headache on maintenance of the pathes.
static const struct net_device_ops mesh_netdev_ops = {
.ndo_open = lbs_dev_open,
.ndo_stop = lbs_mesh_stop,
-@@ -1537,6 +1549,7 @@
+@@ -1538,6 +1550,7 @@
.ndo_set_mac_address = lbs_set_mac_address,
.ndo_set_multicast_list = lbs_set_multicast_list,
};
@@ -448,7 +448,7 @@ without creating a headache on maintenance of the pathes.

/**
* @brief This function adds mshX interface
-@@ -1560,7 +1573,15 @@
+@@ -1561,7 +1574,15 @@
mesh_dev->ml_priv = priv;
priv->mesh_dev = mesh_dev;

@@ -464,7 +464,7 @@ without creating a headache on maintenance of the pathes.
mesh_dev->ethtool_ops = &lbs_ethtool_ops;
memcpy(mesh_dev->dev_addr, priv->dev->dev_addr,
sizeof(priv->dev->dev_addr));
-@@ -1776,11 +1797,13 @@
+@@ -1777,11 +1798,13 @@
lbs_deb_leave(LBS_DEB_MAIN);
}

@@ -478,7 +478,7 @@ without creating a headache on maintenance of the pathes.

static int lbs_add_rtap(struct lbs_private *priv)
{
-@@ -1801,7 +1824,13 @@
+@@ -1802,7 +1825,13 @@

memcpy(rtap_dev->dev_addr, priv->current_addr, ETH_ALEN);
rtap_dev->type = ARPHRD_IEEE80211_RADIOTAP;
diff --git a/compat/patches/08-rename-iwl4965-config.patch b/compat/patches/08-rename-iwl4965-config.patch
index cbb47a7..b0add39 100644
--- a/compat/patches/08-rename-iwl4965-config.patch
+++ b/compat/patches/08-rename-iwl4965-config.patch
@@ -16,7 +16,7 @@ CONFIG_IWL4965 has to be set to y, to build correctly.
iwlagn-$(CONFIG_IWL5000) += iwl-1000.o
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c 2009-10-06 12:57:49.000000000 -0400
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c 2009-10-06 12:57:50.000000000 -0400
-@@ -3244,10 +3244,10 @@
+@@ -3239,10 +3239,10 @@

/* Hardware specific file defines the PCI IDs table for that hardware module */
static struct pci_device_id iwl_hw_card_ids[] = {
diff --git a/compat/patches/09-threaded-irq.patch b/compat/patches/09-threaded-irq.patch
index 6658e2f..68689e2 100644
--- a/compat/patches/09-threaded-irq.patch
+++ b/compat/patches/09-threaded-irq.patch
@@ -52,7 +52,7 @@ thread in process context as well.
static inline struct b43_wl *hw_to_b43_wl(struct ieee80211_hw *hw)
--- a/drivers/net/wireless/b43/b43.h 2009-10-07 01:45:01.000000000 -0400
+++ b/drivers/net/wireless/b43/b43.h 2009-10-07 01:45:02.000000000 -0400
-@@ -831,6 +831,9 @@
+@@ -747,6 +747,9 @@
unsigned int tx_count;
unsigned int rx_count;
#endif
@@ -61,4 +61,4 @@ thread in process context as well.
+#endif
};

- static inline struct b43_wl *hw_to_b43_wl(struct ieee80211_hw *hw)
+ /*
diff --git a/compat/patches/10-add-wext-handlers-to-netdev.patch b/compat/patches/10-add-wext-handlers-to-netdev.patch
index 9172c20..ec2249c 100644
--- a/compat/patches/10-add-wext-handlers-to-netdev.patch
+++ b/compat/patches/10-add-wext-handlers-to-netdev.patch
@@ -13,7 +13,7 @@ the struct wiphy wireless handler.

--- a/net/wireless/core.c 2009-10-06 13:23:34.000000000 -0400
+++ b/net/wireless/core.c 2009-10-06 13:25:31.000000000 -0400
-@@ -671,6 +671,10 @@
+@@ -672,6 +672,10 @@
wdev->sme_state = CFG80211_SME_IDLE;
mutex_unlock(&rdev->devlist_mtx);
#ifdef CONFIG_CFG80211_WEXT
--
1.6.2.1