summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-08-10backports: refresh patches on v3.15.9v3.15.9-1linux-3.15.yHauke Mehrtens
1 3.0.101 [ OK ] 2 3.1.10 [ OK ] 3 3.2.62 [ OK ] 4 3.3.8 [ OK ] 5 3.4.102 [ 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.52 [ OK ] 12 3.11.10 [ OK ] 13 3.12.26 [ OK ] 14 3.13.11 [ OK ] 15 3.14.16 [ OK ] 16 3.15.7 [ OK ] 17 3.16.0 [ FAIL ] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: refresh on 3.15.1v3.15.1-1Hauke Mehrtens
1 3.0.101 [ OK ] 2 3.1.10 [ OK ] 3 3.2.60 [ OK ] 4 3.3.8 [ OK ] 5 3.4.93 [ 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.43 [ OK ] 12 3.11.10 [ OK ] 13 3.12.22 [ OK ] 14 3.13.11 [ OK ] 15 3.14.7 [ OK ] 16 3.15.0 [ OK ] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: only add net_get_random_once() when not availableHauke Mehrtens
Upstream commit: d787b3dd3b4fcb5f40eb6532163dc3abdca4fd45 net_get_random_once() was added unconditionally also when the kernel we are compiling against already provided this function, this patch checks that first. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: move net_device_priv_flagsHauke Mehrtens
Upstream commit: 4d1a1850cfb8918fbf190071d1f1f1383814538e These flags are now defined in linux/netdevice.h and not in linux/if.h any more. This patch also removed some defined in all kernel versions since 3.0. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: fix class/bus attribute group spatch conversionJohannes Berg
Upstream commit: 495b6d7968e4ce08fb1371197bce7a8c8a482069 The spatch conversion (commit 05d44557c6a83b4ecb935cb6306f62, "backports: transform group attribute backport to SmPL form") added an #ifdef that shouldn't be there - remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: select_queue patch: fix callback kernel versionHauke Mehrtens
Upstream commit: d260afa8c4aecde4abdecfa299713bc473c0dba4 The patch changing the callback function signature was backported to kernel 3.14, this was already fixed in backports for mac80211, but that commit missed mwifiex. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: backport-3.15: Include fixRichard Röjfors
Upstream commit: 1b62085572206ee0ad9a89dcc5528d63b432d7fe In this version the correct linux string.h is included. Include string.h to avoid compile issues if warnings are treated as errors: backports-3.14-1/compat/backport-3.15.c: In function 'backport_devm_kstrdup': backports-3.14-1/compat/backport-3.15.c:33:2: error: implicit declaration of function 'strlen' [-Werror=implicit-function-declaration] size = strlen(s) + 1; ^ backports-3.14-1/compat/backport-3.15.c:33:9: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default] size = strlen(s) + 1; ^ backports-3.14-1/compat/backport-3.15.c:36:3: error: implicit declaration of function 'memcpy' [-Werror=implicit-function-declaration] memcpy(buf, s, size); ^ backports-3.14-1/compat/backport-3.15.c:36:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default] Signed-off-by: Richard Röjfors <richard@puffinpack.se> [refreshed patch on current master] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backports: Avoid multiple definition of DEVICE_ATTR_RW for older kernelsJonathan DE CESCO
Upstream commit: dc2c1472a9b05ff5e574d0d14e6251e8af0a025a This definition may exists on non-vanilla kernels. Signed-off-by: Jonathan DE CESCO <jonathan.de.cesco@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-18backport: CCM: set correct dependenciesJohannes Berg
Upstream commit: 816cbc860692cb60bf6e5e16ec2b4532992c7e0a If these aren't actually compiled in, then the mac80211 code will fail at runtime. Add these dependencies so we at least get a warning at compile time about this. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-17backports: select_queue patch: fix callback kernel versionJohannes Berg
Upstream commit: 44554cd57d0016c52aeed2ce4f27081b9d9c915f The callback argument has been passed since kernel 3.14, not only 3.15 - fix that. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-17backports: ifdef code already present in RHEL7.0Stefan Assmann
Upstream commit: 6dfa96a892c962cda981cda1b2c88e6b1df5c886 Avoid conflicts with RHEL7.0 as DEVICE_ATTR_* defines, enum pkt_hash_types, skb_set_hash(), dma_common_get_sgtable() are already present. Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-06-17backports: wrap dma_set_mask_and_coherent in LINUX_BACKPORT()Stefan Assmann
Upstream commit: 3443187edd32767c838e5d4f654df474e77fb7ce To avoid conflicts with any distribution kernel wrap dma_set_mask_and_coherent with LINUX_BACKPORT(). Signed-off-by: Stefan Assmann <sassmann@kpanic.de> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: Christian Ratzenhofer <christian.ratzenhofer@cdnm.at> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2014-04-17backports: refresh patches for next-20140415Luis R. Rodriguez
This update required one collateral evolution to be addressed, the rest was just a patch refresh. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean --refresh /home/mcgrof/linux-next /home/mcgrof/build/next-20140415 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m16.527s user 10m47.068s sys 0m37.412s 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 18m42.577s user 498m48.572s sys 64m0.560s Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
2014-04-17backports: formalize struct sock sk_data_ready() backport with SmPLLuis R. Rodriguez
Commit 676d2369 by David removed the skb->len arguments passed onto the struct sock sk_data_ready() callback. This was done as its racy, a few drivers were passing 0 to it, and it was not really used. By removing it the raciness is addresed but to backport this we are going to have to deal with the races as-is on older kernels. This was merged as of v3.15: mcgrof@ergon ~/linux-next (git::master)$ git describe --contains 676d2369 v3.15-rc1~8^2~10 Since this is not a define or static inline we can't easily replace this with the backports module or header files, instead we use SmPL grammar to generalize the backport for all use cases. Note that in order to backport this we won't know what older kernel drivers were using before this change, it could have been 0 or skb->len for the length parameter, since we have to infer something we choose skb->len *iff* skb_queue_tail() was used right before it, otherwise we infer to throw 0. Adding this SmPL patch to our series only incurs an additional ~9 seconds on run time code generation. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140415-clean Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m25.128s user 12m49.380s sys 0m44.892s 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 18m42.577s user 498m48.572s sys 64m0.560s commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e Author: David S. Miller <davem@davemloft.net> Date: Fri Apr 11 16:15:36 2014 -0400 net: Fix use after free by removing length arg from sk_data_ready callbacks. Several spots in the kernel perform a sequence like: skb_queue_tail(&sk->s_receive_queue, skb); sk->sk_data_ready(sk, skb->len); But at the moment we place the SKB onto the socket receive queue it can be consumed and freed up. So this skb->len access is potentially to freed up memory. Furthermore, the skb->len can be modified by the consumer so it is possible that the value isn't accurate. And finally, no actual implementation of this callback actually uses the length argument. And since nobody actually cared about it's value, lots of call sites pass arbitrary values in such as '0' and even '1'. So just remove the length argument from the callback, that way there is no confusion whatsoever and all of these use-after-free cases get fixed as a side effect. Based upon a patch by Eric Dumazet and his suggestion to audit this issue tree-wide. Signed-off-by: David S. Miller <davem@davemloft.net> Cc: David S. Miller <davem@davemloft.net> 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>
2014-04-17backports: pycocci - make the Coccinelle wrapper a standalone toolLuis R. Rodriguez
This lets us share it for general use as a generic tool, we'll upkeep it here for now and if Coccinelle picks it up we can drop it and just require folks to install it. This lets us use the same solution for standard testing / regular development and also for backports without any discrepencies. 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>
2014-04-17backports: add a 120 second timeout rule to CoccinelleLuis R. Rodriguez
Our current overall run time is less than 120 seconds so lets add a trigger to fail if we have a rule taking longer. Adding this has no extra incurred overhead cost. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m15.463s user 10m49.100s sys 0m37.100s 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>
2014-04-17backports: Use Coccinelle --relax-include-pathLuis R. Rodriguez
This will provide wider coverage on include paths for our Coccinelle rule interpretation, at a very lower cost incurred, about 1 second, for code generation. Coccinelle makes an effort to infer types but with a wider coverage of header files it can do a better job at that. You want to use both --recursive-includes (which we already enable) and --relax-include-path to get the most possible type information. You will want at least Coccinelle 1.0.0-rc20 which had an increase of performance of over 30% when using both --recursive-includes and --relax-include path. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m15.370s user 10m47.232s sys 0m36.980s 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>
2014-04-17backports: use --use-coccigrep for CoccinelleLuis R. Rodriguez
This uses --use-coccigrep on our Cocccinelle library and removes the CPU adjustments depending on whether we are testing or not. The flag --use-coccigrep will tell Coccinelle to only kick off a worker on a file until it has determined that a rule being evaluated applies to a file. This does however mean that all files on its bucket list will be evaluated first, but this yields better CPU usage without having us to ramp up on the number of threads depending on the situation. Without this patch we were kicking off more threads to account for the fact that a Coccinelle thread will stop working on a file if it had little or nothing to do on a file. Possible work improvement: see how we can do away with tmp files for Coccinelle output and just use memory to for the ouput, or perhaps even disregard the stdout and only care for it if --debug-cocci is provided. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m14.880s user 10m47.824s sys 0m36.796s 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>
2014-04-17backports: transform group attribute backport to SmPL formLuis R. Rodriguez
The struct attribute_group collateral evolution by Greg and Oliver was introduced as of v3.11: mcgrof@ergon ~/linux (git::master)$ git describe --contains f2f37f58b v3.11-rc2~18^2~9 mcgrof@ergon ~/linux (git::master)$ git describe --contains 3493f69f4 v3.11-rc2~18^2~2 We backport them with our own respective set of helpers. Each new data structure that gets an attribute group needs a respective SmPL set of rules for the transformation, specially if they were introduced in different kernel versions, which in this case we have two which were. By using SmPL we can automatically backport the collateral evolutions moving forward for *any* driver that makes use of these group attributes on both data structure we are addressing in these SmPL patches. This is a great example of the level of atomicity that we want to ideally strive to reach for backporting, as it lets us automatically backport a collateral evolution through grammer for *any* device driver we backport, and lets us be lazier. We provided backports of introduction of the group attribute onto two data structures: * struct class: added via commit d05a6f96c * struct bus_type: added via commit fa6fdb33b mcgrof@ergon ~/linux (git::master)$ git describe --contains d05a6f96c v3.11-rc2~18^2~3 mcgrof@ergon ~/linux (git::master)$ git describe --contains fa6fdb33b v3.12-rc1~184^2~89 This patch generalizes the backport the introduction of the group attribute to each data structure into separate SmPL patch files. One change the SmPL patches pick up on was #ifdef'ing over the init_foogroup_attrs() calls which would only have been introduced when ATTRIBUTE_GROUPS_BACKPORT() was used, which *is* #idefd's. The changes that added the new APIs are below, the respective commits for each data structure change are documented on each SmPL patch. commit f2f37f58b1b933b06d6d84e80a31a1b500fb0db2 Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Date: Sun Jul 14 16:05:52 2013 -0700 sysfs.h: add ATTRIBUTE_GROUPS() macro To make it easier for driver subsystems to work with attribute groups, create the ATTRIBUTE_GROUPS macro to remove some of the repetitive typing for the most common use for attribute groups. Reviewed-by: Guenter Roeck <linux@roeck-us.net> Tested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> commit 3493f69f4c4e8703961919a9a56c2d2e6a25b46f Author: Oliver Schinagl <oliver@schinagl.nl> Date: Sun Jul 14 16:05:59 2013 -0700 sysfs: add more helper macro's for (bin_)attribute(_groups) With the recent changes to sysfs there's various helper macro's. However there's no RW, RO BIN_ helper macro's. This patch adds them. Signed-off-by: Oliver Schinagl <oliver@schinagl.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> mcgrof@drvbp1 ~/backports (git::master)$ time \ ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m14.635s user 5m17.308s sys 0m39.216s == ckmake-report.log == 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 28m18.533s user 785m28.844s sys 86m25.548s Cc: Peter Senna <peter.senna@gmail.com> Cc: Julia Lawall <julia.lawall@lip6.fr> Cc: Gilles Muller <Gilles.Muller@lip6.fr> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Oliver Schinagl <oliver@schinagl.nl> Cc: linux-kernel@vger.kernel.org Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
2014-04-17backports: revert unification of cocci filesLuis R. Rodriguez
This optimization was introduced by Johannes to help with performance before we had parallelism. With parallelism we get better results by splitting rules up. Also some feedback from Julia on this: === I don't think this is a good idea. You would have to be careful about naming. And You may lose on some performance benefits of the prefiltering. Suppose you have an easy semantic patch that references function A and a hard semantic patch that references function B. The hard semantic patch specifically contains one rule that is very complicated but that does not use B. That very complicated rule will now be applied to the 5000 files that use A as well as to the 3 files that use B. So you get a big performance slowdown. === The performance before this change: mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean --refresh \ /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 After: mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m3.071s user 3m39.388s sys 0m21.812s commit 3c71184d3a2843c9a1d5a289c71bfbbc126d71fd Author: Johannes Berg <johannes.berg@intel.com> Date: Wed Jan 1 20:37:13 2014 +0100 gentree: combine spatches (unless using --gitdebug) Since spatch is rather slow, but can handle multiple spatches concatenated in a single file, just do that and run it only once rather than for each spatch. That shaves off some of the runtime (startup etc. and finding affected files.) On my system, I go from real 9m42.616s user 8m48.352s sys 0m22.884s to real 9m1.948s user 8m40.108s sys 0m12.088s 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>
2014-04-17backports: refresh patches for next-20140409 and next-20140411Luis R. Rodriguez
We were required to refresh patches for next-20140409 but for next-20140411 no changes were required. Since no actual commit is necessary next time this happens (which can often, hence -- automatic backports --) I'll just peg the results on the PGP signed tag for the release. I'll peg this commit with both next tags because of this. Just run git describe to find out the respective linux-next tag you should be using as that is the latest validated one. mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean --refresh \ /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 mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py --clean --refresh /home/mcgrof/linux-next /home/mcgrof/build/next-20140411 Copy original source files ... Apply patches ... Modify Kconfig tree ... Rewrite Makefiles and Kconfig files ... Done! real 1m30.437s user 9m22.812s sys 0m24.484s 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 28m21.215s user 786m8.468s sys 86m46.564s Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
2014-04-17backports: nuke support for kernels < 3.0Luis R. Rodriguez
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>
2014-04-17backports: backport define of SIOCGHWTSTAMPLuis R. Rodriguez
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>
2014-04-17backports: backport dev_consume_skb_any()Luis R. Rodriguez
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>
2014-04-17backports: adjust flow_dissector.patchLuis R. Rodriguez
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>
2014-04-17backports: drop display output class supportLuis R. Rodriguez
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>
2014-04-17backports: device: don't redefine DEVICE_ATTR_ROArik Nemtsov
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>
2014-04-17backports: add napi_gro_flush()Johannes Berg
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>
2014-04-17backports: add hwsim defconfigJohannes Berg
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>
2014-04-08backports: refresh patches for next-20140320backports-20140320Luis 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 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>
2014-04-08backports: backport 3.6 fix on non CONFIG_COMMON_CLK kernelsLuis R. Rodriguez
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>
2014-04-08backports: add kernel base requirement of 3.5 to IR_IMGLuis R. Rodriguez
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>
2014-04-08backports: make IEEE802154_AT86RF230 depend require 3.3.Luis R. Rodriguez
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>
2014-04-08backports: bump NFC_TRF7970A requirements to 3.5Luis R. Rodriguez
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>
2014-04-08backports: disable DVB_RTL2832 and DVB_USB_RTL28XXULuis R. Rodriguez
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>
2014-04-08backports: bump kernel requirements for drivers that use s2mps14.hLuis 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>
2014-04-08backports: add GRO_* enums, and its new gro_result_t typedefLuis R. Rodriguez
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>
2014-04-08backports: complete backport of translation of MMD EEE registersLuis 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>
2014-04-08backports: complete backport of frag size accessorsLuis R. Rodriguez
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>
2014-04-08backports: backport skb_set_hash()Luis R. Rodriguez
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>
2014-04-08backports: backport APIs for manipulating skb page fragmentsLuis R. Rodriguez
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>
2014-04-08backports: backport u64_stats_fetch_begin_irq() and u64_stats_fetch_retry_irq()Luis R. Rodriguez
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>
2014-04-08backports: enhance 0001-netdev_ops.cocci with data structure specificsLuis R. Rodriguez
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>
2014-04-08backports: convert threaded IRQ suport into an SmPL patchLuis R. Rodriguez
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>
2014-04-08backports: backports: reshufle the threaded IRQ backport seriesLuis R. Rodriguez
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>
2014-04-08backports: refresh patches based on next-20140311backports-20140311Luis R. Rodriguez
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>
2014-04-08backports: backport ieee802154 6lowpan support down to 3.5Luis R. Rodriguez
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>
2014-04-08backports: 6lowpan domain specific backport of inet_frag_lru_move()Luis R. Rodriguez
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>
2014-04-08backports: backport net_get_random_once()Luis R. Rodriguez
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>
2014-04-08backports: address jump label and static key supportLuis R. Rodriguez
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>