All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] backports: cath up to next-20140320
@ 2014-04-08  3:32 Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 01/12] backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq() Luis R. Rodriguez
                   ` (12 more replies)
  0 siblings, 13 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez

This pushes backports to catch up to next-20140320 and depends on my last
series. I'm pretty sure this compiles on all supported kernels but am leaving
a ckmake job running and should have the results to be sure in an hour or so.
In the meantime I'll go watch Cosmos with a group.

It seems the last series was sane as I haven't gotten anyone
throwing apples at me, so I'll push that out later tonight if
no one sends any more feedback. Note that change I had to make
on net_get_random_once() on the original series, I posted to
the list about that.

If you want to download both series in one shot and git am them you can
use this file:

http://drvbp1.linux-foundation.org/~mcgrof/patches/2014/04/07/pend-2014-04-07.patch

mcgrof@ergon ~/backports (git::master)$ sha1sum pend-2014-04-07.patch
15c25d339de270119a4962ff2d066f97cb94358a  pend-2014-04-07.patch

Luis R. Rodriguez (12):
  backports: backport u64_stats_fetch_begin_irq() and
    u64_stats_fetch_retry_irq()
  backports: backport APIs for manipulating skb page fragments
  backports: backport skb_set_hash()
  backports: complete backport of frag size accessors
  backports: complete backport of translation of MMD EEE registers
  backports: add GRO_* enums, and its new gro_result_t typedef
  backports: bump kernel requirements for drivers that use s2mps14.h
  backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
  backports: bump NFC_TRF7970A requirements to 3.5
  backports: make IEEE802154_AT86RF230 depend require 3.3.
  backports: add kernel base requirement of 3.5 to IR_IMG
  backports: refresh patches for next-20140320

 backport/backport-include/linux/mdio.h             |  29 +++
 backport/backport-include/linux/netdevice.h        |  40 ++++
 backport/backport-include/linux/skbuff.h           | 217 +++++++++++++++++++++
 backport/backport-include/linux/u64_stats_sync.h   |  23 +--
 dependencies                                       |  30 ++-
 .../0001-6lowpan-namespace.patch                   |  31 ++-
 patches/backport-adjustments/sch_fq_codel.patch    |   2 +-
 .../media/0004-sysfs-api.patch                     |   2 +-
 .../0012-ieee802154-6lowpan-namespace.patch        |   8 +-
 .../network/0013-lowpan-inet_frag_lru_move.patch   |   6 +-
 .../network/0013-net-user-ns.patch                 |   2 +-
 .../network/0014-inet_frag_evictor.patch           |   4 +-
 .../network/05-usb/p54usb.patch                    |   2 +-
 .../drivers_net_wireless_iwlwifi.patch             |   4 +-
 .../drivers_net_wireless_rtl818x_rtl8180_dev.patch |   2 +-
 .../drivers_net_wireless_iwlwifi_mvm_led.patch     |   2 +-
 .../drivers_net_ethernet_atheros_alx_main.patch    |   2 +-
 .../drivers_net_wireless_ath_wil6210_netdev.patch  |  10 +-
 .../network/81-genl-const/nfc.patch                |   2 +-
 .../82-struct_property_missing/mwifiex.patch       |   4 +-
 .../84-ethernet/0001-igb_net_device_ops.patch      |   6 +-
 .../84-ethernet/0002-igb_pci_sriov_configure.patch |   8 +-
 .../network/84-ethernet/0006-igb_eee.patch         |   4 +-
 .../network/84-ethernet/0007-igb_ethtool_ops.patch |   6 +-
 .../network/84-ethernet/0008-igb_no_fcs.patch      |   2 +-
 .../network/84-ethernet/0009-igb_vlan_rx_vid.patch |   6 +-
 .../network/84-ethernet/0010-igb_ethtool_ops.patch |  10 +-
 .../network/84-ethernet/0011-igb_ethtool_ops.patch |   2 +-
 .../84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch |   8 +-
 .../85-hid_ll_driver/net_bluetooth_hidp_core.patch |   8 +-
 .../network/86-qdisc_tx_busylock/ieee802154.patch  |   4 +-
 31 files changed, 395 insertions(+), 91 deletions(-)

-- 
1.8.5.3


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 01/12] backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq()
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 02/12] backports: backport APIs for manipulating skb page fragments Luis R. Rodriguez
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Eric W. Biederman

The bh version u64_stats_fetch_begin_bh() and u64_stats_fetch_retry_bh()
got dropped in favor for an IRQ safe variant. We can now remove
u64_stats_fetch_begin_bh() and u64_stats_fetch_retry_bh() as we work
carrying over what is upstream and no drivers upstream use this anymore.

Cc: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/u64_stats_sync.h | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/backport/backport-include/linux/u64_stats_sync.h b/backport/backport-include/linux/u64_stats_sync.h
index 4fefb3c..0302322 100644
--- a/backport/backport-include/linux/u64_stats_sync.h
+++ b/backport/backport-include/linux/u64_stats_sync.h
@@ -32,8 +32,8 @@
  *    (On UP, there is no seqcount_t protection, a reader allowing interrupts could
  *     read partial values)
  *
- * 7) For softirq uses, readers can use u64_stats_fetch_begin_bh() and
- *    u64_stats_fetch_retry_bh() helpers
+ * 7) For softirq uses, readers can use u64_stats_fetch_begin_irq() and
+ *    u64_stats_fetch_retry_irq() helpers
  *
  * Usage :
  *
@@ -111,38 +111,35 @@ static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp,
 #endif
 }
 
-/*
- * In case softirq handlers can update u64 counters, readers can use following helpers
- * - SMP 32bit arches use seqcount protection, irq safe.
- * - UP 32bit must disable BH.
- * - 64bit have no problem atomically reading u64 values, irq safe.
- */
-static inline unsigned int u64_stats_fetch_begin_bh(const struct u64_stats_sync *syncp)
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)
+static inline unsigned int u64_stats_fetch_begin_irq(const struct u64_stats_sync *syncp)
 {
 #if BITS_PER_LONG==32 && defined(CONFIG_SMP)
 	return read_seqcount_begin(&syncp->seq);
 #else
 #if BITS_PER_LONG==32
-	local_bh_disable();
+	local_irq_disable();
 #endif
 	return 0;
 #endif
 }
 
-static inline bool u64_stats_fetch_retry_bh(const struct u64_stats_sync *syncp,
+static inline bool u64_stats_fetch_retry_irq(const struct u64_stats_sync *syncp,
 					 unsigned int start)
 {
 #if BITS_PER_LONG==32 && defined(CONFIG_SMP)
 	return read_seqcount_retry(&syncp->seq, start);
 #else
 #if BITS_PER_LONG==32
-	local_bh_enable();
+	local_irq_enable();
 #endif
 	return false;
 #endif
 }
 
-#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
 #if BITS_PER_LONG == 32 && defined(CONFIG_SMP)
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 02/12] backports: backport APIs for manipulating skb page fragments
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 01/12] backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq() Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 03/12] backports: backport skb_set_hash() Luis R. Rodriguez
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Ian Campbell

This backports the APIs for manipulating skb page fragments
introduced by Ian via commit 131ea6675c on v3.2. Use the
LINUX_BACKPORT() namespace to avoid clashes with similar ports.
We skip skb_frag_dma_map() as that was already backported.
We also don't backport skb_frag_page() as that was already
backported before.

Since the skb fragment page was moved into its own struct as
part of the fragment our backport ends up using the old access
mechanisms for the framgement page. For details see a8605c6063.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 131ea6675c
v3.2-rc1~129^2~421

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains a8605c6063
v3.2-rc1~182^2~29

commit 131ea6675c761f655d43b808dd0fe83d15d5cdd3
Author: Ian Campbell <Ian.Campbell@citrix.com>
Date:   Fri Aug 19 06:25:00 2011 +0000

    net: add APIs for manipulating skb page fragments.

    The primary aim is to add skb_frag_(ref|unref) in order to remove the use of
    bare get/put_page on SKB pages fragments and to isolate users from subsequent
    changes to the skb_frag_t data structure.

    Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>

Cc: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/skbuff.h | 159 +++++++++++++++++++++++++++++++
 1 file changed, 159 insertions(+)

diff --git a/backport/backport-include/linux/skbuff.h b/backport/backport-include/linux/skbuff.h
index 2a63e95..a7eca13 100644
--- a/backport/backport-include/linux/skbuff.h
+++ b/backport/backport-include/linux/skbuff.h
@@ -311,4 +311,163 @@ static inline int skb_unclone(struct sk_buff *skb, gfp_t pri)
 }
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
+
+#define __skb_fill_page_desc LINUX_BACKPORT(__skb_fill_page_desc)
+/**
+ * __skb_fill_page_desc - initialise a paged fragment in an skb
+ * @skb: buffer containing fragment to be initialised
+ * @i: paged fragment index to initialise
+ * @page: the page to use for this fragment
+ * @off: the offset to the data with @page
+ * @size: the length of the data
+ *
+ * Initialises the @i'th fragment of @skb to point to &size bytes at
+ * offset @off within @page.
+ *
+ * Does not take any additional reference on the fragment.
+ */
+static inline void __skb_fill_page_desc(struct sk_buff *skb, int i,
+					struct page *page, int off, int size)
+{
+	skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
+
+	/*
+	 * Propagate page->pfmemalloc to the skb if we can. The problem is
+	 * that not all callers have unique ownership of the page. If
+	 * pfmemalloc is set, we check the mapping as a mapping implies
+	 * page->index is set (index and pfmemalloc share space).
+	 * If it's a valid mapping, we cannot use page->pfmemalloc but we
+	 * do not lose pfmemalloc information as the pages would not be
+	 * allocated using __GFP_MEMALLOC.
+	 */
+	frag->page		  = page;
+	frag->page_offset	  = off;
+	skb_frag_size_set(frag, size);
+
+#if 0 /* we can't backport this for older kernels */
+	page = compound_head(page);
+	if (page->pfmemalloc && !page->mapping)
+		skb->pfmemalloc	= true;
+#endif
+}
+
+#define skb_fill_page_desc LINUX_BACKPORT(skb_fill_page_desc)
+/**
+ * skb_fill_page_desc - initialise a paged fragment in an skb
+ * @skb: buffer containing fragment to be initialised
+ * @i: paged fragment index to initialise
+ * @page: the page to use for this fragment
+ * @off: the offset to the data with @page
+ * @size: the length of the data
+ *
+ * As per __skb_fill_page_desc() -- initialises the @i'th fragment of
+ * @skb to point to @size bytes at offset @off within @page. In
+ * addition updates @skb such that @i is the last fragment.
+ *
+ * Does not take any additional reference on the fragment.
+ */
+static inline void skb_fill_page_desc(struct sk_buff *skb, int i,
+				      struct page *page, int off, int size)
+{
+	__skb_fill_page_desc(skb, i, page, off, size);
+	skb_shinfo(skb)->nr_frags = i + 1;
+}
+
+#define __skb_frag_ref LINUX_BACKPORT(__skb_frag_ref)
+/**
+ * __skb_frag_ref - take an addition reference on kb_frag_page paged fragment.
+ * @frag: the paged fragment
+ *
+ * Takes an additional reference on the paged fragment @frag.
+ */
+static inline void __skb_frag_ref(skb_frag_t *frag)
+{
+	get_page(skb_frag_page(frag));
+}
+
+#define skb_frag_ref LINUX_BACKPORT(skb_frag_ref)
+/**
+ * skb_frag_ref - take an addition reference on a paged fragment of an skb.
+ * @skb: the buffer
+ * @f: the fragment offset.
+ *
+ * Takes an additional reference on the @f'th paged fragment of @skb.
+ */
+static inline void skb_frag_ref(struct sk_buff *skb, int f)
+{
+	__skb_frag_ref(&skb_shinfo(skb)->frags[f]);
+}
+
+#define __skb_frag_unref LINUX_BACKPORT(__skb_frag_unref)
+/**
+ * __skb_frag_unref - release a reference on a paged fragment.
+ * @frag: the paged fragment
+ *
+ * Releases a reference on the paged fragment @frag.
+ */
+static inline void __skb_frag_unref(skb_frag_t *frag)
+{
+	put_page(skb_frag_page(frag));
+}
+
+#define skb_frag_unref LINUX_BACKPORT(skb_frag_unref)
+/**
+ * skb_frag_unref - release a reference on a paged fragment of an skb.
+ * @skb: the buffer
+ * @f: the fragment offset
+ *
+ * Releases a reference on the @f'th paged fragment of @skb.
+ */
+static inline void skb_frag_unref(struct sk_buff *skb, int f)
+{
+	__skb_frag_unref(&skb_shinfo(skb)->frags[f]);
+}
+
+#define skb_frag_address_safe LINUX_BACKPORT(skb_frag_address_safe)
+/**
+ * skb_frag_address_safe - gets the address of the data contained in a paged fragment
+ * @frag: the paged fragment buffer
+ *
+ * Returns the address of the data within @frag. Checks that the page
+ * is mapped and returns %NULL otherwise.
+ */
+static inline void *skb_frag_address_safe(const skb_frag_t *frag)
+{
+	void *ptr = page_address(skb_frag_page(frag));
+	if (unlikely(!ptr))
+		return NULL;
+
+	return ptr + frag->page_offset;
+}
+
+#define __skb_frag_set_page LINUX_BACKPORT(__skb_frag_set_page)
+/**
+ * __skb_frag_set_page - sets the page contained in a paged fragment
+ * @frag: the paged fragment
+ * @page: the page to set
+ *
+ * Sets the fragment @frag to contain @page.
+ */
+static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page)
+{
+	frag->page = page;
+}
+
+#define skb_frag_set_page LINUX_BACKPORT(skb_frag_set_page)
+/**
+ * skb_frag_set_page - sets the page contained in a paged fragment of an skb
+ * @skb: the buffer
+ * @f: the fragment offset
+ * @page: the page to set
+ *
+ * Sets the @f'th fragment of @skb to contain @page.
+ */
+static inline void skb_frag_set_page(struct sk_buff *skb, int f,
+				     struct page *page)
+{
+	__skb_frag_set_page(&skb_shinfo(skb)->frags[f], page);
+}
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) */
+
 #endif /* __BACKPORT_SKBUFF_H */
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 03/12] backports: backport skb_set_hash()
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 01/12] backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq() Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 02/12] backports: backport APIs for manipulating skb page fragments Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 04/12] backports: complete backport of frag size accessors Luis R. Rodriguez
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Tom Herbert

This backports skb_set_hash(). Two skb data structures are used
introduced at different points in time, so ifdef around that as well.
For older kernels this is a nop.

mcgrof@ergon ~/linux (git::master)$ git describe --contains bdeab99191
v3.2-rc1~129^2~458
mcgrof@ergon ~/linux (git::master)$ git describe --contains 4031ae6edb
v3.4-rc1~177^2~333^2
mcgrof@ergon ~/linux (git::master)$ git describe --contains 09323cc479
v3.14-rc1~94^2~474^2~1

Cc: Tom Herbert <therbert@google.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/skbuff.h | 46 ++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/backport/backport-include/linux/skbuff.h b/backport/backport-include/linux/skbuff.h
index a7eca13..bc67f45 100644
--- a/backport/backport-include/linux/skbuff.h
+++ b/backport/backport-include/linux/skbuff.h
@@ -470,4 +470,50 @@ static inline void skb_frag_set_page(struct sk_buff *skb, int f,
 }
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
+/*
+ * Packet hash types specify the type of hash in skb_set_hash.
+ *
+ * Hash types refer to the protocol layer addresses which are used to
+ * construct a packet's hash. The hashes are used to differentiate or identify
+ * flows of the protocol layer for the hash type. Hash types are either
+ * layer-2 (L2), layer-3 (L3), or layer-4 (L4).
+ *
+ * Properties of hashes:
+ *
+ * 1) Two packets in different flows have different hash values
+ * 2) Two packets in the same flow should have the same hash value
+ *
+ * A hash at a higher layer is considered to be more specific. A driver should
+ * set the most specific hash possible.
+ *
+ * A driver cannot indicate a more specific hash than the layer at which a hash
+ * was computed. For instance an L3 hash cannot be set as an L4 hash.
+ *
+ * A driver may indicate a hash level which is less specific than the
+ * actual layer the hash was computed on. For instance, a hash computed
+ * at L4 may be considered an L3 hash. This should only be done if the
+ * driver can't unambiguously determine that the HW computed the hash at
+ * the higher layer. Note that the "should" in the second property above
+ * permits this.
+ */
+enum pkt_hash_types {
+	PKT_HASH_TYPE_NONE,	/* Undefined type */
+	PKT_HASH_TYPE_L2,	/* Input: src_MAC, dest_MAC */
+	PKT_HASH_TYPE_L3,	/* Input: src_IP, dst_IP */
+	PKT_HASH_TYPE_L4,	/* Input: src_IP, dst_IP, src_port, dst_port */
+};
+
+static inline void
+skb_set_hash(struct sk_buff *skb, __u32 hash, enum pkt_hash_types type)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0) /* 4031ae6edb */
+	skb->l4_rxhash = (type == PKT_HASH_TYPE_L4);
+#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0) /* bdeab99191 */
+	skb->rxhash = hash;
+#endif
+}
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) */
+
 #endif /* __BACKPORT_SKBUFF_H */
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 04/12] backports: complete backport of frag size accessors
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (2 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 03/12] backports: backport skb_set_hash() Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 05/12] backports: complete backport of translation of MMD EEE registers Luis R. Rodriguez
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Eric Dumazet

These are just helpers so carry them over, this was added via commit
9e903e0852 through v3.2. The skb frag size was in place for a long time but
was changed from __u16 to __u32 via commit a309bb072b through v2.6.23 and
since we backport for >= 2.6.25 just leave this as is. This was already
only partly backported, this adds the missing helpers.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 9e903e0852
v3.2-rc1~182^2~85

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains a309bb072b
v2.6.23-rc2~35^2~11

commit 9e903e085262ffbf1fc44a17ac06058aca03524a
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Tue Oct 18 21:00:24 2011 +0000

    net: add skb frag size accessors

    To ease skb->truesize sanitization, its better to be able to localize
    all references to skb frags size.

    Define accessors : skb_frag_size() to fetch frag size, and
    skb_frag_size_{set|add|sub}() to manipulate it.

    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/skbuff.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/backport/backport-include/linux/skbuff.h b/backport/backport-include/linux/skbuff.h
index bc67f45..2f7d57b 100644
--- a/backport/backport-include/linux/skbuff.h
+++ b/backport/backport-include/linux/skbuff.h
@@ -313,6 +313,18 @@ static inline int skb_unclone(struct sk_buff *skb, gfp_t pri)
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
 
+#define skb_frag_size_set LINUX_BACKPORT(skb_frag_size_set)
+static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size)
+{
+	frag->size = size;
+}
+
+#define skb_frag_size_add LINUX_BACKPORT(skb_frag_size_add)
+static inline void skb_frag_size_add(skb_frag_t *frag, int delta)
+{
+	frag->size += delta;
+}
+
 #define __skb_fill_page_desc LINUX_BACKPORT(__skb_fill_page_desc)
 /**
  * __skb_fill_page_desc - initialise a paged fragment in an skb
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 05/12] backports: complete backport of translation of MMD EEE registers
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (3 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 04/12] backports: complete backport of frag size accessors Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 06/12] backports: add GRO_* enums, and its new gro_result_t typedef Luis R. Rodriguez
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez

Commit b32607dd was already partially backported, this complets that
backport.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains b32607dd
v3.7-rc1~145^2~292

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/mdio.h | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/backport/backport-include/linux/mdio.h b/backport/backport-include/linux/mdio.h
index 5b1c0c3..a1f3e95 100644
--- a/backport/backport-include/linux/mdio.h
+++ b/backport/backport-include/linux/mdio.h
@@ -53,6 +53,35 @@ static inline u32 mmd_eee_adv_to_ethtool_adv_t(u16 eee_adv)
 
 	return adv;
 }
+
+#define ethtool_adv_to_mmd_eee_adv_t LINUX_BACKPORT(ethtool_adv_to_mmd_eee_adv_t)
+/**
+ * ethtool_adv_to_mmd_eee_adv_t
+ * @adv: the ethtool advertisement settings
+ *
+ * A small helper function that translates ethtool advertisement settings
+ * to EEE advertisements for the MMD EEE Advertisement (7.60) and
+ * MMD EEE Link Partner Ability (7.61) registers.
+ */
+static inline u16 ethtool_adv_to_mmd_eee_adv_t(u32 adv)
+{
+	u16 reg = 0;
+
+	if (adv & ADVERTISED_100baseT_Full)
+		reg |= MDIO_EEE_100TX;
+	if (adv & ADVERTISED_1000baseT_Full)
+		reg |= MDIO_EEE_1000T;
+	if (adv & ADVERTISED_10000baseT_Full)
+		reg |= MDIO_EEE_10GT;
+	if (adv & ADVERTISED_1000baseKX_Full)
+		reg |= MDIO_EEE_1000KX;
+	if (adv & ADVERTISED_10000baseKX4_Full)
+		reg |= MDIO_EEE_10GKX4;
+	if (adv & ADVERTISED_10000baseKR_Full)
+		reg |= MDIO_EEE_10GKR;
+
+	return reg;
+}
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
 
 #endif /* __BACKPORT_LINUX_MDIO_H */
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 06/12] backports: add GRO_* enums, and its new gro_result_t typedef
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (4 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 05/12] backports: complete backport of translation of MMD EEE registers Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 07/12] backports: bump kernel requirements for drivers that use s2mps14.h Luis R. Rodriguez
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Herbert Xu, Ben Hutchings

This backports commit d1c76af9e added by Herbert which added the first
enums and then commit 5b252f0c2 added by Ben which gave the enums a
label and then pegged a typedef onto these. This backports these commits
in a forward compatible way upkeeping the introduction and then the
typedef. In order to make this work we use make backported code use
enums with the BACKPORT_prefix but upkeep the same values, this lets
us declare the typedef and peg it to a similar set.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 backport/backport-include/linux/netdevice.h | 40 +++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/backport/backport-include/linux/netdevice.h b/backport/backport-include/linux/netdevice.h
index f99ea02..f77e3eb 100644
--- a/backport/backport-include/linux/netdevice.h
+++ b/backport/backport-include/linux/netdevice.h
@@ -20,6 +20,46 @@ struct inet6_dev;
  */
 #include <linux/hardirq.h>
 
+/* d1c76af9e */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+enum { /* backport: provide the enum name already */
+	GRO_MERGED,
+	GRO_MERGED_FREE,
+	GRO_HELD,
+	GRO_NORMAL,
+	GRO_DROP,
+};
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
+
+/*
+ * We can count on the enum definitions being present so
+ * but since we cannot dedeclare the enum but we have to
+ * peg the typedef to a similar enum we can just use the
+ * same values and then use the #defines below to modify
+ * code for older kernels to use the new enum we define
+ * here. This works even for switch statements and gcc -Wall.
+ * This backports 5b252f0c2
+ */
+enum gro_result {
+	BACKPORT_GRO_MERGED 		= GRO_MERGED,
+	BACKPORT_GRO_MERGED_FREE 	= GRO_MERGED_FREE,
+	BACKPORT_GRO_HELD 		= GRO_HELD,
+	BACKPORT_GRO_NORMAL		= GRO_NORMAL,
+	BACKPORT_GRO_DROP		= GRO_DROP,
+};
+
+#define GRO_MERGED	BACKPORT_GRO_MERGED
+#define GRO_MERGED_FREE	BACKPORT_GRO_MERGED_FREE
+#define GRO_HELD	BACKPORT_GRO_HELD
+#define GRO_NORMAL	BACKPORT_GRO_NORMAL
+#define GRO_DROP	BACKPORT_GRO_DROP
+
+typedef enum gro_result gro_result_t;
+
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
 #define dev_change_net_namespace(a, b, c) (-EOPNOTSUPP)
 
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 07/12] backports: bump kernel requirements for drivers that use s2mps14.h
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (5 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 06/12] backports: add GRO_* enums, and its new gro_result_t typedef Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU Luis R. Rodriguez
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez

These depend on include/linux/mfd/samsung/s2mps14.h which
other mfd drivers / platform code can depend on, skip
unless we backport all the dependencies which we don't
right now.

The affected drivers are:

  * REGULATOR_S2MPS11
  * REGULATOR_S2MPA01
  * REGULATOR_TPS65217

The mfd files which we don't backport that uses this are:

  * drivers/mfd/sec-core.c
  * drivers/mfd/sec-irq.c

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 dependencies | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/dependencies b/dependencies
index f5f7229..6193ed1 100644
--- a/dependencies
+++ b/dependencies
@@ -96,7 +96,14 @@ REGULATOR_PCAP 3.6
 REGULATOR_PCF50633 3.8
 REGULATOR_PFUZE100 3.6
 REGULATOR_RC5T583 3.6
-REGULATOR_S2MPS11 3.13
+
+# These depend on include/linux/mfd/samsung/s2mps14.h which
+# other mfd drivers / platform code can depend on, skip
+# unless we backport all the dependencies which we don't
+# right now.
+REGULATOR_S2MPS11 3.15
+REGULATOR_S2MPA01 3.15
+
 REGULATOR_S5M8767 3.15
 REGULATOR_TPS51632 3.8
 REGULATOR_TPS6105X 3.6
@@ -105,7 +112,9 @@ REGULATOR_TPS62360 3.6
 REGULATOR_TPS65023 3.9
 REGULATOR_TPS6507X 3.6
 REGULATOR_TPS65090 3.9
-REGULATOR_TPS65217 3.12
+# depnds on include/linux/mfd/samsung/s2mps14.h which
+# other mfd drivers / platform code can depend on, skip
+REGULATOR_TPS65217 3.15
 REGULATOR_TPS6524X 3.6
 REGULATOR_TPS6586X 3.14
 REGULATOR_TPS65910 3.14
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (6 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 07/12] backports: bump kernel requirements for drivers that use s2mps14.h Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08 12:43   ` Mauro Carvalho Chehab
  2014-04-08  3:32 ` [PATCH 09/12] backports: bump NFC_TRF7970A requirements to 3.5 Luis R. Rodriguez
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports
  Cc: Luis R. Rodriguez, Antti Palosaari, Mauro Carvalho Chehab,
	Greg Kroah-Hartman

Commit bcf43393 as of linux-next next-20140320 added this Makefile
header extension:

ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr

This ends up calling a staging exported symbol rtl2832_sdr_attach().
Let's not pollute driver code with staging code or dependencies.

Folks, can this be cleaned up? This sets a precedent for doing more
of this, and this can get hairy. Its also not fair for folks who
don't want to carry over any staging code. This forces them to, and
its not just a header file, its a full exported symbol. What about
synchronization with differen trees? Was this addressed with Greg?

commit bcf43393579e3d4069e75a9200a87703185bcf11
Author: Antti Palosaari <crope@iki.fi>
Date:   Tue Sep 10 00:13:57 2013 -0300

    [media] rtl28xxu: attach SDR extension module

    With that extension module it supports SDR.

    Signed-off-by: Antti Palosaari <crope@iki.fi>
    Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>

Cc: Antti Palosaari <crope@iki.fi>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 dependencies | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dependencies b/dependencies
index 6193ed1..b85268d 100644
--- a/dependencies
+++ b/dependencies
@@ -185,8 +185,13 @@ VIDEO_RENESAS_VSP1 3.6
 # This was added as of 3.7. Although we should be able to only enable
 # this for 3.7 DVB_USB_RTL28XXU ends up selecting DVB_RTL2832 and
 # that seems to currently require pegging both.
-DVB_RTL2832 3.7
-DVB_USB_RTL28XXU 3.7
+#
+# DVB_USB_RTL28XXU has a nasty ccflag usage thoug that includes staging
+# headers introduced via commit bcf43393:
+# ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
+# Let's not support this nastiness.
+DVB_RTL2832 DISABLE
+DVB_USB_RTL28XXU DISABLE
 
 # struct gpio_chip only got the required members in 2.6.28
 BCMA_DRIVER_GPIO 2.6.28
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 09/12] backports: bump NFC_TRF7970A requirements to 3.5
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (7 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 10/12] backports: make IEEE802154_AT86RF230 depend require 3.3 Luis R. Rodriguez
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports
  Cc: Luis R. Rodriguez, Erick Macias, Felipe Balbi, Mark A. Greer,
	Samuel Ortiz

NFC_TRF7970A requires devm_gpio_request_one() but since
gpio infrastructure has been strongly shuffled around
we require drivers to use the in-kernel gpio
infrastructure so just bump NFC_TRF7970A to 3.5.

CC: Erick Macias <emacias@ti.com>
CC: Felipe Balbi <balbi@ti.com>
Cc: Mark A. Greer <mgreer@animalcreek.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 dependencies | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dependencies b/dependencies
index b85268d..352a1af 100644
--- a/dependencies
+++ b/dependencies
@@ -241,6 +241,11 @@ BT_HIDP 2.6.33
 # only introduced in kernel 3.1
 NFC 3.1
 
+# requires devm_gpio_request_one() added but since
+# gpio infrastructure has been strongly shuffled around
+# we require drivers to use the in-kernel gptio infrastructure
+NFC_TRF7970A 3.5
+
 INTEL_IPS 3.2
 
 NFC_MEI_PHY 3.10
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 10/12] backports: make IEEE802154_AT86RF230 depend require 3.3.
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (8 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 09/12] backports: bump NFC_TRF7970A requirements to 3.5 Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 11/12] backports: add kernel base requirement of 3.5 to IR_IMG Luis R. Rodriguez
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez, Alexander Aring

IEEE802154_AT86RF230 has gotten some gpio changes lately
and since we are not backporting all those gpio changes in
practice this driver only compiles down to 3.3 so add that
requirement.

Cc: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 dependencies | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dependencies b/dependencies
index 352a1af..3729d30 100644
--- a/dependencies
+++ b/dependencies
@@ -253,3 +253,4 @@ NFC_MEI_PHY 3.10
 IEEE802154_MRF24J40 3.5
 IEEE802154 3.1
 IEEE802154_6LOWPAN 3.5
+IEEE802154_AT86RF230 3.3
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 11/12] backports: add kernel base requirement of 3.5 to IR_IMG
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (9 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 10/12] backports: make IEEE802154_AT86RF230 depend require 3.3 Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-08  3:32 ` [PATCH 12/12] backports: refresh patches for next-20140320 Luis R. Rodriguez
  2014-04-09  1:20 ` [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports
  Cc: Luis R. Rodriguez, James Hogan, Mauro Carvalho Chehab, Mark Brown

IR_IMG is a new driver added by James via 160a8f8a and letter
integrated into the build via commit 54b29120 as of linux-next
tag next-20140320 which may make it to Linux through v3.15. This
new driver makes use of devm_clk_get() but this was added via
a8a97db9 and that get merged as of v3.5. It seems we can easily
backport a8a97db9 but these days I'm starting to leave this up to the
folks interested in the drivers to choose / participate and only
they would know if this is worth it. Is 3.5 a good starting point
kernel to require for drivers which depend on the new clock APIs?

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains a8a97db9
v3.5-rc1~183^2~2

Cc: James Hogan <james.hogan@imgtec.com>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Mark Brown <broonie@linaro.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 dependencies | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/dependencies b/dependencies
index 3729d30..36c0b87 100644
--- a/dependencies
+++ b/dependencies
@@ -254,3 +254,5 @@ IEEE802154_MRF24J40 3.5
 IEEE802154 3.1
 IEEE802154_6LOWPAN 3.5
 IEEE802154_AT86RF230 3.3
+
+IR_IMG 3.5
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 12/12] backports: refresh patches for next-20140320
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (10 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 11/12] backports: add kernel base requirement of 3.5 to IR_IMG Luis R. Rodriguez
@ 2014-04-08  3:32 ` Luis R. Rodriguez
  2014-04-09  1:20 ` [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
  12 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08  3:32 UTC (permalink / raw)
  To: backports; +Cc: Luis R. Rodriguez

The wil6210 driver gets NETIF_F_GRO but not that we haven't
been backporting this feature, which was added as of v2.6.29
via commit d565b0a1a. The driver is only enabled on the
dependencies file down to 2.6.31 though so we simply reuse the
check against kernels >= 2.6.39 to use the netdev->hw_features.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains d565b0a1a
v2.6.29-rc1~581^2~181

mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean \
	--refresh /home/mcgrof/linux-next /home/mcgrof/build/next-20140320
Copy original source files ...
Apply patches ...
Modify Kconfig tree ...
Rewrite Makefiles and Kconfig files ...
Done!

real    1m59.391s
user    19m26.468s
sys     0m45.128s

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 .../0001-6lowpan-namespace.patch                   | 31 +++++++++-------------
 patches/backport-adjustments/sch_fq_codel.patch    |  2 +-
 .../media/0004-sysfs-api.patch                     |  2 +-
 .../0012-ieee802154-6lowpan-namespace.patch        |  8 +++---
 .../network/0013-lowpan-inet_frag_lru_move.patch   |  6 ++---
 .../network/0013-net-user-ns.patch                 |  2 +-
 .../network/0014-inet_frag_evictor.patch           |  4 +--
 .../network/05-usb/p54usb.patch                    |  2 +-
 .../drivers_net_wireless_iwlwifi.patch             |  4 +--
 .../drivers_net_wireless_rtl818x_rtl8180_dev.patch |  2 +-
 .../drivers_net_wireless_iwlwifi_mvm_led.patch     |  2 +-
 .../drivers_net_ethernet_atheros_alx_main.patch    |  2 +-
 .../drivers_net_wireless_ath_wil6210_netdev.patch  | 10 ++++---
 .../network/81-genl-const/nfc.patch                |  2 +-
 .../82-struct_property_missing/mwifiex.patch       |  4 +--
 .../84-ethernet/0001-igb_net_device_ops.patch      |  6 ++---
 .../84-ethernet/0002-igb_pci_sriov_configure.patch |  8 +++---
 .../network/84-ethernet/0006-igb_eee.patch         |  4 +--
 .../network/84-ethernet/0007-igb_ethtool_ops.patch |  6 ++---
 .../network/84-ethernet/0008-igb_no_fcs.patch      |  2 +-
 .../network/84-ethernet/0009-igb_vlan_rx_vid.patch |  6 ++---
 .../network/84-ethernet/0010-igb_ethtool_ops.patch | 10 +++----
 .../network/84-ethernet/0011-igb_ethtool_ops.patch |  2 +-
 .../84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch |  8 +++---
 .../85-hid_ll_driver/net_bluetooth_hidp_core.patch |  8 +++---
 .../network/86-qdisc_tx_busylock/ieee802154.patch  |  4 +--
 26 files changed, 73 insertions(+), 74 deletions(-)

diff --git a/patches/0000-upstream-backport-changes/0001-6lowpan-namespace.patch b/patches/0000-upstream-backport-changes/0001-6lowpan-namespace.patch
index a49ea02..6205752 100644
--- a/patches/0000-upstream-backport-changes/0001-6lowpan-namespace.patch
+++ b/patches/0000-upstream-backport-changes/0001-6lowpan-namespace.patch
@@ -14,15 +14,9 @@ with no code changes.
 
 Cc:Alexander Aring <alex.aring@gmail.com>
 Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
----
-diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
-index f4ac957..0bcbef3 100644
--- 
-1.9.0
-
 --- a/net/ieee802154/reassembly.c
 +++ b/net/ieee802154/reassembly.c
-@@ -116,6 +116,8 @@ fq_find(struct net *net, const struct ie
+@@ -120,6 +120,8 @@ fq_find(struct net *net, const struct lo
  	struct inet_frag_queue *q;
  	struct lowpan_create_arg arg;
  	unsigned int hash;
@@ -31,7 +25,7 @@ index f4ac957..0bcbef3 100644
  
  	arg.tag = frag_info->d_tag;
  	arg.d_size = frag_info->d_size;
-@@ -125,7 +127,7 @@ fq_find(struct net *net, const struct ie
+@@ -129,7 +131,7 @@ fq_find(struct net *net, const struct lo
  	read_lock(&lowpan_frags.lock);
  	hash = lowpan_hash_frag(frag_info->d_tag, frag_info->d_size, src, dst);
  
@@ -40,15 +34,16 @@ index f4ac957..0bcbef3 100644
  			   &lowpan_frags, &arg, hash);
  	if (IS_ERR_OR_NULL(q)) {
  		inet_frag_maybe_warn_overflow(q, pr_fmt());
-@@ -354,16 +356,18 @@ int lowpan_frag_rcv(struct sk_buff *skb,
- 	struct lowpan_frag_queue *fq;
+@@ -357,6 +359,8 @@ int lowpan_frag_rcv(struct sk_buff *skb,
  	struct net *net = dev_net(skb->dev);
- 	struct ieee802154_frag_info *frag_info = &mac_cb(skb)->frag_info;
+ 	struct lowpan_frag_info *frag_info = lowpan_cb(skb);
+ 	struct ieee802154_addr source, dest;
 +	struct netns_ieee802154_lowpan *ieee802154_lowpan =
 +		net_ieee802154_lowpan(net);
  	int err;
  
- 	err = lowpan_get_frag_info(skb, frag_type, frag_info);
+ 	source = mac_cb(skb)->source;
+@@ -366,10 +370,10 @@ int lowpan_frag_rcv(struct sk_buff *skb,
  	if (err < 0)
  		goto err;
  
@@ -59,9 +54,9 @@ index f4ac957..0bcbef3 100644
 -	inet_frag_evictor(&net->ieee802154_lowpan.frags, &lowpan_frags, false);
 +	inet_frag_evictor(&ieee802154_lowpan->frags, &lowpan_frags, false);
  
- 	fq = fq_find(net, frag_info, &mac_cb(skb)->sa, &mac_cb(skb)->da);
+ 	fq = fq_find(net, frag_info, &source, &dest);
  	if (fq != NULL) {
-@@ -430,6 +434,8 @@ static int __net_init lowpan_frags_ns_sy
+@@ -436,6 +440,8 @@ static int __net_init lowpan_frags_ns_sy
  {
  	struct ctl_table *table;
  	struct ctl_table_header *hdr;
@@ -70,7 +65,7 @@ index f4ac957..0bcbef3 100644
  
  	table = lowpan_frags_ns_ctl_table;
  	if (!net_eq(net, &init_net)) {
-@@ -438,10 +444,10 @@ static int __net_init lowpan_frags_ns_sy
+@@ -444,10 +450,10 @@ static int __net_init lowpan_frags_ns_sy
  		if (table == NULL)
  			goto err_alloc;
  
@@ -85,7 +80,7 @@ index f4ac957..0bcbef3 100644
  
  		/* Don't export sysctls to unprivileged users */
  		if (net->user_ns != &init_user_ns)
-@@ -452,7 +458,7 @@ static int __net_init lowpan_frags_ns_sy
+@@ -458,7 +464,7 @@ static int __net_init lowpan_frags_ns_sy
  	if (hdr == NULL)
  		goto err_reg;
  
@@ -94,7 +89,7 @@ index f4ac957..0bcbef3 100644
  	return 0;
  
  err_reg:
-@@ -465,9 +471,11 @@ err_alloc:
+@@ -471,9 +477,11 @@ err_alloc:
  static void __net_exit lowpan_frags_ns_sysctl_unregister(struct net *net)
  {
  	struct ctl_table *table;
@@ -108,7 +103,7 @@ index f4ac957..0bcbef3 100644
  	if (!net_eq(net, &init_net))
  		kfree(table);
  }
-@@ -508,20 +516,26 @@ static inline void lowpan_frags_sysctl_u
+@@ -514,20 +522,26 @@ static inline void lowpan_frags_sysctl_u
  
  static int __net_init lowpan_frags_init_net(struct net *net)
  {
diff --git a/patches/backport-adjustments/sch_fq_codel.patch b/patches/backport-adjustments/sch_fq_codel.patch
index b6bd676..d0b7f77 100644
--- a/patches/backport-adjustments/sch_fq_codel.patch
+++ b/patches/backport-adjustments/sch_fq_codel.patch
@@ -94,7 +94,7 @@
  	    nla_put_u32(skb, TCA_FQ_CODEL_INTERVAL,
  			codel_time_to_us(q->cparams.interval)) ||
  	    nla_put_u32(skb, TCA_FQ_CODEL_ECN,
-@@ -599,7 +630,9 @@ static struct Qdisc_ops fq_codel_qdisc_o
+@@ -598,7 +629,9 @@ static struct Qdisc_ops fq_codel_qdisc_o
  	.priv_size	=	sizeof(struct fq_codel_sched_data),
  	.enqueue	=	fq_codel_enqueue,
  	.dequeue	=	fq_codel_dequeue,
diff --git a/patches/collateral-evolutions/media/0004-sysfs-api.patch b/patches/collateral-evolutions/media/0004-sysfs-api.patch
index 637ff3b..258144f 100644
--- a/patches/collateral-evolutions/media/0004-sysfs-api.patch
+++ b/patches/collateral-evolutions/media/0004-sysfs-api.patch
@@ -25,7 +25,7 @@
  };
  
  struct video_device *video_devdata(struct file *file)
-@@ -1012,6 +1021,7 @@ static int __init videodev_init(void)
+@@ -1014,6 +1023,7 @@ static int __init videodev_init(void)
  		return ret;
  	}
  
diff --git a/patches/collateral-evolutions/network/0012-ieee802154-6lowpan-namespace.patch b/patches/collateral-evolutions/network/0012-ieee802154-6lowpan-namespace.patch
index e883d02..4122289 100644
--- a/patches/collateral-evolutions/network/0012-ieee802154-6lowpan-namespace.patch
+++ b/patches/collateral-evolutions/network/0012-ieee802154-6lowpan-namespace.patch
@@ -4,7 +4,7 @@ idea yet.
 
 --- a/net/ieee802154/reassembly.c
 +++ b/net/ieee802154/reassembly.c
-@@ -104,7 +104,11 @@ static void lowpan_frag_expire(unsigned
+@@ -99,7 +99,11 @@ static void lowpan_frag_expire(unsigned
  	struct net *net;
  
  	fq = container_of((struct inet_frag_queue *)data, struct frag_queue, q);
@@ -14,9 +14,9 @@ idea yet.
 +	net = &init_net;
 +#endif
  
- 	lowpan_expire_frag_queue(fq, &lowpan_frags);
- }
-@@ -390,28 +394,44 @@ EXPORT_SYMBOL(lowpan_frag_rcv);
+ 	spin_lock(&fq->q.lock);
+ 
+@@ -396,28 +400,44 @@ EXPORT_SYMBOL(lowpan_frag_rcv);
  static struct ctl_table lowpan_frags_ns_ctl_table[] = {
  	{
  		.procname	= "6lowpanfrag_high_thresh",
diff --git a/patches/collateral-evolutions/network/0013-lowpan-inet_frag_lru_move.patch b/patches/collateral-evolutions/network/0013-lowpan-inet_frag_lru_move.patch
index 9f1f0c1..6692c0c 100644
--- a/patches/collateral-evolutions/network/0013-lowpan-inet_frag_lru_move.patch
+++ b/patches/collateral-evolutions/network/0013-lowpan-inet_frag_lru_move.patch
@@ -4,7 +4,7 @@ and then domain specific inet_frag_lru_move() define.
 
 --- a/net/ieee802154/reassembly.c
 +++ b/net/ieee802154/reassembly.c
-@@ -81,6 +81,9 @@ void lowpan_frag_init(struct inet_frag_q
+@@ -91,6 +91,9 @@ static void lowpan_frag_init(struct inet
  	fq->d_size = arg->d_size;
  	fq->saddr = *arg->src;
  	fq->daddr = *arg->dst;
@@ -12,8 +12,8 @@ and then domain specific inet_frag_lru_move() define.
 +	spin_lock_init(&fq->lru_lock);
 +#endif
  }
- EXPORT_SYMBOL(lowpan_frag_init);
  
+ static void lowpan_frag_expire(unsigned long data)
 --- a/net/ieee802154/reassembly.h
 +++ b/net/ieee802154/reassembly.h
 @@ -2,6 +2,7 @@
@@ -56,4 +56,4 @@ and then domain specific inet_frag_lru_move() define.
 +
  static inline u32 ieee802154_addr_hash(const struct ieee802154_addr *a)
  {
- 	switch (a->addr_type) {
+ 	switch (a->mode) {
diff --git a/patches/collateral-evolutions/network/0013-net-user-ns.patch b/patches/collateral-evolutions/network/0013-net-user-ns.patch
index 25752ca..add44fc 100644
--- a/patches/collateral-evolutions/network/0013-net-user-ns.patch
+++ b/patches/collateral-evolutions/network/0013-net-user-ns.patch
@@ -3,7 +3,7 @@ via commit 038e7332b8.
 
 --- a/net/ieee802154/reassembly.c
 +++ b/net/ieee802154/reassembly.c
-@@ -472,9 +472,11 @@ static int __net_init lowpan_frags_ns_sy
+@@ -478,9 +478,11 @@ static int __net_init lowpan_frags_ns_sy
  		table[2].data = &ieee802154_lowpan->frags.timeout;
  		table[3].data = &ieee802154_lowpan->max_dsize;
  
diff --git a/patches/collateral-evolutions/network/0014-inet_frag_evictor.patch b/patches/collateral-evolutions/network/0014-inet_frag_evictor.patch
index cfcbb4d..63ee691 100644
--- a/patches/collateral-evolutions/network/0014-inet_frag_evictor.patch
+++ b/patches/collateral-evolutions/network/0014-inet_frag_evictor.patch
@@ -3,7 +3,7 @@ carry the patch and if this grows consider Coccinelle SmPL version.
 
 --- a/net/ieee802154/reassembly.c
 +++ b/net/ieee802154/reassembly.c
-@@ -374,7 +374,14 @@ int lowpan_frag_rcv(struct sk_buff *skb,
+@@ -380,7 +380,14 @@ int lowpan_frag_rcv(struct sk_buff *skb,
  	if (frag_info->d_size > ieee802154_lowpan->max_dsize)
  		goto err;
  
@@ -16,5 +16,5 @@ carry the patch and if this grows consider Coccinelle SmPL version.
 +		inet_frag_evictor(&ieee802154_lowpan->frags, &lowpan_frags);
 +#endif
  
- 	fq = fq_find(net, frag_info, &mac_cb(skb)->sa, &mac_cb(skb)->da);
+ 	fq = fq_find(net, frag_info, &source, &dest);
  	if (fq != NULL) {
diff --git a/patches/collateral-evolutions/network/05-usb/p54usb.patch b/patches/collateral-evolutions/network/05-usb/p54usb.patch
index 2e0fc28..e083d98 100644
--- a/patches/collateral-evolutions/network/05-usb/p54usb.patch
+++ b/patches/collateral-evolutions/network/05-usb/p54usb.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/p54/p54usb.c
 +++ b/drivers/net/wireless/p54/p54usb.c
-@@ -1138,7 +1138,9 @@ static struct usb_driver p54u_driver = {
+@@ -1142,7 +1142,9 @@ static struct usb_driver p54u_driver = {
  	.resume = p54u_resume,
  	.reset_resume = p54u_resume,
  #endif /* CONFIG_PM */
diff --git a/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_iwlwifi.patch b/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_iwlwifi.patch
index e10db58..c8f9a1e 100644
--- a/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_iwlwifi.patch
+++ b/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_iwlwifi.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
 +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
-@@ -952,12 +952,21 @@ static void iwl_mvm_recalc_multicast(str
+@@ -1029,12 +1029,21 @@ static void iwl_mvm_recalc_multicast(str
  }
  
  static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw,
@@ -22,7 +22,7 @@
  	bool pass_all = false;
  	int len;
  
-@@ -976,11 +985,15 @@ static u64 iwl_mvm_prepare_multicast(str
+@@ -1053,11 +1062,15 @@ static u64 iwl_mvm_prepare_multicast(str
  		return (u64)(unsigned long)cmd;
  	}
  
diff --git a/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_rtl818x_rtl8180_dev.patch b/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_rtl818x_rtl8180_dev.patch
index bf81529..f97461e 100644
--- a/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_rtl818x_rtl8180_dev.patch
+++ b/patches/collateral-evolutions/network/25-multicast-list_head/drivers_net_wireless_rtl818x_rtl8180_dev.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
 +++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
-@@ -867,10 +867,19 @@ static void rtl8180_bss_info_changed(str
+@@ -987,10 +987,19 @@ static void rtl8180_bss_info_changed(str
  	}
  }
  
diff --git a/patches/collateral-evolutions/network/38-led-max-brightness/drivers_net_wireless_iwlwifi_mvm_led.patch b/patches/collateral-evolutions/network/38-led-max-brightness/drivers_net_wireless_iwlwifi_mvm_led.patch
index fc03324..1f21097 100644
--- a/patches/collateral-evolutions/network/38-led-max-brightness/drivers_net_wireless_iwlwifi_mvm_led.patch
+++ b/patches/collateral-evolutions/network/38-led-max-brightness/drivers_net_wireless_iwlwifi_mvm_led.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/iwlwifi/mvm/led.c
 +++ b/drivers/net/wireless/iwlwifi/mvm/led.c
-@@ -108,7 +108,9 @@ int iwl_mvm_leds_init(struct iwl_mvm *mv
+@@ -110,7 +110,9 @@ int iwl_mvm_leds_init(struct iwl_mvm *mv
  	mvm->led.name = kasprintf(GFP_KERNEL, "%s-led",
  				   wiphy_name(mvm->hw->wiphy));
  	mvm->led.brightness_set = iwl_led_brightness_set;
diff --git a/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_ethernet_atheros_alx_main.patch b/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_ethernet_atheros_alx_main.patch
index 46fef2d..ac4b617 100644
--- a/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_ethernet_atheros_alx_main.patch
+++ b/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_ethernet_atheros_alx_main.patch
@@ -44,7 +44,7 @@
  #ifdef CONFIG_NET_POLL_CONTROLLER
  	.ndo_poll_controller    = alx_poll_controller,
  #endif
-@@ -1345,7 +1359,11 @@ static int alx_probe(struct pci_dev *pde
+@@ -1339,7 +1353,11 @@ static int alx_probe(struct pci_dev *pde
  		}
  	}
  
diff --git a/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_wireless_ath_wil6210_netdev.patch b/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_wireless_ath_wil6210_netdev.patch
index cdf75c5..f5db9a4 100644
--- a/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_wireless_ath_wil6210_netdev.patch
+++ b/patches/collateral-evolutions/network/40-netdev-hw-features/drivers_net_wireless_ath_wil6210_netdev.patch
@@ -1,12 +1,16 @@
 --- a/drivers/net/wireless/ath/wil6210/netdev.c
 +++ b/drivers/net/wireless/ath/wil6210/netdev.c
-@@ -127,7 +127,9 @@ void *wil_if_alloc(struct device *dev, v
+@@ -127,9 +127,13 @@ void *wil_if_alloc(struct device *dev, v
  
  	ndev->netdev_ops = &wil_netdev_ops;
  	ndev->ieee80211_ptr = wdev;
 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
- 	ndev->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
+ 	ndev->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
+ 			    NETIF_F_SG | NETIF_F_GRO;
+ 	ndev->features |= ndev->hw_features;
++#else
++	ndev->features |= NETIF_F_HW_CSUM | NETIF_F_RXCSUM | NETIF_F_SG;
 +#endif
- 	ndev->features |= NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
  	SET_NETDEV_DEV(ndev, wiphy_dev(wdev->wiphy));
  	wdev->netdev = ndev;
+ 
diff --git a/patches/collateral-evolutions/network/81-genl-const/nfc.patch b/patches/collateral-evolutions/network/81-genl-const/nfc.patch
index f3bc515..c20b8ed 100644
--- a/patches/collateral-evolutions/network/81-genl-const/nfc.patch
+++ b/patches/collateral-evolutions/network/81-genl-const/nfc.patch
@@ -9,7 +9,7 @@
  	{ .name = NFC_GENL_MCAST_EVENT_NAME, },
  };
  
-@@ -1362,7 +1362,7 @@ static int nfc_genl_se_io(struct sk_buff
+@@ -1370,7 +1370,7 @@ static int nfc_genl_se_io(struct sk_buff
  	return dev->ops->se_io(dev, se_idx, apdu, apdu_len, se_io_cb, ctx);
  }
  
diff --git a/patches/collateral-evolutions/network/82-struct_property_missing/mwifiex.patch b/patches/collateral-evolutions/network/82-struct_property_missing/mwifiex.patch
index 26fa949..3c06e43 100644
--- a/patches/collateral-evolutions/network/82-struct_property_missing/mwifiex.patch
+++ b/patches/collateral-evolutions/network/82-struct_property_missing/mwifiex.patch
@@ -8,7 +8,7 @@
  
  /*
   * This function prepares command to set/get RSSI information.
-@@ -1430,9 +1431,10 @@ static int mwifiex_cmd_cfg_data(struct m
+@@ -1444,9 +1445,10 @@ static int mwifiex_cmd_cfg_data(struct m
  	struct property *prop = data_buf;
  	u32 len;
  	u8 *data = (u8 *)cmd + S_DS_GEN;
@@ -20,7 +20,7 @@
  		len = prop->length;
  		ret = of_property_read_u8_array(adapter->dt_node, prop->name,
  						data, len);
-@@ -1440,6 +1442,9 @@ static int mwifiex_cmd_cfg_data(struct m
+@@ -1454,6 +1456,9 @@ static int mwifiex_cmd_cfg_data(struct m
  			return ret;
  		dev_dbg(adapter->dev,
  			"download cfg_data from device tree: %s\n", prop->name);
diff --git a/patches/collateral-evolutions/network/84-ethernet/0001-igb_net_device_ops.patch b/patches/collateral-evolutions/network/84-ethernet/0001-igb_net_device_ops.patch
index 0b61f5c..c038717 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0001-igb_net_device_ops.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0001-igb_net_device_ops.patch
@@ -16,7 +16,7 @@ index 14ad4c7..f2a5abf 100644
  static void igb_restore_vlan(struct igb_adapter *);
  static void igb_rar_set_qsel(struct igb_adapter *, u8 *, u32 , u8);
  static void igb_ping_all_vfs(struct igb_adapter *);
-@@ -7168,8 +7173,12 @@ static void igb_vlan_mode(struct net_dev
+@@ -7209,8 +7214,12 @@ static void igb_vlan_mode(struct net_dev
  	igb_rlpml_set(adapter);
  }
  
@@ -29,7 +29,7 @@ index 14ad4c7..f2a5abf 100644
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7186,8 +7195,12 @@ static int igb_vlan_rx_add_vid(struct ne
+@@ -7227,8 +7236,12 @@ static int igb_vlan_rx_add_vid(struct ne
  	return 0;
  }
  
@@ -42,7 +42,7 @@ index 14ad4c7..f2a5abf 100644
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7213,7 +7226,11 @@ static void igb_restore_vlan(struct igb_
+@@ -7254,7 +7267,11 @@ static void igb_restore_vlan(struct igb_
  	igb_vlan_mode(adapter->netdev, adapter->netdev->features);
  
  	for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID)
diff --git a/patches/collateral-evolutions/network/84-ethernet/0002-igb_pci_sriov_configure.patch b/patches/collateral-evolutions/network/84-ethernet/0002-igb_pci_sriov_configure.patch
index d4e5796..fc3c09c 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0002-igb_pci_sriov_configure.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0002-igb_pci_sriov_configure.patch
@@ -22,7 +22,7 @@ index f2a5abf..dd878b6 100644
  	.err_handler = &igb_err_handler
  };
  
-@@ -7519,6 +7523,7 @@ static int igb_sriov_reinit(struct pci_d
+@@ -7560,6 +7564,7 @@ static int igb_sriov_reinit(struct pci_d
  	return 0;
  }
  
@@ -30,7 +30,7 @@ index f2a5abf..dd878b6 100644
  static int igb_pci_disable_sriov(struct pci_dev *dev)
  {
  	int err = igb_disable_sriov(dev);
-@@ -7528,6 +7533,7 @@ static int igb_pci_disable_sriov(struct
+@@ -7569,6 +7574,7 @@ static int igb_pci_disable_sriov(struct
  
  	return err;
  }
@@ -38,7 +38,7 @@ index f2a5abf..dd878b6 100644
  
  static int igb_pci_enable_sriov(struct pci_dev *dev, int num_vfs)
  {
-@@ -7545,6 +7551,8 @@ out:
+@@ -7586,6 +7592,8 @@ out:
  }
  
  #endif
@@ -47,7 +47,7 @@ index f2a5abf..dd878b6 100644
  static int igb_pci_sriov_configure(struct pci_dev *dev, int num_vfs)
  {
  #ifdef CONFIG_PCI_IOV
-@@ -7555,6 +7563,7 @@ static int igb_pci_sriov_configure(struc
+@@ -7596,6 +7604,7 @@ static int igb_pci_sriov_configure(struc
  #endif
  	return 0;
  }
diff --git a/patches/collateral-evolutions/network/84-ethernet/0006-igb_eee.patch b/patches/collateral-evolutions/network/84-ethernet/0006-igb_eee.patch
index b4f91a3..5dd34e1 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0006-igb_eee.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0006-igb_eee.patch
@@ -10,7 +10,7 @@ index 9b15820..9767f11 100644
  static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
-@@ -2717,6 +2718,7 @@ static int igb_set_eee(struct net_device
+@@ -2730,6 +2731,7 @@ static int igb_set_eee(struct net_device
  
  	return 0;
  }
@@ -18,7 +18,7 @@ index 9b15820..9767f11 100644
  
  static int igb_get_module_info(struct net_device *netdev,
  			       struct ethtool_modinfo *modinfo)
-@@ -3005,8 +3007,10 @@ static const struct ethtool_ops igb_etht
+@@ -3018,8 +3020,10 @@ static const struct ethtool_ops igb_etht
  	.get_ts_info		= igb_get_ts_info,
  	.get_rxnfc		= igb_get_rxnfc,
  	.set_rxnfc		= igb_set_rxnfc,
diff --git a/patches/collateral-evolutions/network/84-ethernet/0007-igb_ethtool_ops.patch b/patches/collateral-evolutions/network/84-ethernet/0007-igb_ethtool_ops.patch
index feaab02..116b5db 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0007-igb_ethtool_ops.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0007-igb_ethtool_ops.patch
@@ -18,7 +18,7 @@ index 9767f11..3cf9600 100644
  
  static int igb_get_rss_hash_opts(struct igb_adapter *adapter,
  				 struct ethtool_rxnfc *cmd)
-@@ -2720,6 +2722,7 @@ static int igb_set_eee(struct net_device
+@@ -2733,6 +2735,7 @@ static int igb_set_eee(struct net_device
  }
  #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
  
@@ -26,7 +26,7 @@ index 9767f11..3cf9600 100644
  static int igb_get_module_info(struct net_device *netdev,
  			       struct ethtool_modinfo *modinfo)
  {
-@@ -2798,6 +2801,7 @@ static int igb_get_module_eeprom(struct
+@@ -2811,6 +2814,7 @@ static int igb_get_module_eeprom(struct
  
  	return 0;
  }
@@ -34,7 +34,7 @@ index 9767f11..3cf9600 100644
  
  static int igb_ethtool_begin(struct net_device *netdev)
  {
-@@ -3004,15 +3008,19 @@ static const struct ethtool_ops igb_etht
+@@ -3017,15 +3021,19 @@ static const struct ethtool_ops igb_etht
  	.get_ethtool_stats	= igb_get_ethtool_stats,
  	.get_coalesce		= igb_get_coalesce,
  	.set_coalesce		= igb_set_coalesce,
diff --git a/patches/collateral-evolutions/network/84-ethernet/0008-igb_no_fcs.patch b/patches/collateral-evolutions/network/84-ethernet/0008-igb_no_fcs.patch
index 772b319..7b24fa1 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0008-igb_no_fcs.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0008-igb_no_fcs.patch
@@ -2,7 +2,7 @@ diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/in
 index fd6a103..a919cfa 100644
 --- a/drivers/net/ethernet/intel/igb/igb_main.c
 +++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -4691,9 +4691,10 @@ static u32 igb_tx_cmd_type(struct sk_buf
+@@ -4730,9 +4730,10 @@ static u32 igb_tx_cmd_type(struct sk_buf
  	cmd_type |= IGB_SET_FLAG(tx_flags, IGB_TX_FLAGS_TSTAMP,
  				 (E1000_ADVTXD_MAC_TSTAMP));
  
diff --git a/patches/collateral-evolutions/network/84-ethernet/0009-igb_vlan_rx_vid.patch b/patches/collateral-evolutions/network/84-ethernet/0009-igb_vlan_rx_vid.patch
index 63d8658..1757539 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0009-igb_vlan_rx_vid.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0009-igb_vlan_rx_vid.patch
@@ -18,7 +18,7 @@ index 37e6062..6bf0a88 100644
  static void igb_restore_vlan(struct igb_adapter *);
  static void igb_rar_set_qsel(struct igb_adapter *, u8 *, u32 , u8);
  static void igb_ping_all_vfs(struct igb_adapter *);
-@@ -7185,8 +7188,10 @@ static void igb_vlan_mode(struct net_dev
+@@ -7226,8 +7229,10 @@ static void igb_vlan_mode(struct net_dev
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
  static int igb_vlan_rx_add_vid(struct net_device *netdev,
  			       __be16 proto, u16 vid)
@@ -30,7 +30,7 @@ index 37e6062..6bf0a88 100644
  #endif
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
-@@ -7201,15 +7206,19 @@ static int igb_vlan_rx_add_vid(struct ne
+@@ -7242,15 +7247,19 @@ static int igb_vlan_rx_add_vid(struct ne
  
  	set_bit(vid, adapter->active_vlans);
  
@@ -52,7 +52,7 @@ index 37e6062..6bf0a88 100644
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7225,7 +7234,9 @@ static int igb_vlan_rx_kill_vid(struct n
+@@ -7266,7 +7275,9 @@ static int igb_vlan_rx_kill_vid(struct n
  
  	clear_bit(vid, adapter->active_vlans);
  
diff --git a/patches/collateral-evolutions/network/84-ethernet/0010-igb_ethtool_ops.patch b/patches/collateral-evolutions/network/84-ethernet/0010-igb_ethtool_ops.patch
index c847a4c..b99aaf7 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0010-igb_ethtool_ops.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0010-igb_ethtool_ops.patch
@@ -2,7 +2,7 @@ diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet
 index 3cf9600..5e519ce 100644
 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
 +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
-@@ -2816,6 +2816,7 @@ static void igb_ethtool_complete(struct
+@@ -2829,6 +2829,7 @@ static void igb_ethtool_complete(struct
  	pm_runtime_put(&adapter->pdev->dev);
  }
  
@@ -10,7 +10,7 @@ index 3cf9600..5e519ce 100644
  static u32 igb_get_rxfh_indir_size(struct net_device *netdev)
  {
  	return IGB_RETA_SIZE;
-@@ -2831,6 +2832,7 @@ static int igb_get_rxfh_indir(struct net
+@@ -2844,6 +2845,7 @@ static int igb_get_rxfh_indir(struct net
  
  	return 0;
  }
@@ -18,7 +18,7 @@ index 3cf9600..5e519ce 100644
  
  void igb_write_rss_indir_tbl(struct igb_adapter *adapter)
  {
-@@ -2867,6 +2869,7 @@ void igb_write_rss_indir_tbl(struct igb_
+@@ -2880,6 +2882,7 @@ void igb_write_rss_indir_tbl(struct igb_
  	}
  }
  
@@ -26,7 +26,7 @@ index 3cf9600..5e519ce 100644
  static int igb_set_rxfh_indir(struct net_device *netdev, const u32 *indir)
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
-@@ -2899,6 +2902,7 @@ static int igb_set_rxfh_indir(struct net
+@@ -2912,6 +2915,7 @@ static int igb_set_rxfh_indir(struct net
  
  	return 0;
  }
@@ -34,7 +34,7 @@ index 3cf9600..5e519ce 100644
  
  static unsigned int igb_max_channels(struct igb_adapter *adapter)
  {
-@@ -3021,9 +3025,11 @@ static const struct ethtool_ops igb_etht
+@@ -3034,9 +3038,11 @@ static const struct ethtool_ops igb_etht
  	.get_module_info	= igb_get_module_info,
  	.get_module_eeprom	= igb_get_module_eeprom,
  #endif
diff --git a/patches/collateral-evolutions/network/84-ethernet/0011-igb_ethtool_ops.patch b/patches/collateral-evolutions/network/84-ethernet/0011-igb_ethtool_ops.patch
index cd0f6d4..e438e76 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0011-igb_ethtool_ops.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0011-igb_ethtool_ops.patch
@@ -18,7 +18,7 @@ index 5e519ce..9f61f1d 100644
  
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
  static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
-@@ -3015,8 +3017,10 @@ static const struct ethtool_ops igb_etht
+@@ -3028,8 +3030,10 @@ static const struct ethtool_ops igb_etht
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
  	.get_ts_info		= igb_get_ts_info,
  #endif
diff --git a/patches/collateral-evolutions/network/84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch b/patches/collateral-evolutions/network/84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch
index c309699..69f4748 100644
--- a/patches/collateral-evolutions/network/84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch
+++ b/patches/collateral-evolutions/network/84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch
@@ -13,7 +13,7 @@ index 35ac7d8..e609f71 100644
  static int igb_ndo_get_vf_config(struct net_device *netdev, int vf,
  				 struct ifla_vf_info *ivi);
  static void igb_check_vf_rate_limit(struct igb_adapter *);
-@@ -2056,7 +2058,9 @@ static const struct net_device_ops igb_n
+@@ -2075,7 +2077,9 @@ static const struct net_device_ops igb_n
  	.ndo_set_vf_mac		= igb_ndo_set_vf_mac,
  	.ndo_set_vf_vlan	= igb_ndo_set_vf_vlan,
  	.ndo_set_vf_tx_rate	= igb_ndo_set_vf_bw,
@@ -23,7 +23,7 @@ index 35ac7d8..e609f71 100644
  	.ndo_get_vf_config	= igb_ndo_get_vf_config,
  #ifdef CONFIG_NET_POLL_CONTROLLER
  	.ndo_poll_controller	= igb_netpoll,
-@@ -7854,6 +7858,7 @@ static int igb_ndo_set_vf_bw(struct net_
+@@ -7895,6 +7899,7 @@ static int igb_ndo_set_vf_bw(struct net_
  	return 0;
  }
  
@@ -31,7 +31,7 @@ index 35ac7d8..e609f71 100644
  static int igb_ndo_set_vf_spoofchk(struct net_device *netdev, int vf,
  				   bool setting)
  {
-@@ -7880,6 +7885,7 @@ static int igb_ndo_set_vf_spoofchk(struc
+@@ -7921,6 +7926,7 @@ static int igb_ndo_set_vf_spoofchk(struc
  	adapter->vf_data[vf].spoofchk_enabled = setting;
  	return E1000_SUCCESS;
  }
@@ -39,7 +39,7 @@ index 35ac7d8..e609f71 100644
  
  static int igb_ndo_get_vf_config(struct net_device *netdev,
  				 int vf, struct ifla_vf_info *ivi)
-@@ -7892,7 +7898,9 @@ static int igb_ndo_get_vf_config(struct
+@@ -7933,7 +7939,9 @@ static int igb_ndo_get_vf_config(struct
  	ivi->tx_rate = adapter->vf_data[vf].tx_rate;
  	ivi->vlan = adapter->vf_data[vf].pf_vlan;
  	ivi->qos = adapter->vf_data[vf].pf_qos;
diff --git a/patches/collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch b/patches/collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch
index 19b3b85..4d452bd 100644
--- a/patches/collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch
+++ b/patches/collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch
@@ -16,15 +16,15 @@
  
  static int hidp_set_raw_report(struct hid_device *hid, unsigned char reportnum,
  			       unsigned char *data, size_t count,
-@@ -394,6 +396,7 @@ static int hidp_output_raw_report(struct
- 	return hidp_set_raw_report(hid, data[0], data, count, report_type);
+@@ -382,6 +384,7 @@ static int hidp_output_report(struct hid
+ 				      data, count);
  }
  
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)
  static int hidp_raw_request(struct hid_device *hid, unsigned char reportnum,
  			    __u8 *buf, size_t len, unsigned char rtype,
  			    int reqtype)
-@@ -407,6 +410,7 @@ static int hidp_raw_request(struct hid_d
+@@ -395,6 +398,7 @@ static int hidp_raw_request(struct hid_d
  		return -EIO;
  	}
  }
@@ -32,7 +32,7 @@
  
  static void hidp_idle_timeout(unsigned long arg)
  {
-@@ -736,8 +740,10 @@ static struct hid_ll_driver hidp_hid_dri
+@@ -724,8 +728,10 @@ static struct hid_ll_driver hidp_hid_dri
  	.stop = hidp_stop,
  	.open  = hidp_open,
  	.close = hidp_close,
diff --git a/patches/collateral-evolutions/network/86-qdisc_tx_busylock/ieee802154.patch b/patches/collateral-evolutions/network/86-qdisc_tx_busylock/ieee802154.patch
index b4f319d..039fa6f 100644
--- a/patches/collateral-evolutions/network/86-qdisc_tx_busylock/ieee802154.patch
+++ b/patches/collateral-evolutions/network/86-qdisc_tx_busylock/ieee802154.patch
@@ -1,6 +1,6 @@
 --- a/net/ieee802154/6lowpan_rtnl.c
 +++ b/net/ieee802154/6lowpan_rtnl.c
-@@ -374,7 +374,9 @@ static struct header_ops lowpan_header_o
+@@ -384,7 +384,9 @@ static struct header_ops lowpan_header_o
  	.create	= lowpan_header_create,
  };
  
@@ -10,7 +10,7 @@
  static struct lock_class_key lowpan_netdev_xmit_lock_key;
  
  static void lowpan_set_lockdep_class_one(struct net_device *dev,
-@@ -389,7 +391,9 @@ static void lowpan_set_lockdep_class_one
+@@ -399,7 +401,9 @@ static void lowpan_set_lockdep_class_one
  static int lowpan_dev_init(struct net_device *dev)
  {
  	netdev_for_each_tx_queue(dev, lowpan_set_lockdep_class_one, NULL);
-- 
1.8.5.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
  2014-04-08  3:32 ` [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU Luis R. Rodriguez
@ 2014-04-08 12:43   ` Mauro Carvalho Chehab
  2014-04-08 15:56     ` Antti Palosaari
  0 siblings, 1 reply; 20+ messages in thread
From: Mauro Carvalho Chehab @ 2014-04-08 12:43 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: backports, Antti Palosaari, Greg Kroah-Hartman

Em Mon, 07 Apr 2014 20:32:19 -0700
"Luis R. Rodriguez" <mcgrof@do-not-panic.com> escreveu:

> Commit bcf43393 as of linux-next next-20140320 added this Makefile
> header extension:
> 
> ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
> 
> This ends up calling a staging exported symbol rtl2832_sdr_attach().
> Let's not pollute driver code with staging code or dependencies.
> 
> Folks, can this be cleaned up? This sets a precedent for doing more
> of this, and this can get hairy. Its also not fair for folks who
> don't want to carry over any staging code. This forces them to, and
> its not just a header file, its a full exported symbol. What about
> synchronization with differen trees? Was this addressed with Greg?

The SDR code is at staging not because it has low quality, but because
we're still testing the SDR API before setting it into a stone.

The rtl2832u can operate in two modes: DVB-T and SDR. On DVB-T,
the hardware collects samples of a tuned channel and decodes it
with a hardware decoder, sending to userspace a MPEG TS stream.

On SDR, the hardware decoder is disabled, and the raw samples
are sent to userspace.

Yet, I agree that, if the SDR code is disabled, the rtl2832_sdr_attach()
should not be called. However, the code seems to be doing it
already. Take a look at drivers/staging/media/rtl2832u_sdr/rtl2832_sdr.h:

#if IS_ENABLED(CONFIG_DVB_RTL2832_SDR)
extern struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe,
	struct i2c_adapter *i2c, const struct rtl2832_config *cfg,
	struct v4l2_subdev *sd);
#else
static inline struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe,
	struct i2c_adapter *i2c, const struct rtl2832_config *cfg,
	struct v4l2_subdev *sd)
{
	dev_warn(&i2c->dev, "%s: driver disabled by Kconfig\n", __func__);
	return NULL;
}
#endif

Antti, please correct if I'm wrong, but the rtl2832u_tuner_attach()
code seems to not expect that the attach code succeeds. So, the only thing
that will happen DVB_RTL2832_SDR is disabled is that warning saying that
SDR is disabled will be sent to dmesg.

So, I don't see why to disable the entire driver due to that. Instead,
Just revert changeset bcf43393579e at the backport trees should be enough,
if don't want to backport the SDR driver.

Regards,
Mauro

> commit bcf43393579e3d4069e75a9200a87703185bcf11
> Author: Antti Palosaari <crope@iki.fi>
> Date:   Tue Sep 10 00:13:57 2013 -0300
> 
>     [media] rtl28xxu: attach SDR extension module
> 
>     With that extension module it supports SDR.
> 
>     Signed-off-by: Antti Palosaari <crope@iki.fi>
>     Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
> 
> Cc: Antti Palosaari <crope@iki.fi>
> Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
> ---
>  dependencies | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/dependencies b/dependencies
> index 6193ed1..b85268d 100644
> --- a/dependencies
> +++ b/dependencies
> @@ -185,8 +185,13 @@ VIDEO_RENESAS_VSP1 3.6
>  # This was added as of 3.7. Although we should be able to only enable
>  # this for 3.7 DVB_USB_RTL28XXU ends up selecting DVB_RTL2832 and
>  # that seems to currently require pegging both.
> -DVB_RTL2832 3.7
> -DVB_USB_RTL28XXU 3.7
> +#
> +# DVB_USB_RTL28XXU has a nasty ccflag usage thoug that includes staging
> +# headers introduced via commit bcf43393:
> +# ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
> +# Let's not support this nastiness.
> +DVB_RTL2832 DISABLE
> +DVB_USB_RTL28XXU DISABLE
>  
>  # struct gpio_chip only got the required members in 2.6.28
>  BCMA_DRIVER_GPIO 2.6.28


-- 

Regards,
Mauro

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
  2014-04-08 12:43   ` Mauro Carvalho Chehab
@ 2014-04-08 15:56     ` Antti Palosaari
  2014-04-08 16:20       ` Luis R. Rodriguez
  0 siblings, 1 reply; 20+ messages in thread
From: Antti Palosaari @ 2014-04-08 15:56 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Luis R. Rodriguez; +Cc: backports, Greg Kroah-Hartman

Moikka!

On 08.04.2014 15:43, Mauro Carvalho Chehab wrote:
> Em Mon, 07 Apr 2014 20:32:19 -0700
> "Luis R. Rodriguez" <mcgrof@do-not-panic.com> escreveu:
>
>> Commit bcf43393 as of linux-next next-20140320 added this Makefile
>> header extension:
>>
>> ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
>>
>> This ends up calling a staging exported symbol rtl2832_sdr_attach().
>> Let's not pollute driver code with staging code or dependencies.
>>
>> Folks, can this be cleaned up? This sets a precedent for doing more
>> of this, and this can get hairy. Its also not fair for folks who
>> don't want to carry over any staging code. This forces them to, and
>> its not just a header file, its a full exported symbol. What about
>> synchronization with differen trees? Was this addressed with Greg?
>
> The SDR code is at staging not because it has low quality, but because
> we're still testing the SDR API before setting it into a stone.
>
> The rtl2832u can operate in two modes: DVB-T and SDR. On DVB-T,
> the hardware collects samples of a tuned channel and decodes it
> with a hardware decoder, sending to userspace a MPEG TS stream.
>
> On SDR, the hardware decoder is disabled, and the raw samples
> are sent to userspace.
>
> Yet, I agree that, if the SDR code is disabled, the rtl2832_sdr_attach()
> should not be called. However, the code seems to be doing it
> already. Take a look at drivers/staging/media/rtl2832u_sdr/rtl2832_sdr.h:
>
> #if IS_ENABLED(CONFIG_DVB_RTL2832_SDR)
> extern struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe,
> 	struct i2c_adapter *i2c, const struct rtl2832_config *cfg,
> 	struct v4l2_subdev *sd);
> #else
> static inline struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe,
> 	struct i2c_adapter *i2c, const struct rtl2832_config *cfg,
> 	struct v4l2_subdev *sd)
> {
> 	dev_warn(&i2c->dev, "%s: driver disabled by Kconfig\n", __func__);
> 	return NULL;
> }
> #endif
>
> Antti, please correct if I'm wrong, but the rtl2832u_tuner_attach()
> code seems to not expect that the attach code succeeds. So, the only thing
> that will happen DVB_RTL2832_SDR is disabled is that warning saying that
> SDR is disabled will be sent to dmesg.

That is what happen and IIRC I tested it too once.

> So, I don't see why to disable the entire driver due to that. Instead,
> Just revert changeset bcf43393579e at the backport trees should be enough,
> if don't want to backport the SDR driver.

I will look if I can make mainline rtl28xxu driver compile without a 
staging directory (as that new SDR extension is on staging directory 
currently).


regards
Antti

>
> Regards,
> Mauro
>
>> commit bcf43393579e3d4069e75a9200a87703185bcf11
>> Author: Antti Palosaari <crope@iki.fi>
>> Date:   Tue Sep 10 00:13:57 2013 -0300
>>
>>      [media] rtl28xxu: attach SDR extension module
>>
>>      With that extension module it supports SDR.
>>
>>      Signed-off-by: Antti Palosaari <crope@iki.fi>
>>      Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
>>
>> Cc: Antti Palosaari <crope@iki.fi>
>> Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
>> ---
>>   dependencies | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/dependencies b/dependencies
>> index 6193ed1..b85268d 100644
>> --- a/dependencies
>> +++ b/dependencies
>> @@ -185,8 +185,13 @@ VIDEO_RENESAS_VSP1 3.6
>>   # This was added as of 3.7. Although we should be able to only enable
>>   # this for 3.7 DVB_USB_RTL28XXU ends up selecting DVB_RTL2832 and
>>   # that seems to currently require pegging both.
>> -DVB_RTL2832 3.7
>> -DVB_USB_RTL28XXU 3.7
>> +#
>> +# DVB_USB_RTL28XXU has a nasty ccflag usage thoug that includes staging
>> +# headers introduced via commit bcf43393:
>> +# ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
>> +# Let's not support this nastiness.
>> +DVB_RTL2832 DISABLE
>> +DVB_USB_RTL28XXU DISABLE
>>
>>   # struct gpio_chip only got the required members in 2.6.28
>>   BCMA_DRIVER_GPIO 2.6.28
>
>


-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
  2014-04-08 15:56     ` Antti Palosaari
@ 2014-04-08 16:20       ` Luis R. Rodriguez
  0 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-08 16:20 UTC (permalink / raw)
  To: Antti Palosaari
  Cc: Mauro Carvalho Chehab, backports@vger.kernel.org,
	Greg Kroah-Hartman

On Tue, Apr 8, 2014 at 8:56 AM, Antti Palosaari <crope@iki.fi> wrote:
> On 08.04.2014 15:43, Mauro Carvalho Chehab wrote:
>> Em Mon, 07 Apr 2014 20:32:19 -0700
>> "Luis R. Rodriguez" <mcgrof@do-not-panic.com> escreveu:
>>>
>>> Commit bcf43393 as of linux-next next-20140320 added this Makefile
>>> header extension:
>>>
>>> ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
>>>
>>> This ends up calling a staging exported symbol rtl2832_sdr_attach().
>>> Let's not pollute driver code with staging code or dependencies.
>>>
>>> Folks, can this be cleaned up? This sets a precedent for doing more
>>> of this, and this can get hairy. Its also not fair for folks who
>>> don't want to carry over any staging code. This forces them to, and
>>> its not just a header file, its a full exported symbol. What about
>>> synchronization with differen trees? Was this addressed with Greg?

<-- snip -->

>> The SDR code is at staging not because it has low quality, but because
>> we're still testing the SDR API before setting it into a stone.

I see, so there is no guarantee to userspace on API if the kernel
moves up? Its an interesting usage case for staging, perhaps one of
the better ones :)

>> Antti, please correct if I'm wrong, but the rtl2832u_tuner_attach()
>> code seems to not expect that the attach code succeeds. So, the only thing
>> that will happen DVB_RTL2832_SDR is disabled is that warning saying that
>> SDR is disabled will be sent to dmesg.
>
> That is what happen and IIRC I tested it too once.

I wasn't concerned over compilation but rather setting the precedent
of non staging code depending on staging headers, if this wasn't done
already.

>> So, I don't see why to disable the entire driver due to that. Instead,
>> Just revert changeset bcf43393579e at the backport trees should be enough,
>> if don't want to backport the SDR driver.
>
>
> I will look if I can make mainline rtl28xxu driver compile without a staging
> directory (as that new SDR extension is on staging directory currently).

That'd be swell! While this is one of the best use cases for staging I
am just concerned over abuse over it.

  Luis

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] backports: cath up to next-20140320
  2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
                   ` (11 preceding siblings ...)
  2014-04-08  3:32 ` [PATCH 12/12] backports: refresh patches for next-20140320 Luis R. Rodriguez
@ 2014-04-09  1:20 ` Luis R. Rodriguez
  2014-04-09  1:26   ` Luis R. Rodriguez
  12 siblings, 1 reply; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-09  1:20 UTC (permalink / raw)
  To: backports@vger.kernel.org; +Cc: Luis R. Rodriguez

On Mon, Apr 7, 2014 at 8:32 PM, Luis R. Rodriguez
<mcgrof@do-not-panic.com> wrote:
> This pushes backports to catch up to next-20140320 and depends on my last
> series. I'm pretty sure this compiles on all supported kernels but am leaving
> a ckmake job running and should have the results to be sure in an hour or so.
> In the meantime I'll go watch Cosmos with a group.

OK I had to address just one more change which I just posted. Since it
compiles fine I'm going to push now. Tomorrow is release day.

  Luis

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] backports: cath up to next-20140320
  2014-04-09  1:20 ` [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
@ 2014-04-09  1:26   ` Luis R. Rodriguez
  2014-04-09 11:54     ` Johannes Berg
  0 siblings, 1 reply; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-09  1:26 UTC (permalink / raw)
  To: backports@vger.kernel.org; +Cc: Luis R. Rodriguez

On Tue, Apr 8, 2014 at 6:20 PM, Luis R. Rodriguez
<mcgrof@do-not-panic.com> wrote:
>
> OK I had to address just one more change which I just posted. Since it
> compiles fine I'm going to push now. Tomorrow is release day.

Alright, all pushed out. Please fetch.

  Luis

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] backports: cath up to next-20140320
  2014-04-09  1:26   ` Luis R. Rodriguez
@ 2014-04-09 11:54     ` Johannes Berg
  2014-04-09 18:21       ` Luis R. Rodriguez
  0 siblings, 1 reply; 20+ messages in thread
From: Johannes Berg @ 2014-04-09 11:54 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: backports@vger.kernel.org

On Tue, 2014-04-08 at 18:26 -0700, Luis R. Rodriguez wrote:
> On Tue, Apr 8, 2014 at 6:20 PM, Luis R. Rodriguez
> <mcgrof@do-not-panic.com> wrote:
> >
> > OK I had to address just one more change which I just posted. Since it
> > compiles fine I'm going to push now. Tomorrow is release day.
> 
> Alright, all pushed out. Please fetch.

Can you clarify which tree you're using now? It seems you're updating
mcgrof/backports.git but I thought the intent was to switch over to
backports/backports.git so you can share maintenance with Hauke...

johannes


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] backports: cath up to next-20140320
  2014-04-09 11:54     ` Johannes Berg
@ 2014-04-09 18:21       ` Luis R. Rodriguez
  0 siblings, 0 replies; 20+ messages in thread
From: Luis R. Rodriguez @ 2014-04-09 18:21 UTC (permalink / raw)
  To: Johannes Berg; +Cc: backports@vger.kernel.org

On Wed, Apr 9, 2014 at 4:54 AM, Johannes Berg <johannes@sipsolutions.net> wrote:
> On Tue, 2014-04-08 at 18:26 -0700, Luis R. Rodriguez wrote:
>> On Tue, Apr 8, 2014 at 6:20 PM, Luis R. Rodriguez
>> <mcgrof@do-not-panic.com> wrote:
>> >
>> > OK I had to address just one more change which I just posted. Since it
>> > compiles fine I'm going to push now. Tomorrow is release day.
>>
>> Alright, all pushed out. Please fetch.
>
> Can you clarify which tree you're using now? It seems you're updating
> mcgrof/backports.git but I thought the intent was to switch over to
> backports/backports.git so you can share maintenance with Hauke...

Yeap sorry just pushed onto the shared repo. The canonical repo therefore is:

git://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git

  Luis

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-04-09 18:21 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-08  3:32 [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 01/12] backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq() Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 02/12] backports: backport APIs for manipulating skb page fragments Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 03/12] backports: backport skb_set_hash() Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 04/12] backports: complete backport of frag size accessors Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 05/12] backports: complete backport of translation of MMD EEE registers Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 06/12] backports: add GRO_* enums, and its new gro_result_t typedef Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 07/12] backports: bump kernel requirements for drivers that use s2mps14.h Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 08/12] backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU Luis R. Rodriguez
2014-04-08 12:43   ` Mauro Carvalho Chehab
2014-04-08 15:56     ` Antti Palosaari
2014-04-08 16:20       ` Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 09/12] backports: bump NFC_TRF7970A requirements to 3.5 Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 10/12] backports: make IEEE802154_AT86RF230 depend require 3.3 Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 11/12] backports: add kernel base requirement of 3.5 to IR_IMG Luis R. Rodriguez
2014-04-08  3:32 ` [PATCH 12/12] backports: refresh patches for next-20140320 Luis R. Rodriguez
2014-04-09  1:20 ` [PATCH 00/12] backports: cath up to next-20140320 Luis R. Rodriguez
2014-04-09  1:26   ` Luis R. Rodriguez
2014-04-09 11:54     ` Johannes Berg
2014-04-09 18:21       ` Luis R. Rodriguez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.