openwrt/staging/blogic.git
10 years agobackports: nuke support for kernels < 3.0
Luis R. Rodriguez [Fri, 11 Apr 2014 01:45:20 +0000 (01:45 +0000)]
backports: nuke support for kernels < 3.0

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

real    1m30.186s
user    9m25.180s
sys     0m24.428s

mcgrof@drvbp1 ~/build/next-20140409 $ time ckmake --allyesconfig
1   3.0.101             [  OK  ]
2   3.1.10              [  OK  ]
3   3.2.54              [  OK  ]
4   3.3.8               [  OK  ]
5   3.4.79              [  OK  ]
6   3.5.7               [  OK  ]
7   3.6.11              [  OK  ]
8   3.7.10              [  OK  ]
9   3.8.13              [  OK  ]
10  3.9.11              [  OK  ]
11  3.10.29             [  OK  ]
12  3.11.10             [  OK  ]
13  3.12.10             [  OK  ]
14  3.13.2              [  OK  ]
15  3.14-rc1            [  OK  ]

real    26m54.859s
user    744m15.764s
sys     83m47.440s

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport define of SIOCGHWTSTAMP
Luis R. Rodriguez [Wed, 9 Apr 2014 22:57:46 +0000 (22:57 +0000)]
backports: backport define of SIOCGHWTSTAMP

Ben added ioctl support for the unprivileged SIOCGHWTSTAMP
which is designed to just get the configuration, unlike
SIOCSHWTSTAMP which requires you to set it and only after
it returns the configuration.

Since we are carrying over a small addition to a UAPI header
without carrying it over completely (we use copy-list to
carry over full UAPI headers) its worth making a design note
about this.

We carry UAPI headers for backports to enable compilation
of kernel / driver code to compile without any changes. If
it so happens that a feature is backported it can be added
here but notice that if full subsystems are backported you
should just include the respective full header onto the
copy-list file so that its copied intact. The strategy on this
patch can be used to either backport a specific feature or
to just avoid having to do ifdef changes to compile kernel
or driver carried over by backports.

Userspace is *not expected* to copy over backports headers
to compile userspace programs, userspace programs can
and should consider carrying over a respective copy-list
of the latest UAPI kernel headers they need in their
upstream sources, the kernel the user uses, whether with
backports or not should be able to return -EOPNOTSUPP if
the feature is not available and let it through if its
supported and meats the expected form.

In this particular case if userspace tries to send the
SIOCGHWTSTAMP they'd end up with -ENOTTY.

mcgrof@ergon ~/linux (git::master)$ git describe --contains fd468c74
v3.14-rc1~94^2~622^2~12

commit fd468c74bd4d6949736810a80d6ca05eb20fba84
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Thu Nov 14 01:19:29 2013 +0000

    net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP

    SIOCSHWTSTAMP returns the real configuration to the application
    using it, but there is currently no way for any other
    application to find out the configuration non-destructively.
    Add a new ioctl for this, making it unprivileged.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport dev_consume_skb_any()
Luis R. Rodriguez [Wed, 9 Apr 2014 22:21:35 +0000 (22:21 +0000)]
backports: backport dev_consume_skb_any()

dev_consume_skb_any() was added by Eric via commit e6247027e
added as of v3.14 to help do analysis on the different reasons
why an skbs are free'd in particular to let us know how many get
dropped or consumed. The new dev_consume_skb_any() spawned the
inception of an optimization for dev_kfree_skb_irq() which was
implemented through __dev_kfree_skb_irq() which dev_kfree_skb_irq()
now uses. We could have taken advantage of both if kernels had
exported raise_softirq_irqoff() but they don't and as such we
can't reimplement that on backports as it stands right now.

If we'd be building backports in-kernel we could just take the
new implementation of __dev_kfree_skb_irq() as raise_softirq_irqoff()
would be available and we could reap the benefits of the change.
That implemention can be seen as a reference - for now - here:

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

For older kernels for now we just use the singular old version of
dev_kfree_skb_irq() and dev_kfree_skb_any().

mcgrof@ergon ~/linux (git::master)$ git describe --contains e6247027e
v3.14-rc1~94^2~585

commit e6247027e5173c00efb2084d688d06ff835bc3b0
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Dec 5 04:45:08 2013 -0800

    net: introduce dev_consume_skb_any()

    Some network drivers use dev_kfree_skb_any() and dev_kfree_skb_irq()
    helpers to free skbs, both for dropped packets and TX completed ones.

    We need to separate the two causes to get better diagnostics
    given by dropwatch or "perf record -e skb:kfree_skb"

    This patch provides two new helpers, dev_consume_skb_any() and
    dev_consume_skb_irq() to be used for consumed skbs.

    __dev_kfree_skb_irq() is slightly optimized to remove one
    atomic_dec_and_test() in fast path, and use this_cpu_{r|w} accessors.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: adjust flow_dissector.patch
Luis R. Rodriguez [Wed, 9 Apr 2014 20:39:24 +0000 (20:39 +0000)]
backports: adjust flow_dissector.patch

We copy over the net/core/flow_dissector.c code from
the kernel through the backports Kconfig magic for
our backport of NET_SCH_FQ_CODE:

config BACKPORT_USERSEL_NET_SCH_FQ_CODEL
        tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)"
        depends on m
        depends on !BACKPORT_KERNEL_2_6_25
        default m if NET_SCH_FQ_CODEL=n
        default m if BACKPORT_USERSEL_BUILD_ALL
        #module-name sch_fq_codel
        #c-file net/sched/sch_fq_codel.c
        #c-file net/core/flow_dissector.c

This pulls net/core/flow_dissector.c into the backports
module as compat/net-core-flow_dissector.c. We don't need
all the code there. Patches under patches/backport-adjustments/
can be used to adjust that type of code. Some changes have
been made to code we delete which means we need to manually
adjust the patch we carry. This is a hint as one area we could
look to enhance better to do more automatic backport work.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: drop display output class support
Luis R. Rodriguez [Wed, 9 Apr 2014 20:25:05 +0000 (20:25 +0000)]
backports: drop display output class support

Jean nuked display output class support so we won't
be needing the respective headers for compilation on
backports now. This is as seen on next-20140409.

commit f167a64e9d67ebd03d304e369c12011cf2bffaf5
Author: Jean Delvare <jdelvare@suse.de>
Date:   Mon Mar 17 15:49:10 2014 +0100

    video / output: Drop display output class support

    It was only ever used by the ACPI video driver, and that only use case
    vanished over 3 years ago (see commit 677bd810, "ACPI video: remove
    output switching control".) So this is dead code and I guess we can
    remove it now.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: device: don't redefine DEVICE_ATTR_RO
Arik Nemtsov [Wed, 9 Apr 2014 12:04:13 +0000 (15:04 +0300)]
backports: device: don't redefine DEVICE_ATTR_RO

Some old custom kernels have it defined.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add napi_gro_flush()
Johannes Berg [Wed, 9 Apr 2014 12:03:27 +0000 (15:03 +0300)]
backports: add napi_gro_flush()

napi_gro_flush() got a second argument in kernel 3.7, but it
can be ignored for prior kernel versions.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add hwsim defconfig
Johannes Berg [Wed, 9 Apr 2014 11:56:12 +0000 (13:56 +0200)]
backports: add hwsim defconfig

This can be useful for pure testing scenarios.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: refresh patches for next-20140320
Luis R. Rodriguez [Sat, 5 Apr 2014 22:56:09 +0000 (22:56 +0000)]
backports: refresh patches for next-20140320

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

mcgrof@drvbp1 ~/build/next-20140320 $ time ckmake --allyesconfig
1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

real    36m11.856s
user    994m29.360s
sys     124m49.936s

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport 3.6 fix on non CONFIG_COMMON_CLK kernels
Luis R. Rodriguez [Tue, 8 Apr 2014 15:36:13 +0000 (15:36 +0000)]
backports: backport 3.6 fix on non CONFIG_COMMON_CLK kernels

Commit 93abe8e4 by Viresh added non CONFIG_COMMON_CLK static inlines
that should have gone in for 3.5 as 3.5 assumed some declared routines
would be exproted by the architecture, which was not true. We backport
only the non CONFIG_COMMON_CLK case as CONFIG_COMMON_CLK requires
core kernel architecture specific backport support which we currently do
not support (and perhaps shouldn't). Since 3.5 is not a supported kernel
there is no need to fix this there upstream but this then does require
a paper wrap work around for those kernels of providing an export symbol
for clk_enable() and clk_disable() for the !CONFIG_COMMON_CLK case which
older kernels failed to address.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 93abe8e4
v3.6-rc1~41^2~117

Cc: Viresh Kumar <viresh.kumar@st.com>
Cc: Wolfram Sang <w.sang@pengutronix.de>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add kernel base requirement of 3.5 to IR_IMG
Luis R. Rodriguez [Tue, 8 Apr 2014 02:49:37 +0000 (02:49 +0000)]
backports: add kernel base requirement of 3.5 to IR_IMG

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>
10 years agobackports: make IEEE802154_AT86RF230 depend require 3.3.
Luis R. Rodriguez [Tue, 8 Apr 2014 02:39:14 +0000 (02:39 +0000)]
backports: make IEEE802154_AT86RF230 depend require 3.3.

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>
10 years agobackports: bump NFC_TRF7970A requirements to 3.5
Luis R. Rodriguez [Tue, 8 Apr 2014 02:34:48 +0000 (02:34 +0000)]
backports: bump NFC_TRF7970A requirements to 3.5

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>
10 years agobackports: disable DVB_RTL2832 and DVB_USB_RTL28XXU
Luis R. Rodriguez [Tue, 8 Apr 2014 02:24:55 +0000 (02:24 +0000)]
backports: disable DVB_RTL2832 and DVB_USB_RTL28XXU

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>
10 years agobackports: bump kernel requirements for drivers that use s2mps14.h
Luis R. Rodriguez [Tue, 8 Apr 2014 02:14:07 +0000 (02:14 +0000)]
backports: bump kernel requirements for drivers that use s2mps14.h

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>
10 years agobackports: add GRO_* enums, and its new gro_result_t typedef
Luis R. Rodriguez [Tue, 8 Apr 2014 02:04:51 +0000 (02:04 +0000)]
backports: add GRO_* enums, and its new gro_result_t typedef

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>
10 years agobackports: complete backport of translation of MMD EEE registers
Luis R. Rodriguez [Tue, 8 Apr 2014 02:01:42 +0000 (02:01 +0000)]
backports: complete backport of translation of MMD EEE registers

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>
10 years agobackports: complete backport of frag size accessors
Luis R. Rodriguez [Sun, 6 Apr 2014 21:57:27 +0000 (21:57 +0000)]
backports: complete backport of frag size accessors

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>
10 years agobackports: backport skb_set_hash()
Luis R. Rodriguez [Sun, 6 Apr 2014 21:14:27 +0000 (21:14 +0000)]
backports: backport skb_set_hash()

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>
10 years agobackports: backport APIs for manipulating skb page fragments
Luis R. Rodriguez [Sun, 6 Apr 2014 19:45:11 +0000 (19:45 +0000)]
backports: backport APIs for manipulating skb page fragments

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>
10 years agobackports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq()
Luis R. Rodriguez [Sat, 5 Apr 2014 23:21:15 +0000 (23:21 +0000)]
backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq()

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>
10 years agobackports: enhance 0001-netdev_ops.cocci with data structure specifics
Luis R. Rodriguez [Sat, 5 Apr 2014 06:49:16 +0000 (06:49 +0000)]
backports: enhance 0001-netdev_ops.cocci with data structure specifics

The 0001-netdev_ops.cocci is fine but is uses Expression which
makes the interpretation loose. We can reduce the namespace of
the change by using struct. We have to keep expression on the
right hand side as that can even be macros.

For a full example test coverage of this change see the test netdev-ops
github tree and run:

make test1

git checkout -f

make test2

The benefits should be clear, we are *not* modifying data structures
that have similar names. This increases accuracy and security of our
changes. The added run time penalty however is 50 seconds since we had
to use --recursive-includes. The time penatly is worth it for the
accuracy provided and since we'll likley need this flag elsewhere for
other rules.

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

real    1m56.339s
user    19m31.428s
sys     0m50.100s

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

[0] https://github.com/mcgrof/netdev-ops

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: convert threaded IRQ suport into an SmPL patch
Luis R. Rodriguez [Sat, 21 Dec 2013 19:40:20 +0000 (11:40 -0800)]
backports: convert threaded IRQ suport into an SmPL patch

We leave two patches under the 09-threaded-irq series, but there
are six things worth mentioning on this commit that are important.
I'll clarify that this SmPL port is simply done as a proof of
concept on testing the complexity of a backport for with Coccinelle,
this backport is only relevant for kernels older than 2.6.31 which
at this point is ancient and we should probably stop caring for soon.

  1) patches/collateral-evolutions/network/0015-threaded-irq.cocci

We rename the collateral evolution backport from the 09-threaded-irq as
this backport is now formalized and properly atomically split up. We
use 4 digit prefixes for formalized and atomically split up collateral
evolutions. The rest of the patch series that do not have 4 digits
imply that those series could use some love to be formally split up
atomically.

  2) 0015-threaded-irq/

We keep a directory for backported collateral evolutions for either
legacy backports without SmPL Coccinelle patches *or* for series that
are addressed with SmPL but that had some shortcomings with Coccinelle
that we are looking to address. Legacy backports also had an INFO file
in its directory, we keep it around for now for this series as we have
one legacy patch lingering around still but since Coccinelle lets us
put comments on top and the series is for all drivers we can just rely
on the comment section of an SmPL patch for this as patches get
translated.

  3) Rename of 09-threaded-irq/drivers_net_wireless_ti_wlcore_main_extra.patch
    to
    0016-threaded-irq-one-shot.patch

This patch is kept as it deals with driver specific IRQ changes
which are completely unrelated to the 09-threaded-irq series but that
we had tucked under in the older legacy backport. Because of this
we make emphasis by moving out out under the series. This can be
generalized as another backport series if other drivers wish to
backport.

This new seires backports commit b25c340c1 added by Thomas through kernel
v2.6.32 which added support for IRQF_ONESHOT. This lets drivers that use
threaded IRQ support to request that the IRQ is not masked after the
hard interrupt handler as this requires device  access in hard IRQ
context and for buses such as i2c and spi this at times is not
possible.

Note that the TI driver uses this when a platform quirk with
WL12XX_PLATFORM_QUIRK_EDGE_IRQ is detected. In retrospect this quirk
does not seem backportable unless IRQF_ONESHOT is really not a requirement,
but desired. If WL12XX_PLATFORM_QUIRK_EDGE_IRQ is indeed a requirement
for IRQF_ONESHOT then we should not probe complete. Its unclear
if this is a universal thing or not.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains b25c340c1
v2.6.32-rc1~722^2~3

  4) 0015-threaded-irq/drivers_net_wireless_iwlwifi_iwl-trans.patch

A data structure change to struct iwl_trans is not being done
by Coccinelle given that the driver's Makefile for iwlwifi uses
this for its includes:

ccflags-y += -D__CHECK_ENDIAN__ -I$(src)

Coccinelle doesn't pick up on this even if we use --recursive-includes.
This issue has been reported. An interesting thing about this is that
struct iwl_trans was *not* used before this patch which is why you see
the removal of the file drivers_net_wireless_iwlwifi_pcie_internal.patch
and as a replacement have added drivers_net_wireless_iwlwifi_iwl-trans.patch.
What happened is Coccinelle is consistent and the change, as expressed
in grammar, which reveleas that we were *not* consistent with our manual
backport! The older backport still worked though as it did not really
matter what data structure got changed so long as its an internal data
structure. This also means this backport could be modified to use
a generic backport data structure, which we don't yet have but could
be a good idea to stuff in general backport data structure extensions,
which we typically have not been able to address through backports
unless we use #ifdef's. This would however require some sort of driver
specific backport_device_alloc(), backport_device_init() and a respective
backport_device_free(). The overhead would need to be considered unless
some fancy trickery is introduced. Since 09-threaded-irq is a backport
for kernels >= 2.6.31 I don't recommend we consider this now. The effort
for using SmPL for this series was done simply as a way to demonstrate
the power of Coccinelle.

  5) Space fixes for extra code on Coccinelle modified branches:

This SmPL patch does some space modifications on the wil6210 [0], the reason
could be that Coccinelle is introducing some code on a branch and when it
detects this it puts the code it is adding with braces. This is another
great feature of Coccinelle but the space fixes that Julia has completed
may not be treated in that situation yet.

  6) This requires at least spatch 1.0.0-rc20.

[0] hunk in question shown below:

@@ -499,11 +518,21 @@ int wil6210_init_irq(struct wil6210_priv *wil, int irq)
int rc;
if (wil->n_msi == 3)
rc = wil6210_request_3msi(wil, irq);
-       else
+       else {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
rc = request_threaded_irq(irq, wil6210_hardirq,
-                                         wil6210_thread_irq,
-                                         wil->n_msi ? 0 : IRQF_SHARED,
-                                         WIL_NAME, wil);
+               wil6210_thread_irq,
+               wil->n_msi ? 0 : IRQF_SHARED,
+               WIL_NAME, wil);
+#else
+               rc = compat_request_threaded_irq(&wil->irq_compat, irq,
+                                                wil6210_hardirq,
+                                                wil6210_thread_irq,
+                                                wil->n_msi ? 0 :
IRQF_SHARED,
+                                                WIL_NAME,
+                                                wil);
+#endif
+       }
if (rc)
return rc;

Code generation time:

real    1m6.023s
user    10m0.276s
sys     0m26.196s

$ time ckmake --allyesconfig
1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

real    41m12.052s
user    1125m30.996s
sys     151m39.096s

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backports: reshufle the threaded IRQ backport series
Luis R. Rodriguez [Thu, 3 Apr 2014 23:30:16 +0000 (23:30 +0000)]
backports: backports: reshufle the threaded IRQ backport series

This reshufles the patches that deal with backported threaded
IRQ support. The purpose of this reshufle is to try get them
into a consistent style. Only the b43 driver takes a major
change in that the the workqueue used for threading work
is now also destroyed upon its b43_wireless_core_stop() call.
This change was tested by pkgadd from #linux-wireless on b43 on
an older kernel. The b43 driver just fails to unload but that
issue was present before this change.

The non-general changes to the b43 driver are also moved
out to a helper patch to help separate the general
collateral evolution changes from driver specific required
changes.

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: refresh patches based on next-20140311
Luis R. Rodriguez [Sat, 29 Mar 2014 22:09:57 +0000 (22:09 +0000)]
backports: refresh patches based on next-20140311

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

Generation time:

real    1m32.523s
user    23m51.796s
sys     0m28.872s

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport ieee802154 6lowpan support down to 3.5
Luis R. Rodriguez [Mon, 31 Mar 2014 07:20:25 +0000 (07:20 +0000)]
backports: backport ieee802154 6lowpan support down to 3.5

Commit 633fc86ff62 added the ieee802154_6lowpan namespace
and 7240cdec60b extended it (as on linux-next next-20140311).
Its important to note though that 633fc86ff62 also extends the
global net namespace. Since we cannot extend the global net
namespace we define our own backport namespace for 6lowpan
that can be used only be used by our backported subsystems,
nothing more. Since ieee802154_6lowpan requires support for
net_get_random_once() which uses static keys and a slew of
new skb fragment support we simply require at least 3.5 to
use 6lowpan. I did my best effort to backport this to kernels
older than 3.5 but quickly ran into a slew of hairy issues.

The last thing we needed to address was usage of the helper
inet_frag_evictor() added by Alexander via commit 6b102865e7
through v3.7. Since we can't backport that with macros or
inline helpers we add a patch to carry the changes there. If
that grows we can consider using Coccinelle.

If you are going to try to backport 6lowpan to kernels older
than 3.5 be warned that the litmus test for patches will be
to pass ckmake --allyesconfig for all supported kernels for
every patch you provide.

Cc: Alexander Aring <alex.aring@gmail.com>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: Amerigo Wang <amwang@redhat.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: 6lowpan domain specific backport of inet_frag_lru_move()
Luis R. Rodriguez [Tue, 1 Apr 2014 22:30:43 +0000 (22:30 +0000)]
backports: 6lowpan domain specific backport of inet_frag_lru_move()

We can't generalize a backport of inet_frag_lru_move() as
it requires modifying an internal struct netns_frags struct.
We work around this by extending the parent struct used within
6lowpan. We have two changes, one data structure change
and then a domain specific defines. Other subsystems which
require similar work can backport usage through similar
techniques.

The respective change upstream that put the lock on
struct netns_frags is commit 3ef0eb0db4 added by
through v3.9.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 3ef0eb0db4
v3.9-rc1~139^2~232^2

commit 3ef0eb0db4bf92c6d2510fe5c4dc51852746f206
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Mon Jan 28 23:45:51 2013 +0000

    net: frag, move LRU list maintenance outside of rwlock

    Updating the fragmentation queues LRU (Least-Recently-Used) list,
    required taking the hash writer lock.  However, the LRU list isn't
    tied to the hash at all, so we can use a separate lock for it.

Original-idea-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport net_get_random_once()
Luis R. Rodriguez [Sun, 30 Mar 2014 00:26:26 +0000 (00:26 +0000)]
backports: backport net_get_random_once()

Commit a48e4292 introduced as of v3.13 is used by 6lowpan which
we backport. We carry this over for older kernels that don't
define it -- but we remain sane by requiring at least 3.5 which is
where tons of the jump label / static key stuff seems to have last
settled. Backporting this to any older kernel than 3.5 has a huge
string of dependencies which although I was able to resovle the
other depdendencies on 6lowpan on new net core re-architecture on
skb fragment reassembly makes it pointless to carry. Mark my words:

  !! do not try to backport this to kernels older than 3.5 !!

mcgrof@ergon ~/linux (git::master)$ git describe --contains a48e4292
v3.13-rc1~105^2~157^2~4

commit a48e42920ff38bc90bbf75143fff4555723d4540
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Sat Oct 19 21:48:55 2013 +0200

    net: introduce new macro net_get_random_once

Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: address jump label and static key support
Luis R. Rodriguez [Sun, 30 Mar 2014 03:05:32 +0000 (03:05 +0000)]
backports: address jump label and static key support

The ieee802154 subsystem, which we backport, makes use of
net_get_random_once() through net/ieee802154/reassembly.c
and this in turn makes use of the static keys. Static keys
were split out from the jump label support via commit c5905afb
by Ingo through kernel v3.3 -- note that git describe --contains
will disagree and say its v3.5. Jump label support was added by
Jason via commit bf5438fc through kernel v2.6.37 but later
Jason provided static branch optimizations via commit d430d3d7e
added through v3.0. static_key_initialized and STATIC_KEY_CHECK_USE()
were last added by Hannes through kernel v3.13 throughy c4b2c0c5f.

In order to backport static keys and jump label we need to
provide name mapping for kernels that only had jump label support,
but due to the static branch optimizations and since these are
architecture specific we cannot backport them unless we start carrying
around architecture replacement code -- or do some other trickery.
For kernels that lacked jump label support and that don't have the
static branch optimizations we simply carry in the kernel implmentation
that assumes you have no architecture support for jump label which
treats the labels as simply atomic drivers for branches. For older
kernels then we don't backport usage of static_key_initialized and
usage of STATIC_KEY_CHECK_USE().

This does leave a gap of kernels without static key / jump label
support, I tried backporting it but ran into issues quickly. Those
daring to continue to embark on this journey can pick up where
I left off:

[0] drvbp1.linux-foundation.org/~mcgrof/examples/2014/04/01/backport-static-keys.patch

I will note that properly backporting this can have implications on how
we backport tracing support as that is the main usage for jump labels.
Real enthusiasts can go ahead an extend this with architecture / kernel
revision specific changes -- but be warned -- we will have hard litmus
test for compilation on backports using ckmake --allyesconfig on all
supported kernels we carry.

This is a long way of saying -- we require at least 3.5 for static
key support, we also support kernels older than 2.6.37 but this goes
untested.

mcgrof@ergon ~/linux (git::master)$ git describe --contains bf5438fc
v2.6.37-rc1~214^2~33^2~8

mcgrof@ergon ~/linux (git::master)$ git describe --contains d430d3d7e
v3.0-rc1~404^2~18^2~2

mcgrof@ergon ~/linux (git::master)$ git describe --contains c5905afb
v3.5-rc1~120^3~76^2 -- wrong! Its actually v3.3 try:
  git checkout -b static-changes c5905afb; git describe

mcgrof@ergon ~/linux (git::master)$ git describe --contains c4b2c0c5f
v3.13-rc1~105^2~157^2~6

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jason Baron <jbaron@redhat.com>
CC: Jason Baron <jbaron@redhat.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: address move of 6lowpan.c to 6lowpan_rtnl.c
Luis R. Rodriguez [Sat, 29 Mar 2014 23:27:01 +0000 (23:27 +0000)]
backports: address move of 6lowpan.c to 6lowpan_rtnl.c

Commit 01348b3448 moved 6lowpan.c to 6lowpan_rtnl.c
which means we have to adjust the respective backport
patches.

commit 01348b34485eceace5d9ca9756ba40679cf22ac6
Author: Alexander Aring <alex.aring@gmail.com>
Date:   Fri Feb 28 07:32:47 2014 +0100

    6lowpan: move 6lowpan.c to 6lowpan_rtnl.c

    We have a 6lowpan.c file and 6lowpan.ko file. To avoid confusing we
    should move 6lowpan.c to 6lowpan_rtnl.c. Then we can support multiple
    source files for 6lowpan module.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Alexander Aring <alex.aring@gmail.com>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add include/net/6lowpan.h to copy-list
Luis R. Rodriguez [Sat, 29 Mar 2014 22:20:57 +0000 (22:20 +0000)]
backports: add include/net/6lowpan.h to copy-list

We backport both the bluetooth and ieee802154 subsystems
and commit cefc8c8a7c moved the 6lowpan it out under from
net/ieee802154/6lowpan.h to include/net/6lowpan.h as bluetooth
now uses it. Since we backport both subsystems just copy the
header over.

commit cefc8c8a7c9e4867c45407f7f9a44fe80c5ea58a
Author: Alexander Aring <alex.aring@gmail.com>
Date:   Wed Mar 5 14:29:05 2014 +0100

    6lowpan: move 6lowpan header to include/net

    This header is used by bluetooth and ieee802154 branch. This patch
    move this header to the include/net directory to avoid a use of a
    relative path in include.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Alexander Aring <alex.aring@gmail.com>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: linux-zigbee-devel@lists.sourceforge.net
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add Coccinelle SmPL profiling support to gentree.py
Luis R. Rodriguez [Wed, 2 Apr 2014 12:13:05 +0000 (12:13 +0000)]
backports: add Coccinelle SmPL profiling support to gentree.py

This adds support to let you pass --profile when running Coccinelle.
This will skip all patches, rewriting Makefiles, Kconfigs, etc, and
it will also keep a copy of the original src directory prior to
applying the spatch. You pass the spatch file as an argument when
using this.

Screenshot of relevant output on 11-dev-pm-ops.cocci:

$ time ./gentree.py --clean --verbose --profile-cocci 11-dev-pm-ops.cocci \
        /home/mcgrof/linux-next/ \
        /home/mcgrof/build/backports-20140311

Copy original source files ...
Apply patches ...
Profiling Coccinelle SmPL patch: 11-dev-pm-ops.cocci
Applying SmPL patch collateral-evolutions/network/11-dev-pm-ops.cocci
> init_defs_builtins: /usr/local/share/coccinelle/standard.h
> warning: line 15: should pci be a metavariable?
> (ONCE) Expected tokens pm pci_driver driver pci SIMPLE_DEV_PM_OPS
> MODULE_DEVICE_TABLE
> Skipping:./net/mac802154/ieee802154_dev.c
> Skipping:./net/mac802154/mac_cmd.c
> Skipping:./net/mac802154/mib.c
> Skipping:./net/mac802154/monitor.c
> Skipping:./net/mac802154/rx.c
> Skipping:./net/mac802154/tx.c
> Skipping:./net/mac802154/wpan.c
> starting: Common.group_assoc_bykey_eff
> ending: Common.group_assoc_bykey_eff, 0.000114s
> ---------------------
> profiling result
> ---------------------
> Main total                               :      0.584 sec          1 count
> parse cocci                              :      0.422 sec          1 count
> pre_engine                               :      0.422 sec          1 count
> Main.infiles computation                 :      0.156 sec          1 count
> HACK                                     :      0.069 sec          1 count
> C parsing.tokens                         :      0.043 sec          1 count
> C parsing.fix_define                     :      0.022 sec          1 count
> get_glimpse_constants                    :      0.021 sec          1 count
> C parsing.lex_ident                      :      0.006 sec        673 count
> Common.full_charpos_to_pos_large         :      0.006 sec          1 count
> Main.outfiles computation                :      0.004 sec          1 count
> worth_trying                             :      0.004 sec          7 count
> Common.full_charpos_to_pos               :      0.003 sec          2 count
> Common.=~                                :      0.000 sec          4 count
> check_duplicate                          :      0.000 sec          1 count
> Main.result analysis                     :      0.000 sec          1 count
> Common.group_assoc_bykey_eff             :      0.000 sec          1 count
> asttoctl2                                :      0.000 sec          1 count
> post_engine                              :      0.000 sec          1 count
> show_xxx                                 :      0.000 sec          2 count

This goes on... and a page per thread spawned and the results will be
specific to the files tha the thread worked on. On the above results
we can see Coccinelle spent little to no time working on the above
files as it determined it had nothing to do there.

On big iron backports server:

real    0m31.226s
user    7m25.712s
sys     0m34.492s

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add support for testing only a single Coccinelle SmPL patch
Luis R. Rodriguez [Wed, 2 Apr 2014 10:18:10 +0000 (10:18 +0000)]
backports: add support for testing only a single Coccinelle SmPL patch

You can just pass now one cocci file with the --test-cocci to test
only that single Coccinelle SmPL patch. If you are not sure what
an SmPL patch produces and you only want to study the results of
applying only a single SmPL patch you can use this flag to trigger
enabling git on the target directory, a commit will be done before
applying the SmPL patch and then another commit will be performed
after the SmPL patch is applied. You can then use git show as you'd
expect to inspect the results.

Note that if you don't use --test-cocci and run gentree.py regularly
you can always still use --git-debug to see atomically what is happening
after each patch, including Coccinelle patches.

This modifies the coccinelle library to use 10 * num_cpus threads
for when in testing Coccinelle mode.

$ time ./gentree.py --clean --verbose --test-cocci 11-dev-pm-ops.cocci \
        /home/mcgrof/linux-next/ \
        /home/mcgrof/build/next-20140311

real    0m28.964s
user    6m57.848s
sys     0m25.124s

Note that you can pass either a full path or the file name alone
of the target Coccinelle SmPL patch you want to test.

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add git diff support to lib/bpgit.py
Luis R. Rodriguez [Wed, 2 Apr 2014 11:38:16 +0000 (11:38 +0000)]
backports: add git diff support to lib/bpgit.py

This will be used later for proving SmPL patches against
legacy patch series.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: use --ignore-removal for git add
Luis R. Rodriguez [Wed, 2 Apr 2014 10:44:42 +0000 (10:44 +0000)]
backports: use --ignore-removal for git add

As of git 2.0 --ignore-removal is no longer default so just
make it default tool, without which git will warn us about
this change.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add threaded Coccinelle spatch support
Luis R. Rodriguez [Mon, 31 Mar 2014 11:26:54 +0000 (11:26 +0000)]
backports: add threaded Coccinelle spatch support

Turns out Coccinelle has threaded support, it lets you
break down the target code you need to parse for a spatch
file into separate buckets, each bucket handling a subset of
the target files needed to be evaluated. This adds support
for that and shaves down the amount of time it gets to
generate target code by 97.19%.

Using:

mcgrof@drvbp1 ~/backports (git::master)$ time \
./gentree.py --verbose \
--clean \
--refresh \
/home/mcgrof/linux-next/ \
/home/mcgrof/build/next-20140311

Before this patch:

real    19m34.867s
user    18m43.492s
sys     0m21.244s

After this patch by using num_cpus threads:

real    2m42.012s
user    21m53.616s
sys     0m22.748s

After this patch by using 3 * num_cpus threads:

real    1m33.316s
user    24m6.080s
sys     0m28.264s

Using num_cpus threads alone was giving 2m42.012s, its why I
experimented in increasing this. I also experimented with
6 * num_cpus threads as well but the amount of time spent
running didn't reduce, lets keep this at 3 * num_cpus for now
and we can experiment and empirically find the best setting for
any system or just make this configurable.

We had SmPL patch integration first committed via
86d99c9d4 back then we were able to scale to a reasonable
similar time:

mcgrof@drvbp1 ~/backports (git::cocci-added)$ time \
./gentree.py --verbsose \
     --clean \
     --refresh \
     /home/mcgrof/linux-next
     /home/mcgrof/build/next-20131113
real    1m1.967s
user    0m49.304s
sys     0m11.880s

For history's purpose here's our run time without Coccinelle on
commit 338c4388cc:

mcgrof@drvbp1 ~/backports (git::before-smpl)$ time \
        ./gentree.py --verbose \
                     --clean \
                     --refresh \
                     /home/mcgrof/linux-next/ \
                     /home/mcgrof/build/next-20131029
real    0m29.639s
user    0m17.508s
sys     0m11.568s

This new changes sets us back on track with the timing for when we first
introduced Coccinelle support we just have a lot 5 Coccinelle patches
now. I hope this shows we should be able to scale with Coccinelle much more
efficiently for collateral evolutions that sprinkle through tons of
files.

Screenshots available using htop before [0] and after the patch [1]
while coccinelle is running, this shows how the system is using
resources much more efficiently when doing spatch evaluation for
patch generation on target code.

[0] http://drvbp1.linux-foundation.org/~mcgrof/images/coccinelle-backports/before-threaded-cocci.png
[1] http://drvbp1.linux-foundation.org/~mcgrof/images/coccinelle-backports/after-threaded-cocci.png

Cc: Peter Senna <peter.senna@gmail.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport inet_frag_maybe_warn_overflow()
Luis R. Rodriguez [Wed, 2 Apr 2014 00:54:30 +0000 (00:54 +0000)]
backports: backport inet_frag_maybe_warn_overflow()

This is used by the ieee802154 reassembly code. This is
a straight forward backport.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 5a3da1fe95
v3.9-rc4~27^2

commit 5a3da1fe9561828d0ca7eca664b16ec2b9bf0055
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Fri Mar 15 11:32:30 2013 +0000

    inet: limit length of fragment queue hash table bucket lists

    This patch introduces a constant limit of the fragment queue hash
    table bucket list lengths. Currently the limit 128 is choosen somewhat
    arbitrary and just ensures that we can fill up the fragment cache with
    empty packets up to the default ip_frag_high_thresh limits. It should
    just protect from list iteration eating considerable amounts of cpu.

    If we reach the maximum length in one hash bucket a warning is printed.
    This is implemented on the caller side of inet_frag_find to distinguish
    between the different users of inet_fragment.c.

    I dropped the out of memory warning in the ipv4 fragment lookup path,
    because we already get a warning by the slab allocator.

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Jesper Dangaard Brouer <jbrouer@redhat.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport frag helper functions for mem limit tracking
Luis R. Rodriguez [Tue, 1 Apr 2014 21:32:38 +0000 (21:32 +0000)]
backports: backport frag helper functions for mem limit tracking

Jesper added frag helper functions through commit d433673e5f
added on. This is a straight forward backport using the LINUX_BACKPORT()
namespace.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains d433673e5f
v3.9-rc1~139^2~232^2~2

commit d433673e5f9180e05a770c4b2ab18c08ad51cc21
Author: Jesper Dangaard Brouer <brouer@redhat.com>
Date:   Mon Jan 28 23:45:12 2013 +0000

    net: frag helper functions for mem limit tracking

    This change is primarily a preparation to ease the extension of memory
    limit tracking.

    The change does reduce the number atomic operation, during freeing of
    a frag queue.  This does introduce a some performance improvement, as
    these atomic operations are at the core of the performance problems
    seen on NUMA systems.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport skb_unclone()
Luis R. Rodriguez [Tue, 1 Apr 2014 21:22:41 +0000 (21:22 +0000)]
backports: backport skb_unclone()

Pravin added this via commit 14bbd6a565 through v3.9. This is
a straight forward backport using the LINUX_BACKPORT() namespace.

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 14bbd6a565
v3.9-rc1~139^2~56

commit 14bbd6a565e1bcdc240d44687edb93f721cfdf99
Author: Pravin B Shelar <pshelar@nicira.com>
Date:   Thu Feb 14 09:44:49 2013 +0000

    net: Add skb_unclone() helper function.

    This function will be used in next GRE_GSO patch. This patch does
    not change any functionality.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Cc: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport definition of struct frag_queue
Luis R. Rodriguez [Tue, 1 Apr 2014 19:43:37 +0000 (19:43 +0000)]
backports: backport definition of struct frag_queue

Commit b836c99f by Amerigo which got added on v3.7 generalized
the conntrack struct frag_queue while unifying the conntrack
reassembly expire code with a standard one. Although we won't
use the expiry code, another subsystem which we backport, the
ieee802154 6lowpan subsystem, makes use of this structure for
its own reassembly code. This makes that structure available
for older kernels.

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

Cc: Amerigo Wang <amwang@redhat.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: define ETH_P_80221
Luis R. Rodriguez [Sat, 29 Mar 2014 23:04:12 +0000 (23:04 +0000)]
backports: define ETH_P_80221

This is used by the bluetooth and ieee802154 subsystems later
and added via commit b62faf3c available on next-20140311.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: bump drivers dependency that require I2C bus classes
Luis R. Rodriguez [Sun, 30 Mar 2014 00:49:31 +0000 (00:49 +0000)]
backports: bump drivers dependency that require I2C bus classes

Drivers that depend on I2C bus segments behind multiplexers to
have a class require quite a bit of collateral changes that I
don't have time to address. For those interested in trying to backport
this see commit eee543e8. This bumps the drivers that depend on this
that we carry to require at least v3.7 when this collateral evolution
was introduced. One driver is affected, rtl2832 -- defined under
CONFIG_DVB_RTL2832.

mcgrof@ergon ~/linux (git::master)$ git describe --contains eee543e82481
v3.7-rc1~92^2~14

commit eee543e8248150e8fb833943c71f40c7b1724600
Author: Jean Delvare <khali@linux-fr.org>
Date:   Fri Oct 5 22:23:51 2012 +0200

    i2c-mux: Add support for device auto-detection

    Let I2C bus segments behind multiplexers have a class. This allows for
    device auto-detection on these segments. As long as parent segments
    don't share the same class, it should be fine.

    I implemented support in drivers i2c-mux-gpio and i2c-mux-pca954x. I
    left i2c-mux-pca9541 and i2c-mux-pinctrl alone for the moment as I
    don't know if this feature makes sense for the use cases of these
    drivers.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Peter Korsgaard <peter.korsgaard@barco.com>
Cc: David Daney <david.daney@cavium.com>
Cc: Michael Lawnick <ml.lawnick@gmx.de>
Cc: Rodolfo Giometti <giometti@linux.it>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: bump kernel reqs for WL1251_SDIO and WLCORE_SDIO
Luis R. Rodriguez [Tue, 1 Apr 2014 19:14:29 +0000 (19:14 +0000)]
backports: bump kernel reqs for WL1251_SDIO and WLCORE_SDIO

There has been quite a bit of updates to the gpio driver library,
and while we can backport some of this it doesn't make much sense
as folks using this driver are expected to be carrying over the
required architecture changes. In particular the GPIO_DEVRES has
been tucked under GPIO_LIB and later removed from depending on it
(see b69ac5244 and 6a89a314a)

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 6a89a314a
v3.9-rc1~76^2~12^2~13

mcgrof@ergon ~/linux-next (git::master)$ git describe --contains b69ac5244
v3.13-rc1~120^2~7

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: make WL1251_SPI depend on >= 3.5
Luis R. Rodriguez [Sun, 30 Mar 2014 00:31:55 +0000 (00:31 +0000)]
backports: make WL1251_SPI depend on >= 3.5

The WL1251_SPI driver now depends on EPROBE_DEFER and others which
we canot backports that pushes it to require 3.4 but since it also
relies on devm_gpio_request_one() we bump it to 3.5. The gpio layer
has received quite a bit of updates and it doesn't make sense to
backport them separately.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: backport MPLS support
Luis R. Rodriguez [Sat, 29 Mar 2014 22:05:11 +0000 (22:05 +0000)]
backports: backport MPLS support

This simply the files that define the structures and
defines used to decode MPLS on the skb. For an example
usage see 960d97f95. The headers were added first via
f3baa393ff.

commit f3baa393ffc9a7aefc0bf767729382085e81f606
Author: Simon Wunderlich <sw@simonwunderlich.de>
Date:   Mon Mar 3 17:23:11 2014 +0100

    UAPI: add MPLS label stack definition

    Labels for the Multiprotocol Label Switching are defined in RFC 3032
    which was superseded by RFC 5462. Add the definition to UAPI and a stub
    header for include/linux.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 960d97f9518ef6fb8ff87450d6b0c88ce5df9532
Author: Simon Wunderlich <sw@simonwunderlich.de>
Date:   Mon Mar 3 17:23:12 2014 +0100

    cfg80211: add MPLS and 802.21 classification

    MPLS labels may contain traffic control information, which should be
    evaluated and used by the wireless subsystem if present.

    Also check for IEEE 802.21 which is always network control traffic.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: ifdef some pci functions
Eliad Peller [Mon, 3 Mar 2014 11:34:21 +0000 (13:34 +0200)]
backports: ifdef some pci functions

struct msix_entry entry is defined only when CONFIG_PCI
is defined, resulting in warnings like:

backport-include/linux/pci.h:256:16: warning: 'struct msix_entry' declared inside parameter list [enabled by default]
backport-include/linux/pci.h:256:16: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]

wrap (also the mock function) with appropriate ifdef CONFIG_PCI.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: add crypto/ccm backport
Johannes Berg [Thu, 27 Feb 2014 17:37:49 +0000 (18:37 +0100)]
backports: add crypto/ccm backport

This seems to commonly be missing in the random kernels
people use, so just provide a backport.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: fix compilation with CONFIG_OF
Johannes Berg [Fri, 21 Mar 2014 08:36:33 +0000 (09:36 +0100)]
backports: fix compilation with CONFIG_OF

There are two users of of_find_property_value_of_size() which is
originally static in the kernel, but we need it exposed (but not
exported) so that multiple backport files can use it; do that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: refresh patches on next-20140221
Hauke Mehrtens [Fri, 21 Feb 2014 19:39:27 +0000 (20:39 +0100)]
backports: refresh patches on next-20140221

manual changes were needed on these files:
 * patches/backport-adjustments/flow_dissector.patch
 * patches/collateral-evolutions/network/16-bluetooth/net_bluetooth_hidp_core.patch
 * patches/collateral-evolutions/network/83-select_queue/mac80211.patch
 * patches/collateral-evolutions/network/83-select_queue/mwifiex.patch
 * patches/collateral-evolutions/network/85-hid_ll_driver/net_bluetooth_hidp_core.patch

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: remove usage of net_device member qdisc_tx_busylock
Hauke Mehrtens [Sat, 22 Feb 2014 21:32:45 +0000 (22:32 +0100)]
backports: remove usage of net_device member qdisc_tx_busylock

This member was added ion more recent kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add NLA_S{9,16,32,64}
Hauke Mehrtens [Sat, 22 Feb 2014 20:54:26 +0000 (21:54 +0100)]
backports: add NLA_S{9,16,32,64}

This is needed by net/ieee802154/nl_policy.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add of_property_read_u32_index()
Hauke Mehrtens [Sun, 23 Feb 2014 14:57:38 +0000 (15:57 +0100)]
backports: add of_property_read_u32_index()

This is needed by drivers/regulator/gpio-regulator.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add of_property_count_u32_elems()
Hauke Mehrtens [Sat, 22 Feb 2014 22:37:46 +0000 (23:37 +0100)]
backports: add of_property_count_u32_elems()

This is needed by drivers/regulator/gpio-regulator.c

This also adds of_property_count_elems_of_size()

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add devm_kstrdup()
Hauke Mehrtens [Sat, 22 Feb 2014 21:42:17 +0000 (22:42 +0100)]
backports: add devm_kstrdup()

This is needed by drivers/regulator/fixed.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add pci_enable_msix_range()
Hauke Mehrtens [Sat, 22 Feb 2014 22:37:32 +0000 (23:37 +0100)]
backports: add pci_enable_msix_range()

This is needed by drivers/net/ethernet/intel/igb/igb_main.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add pci_enable_msi_range()
Hauke Mehrtens [Sat, 22 Feb 2014 20:46:52 +0000 (21:46 +0100)]
backports: add pci_enable_msi_range()

This is needed by drivers/net/wireless/ath/wil6210/pcie_bus.c

pci_enable_msi_block() was added in kernel 2.6.30, so this does not
work on older kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add snd_card_new()
Hauke Mehrtens [Sat, 22 Feb 2014 20:42:07 +0000 (21:42 +0100)]
backports: add snd_card_new()

This is needed by drivers/media/pci/cx18/cx18-alsa-main.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add VHCI_MINOR
Hauke Mehrtens [Sat, 22 Feb 2014 20:30:51 +0000 (21:30 +0100)]
backports: add VHCI_MINOR

This is needed by drivers/bluetooth/hci_vhci.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add atomic64_set()
Hauke Mehrtens [Fri, 21 Feb 2014 17:59:25 +0000 (18:59 +0100)]
backports: add atomic64_set()

atomic64_set() is now used by mac80211 and it is not available on some
old arm kernels.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix indenting
Hauke Mehrtens [Fri, 21 Feb 2014 18:00:02 +0000 (19:00 +0100)]
backports: fix indenting

Replace spaces with tabs.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: backport ACPI_HANDLE(dev)
Ido Yariv [Thu, 13 Feb 2014 18:28:38 +0000 (13:28 -0500)]
backports: backport ACPI_HANDLE(dev)

In earlier kernel versions the define for retrieving the acpi handle was
called DEVICE_ACPI_HANDLE, so just use it.

Signed-off-by: Ido Yariv <idox.yariv@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: copy sch_fq_codel.c from kernel
Hauke Mehrtens [Mon, 10 Feb 2014 16:50:52 +0000 (17:50 +0100)]
backports: copy sch_fq_codel.c from kernel

Instead of using an own version of sch_fq_codel.c make backports copy
that code from the kernel and use that. This ensures that we will
always use the latest version.
This also includes flow_dissector.c which provides a function used by
sch_fq_codel.c.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: copy sch_codel.c from kernel
Hauke Mehrtens [Mon, 10 Feb 2014 22:24:41 +0000 (23:24 +0100)]
backports: copy sch_codel.c from kernel

Instead of using an own version of sch_codel.c make backports copy that
code from the kernel and use that. This ensures that we will always use
the latest version.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: copy cordic from kernel
Hauke Mehrtens [Mon, 10 Feb 2014 17:14:27 +0000 (18:14 +0100)]
backports: copy cordic from kernel

Instead of using an own version of cordic.c make backports copy that
code from the kernel and use that. This ensures that we will always use
the latest version.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add ETH_P_TEB and ETH_P_8021AD
Hauke Mehrtens [Mon, 10 Feb 2014 22:19:47 +0000 (23:19 +0100)]
backports: add ETH_P_TEB and ETH_P_8021AD

This is needed by net-core-flow_dissector.c.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add ipv6_addr_hash()
Hauke Mehrtens [Mon, 10 Feb 2014 22:18:47 +0000 (23:18 +0100)]
backports: add ipv6_addr_hash()

This is needed by net-core-flow_dissector.c Kernel < 2.6.25 and kernel
> 3.6 have this function.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: REGULATOR_S5M8767 depends on kernel 3.15
Hauke Mehrtens [Mon, 10 Feb 2014 21:06:32 +0000 (22:06 +0100)]
backports: REGULATOR_S5M8767 depends on kernel 3.15

This driver needs some additional struct members in struct
sec_regulator_data which are not available in a kernel < 3.15

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: conditionally access net/ieee802154/ with make
Johannes Berg [Mon, 10 Feb 2014 12:26:26 +0000 (13:26 +0100)]
backports: conditionally access net/ieee802154/ with make

This essentially reverts commit cb6f08d3c38c as that caused
issues with copy-list - the scripting when generating the
backport can't prove that net/ieee802154/ isn't needed and
will try to go into it even if it wasn't copied.

Instead, make net/ieee802154/ be entered whenever it might
be needed - which is for CPTCFG_IEEE802154 and CPTCFG_BT.
This is harmless if the directory ends up listed twice but
will cause this problem to disappear.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: make BACKPORT_BUILD_LEDS depend on LEDS_CLASS=n
Johannes Berg [Mon, 10 Feb 2014 12:25:45 +0000 (13:25 +0100)]
backports: make BACKPORT_BUILD_LEDS depend on LEDS_CLASS=n

Somehow !LEDS_CLASS and LEDS_CLASS=n seem to be different (likely
because LEDS_CLASS is tristate, but BACKPORT_BUILD_LEDS is just a
bool), so use LEDS_CLASS=n to fix build issues in other cases on
certain kernel configurations.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: refresh patches on next-20140207
Hauke Mehrtens [Fri, 7 Feb 2014 18:34:18 +0000 (19:34 +0100)]
backports: refresh patches on next-20140207

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.79              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.29             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.10             [  OK  ]
29  3.13.2              [  OK  ]
30  3.14-rc1            [  OK  ]

Manual changes were needed in
patches/collateral-evolutions/network/16-bluetooth/net_bluetooth_hidp_core.patch

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: update test kernel versions
Hauke Mehrtens [Fri, 7 Feb 2014 22:27:33 +0000 (23:27 +0100)]
backports: update test kernel versions

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: update sch_fq_codel_core.c
Hauke Mehrtens [Fri, 7 Feb 2014 23:52:57 +0000 (00:52 +0100)]
backports: update sch_fq_codel_core.c

This brings sch_fq_codel_core.c to the version used in kernel 3.14-rc1.
Most of the changes were done many kernel versions before 3.14-rc1, but
in kernel 3.14-rc1 net_random() was removed and not it does not even
compile any more.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add compat_put_timespec()
Hauke Mehrtens [Fri, 7 Feb 2014 23:52:42 +0000 (00:52 +0100)]
backports: add compat_put_timespec()

This is used by v4l2-compat-ioctl32.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: remove bluetooth HIDP transport-driver functions
Hauke Mehrtens [Fri, 7 Feb 2014 21:53:31 +0000 (22:53 +0100)]
backports: remove bluetooth HIDP transport-driver functions

The function pointer raw_request and output_report in struct
hid_ll_driver will be added with kernel 3.15, remove useage on
older kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add led_trigger_blink{_oneshot}()
Hauke Mehrtens [Fri, 7 Feb 2014 18:13:11 +0000 (19:13 +0100)]
backports: add led_trigger_blink{_oneshot}()

When led support is deactivated in the kernel and
CPTCFG_BACKPORT_BUILD_LEDS is set mac80211 references
led_trigger_blink_oneshot() but it is not declared anywhere.

This fixes the following build error:
net/mac80211/led.c: In function 'ieee80211_led_rx':
net/mac80211/led.c:25:2: error: implicit declaration of function 'led_trigger_blink_oneshot' [-Werror=implicit-function-declaration]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: backport power efficient workqueues
Johannes Berg [Fri, 31 Jan 2014 10:33:52 +0000 (11:33 +0100)]
backports: backport power efficient workqueues

These only exist starting from 3.11, and wireless code will
start using them soon. Backport them as simple defines using
the corresponding non-power-efficient workqueues.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: refresh on next-20140131
Hauke Mehrtens [Fri, 31 Jan 2014 16:22:11 +0000 (17:22 +0100)]
backports: refresh on next-20140131

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.77              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.27             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.8              [  OK  ]
29  3.13-rc8            [  OK  ]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: enable igb and add defconfig
Stefan Assmann [Wed, 29 Jan 2014 09:19:09 +0000 (10:19 +0100)]
backports: enable igb and add defconfig

Add defconfig and necessary files to copy-list.

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.1
Stefan Assmann [Wed, 29 Jan 2014 09:19:08 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.1

- add IFF_UNICAST_FLT define
- add PCI_DEV_FLAGS_ASSIGNED define
- add skb_frag_size_sub()
- add skb_frag_address()
- add patches/collateral-evolutions/network/84-ethernet/0011-igb_ethtool_ops.patch
- add patches/collateral-evolutions/network/84-ethernet/0012-igb_ndo_set_vf_spoofchk.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.2
Stefan Assmann [Wed, 29 Jan 2014 09:19:07 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.2

- add patches/collateral-evolutions/network/84-ethernet/0009-igb_vlan_rx_vid.patch
- add patches/collateral-evolutions/network/84-ethernet/0010-igb_ethtool_ops.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.3
Stefan Assmann [Wed, 29 Jan 2014 09:19:06 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.3

- add IFF_SUPP_NOFCS define
- add patches/collateral-evolutions/network/84-ethernet/0008-igb_no_fcs.patch

Is there a better way to handle struct sk_buff changes?

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.4
Stefan Assmann [Wed, 29 Jan 2014 09:19:05 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.4

- add struct timestamp_event_queue
- add struct ptp_clock
- add ptp_clock_index()
- add patches/collateral-evolutions/network/84-ethernet/0007-igb_ethtool_ops.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.5
Stefan Assmann [Wed, 29 Jan 2014 09:19:04 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.5

- add EEE defines
- backport __skb_alloc_page and __skb_alloc_pages
- add patches/collateral-evolutions/network/84-ethernet/0006-igb_eee.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.6
Stefan Assmann [Wed, 29 Jan 2014 09:19:03 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.6

- backport mmd_eee_adv_to_ethtool_adv_t
- add define to map ptp_clock_register() to old version
- add patches/collateral-evolutions/network/84-ethernet/0004-igb_err_handler.patch
- add patches/collateral-evolutions/network/84-ethernet/0005-igb_mdi.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.7
Stefan Assmann [Wed, 29 Jan 2014 09:19:02 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.7

- add pci_sriov_set_totalvfs()
- add patches/collateral-evolutions/network/84-ethernet/0002-igb_pci_sriov_configure.patch

Several ifdefs in igb_main.c to avoid compiler warnings.

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.8
Stefan Assmann [Wed, 29 Jan 2014 09:19:01 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.8

- add missing NETDEV_FRAG defines

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.9
Stefan Assmann [Wed, 29 Jan 2014 09:19:00 +0000 (10:19 +0100)]
backports: igb fixes for linux-3.9

- add struct pci_sriov
- add pci_vfs_assigned()
- add PCI_SRIOV defines
- add patches/collateral-evolutions/network/84-ethernet/0001-igb_net_device_ops.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.12
Stefan Assmann [Wed, 29 Jan 2014 09:18:59 +0000 (10:18 +0100)]
backports: igb fixes for linux-3.12

- refactor u64_stats_sync.h a bit
- add u64_stats_init define

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: igb fixes for linux-3.13
Stefan Assmann [Wed, 29 Jan 2014 09:18:58 +0000 (10:18 +0100)]
backports: igb fixes for linux-3.13

- add patches/collateral-evolutions/network/84-ethernet/0013-igb_hwmon.patch

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix uninstall filename
Hauke Mehrtens [Fri, 24 Jan 2014 20:21:16 +0000 (21:21 +0100)]
backports: fix uninstall filename

The uninstall script calculated the filename in the wrong way. It added
the current working dir into the file name, this resulted in names like
this:
/lib/modules/2.6.32-431.3.1.el6.x86_64/updates//home/hauke/backports-20140124/drivers/net/wireless/ipw2x00/ipw2100.ko
The correct one would be this
/lib/modules/2.6.32-431.3.1.el6.x86_64/updates/drivers/net/wireless/ipw2x00/ipw2100.ko

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: refresh on next-20140124
Hauke Mehrtens [Fri, 24 Jan 2014 16:06:29 +0000 (17:06 +0100)]
backports: refresh on next-20140124

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.77              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.27             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.8              [  OK  ]
29  3.13-rc8            [  OK  ]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: always access net/ieee802154/ with make
Hauke Mehrtens [Fri, 24 Jan 2014 17:23:21 +0000 (18:23 +0100)]
backports: always access net/ieee802154/ with make

In the kernel make will always access net/ieee802154/, we should do the
same.

This was changes in the kenrel in this commit:
commit a53d34c3465b8a840f7400932ae1b0a9f9ed6bef
Author: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com>
Date:   Wed Jan 15 02:50:40 2014 +0400

    net: move 6lowpan compression code to separate module

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add __sockaddr_check_size()
Hauke Mehrtens [Fri, 24 Jan 2014 18:10:59 +0000 (19:10 +0100)]
backports: add __sockaddr_check_size()

This is used by net/bluetooth/l2cap_sock.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add DECLARE_SOCKADDR
Hauke Mehrtens [Fri, 24 Jan 2014 16:57:19 +0000 (17:57 +0100)]
backports: add DECLARE_SOCKADDR

This is used by net/bluetooth/l2cap_sock.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: refresh on next-20140117
Hauke Mehrtens [Sat, 18 Jan 2014 20:51:47 +0000 (21:51 +0100)]
backports: refresh on next-20140117

1   2.6.25              [  OK  ]
2   2.6.26              [  OK  ]
3   2.6.27              [  OK  ]
4   2.6.28              [  OK  ]
5   2.6.29              [  OK  ]
6   2.6.30              [  OK  ]
7   2.6.31              [  OK  ]
8   2.6.32              [  OK  ]
9   2.6.33              [  OK  ]
10  2.6.34              [  OK  ]
11  2.6.35              [  OK  ]
12  2.6.36              [  OK  ]
13  2.6.37              [  OK  ]
14  2.6.38              [  OK  ]
15  2.6.39              [  OK  ]
16  3.0.101             [  OK  ]
17  3.1.10              [  OK  ]
18  3.2.54              [  OK  ]
19  3.3.8               [  OK  ]
20  3.4.77              [  OK  ]
21  3.5.7               [  OK  ]
22  3.6.11              [  OK  ]
23  3.7.10              [  OK  ]
24  3.8.13              [  OK  ]
25  3.9.11              [  OK  ]
26  3.10.27             [  OK  ]
27  3.11.10             [  OK  ]
28  3.12.8              [  OK  ]
29  3.13-rc8            [  OK  ]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix unused hidp_get_raw_report() warning
Hauke Mehrtens [Sun, 19 Jan 2014 14:16:49 +0000 (15:16 +0100)]
backports: fix unused hidp_get_raw_report() warning

This fixes the following warning:

/net/bluetooth/hidp/core.c:271:12: warning: ‘hidp_get_raw_report’ defined but not used [-Wunused-function]
 static int hidp_get_raw_report(struct hid_device *hid,
            ^

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix unused atl1e_rx_mode() warning
Hauke Mehrtens [Sun, 19 Jan 2014 14:03:04 +0000 (15:03 +0100)]
backports: fix unused atl1e_rx_mode() warning

This fixes the following warning:

/drivers/net/ethernet/atheros/atl1e/atl1e_main.c:328:13: warning: ‘atl1e_rx_mode’ defined but not used [-Wunused-function]
 static void atl1e_rx_mode(struct net_device *netdev,
             ^

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix unused var ret warning
Hauke Mehrtens [Sun, 19 Jan 2014 14:01:16 +0000 (15:01 +0100)]
backports: fix unused var ret warning

This fixes the following warning:

/drivers/net/wireless/mwifiex/sta_cmd.c: In function ‘mwifiex_cmd_cfg_data’:
/drivers/net/wireless/mwifiex/sta_cmd.c:1196:6: warning: unused variable ‘ret’ [-Wunused-variable]
  int ret;
      ^

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix unused mwifiex_sdio_resume() warning
Hauke Mehrtens [Sun, 19 Jan 2014 14:00:04 +0000 (15:00 +0100)]
backports: fix unused mwifiex_sdio_resume() warning

This fixes the following warning:

/drivers/net/wireless/mwifiex/sdio.c:124:12: warning: ‘mwifiex_sdio_resume’ defined but not used [-Wunused-function]
 static int mwifiex_sdio_resume(struct device *dev)
            ^

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix led_trigger warning with old kernel versions
Hauke Mehrtens [Sun, 19 Jan 2014 13:57:23 +0000 (14:57 +0100)]
backports: fix led_trigger warning with old kernel versions

This fixes the following warning:

/drivers/net/wireless/at76c50x-usb.c: In function ‘at76_mod_init’:
/drivers/net/wireless/at76c50x-usb.c:2472:2: warning: passing argument 2 of ‘led_trigger_register_simple’ from incompatible pointer type [enabled by default]
  led_trigger_register_simple("at76_usb-tx", &ledtrig_tx);
  ^
In file included from /backport-include/linux/leds.h:3:0,
                 from /drivers/net/wireless/at76c50x-usb.c:45:
include/linux/leds.h:97:13: note: expected ‘struct led_trigger **’ but argument is of type ‘struct backport_led_trigger **’
 extern void led_trigger_register_simple(const char *name,
             ^
/drivers/net/wireless/at76c50x-usb.c: In function ‘at76_mod_exit’:
/drivers/net/wireless/at76c50x-usb.c:2484:2: warning: passing argument 1 of ‘led_trigger_unregister_simple’ from incompatible pointer type [enabled by default]
  led_trigger_unregister_simple(ledtrig_tx);
  ^
In file included from /backport-include/linux/leds.h:3:0,
                 from /drivers/net/wireless/at76c50x-usb.c:45:
include/linux/leds.h:99:13: note: expected ‘struct led_trigger *’ but argument is of type ‘struct backport_led_trigger *’
 extern void led_trigger_unregister_simple(struct led_trigger *trigger);
             ^

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>