openwrt/staging/blogic.git
10 years agobackports: revert rename of __vlan_find_dev_deep()
Hauke Mehrtens [Sat, 7 Jun 2014 14:08:55 +0000 (16:08 +0200)]
backports: revert rename of __vlan_find_dev_deep()

This function was renamed in this commit in mainline linux:
commit f06c7f9f92295faf701a9628b383156c4efb6119
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Fri May 9 14:58:05 2014 +0800

    vlan: rename __vlan_find_dev_deep() to __vlan_find_dev_deep_rcu()

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: fix class/bus attribute group spatch conversion
Johannes Berg [Fri, 9 May 2014 06:23:16 +0000 (08:23 +0200)]
backports: fix class/bus attribute group spatch conversion

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>
10 years agobackports: set defconfig media to m
Hauke Mehrtens [Sun, 1 Jun 2014 21:30:01 +0000 (23:30 +0200)]
backports: set defconfig media to m

Set the default option to module.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: update default configs
Hauke Mehrtens [Sun, 1 Jun 2014 21:22:09 +0000 (23:22 +0200)]
backports: update default configs

Remove some config options which were not available in the kernel any
more and add some missing new options.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: update test kernel versions
Hauke Mehrtens [Sat, 31 May 2014 15:29:08 +0000 (17:29 +0200)]
backports: update test kernel versions

This updates the kernel versions to test against to the most recent
versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: refresh patches on next-20140501
Hauke Mehrtens [Sat, 31 May 2014 15:23:22 +0000 (17:23 +0200)]
backports: refresh patches on next-20140501

1   3.0.101             [  OK  ]
2   3.1.10              [  OK  ]
3   3.2.59              [  OK  ]
4   3.3.8               [  OK  ]
5   3.4.91              [  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.40             [  OK  ]
12  3.11.10             [  OK  ]
13  3.12.20             [  OK  ]
14  3.13.11             [  OK  ]
15  3.14.4              [  OK  ]
16  3.15-rc7            [  OK  ]

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: remove unused functions from bluetooth
Hauke Mehrtens [Sat, 31 May 2014 15:21:40 +0000 (17:21 +0200)]
backports: remove unused functions from bluetooth

hidp_set_raw_report() and hidp_output_report() are not used with kernel
< 3.15.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add irq_get_trigger_type()
Hauke Mehrtens [Sat, 31 May 2014 15:19:48 +0000 (17:19 +0200)]
backports: add irq_get_trigger_type()

This function is needed by some drivers.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add devm_gpio_request{_one}()
Hauke Mehrtens [Sat, 31 May 2014 15:18:28 +0000 (17:18 +0200)]
backports: add devm_gpio_request{_one}()

These two functions are used by some drivers, but not available in all
kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: add patch to prevent section mismatch again
Hauke Mehrtens [Sat, 31 May 2014 15:17:05 +0000 (17:17 +0200)]
backports: add patch to prevent section mismatch again

This patch was removed in:
commit be4a0f9ad7e17670d7a30c9e94d5dd918425f90a
Author: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Date:   Fri Apr 11 01:45:20 2014 +0000

    backports: nuke support for kernels < 3.0

It is still needed for some still supported kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: move net_device_priv_flags
Hauke Mehrtens [Sat, 31 May 2014 14:11:24 +0000 (16:11 +0200)]
backports: move net_device_priv_flags

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>
10 years agobackports: only add net_get_random_once() when not available
Hauke Mehrtens [Sat, 31 May 2014 13:52:42 +0000 (15:52 +0200)]
backports: only add net_get_random_once() when not available

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>
10 years agobackports: fix build if CONFIG_PTP_1588_CLOCK=m
Hauke Mehrtens [Sat, 31 May 2014 13:34:55 +0000 (15:34 +0200)]
backports: fix build if CONFIG_PTP_1588_CLOCK=m

ifdef just checked if this was build into the kernel and not if it was
build as a module.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: raise kernel minimal kernel version for some regulator drivers
Hauke Mehrtens [Sat, 31 May 2014 13:33:41 +0000 (15:33 +0200)]
backports: raise kernel minimal kernel version for some regulator drivers

Compiling with older kernel versions causes some problems.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: select_queue patch: fix callback kernel version
Hauke Mehrtens [Sat, 31 May 2014 13:31:29 +0000 (15:31 +0200)]
backports: select_queue patch: fix callback kernel version

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>
10 years agobackports: add smp_mb__after_atomic()
Hauke Mehrtens [Sat, 31 May 2014 13:24:18 +0000 (15:24 +0200)]
backports: add smp_mb__after_atomic()

smp_mb__after_clear_bit() was renamed to smp_mb__after_atomic() in more
recent kernel version, this patch adds compatibility for older kernel
versions.
In addition it also removes a useless include of asm/atomic.h which
would include this same file.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: Avoid multiple definition of DEVICE_ATTR_RW for older kernels
Jonathan DE CESCO [Mon, 26 May 2014 14:15:36 +0000 (17:15 +0300)]
backports: Avoid multiple definition of DEVICE_ATTR_RW for older kernels

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>
10 years agogit-tracker: remove shortlog for empty changes
Johannes Berg [Wed, 21 May 2014 07:44:43 +0000 (09:44 +0200)]
git-tracker: remove shortlog for empty changes

When the input tree had changes but the output doesn't get
any changes at all, then the shortlog was being generated
over all commits since no files were specified.

Catch this special case and instead of generating a shortlog
just add a note that no commits changed generated code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle pci_error_handlers change to const
Stefan Assmann [Fri, 16 May 2014 11:21:24 +0000 (13:21 +0200)]
backports: handle pci_error_handlers change to const

In kernel 3.7 struct pci_driver changed pci_error_handlers to const.
Address this by putting ifdef around the code.

commit 494530284f16298050ab99f54b7b12dd7d1418a1
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Fri Sep 7 09:33:14 2012 -0700

    PCI: Make pci_error_handlers const

git describe --contains 494530284f16298050ab99f54b7b12dd7d1418a1
v3.7-rc1~177^2~9^2~3

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle hwmon_device_register_with_groups API calls
Stefan Assmann [Fri, 16 May 2014 11:21:23 +0000 (13:21 +0200)]
backports: handle hwmon_device_register_with_groups API calls

The new hwmon_device_register_with_groups API has not been backported yet.
Address this by putting ifdef around the code using the API.

commit 74188cba088192e14cd7fd5433876e8c947bcdd8
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Jul 11 20:00:12 2013 -0700

    hwmon: Provide managed hwmon registration

git describe --contains 74188cba088192e14cd7fd5433876e8c947bcdd8
v3.13-rc1~126^2~30

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle struct ethtool_cmd MDI changes
Stefan Assmann [Fri, 16 May 2014 11:21:22 +0000 (13:21 +0200)]
backports: handle struct ethtool_cmd MDI changes

In kernel 3.7 struct ethtool_cmd received eth_tp_mdix and eth_tp_mdix_ctrl.
Address this by putting ifdef around the code using these struct components.

commit 6f6bbc186dc8e4e0c628db7decbd1a5e02cb5fd8
Author: Jesse Brandeburg <jesse.brandeburg@intel.com>
Date:   Thu Jul 26 02:30:53 2012 +0000

    ethtool.h: MDI setting support

git describe --contains 6f6bbc186dc8e4e0c628db7decbd1a5e02cb5fd8
v3.7-rc1~145^2~300^2~5

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle argument type change of get_rxnfc in struct ethtool_ops
Stefan Assmann [Fri, 16 May 2014 11:21:21 +0000 (13:21 +0200)]
backports: handle argument type change of get_rxnfc in struct ethtool_ops

In kernel 3.2 an argument type of function pointer get_rxnfc in
struct ethtool_ops changed from void to u32.
Address this by putting ifdef around the code.

commit 815c7db5c809ea3d5735de3131ecdf758b0e14ff
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Tue Sep 6 13:49:12 2011 +0000

    ethtool: Clean up definitions of rule location arrays in RX NFC

git describe --contains 815c7db5c809ea3d5735de3131ecdf758b0e14ff
v3.2-rc1~129^2~272

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new rxfh_ndir pointers in struct ethtool_ops
Stefan Assmann [Fri, 16 May 2014 11:21:20 +0000 (13:21 +0200)]
backports: handle new rxfh_ndir pointers in struct ethtool_ops

In kernel 3.3 struct ethtool_ops received 3 new function pointers
get_rxfh_indir_size, get_rxfh_indir, set_rxfh_indir.
Address this by putting ifdef around the code.

commit 7850f63f1620512631445b901ae11cd149e7375c
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Thu Dec 15 13:55:01 2011 +0000

    ethtool: Centralise validation of ETHTOOL_{G, S}RXFHINDIR parameters

git describe --contains 7850f63f1620512631445b901ae11cd149e7375c
v3.3-rc1~182^2~192

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new get_module_info and get_module_eeprom pointers in struct ethtoo...
Stefan Assmann [Fri, 16 May 2014 11:21:19 +0000 (13:21 +0200)]
backports: handle new get_module_info and get_module_eeprom pointers in struct ethtool_ops

In kernel 3.5 struct ethtool_ops received 2 new function pointers
get_module_info and get_module_eeprom. Address this by putting ifdef around
the code.

commit 41c3cb6d20f0252308e9796fa4f3dacb4960de91
Author: Stuart Hodgson <smhodgson@solarflare.com>
Date:   Thu Apr 19 09:44:42 2012 +0100

    ethtool: Extend the ethtool API to obtain plugin module eeprom data

git describe --contains 41c3cb6d20f0252308e9796fa4f3dacb4960de91
v3.5-rc1~109^2~124^2~2

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new get_ts_info pointer in struct ethtool_ops
Stefan Assmann [Fri, 16 May 2014 11:21:18 +0000 (13:21 +0200)]
backports: handle new get_ts_info pointer in struct ethtool_ops

In kernel 3.5 struct ethtool_ops received a new function pointer
get_ts_info. Address this by putting ifdef around the code.

commit c8f3a8c31069137fe0100e6920558f1a7487ef3c
Author: Richard Cochran <richardcochran@gmail.com>
Date:   Tue Apr 3 22:59:17 2012 +0000

    ethtool: Introduce a method for getting time stamping capabilities.

git describe --contains c8f3a8c31069137fe0100e6920558f1a7487ef3c
v3.5-rc1~109^2~632

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new get_eee and set_eee pointers in struct ethtool_ops
Stefan Assmann [Fri, 16 May 2014 11:21:17 +0000 (13:21 +0200)]
backports: handle new get_eee and set_eee pointers in struct ethtool_ops

In kernel 3.6 struct ethtool_ops received 2 new function pointers get_eee
and set_eee. Address this by putting ifdef around the code.

commit 80f12eccce775dc6bb93dba9b52529740f929237
Author: Yuval Mintz <yuvalmin@broadcom.com>
Date:   Wed Jun 6 17:13:06 2012 +0000

    Added kernel support in EEE Ethtool commands

git describe --contains 80f12eccce775dc6bb93dba9b52529740f929237
v3.6-rc1~125^2~587

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle no_fcs change in struct sk_buff
Stefan Assmann [Fri, 16 May 2014 11:21:16 +0000 (13:21 +0200)]
backports: handle no_fcs change in struct sk_buff

In kernel 3.4 a new field no_fcs was introduced to struct sk_buff.
Address this by putting ifdef around the code.

commit 3bdc0eba0b8b47797f4a76e377dd8360f317450f
Author: Ben Greear <greearb@candelatech.com>
Date:   Sat Feb 11 15:39:30 2012 +0000

    net: Add framework to allow sending packets with customized CRC.

git describe --contains 3bdc0eba0b8b47797f4a76e377dd8360f317450f
v3.4-rc1~177^2~207

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new ndo_set_vf_spoofchk pointer in struct net_device_ops
Stefan Assmann [Fri, 16 May 2014 11:21:15 +0000 (13:21 +0200)]
backports: handle new ndo_set_vf_spoofchk pointer in struct net_device_ops

In kernel 3.2 struct net_device_ops got a new function pointer
ndo_set_vf_spoofchk. Address this by putting ifdef around the code.

commit 5f8444a3fa617076f8da51a3e8ecce01a5d7f738
Author: Greg Rose <gregory.v.rose@intel.com>
Date:   Sat Oct 8 03:05:24 2011 +0000

    if_link: Add additional parameter to IFLA_VF_INFO for spoof checking

git describe --contains 5f8444a3fa617076f8da51a3e8ecce01a5d7f738
v3.2-rc1~129^2~87

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle changes to vlan_rx_add/kill pointers in struct net_device_ops
Stefan Assmann [Fri, 16 May 2014 11:21:14 +0000 (13:21 +0200)]
backports: handle changes to vlan_rx_add/kill pointers in struct net_device_ops

In kernel 3.3 and 3.10 struct net_device_ops function pointers
ndo_vlan_rx_add_vid and ndo_vlan_rx_kill_vid changed.
Address this by putting ifdef around the code.

commit 8e586137e6b63af1e881b328466ab5ffbe562510
Author: Jiri Pirko <jpirko@redhat.com>
Date:   Thu Dec 8 19:52:37 2011 -0500

    net: make vlan ndo_vlan_rx_[add/kill]_vid return error value

git describe --contains 8e586137e6b63af1e881b328466ab5ffbe562510
v3.3-rc1~182^2~291

commit 80d5c3689b886308247da295a228a54df49a44f6
Author: Patrick McHardy <kaber@trash.net>
Date:   Fri Apr 19 02:04:28 2013 +0000

    net: vlan: prepare for 802.1ad VLAN filtering offload

git describe --contains 80d5c3689b886308247da295a228a54df49a44f6
v3.10-rc1~66^2~97^2~4

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: handle new sriov_configure pointer in struct pci_driver
Stefan Assmann [Fri, 16 May 2014 11:21:13 +0000 (13:21 +0200)]
backports: handle new sriov_configure pointer in struct pci_driver

In kernel 3.8 struct pci_driver got a new function pointer sriov_configure.
Address this by putting ifdef around the code.

commit 1789382a72a537447d65ea4131d8bcc1ad85ce7b
Author: Donald Dutile <ddutile@redhat.com>
Date:   Mon Nov 5 15:20:36 2012 -0500

    PCI: SRIOV control and status via sysfs

git describe --contains 1789382a72a537447d65ea4131d8bcc1ad85ce7b
v3.8-rc1~128^2~6^2~4

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: remove old igb patches
Stefan Assmann [Fri, 16 May 2014 11:21:12 +0000 (13:21 +0200)]
backports: remove old igb patches

Reworking the igb patches and thus removing the old ones.

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackport: CCM: set correct dependencies
Johannes Berg [Thu, 15 May 2014 09:22:06 +0000 (11:22 +0200)]
backport: CCM: set correct dependencies

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>
10 years agobackports: provide net_ieee802154_lowpan only when needed
Johannes Berg [Mon, 5 May 2014 12:46:11 +0000 (14:46 +0200)]
backports: provide net_ieee802154_lowpan only when needed

If 802.15.4 isn't configured, there's no need to provide the
network namespace support for it, so don't.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[use IS_ENABLED to hanle CPTCFG_IEEE802154_6LOWPAN=m]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agogentree: remove stray print
Johannes Berg [Mon, 5 May 2014 14:58:38 +0000 (16:58 +0200)]
gentree: remove stray print

My previous commit to restrict the defconfig files left
a debugging print statement, remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
10 years agobackports: backport-3.15: Include fix
Richard Röjfors [Sat, 3 May 2014 14:09:37 +0000 (16:09 +0200)]
backports: backport-3.15: Include fix

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>
10 years agobackports: select_queue patch: fix callback kernel version
Johannes Berg [Wed, 30 Apr 2014 22:10:25 +0000 (00:10 +0200)]
backports: select_queue patch: fix callback kernel version

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>
10 years agobackports: lib: remove raising ExecutionError exception
Arend van Spriel [Fri, 2 May 2014 01:03:37 +0000 (18:03 -0700)]
backports: lib: remove raising ExecutionError exception

In spatch a ExecutionError was raised, but that causes the thread
to finish without closing the outfile and more importantly without
putting (ret, fn) tuple on the return queue. This results in the
threaded_spatch routine to get stuck on the ret_q.get() call. This
patch removes raising the ExecutionError and just return the tuple.
The non-zero return code will result in ExecutionErrorThread exception
anyway.

Signed-off-by: Arend van Spriel <arend@broadcom.com>
[mcgrof]: rebased to fit into pycocci
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: fix igb patch for next-20140501
Luis R. Rodriguez [Thu, 1 May 2014 20:48:23 +0000 (13:48 -0700)]
backports: fix igb patch for next-20140501

Manual fixes were needed for:

patches/the-way-not-to-do-backports/0001-ethernet-igb/0001-igb_net_device_ops.patch

We currently hit a compile error as of next-20140501 because of the
introduction of smp_mb__after_atomic(). This is not yet addressed.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: devel/backports-update-manager: fix for older shutil.move
Luis R. Rodriguez [Thu, 1 May 2014 20:45:19 +0000 (13:45 -0700)]
backports: devel/backports-update-manager: fix for older shutil.move

Older shutil.move does not seem to like it when there are
symlinks on a target, to account for this and to make things
clearer just split up the work on the lib/modules and usr/src
directory.

This fixes running devel/backports-update-manager on OpenSUSE 13.1
base install.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: remove two upstream patches
Luis R. Rodriguez [Thu, 1 May 2014 16:25:38 +0000 (09:25 -0700)]
backports: remove two upstream patches

Two changes to help with backports were merged upstream so nuke 'em.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: add ckmake binary requirements
Luis R. Rodriguez [Thu, 1 May 2014 16:04:58 +0000 (09:04 -0700)]
backports: add ckmake binary requirements

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: run autopep8 on ckmake
Luis R. Rodriguez [Thu, 1 May 2014 16:02:06 +0000 (09:02 -0700)]
backports: run autopep8 on ckmake

This converts rel-html.py to conform to the PEP 8 style
guide using autopep8. If using vi, consider adding this to
your .vimrc:

filetype indent plugin on
au FileType python setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: add gentree.py binary requirements
Luis R. Rodriguez [Thu, 1 May 2014 15:30:34 +0000 (08:30 -0700)]
backports: add gentree.py binary requirements

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: add backports-update-manager binary requirements
Luis R. Rodriguez [Thu, 1 May 2014 15:11:03 +0000 (08:11 -0700)]
backports: add backports-update-manager binary requirements

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agobackports: add a Python binary package dependency library
Luis R. Rodriguez [Thu, 1 May 2014 14:58:04 +0000 (07:58 -0700)]
backports: add a Python binary package dependency library

This lets us use this in our python scripts for
program dependencies that they might have, instead
of getting nasty stack traces you get output that's
a very useful and clear. This is also important as
we move along with Coccinelle and require newer
versions with new bells and whisteles added upstream
to Coccinelle.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
10 years agoMakefile: add savedefconfig target.
Avery Pennarun [Wed, 30 Apr 2014 01:29:06 +0000 (21:29 -0400)]
Makefile: add savedefconfig target.

This writes a file called 'defconfig' which contains only the deltas from
the default configuration.  It's suitable for use as an input defconfig file
for later builds.

Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agogentree: strip useless defconfig files
Johannes Berg [Tue, 29 Apr 2014 09:31:28 +0000 (11:31 +0200)]
gentree: strip useless defconfig files

If a defconfig file has symbols that can't be satisfied
with the given copy-list file, then there's no point in
shipping it, so just copy selectively the ones needed.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: remove IWLWIFI_P2P from iwlwifi defconfig
Johannes Berg [Tue, 29 Apr 2014 09:31:27 +0000 (11:31 +0200)]
backports: remove IWLWIFI_P2P from iwlwifi defconfig

This symbol is obsolete, it was removed upstream, so just
remove it from the defconfig file as well.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: remove more old ifdef/compat code
Johannes Berg [Mon, 28 Apr 2014 13:12:15 +0000 (15:12 +0200)]
backports: remove more old ifdef/compat code

Since support for kernels < 3.0 was removed, there's now a bunch
of dead code that can be removed - do it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: remove mac80211.h
Johannes Berg [Mon, 28 Apr 2014 12:06:58 +0000 (14:06 +0200)]
backports: remove mac80211.h

As support for old kernels has been removed, there's no need to keep
around the mac80211.h file that redefines the ieee80211_rx() symbol;
In 2.6.32 this name was changed to belong to mac80211.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: ifdef code already present in RHEL7.0
Stefan Assmann [Fri, 25 Apr 2014 07:14:30 +0000 (09:14 +0200)]
backports: ifdef code already present in RHEL7.0

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>
10 years agobackports: add linux/of_graph.h to copy-list
Stefan Assmann [Fri, 25 Apr 2014 07:14:29 +0000 (09:14 +0200)]
backports: add linux/of_graph.h to copy-list

Required by CONFIG_VIDEO_ADV7343 and others.

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
10 years agobackports: wrap dma_set_mask_and_coherent in LINUX_BACKPORT()
Stefan Assmann [Fri, 25 Apr 2014 07:14:28 +0000 (09:14 +0200)]
backports: wrap dma_set_mask_and_coherent in LINUX_BACKPORT()

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>
10 years agogit-tracker: restrict shortlog to existing files
Johannes Berg [Thu, 24 Apr 2014 19:19:38 +0000 (21:19 +0200)]
git-tracker: restrict shortlog to existing files

When the git-tracker updates through a merge commit or
otherwise multiple kernel commits, it appends a shortlog
of all the changes. That's fine, but is often unhelpful
since it's so large - restrict it to the files that are
actually backported to make it more readable.

While at it, rewrite the bpgit.status() helper function
to actually do something useful.

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-20140415
Luis R. Rodriguez [Tue, 15 Apr 2014 20:07:36 +0000 (20:07 +0000)]
backports: refresh patches for next-20140415

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>
10 years agobackports: formalize struct sock sk_data_ready() backport with SmPL
Luis R. Rodriguez [Tue, 15 Apr 2014 21:03:31 +0000 (21:03 +0000)]
backports: formalize struct sock sk_data_ready() backport with SmPL

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>
10 years agobackports: pycocci - make the Coccinelle wrapper a standalone tool
Luis R. Rodriguez [Tue, 15 Apr 2014 22:48:26 +0000 (22:48 +0000)]
backports: pycocci - make the Coccinelle wrapper a standalone tool

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>
10 years agobackports: add a 120 second timeout rule to Coccinelle
Luis R. Rodriguez [Tue, 15 Apr 2014 19:52:02 +0000 (19:52 +0000)]
backports: add a 120 second timeout rule to Coccinelle

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>
10 years agobackports: Use Coccinelle --relax-include-path
Luis R. Rodriguez [Tue, 15 Apr 2014 19:28:38 +0000 (19:28 +0000)]
backports: Use Coccinelle --relax-include-path

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>
10 years agobackports: use --use-coccigrep for Coccinelle
Luis R. Rodriguez [Tue, 15 Apr 2014 19:01:17 +0000 (19:01 +0000)]
backports: use --use-coccigrep for Coccinelle

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>
10 years agobackports: transform group attribute backport to SmPL form
Luis R. Rodriguez [Sat, 12 Apr 2014 04:59:32 +0000 (04:59 +0000)]
backports: transform group attribute backport to SmPL form

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>
10 years agobackports: revert unification of cocci files
Luis R. Rodriguez [Sat, 12 Apr 2014 16:23:08 +0000 (16:23 +0000)]
backports: revert unification of cocci files

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>
10 years agobackports: refresh patches for next-20140409 and next-20140411
Luis R. Rodriguez [Sat, 12 Apr 2014 00:09:09 +0000 (00:09 +0000)]
backports: refresh patches for next-20140409 and next-20140411

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>
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>