1. 08 Jul, 2015 26 commits
  2. 03 Jul, 2015 5 commits
  3. 02 Jul, 2015 9 commits
    • Nikolay Aleksandrov's avatar
      bridge: vlan: fix usage of vlan 0 and 4095 again · 462e1ead
      Nikolay Aleksandrov authored
      Vlan ids 0 and 4095 were disallowed by commit:
      8adff41c ("bridge: Don't use VID 0 and 4095 in vlan filtering")
      but then the check was removed when vlan ranges were introduced by:
      bdced7ef ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests")
      So reintroduce the vlan range check.
      Before patch:
      [root@testvm ~]# bridge vlan add vid 0 dev eth0 master
      (succeeds)
      After Patch:
      [root@testvm ~]# bridge vlan add vid 0 dev eth0 master
      RTNETLINK answers: Invalid argument
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Fixes: bdced7ef ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests")
      Acked-by: default avatarToshiaki Makita <toshiaki.makita1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      462e1ead
    • David S. Miller's avatar
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · c4555d16
      David S. Miller authored
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth 2015-07-02
      
      A couple of regressions crept in because of a patch to use proper list
      APIs rather than manually reading & writing the next/prev pointers
      (commit 835a6a2f). Turns out this was
      masking a few bugs: a missing INIT_LIST_HEAD() call and incorrectly
      using list_del() rather than list_del_init(). The two patches in this
      set fix these, and it'd be nice they could still make it to 4.2-rc1 to
      avoid new bug reports from users.
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c4555d16
    • Govindarajulu Varadarajan's avatar
      enic: fix issues in enic_poll · 25c14ef8
      Govindarajulu Varadarajan authored
      In enic_poll, we clean tx and rx queues, when low latency busy socket polling
      is happening, enic_poll will only clean tx queue. After cleaning tx, it should
      return total budget for re-poll.
      
      There is a small window between vnic_intr_unmask() and enic_poll_unlock_napi().
      In this window if an irq occurs and napi is scheduled on different cpu, it tries
      to acquire enic_poll_lock_napi() and fails. Unlock napi_poll before unmasking
      the interrupt.
      
      v2:
      Do not change tx wonk done behaviour. Consider only rx work done for completing
      napi.
      Signed-off-by: default avatarGovindarajulu Varadarajan <_govind@gmx.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      25c14ef8
    • Linus Torvalds's avatar
      Merge tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · a611fb75
      Linus Torvalds authored
      Pull init.h/module.h fragility fixes from Paul Gortmaker:
       "Fixup various init.h misuses that are fragile wrt code moving to
        module.h
      
        What started as a removal of no longer required include <linux/init.h>
        due to the earlier __cpuinit and __devinit removal led to the
        observation that some module specfic support was living in init.h
        itself, thus preventing the full removal from introducing compile
        regressions.
      
        This series includes a few final fixups needed prior to the relocation
        of the modular init code from <init.h> to <module.h>.  These are
        things that weren't easily categorized into any of the other previous
        series categories already requested for pull.
      
        That said, each fixup branch (including this one) is independent and
        there are no ordering constraints.  Only the final code relocation
        (which is NOT in this pull) requires that all my cleanup branches be
        merged first"
      
      * tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        tile: add init.h to usb.c to avoid compile failure
        arm: fix implicit #include <linux/init.h> in entry asm.
        x86: replace __init_or_module with __init in non-modular vsmp_64.c
      a611fb75
    • Linus Torvalds's avatar
      Merge tag 'module-builtin_driver-v4.1-rc8' of... · 75462c8a
      Linus Torvalds authored
      Merge tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
      
      Pull module_platform_driver replacement from Paul Gortmaker:
       "Replace module_platform_driver with builtin_platform driver in non
        modules.
      
        We see an increasing number of non-modular drivers using
        modular_driver() type register functions.  There are several downsides
        to letting this continue unchecked:
      
         - The code can appear modular to a reader of the code, and they won't
           know if the code really is modular without checking the Makefile
           and Kconfig to see if compilation is governed by a bool or
           tristate.
      
         - Coders of drivers may be tempted to code up an __exit function that
           is never used, just in order to satisfy the required three args of
           the modular registration function.
      
         - Non-modular code ends up including the <module.h> which increases
           CPP overhead that they don't need.
      
         - It hinders us from performing better separation of the module init
           code and the generic init code.
      
        So here we introduce similar macros for builtin drivers.  Then we
        convert builtin drivers (controlled by a bool Kconfig) by making the
        following type of mapping:
      
          module_platform_driver()       --->  builtin_platform_driver()
          module_platform_driver_probe() --->  builtin_platform_driver_probe().
      
        The set of drivers that are converted here are just the ones that
        showed up as relying on an implicit include of <module.h> during a
        pending header cleanup.  So we convert them here vs adding an include
        of <module.h> to non-modular code to avoid compile fails.  Additonal
        conversions can be done asynchronously at any time.
      
        Once again, an unused module_exit function that is removed here
        appears in the diffstat as an outlier wrt all the other changes"
      
      * tag 'module-builtin_driver-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        drivers/clk: convert sunxi/clk-mod0.c to use builtin_platform_driver
        drivers/power: Convert non-modular syscon-reboot to use builtin_platform_driver
        drivers/soc: Convert non-modular soc-realview to use builtin_platform_driver
        drivers/soc: Convert non-modular tegra/pmc to use builtin_platform_driver
        drivers/cpufreq: Convert non-modular s5pv210-cpufreq.c to use builtin_platform_driver
        drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver
        drivers/platform: Convert non-modular pdev_bus to use builtin_platform_driver
        platform_device: better support builtin boilerplate avoidance
      75462c8a
    • Linus Torvalds's avatar
      Merge tag 'module_init-alternate_initcall-v4.1-rc8' of... · 9d90f035
      Linus Torvalds authored
      Merge tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
      
      Pull module_init replacement part two from Paul Gortmaker:
       "Replace module_init with appropriate alternate initcall in non
        modules.
      
        This series converts non-modular code that is using the module_init()
        call to hook itself into the system to instead use one of our
        alternate priority initcalls.
      
        Unlike the previous series that used device_initcall and hence was a
        runtime no-op, these commits change to one of the alternate initcalls,
        because (a) we have them and (b) it seems like the right thing to do.
      
        For example, it would seem logical to use arch_initcall for arch
        specific setup code and fs_initcall for filesystem setup code.
      
        This does mean however, that changes in the init ordering will be
        taking place, and so there is a small risk that some kind of implicit
        init ordering issue may lie uncovered.  But I think it is still better
        to give these ones sensible priorities than to just assign them all to
        device_initcall in order to exactly preserve the old ordering.
      
        Thad said, we have already made similar changes in core kernel code in
        commit c96d6660 ("kernel: audit/fix non-modular users of
        module_init in core code") without any regressions reported, so this
        type of change isn't without precedent.  It has also got the same
        local testing and linux-next coverage as all the other pull requests
        that I'm sending for this merge window have got.
      
        Once again, there is an unused module_exit function removal that shows
        up as an outlier upon casual inspection of the diffstat"
      
      * tag 'module_init-alternate_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        x86: perf_event_intel_pt.c: use arch_initcall to hook in enabling
        x86: perf_event_intel_bts.c: use arch_initcall to hook in enabling
        mm/page_owner.c: use late_initcall to hook in enabling
        lib/list_sort: use late_initcall to hook in self tests
        arm: use subsys_initcall in non-modular pl320 IPC code
        powerpc: don't use module_init for non-modular core hugetlb code
        powerpc: use subsys_initcall for Freescale Local Bus
        x86: don't use module_init for non-modular core bootflag code
        netfilter: don't use module_init/exit in core IPV4 code
        fs/notify: don't use module_init for non-modular inotify_user code
        mm: replace module_init usages with subsys_initcall in nommu.c
      9d90f035
    • Linus Torvalds's avatar
      Merge tag 'module_init-device_initcall-v4.1-rc8' of... · 2d440707
      Linus Torvalds authored
      Merge tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
      
      Pull module_init replacement part one from Paul Gortmaker:
       "Replace module_init with equivalent device_initcall in non modules.
      
        This series of commits converts non-modular code that is using the
        module_init() call to hook itself into the system to instead use
        device_initcall().
      
        The conversion is a runtime no-op, since module_init actually becomes
        __initcall in the non-modular case, and that in turn gets mapped onto
        device_initcall.  A couple files show a larger negative diffstat,
        representing ones that had a module_exit function that we remove here
        vs previously relying on the linker to dispose of it.
      
        We make this conversion now, so that we can relocate module_init from
        init.h into module.h in the future.
      
        The files changed here are just limited to those that would otherwise
        have to add module.h to obviously non-modular code, in order to avoid
        a compile fail, as testing has shown"
      
      * tag 'module_init-device_initcall-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        MIPS: don't use module_init in non-modular cobalt/mtd.c file
        drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c
        cris: don't use module_init for non-modular core eeprom.c code
        tty/metag_da: Avoid module_init/module_exit in non-modular code
        drivers/clk: don't use module_init in clk-nomadik.c which is non-modular
        xtensa: don't use module_init for non-modular core network.c code
        sh: don't use module_init in non-modular psw.c code
        mn10300: don't use module_init in non-modular flash.c code
        parisc64: don't use module_init for non-modular core perf code
        parisc: don't use module_init for non-modular core pdc_cons code
        cris: don't use module_init for non-modular core intmem.c code
        ia64: don't use module_init in non-modular sim/simscsi.c code
        ia64: don't use module_init for non-modular core kernel/mca.c code
        arm: don't use module_init in non-modular mach-vexpress/spc.c code
        powerpc: don't use module_init in non-modular 83xx suspend code
        powerpc: use device_initcall for registering rtc devices
        x86: don't use module_init in non-modular devicetree.c code
        x86: don't use module_init in non-modular intel_mid_vrtc.c
      2d440707
    • Linus Torvalds's avatar
      Merge tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · 9d86b412
      Linus Torvalds authored
      Pull implicit module.h fixes from Paul Gortmaker:
       "Fix up implicit <module.h> users that will break later.
      
        The files changed here are simply modular source files that are
        implicitly relying on <module.h> being present.  We fix them up now,
        so that we can decouple some of the module related init code from the
        core init code in the future.
      
        The addition of the module.h include to several files here is also a
        no-op from a code generation point of view, else there would already
        be compile issues with these files today.
      
        There may be lots more implicit includes of <module.h> in tree, but
        these are the ones that extensive build test coverage has shown that
        must be fixed in order to avoid build breakage fallout for the pending
        module.h <---> init.h code relocation we desire to complete"
      
      * tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        frv: add module.h to mb93090-mb00/flash.c to avoid compile fail
        drivers/cpufreq: include <module.h> for modular exynos-cpufreq.c code
        drivers/staging: include <module.h> for modular android tegra_ion code
        crypto/asymmetric_keys: pkcs7_key_type needs module.h
        sh: mach-highlander/psw.c is tristate and should use module.h
        drivers/regulator: include <module.h> for modular max77802 code
        drivers/pcmcia: include <module.h> for modular xxs1500_ss code
        drivers/hsi: include <module.h> for modular omap_ssi code
        drivers/gpu: include <module.h> for modular rockchip code
        drivers/gpio: include <module.h> for modular crystalcove code
        drivers/clk: include <module.h> for clk-max77xxx modular code
      9d86b412
    • Linus Torvalds's avatar
      Merge tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · 47f92418
      Linus Torvalds authored
      Pull __cpuinit removal from Paul Gortmaker:
       "Remove __cpuinit macros and users.
      
        We removed the __cpuinit stuff in 3.11-rc1 with commit 22f0a273
        ("init.h: remove __cpuinit sections from the kernel") but we left some
        no-op stubs as a courtesy to unmerged code.
      
        Here we get rid of the stubs as well, since (as can be seen in these
        changes) they are enabling use cases to sneak back in, primarily from
        older BSP code that has been living out of tree for some time prior to
        getting mainlined.  So we get rid of these "new" users 1st and then
        get rid of the stubs.
      
        Obviously, getting rid of the stubs can't happen until all the users
        are gone, so I had to keep this together as a series, even though some
        of these commits since got picked up into maintainers trees as well.
      
        The nature of this change is such that it should have zero impact on
        the generated runtime.
      
        This is one of several independent cleanup branches aimed at enabling
        better organization in the init.h and module.h code.  They have been
        getting coverage in the linux-next tree for the last month, in
        addition to my local testing, which also covers approximately a half
        dozen or more architectures"
      
      * tag 'cpuinit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        init: delete the __cpuinit related stubs
        kernel/cpu.c: remove new instance of __cpuinit that crept back in
        sched/core: remove __cpuinit section tag that crept back in.
        mips/mm/tlbex: remove new instance of __cpuinit that crept back in
        mips/c-r4k: remove legacy __cpuinit section that crept in
        mips/bcm77xx: remove legacy __cpuinit sections that crept in
        mips/ath25: remove legacy __cpuinit section that crept in
        arm/mach-hisi: remove legacy __CPUINIT section that crept in
        arm/mach-rockchip: remove legacy __cpuinit section that crept in
        arm/mach-mvebu: remove legacy __cpuinit sections that crept in
        arm/mach-keystone: remove legacy __cpuinit sections that crept in
      47f92418