summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/mac80211/patches/011-move_ar9170_usb_compat_code.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/package/mac80211/patches/011-move_ar9170_usb_compat_code.patch b/package/mac80211/patches/011-move_ar9170_usb_compat_code.patch
new file mode 100644
index 0000000000..07daada9e9
--- /dev/null
+++ b/package/mac80211/patches/011-move_ar9170_usb_compat_code.patch
@@ -0,0 +1,72 @@
+--- a/drivers/net/wireless/ath/ar9170/usb.c
++++ b/drivers/net/wireless/ath/ar9170/usb.c
+@@ -96,6 +96,34 @@ static struct usb_device_id ar9170_usb_i
+ };
+ MODULE_DEVICE_TABLE(usb, ar9170_usb_ids);
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
++
++#ifdef CONFIG_AR9170_USB
++#include <linux/usb.h>
++
++/**
++ * usb_unpoison_anchored_urbs - let an anchor be used successfully again
++ * @anchor: anchor the requests are bound to
++ *
++ * Reverses the effect of usb_poison_anchored_urbs
++ * the anchor can be used normally after it returns
++ */
++void usb_unpoison_anchored_urbs(struct usb_anchor *anchor)
++{
++ unsigned long flags;
++ struct urb *lazarus;
++
++ spin_lock_irqsave(&anchor->lock, flags);
++ list_for_each_entry(lazarus, &anchor->urb_list, anchor_list) {
++ usb_unpoison_urb(lazarus);
++ }
++ //anchor->poisoned = 0; /* XXX: cannot backport */
++ spin_unlock_irqrestore(&anchor->lock, flags);
++}
++EXPORT_SYMBOL_GPL(usb_unpoison_anchored_urbs);
++#endif /* CONFIG_AR9170_USB */
++
++
+ static void ar9170_usb_submit_urb(struct ar9170_usb *aru)
+ {
+ struct urb *urb;
+--- a/net/wireless/compat-2.6.29.c
++++ b/net/wireless/compat-2.6.29.c
+@@ -12,31 +12,7 @@
+
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
+
+-#ifdef CONFIG_AR9170_USB
+-#include <linux/usb.h>
+-
+-/**
+- * usb_unpoison_anchored_urbs - let an anchor be used successfully again
+- * @anchor: anchor the requests are bound to
+- *
+- * Reverses the effect of usb_poison_anchored_urbs
+- * the anchor can be used normally after it returns
+- */
+-void usb_unpoison_anchored_urbs(struct usb_anchor *anchor)
+-{
+- unsigned long flags;
+- struct urb *lazarus;
+-
+- spin_lock_irqsave(&anchor->lock, flags);
+- list_for_each_entry(lazarus, &anchor->urb_list, anchor_list) {
+- usb_unpoison_urb(lazarus);
+- }
+- //anchor->poisoned = 0; /* XXX: cannot backport */
+- spin_unlock_irqrestore(&anchor->lock, flags);
+-}
+-EXPORT_SYMBOL_GPL(usb_unpoison_anchored_urbs);
+-#endif /* CONFIG_AR9170_USB */
+-
++/* 2.6.29 compat code goes here */
+
+ #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) */
+