17 Jun, 2015

8 commits

  • This was using module_init, but there is no way this code can
    be modular. In the non-modular case, a module_init becomes a
    device_initcall, but this really isn't a device. So we should
    choose a more appropriate initcall bucket to put it in.

    Assuming boot time self tests need to be observed over a console
    to be useful, and that the console device could possibly not be
    fully functional until after device_initcall, we move this to the
    late_initcall bucket, which is immediately after device_initcall.

    Cc: Andrew Morton
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The drivers/mailbox/pl320-ipc.o is dependent on config PL320_MBOX
    which is declared as a bool. Hence the code is never going to be
    modular. So using module_init as an alias for __initcall can be
    somewhat misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing. Also add an inclusion of init.h, as
    that was previously implicit.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of subsys_initcall (which
    seems to make sense for IPC code) will thus change this
    registration from level 6-device to level 4-subsys (i.e. slightly
    earlier). However no impact of that small difference is expected.

    Cc: Russell King
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The hugetlbpage.o is obj-y (always built in). It will never
    be modular, so using module_init as an alias for __initcall is
    somewhat misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of arch_initcall (which
    makes sense for arch code) will thus change this registration
    from level 6-device to level 3-arch (i.e. slightly earlier).
    However no observable impact of that small difference has
    been observed during testing, or is expected.

    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The FSL_SOC option is bool, and hence this code is either
    present or absent. It will never be modular, so using
    module_init as an alias for __initcall is rather misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of subsys_initcall (which
    makes sense for bus code) will thus change this registration
    from level 6-device to level 4-subsys (i.e. slightly earlier).
    However no observable impact of that small difference has
    been observed during testing, or is expected.

    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Scott Wood
    Acked-by: Scott Wood
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The bootflag.o is obj-y (always built in). It will never be
    modular, so using module_init as an alias for __initcall is
    somewhat misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of arch_initcall (which
    makes sense for arch code) will thus change this registration
    from level 6-device to level 3-arch (i.e. slightly earlier).
    However no observable impact of that small difference has
    been observed during testing, or is expected.

    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: x86@kernel.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The file net/ipv4/netfilter.o is created based on whether
    CONFIG_NETFILTER is set. However that is defined as a bool, and
    hence this file with the core netfilter hooks will never be
    modular. So using module_init as an alias for __initcall can be
    somewhat misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing. Also add an inclusion of init.h, as
    that was previously implicit here in the netfilter.c file.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of subsys_initcall (which
    seems to make sense for netfilter code) will thus change this
    registration from level 6-device to level 4-subsys (i.e. slightly
    earlier). However no observable impact of that small difference
    has been observed during testing, or is expected. (i.e. the
    location of the netfilter messages in dmesg remains unchanged
    with respect to all the other surrounding messages.)

    As for the module_exit, rather than replace it with __exitcall,
    we simply remove it, since it appears only UML does anything
    with those, and even for UML, there is no relevant cleanup
    to be done here.

    Cc: Pablo Neira Ayuso
    Acked-by: Pablo Neira Ayuso
    Cc: Patrick McHardy
    Cc: Jozsef Kadlecsik
    Cc: "David S. Miller"
    Cc: netfilter-devel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • The INOTIFY_USER option is bool, and hence this code is either
    present or absent. It will never be modular, so using
    module_init as an alias for __initcall is rather misleading.

    Fix this up now, so that we can relocate module_init from
    init.h into module.h in the future. If we don't do this, we'd
    have to add module.h to obviously non-modular code, and that
    would be a worse thing.

    Note that direct use of __initcall is discouraged, vs. one
    of the priority categorized subgroups. As __initcall gets
    mapped onto device_initcall, our use of fs_initcall (which
    makes sense for fs code) will thus change this registration
    from level 6-device to level 5-fs (i.e. slightly earlier).
    However no observable impact of that small difference has
    been observed during testing, or is expected.

    Cc: John McCutchan
    Cc: Robert Love
    Cc: Eric Paris
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • Compiling some arm/m68k configs with "# CONFIG_MMU is not set" reveals
    two more instances of module_init being used for code that can't
    possibly be modular, as CONFIG_MMU is either on or off.

    We replace them with subsys_initcall as per what was done in other
    mmu-enabled code.

    Note that direct use of __initcall is discouraged, vs. one of the
    priority categorized subgroups. As __initcall gets mapped onto
    device_initcall, our use of subsys_initcall (which makes sense for these
    files) will thus change this registration from level 6-device to level
    4-subsys (i.e. slightly earlier).

    One might think that core_initcall (l2) or postcore_initcall (l3) would
    be more appropriate for anything in mm/ but if we look at the actual init
    functions themselves, we see they are just sysctl setup stuff, and
    hence the choice of subsys_initcall (l4) seems reasonable. At the same
    time it minimizes the risk of changing the priority too drastically all
    at once. We can adjust further in the future.

    Also, a couple instances of missing ";" at EOL are fixed.

    Cc: Andrew Morton
    Cc: linux-mm@kvack.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

15 Jun, 2015

8 commits

  • Linus Torvalds
     
  • Pull dmaengine fixes from Vinod Koul:
    "Here are hopefully last set of fixes for 4.1. This time we have:

    - fixing pause capability reporting on both dmaengine pause & resume
    support by Krzysztof

    - locking fix fir at_xdmac by Ludovic

    - slave configuration fix for at_xdmac by Ludovic"

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: Fix choppy sound because of unimplemented resume
    dmaengine: at_xdmac: rework slave configuration part
    dmaengine: at_xdmac: lock fixes

    Linus Torvalds
     
  • Pull NTB fixes from Jon Mason:
    "I apologize for the tardiness of this request. Here are a couple of
    last minute NTB bug fixes for v4.1:

    NTB bug fixes to address issues in unmapping the MW reg base and
    vbase, and an uninitialized variable on Atom platforms"

    * tag 'ntb-4.1' of git://github.com/jonmason/ntb:
    ntb: initialize max_mw for Atom before using it
    ntb: iounmap MW reg and vbase in error path

    Linus Torvalds
     
  • Pull more MIPS fixes from Ralf Baechle:
    "Another round of 4.1 MIPS fixes, one fix to a MIPS-specific #if
    condition in lib/mpi, one fix to the MIPS GIC irqchip driver and one
    SSB fix.

    Details:
    - fix handling of clock in chipco SSB driver.
    - fix two MIPS-specific #if conditions to correctly work for GCC 5.1.
    - fix damage to R6 pgtable bits done by XPA support.
    - fix possible crash due to unloading modules that contain statically
    defined platform devices.
    - fix disabling of the MSA ASE on context switch to also work
    correctly when a new thread/process has the CPU for the very first
    time.

    This is part of linux-next and has been beaten to death on
    Imagination's test farm.

    While things are not looking too grim this pull request also means the
    rate of fixes for 4.1 remains nearly constant so I'd not be unhappy if
    you'd delay the release"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MPI: MIPS: Fix compilation error with GCC 5.1
    IRQCHIP: mips-gic: Don't nest calls to do_IRQ()
    MIPS: MSA: bugfix - disable MSA correctly for new threads/processes.
    MIPS: Loongson: Do not register 8250 platform device from module.
    MIPS: Cobalt: Do not build MTD platform device registration code as module.
    SSB: Fix handling of ssb_pmu_get_alp_clock()
    MIPS: pgtable-bits: Fix XPA damage to R6 definitions.

    Linus Torvalds
     
  • Pull irqchip fix from Thomas Gleixner:
    "A single fix for an off by one bug in the sunxi irqchip driver"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip: sunxi-nmi: Fix off-by-one error in irq iterator

    Linus Torvalds
     
  • Pull lockdep fix from Ingo Molnar:
    "A lockdep/modules unload race fix that can oops"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    lockdep: Fix a race between /proc/lock_stat and module unload

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "A regression fix for a crash, and a Intel HSW uncore PMU driver fix"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "perf/x86/intel/uncore: Move uncore_box_init() out of driver initialization"
    perf/x86/intel/uncore: Fix CBOX bit wide and UBOX reg on Haswell-EP

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Most of commits are regression fixes for HD-audio: a few corner case
    fixes for regmap transition, and i915 binding issues.

    In addition, a quirk for another USB-audio device supporting DSD"

    * tag 'sound-4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Abort the probe without i915 binding for HSW/BDW
    ALSA: hda - Re-add the lost fake mute support
    ALSA: hda - Continue probing even if i915 binding fails
    ALSA: hda - Don't actually write registers for caps overwrites
    ALSA: hda - fix number of devices query on hotplug
    ALSA: usb-audio: add native DSD support for JLsounds I2SoverUSB

    Linus Torvalds
     

13 Jun, 2015

8 commits

  • This patch fixes mips compilation error:

    lib/mpi/generic_mpih-mul1.c: In function 'mpihelp_mul_1':
    lib/mpi/longlong.h:651:2: error: impossible constraint in 'asm'

    Signed-off-by: Jaedon Shin
    Cc: Linux-MIPS
    Patchwork: https://patchwork.linux-mips.org/patch/10546/
    Signed-off-by: Ralf Baechle

    Jaedon Shin
     
  • The GIC chained handlers use do_IRQ() to call the subhandlers. This
    means that irq_enter() calls get nested, which leads to preempt count
    looking like we're in nested interrupts, which in turn leads to all
    system time being accounted as IRQ time in account_system_time().

    Fix it by using generic_handle_irq(). Since these same functions are
    used in some systems (if cpu_has_veic) from a low-level vectored
    interrupt handler which does not go throught do_IRQ(), we need to do it
    conditionally.

    Signed-off-by: Rabin Vincent
    Reviewed-by: Andrew Bresticker
    Acked-by: Thomas Gleixner
    Cc: linux-mips@linux-mips.org
    Cc: tglx@linutronix.de
    Cc: jason@lakedaemon.net
    Patchwork: https://patchwork.linux-mips.org/patch/10545/
    Signed-off-by: Ralf Baechle

    Rabin Vincent
     
  • Pull networking fixes from David Miller:

    1) Fix uninitialized struct station_info in cfg80211_wireless_stats(),
    from Johannes Berg.

    2) Revert commit attempt to fix ipv6 protocol resubmission, it adds
    regressions.

    3) Endless loops can be created in bridge port lists, fix from Nikolay
    Aleksandrov.

    4) Don't WARN_ON() if sk->sk_forward_alloc is non-zero in
    sk_clear_memalloc, it is a legal situation during swap deactivation.
    Fix from Mel Gorman.

    5) Fix order of disabling interrupts and unlocking NAPI in enic driver
    to avoid a race. From Govindarajulu Varadarajan.

    6) High and low register writes are swapped when programming the start
    of periodic output in igb driver. From Richard Cochran.

    7) Fix device rename handling in mpls stack, from Robert Shearman.

    8) Do not trigger compaction synchronously when optimistically trying
    to allocate an order 3 page in alloc_skb_with_frags() and
    skb_page_frag_refill(). From Shaohua Li.

    9) Authentication with COOKIE_ECHO is not handled properly in SCTP, fix
    from Marcelo Ricardo Leitner.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    Doc: networking: Fix URL for wiki.wireshark.org in udplite.txt
    sctp: allow authenticating DATA chunks that are bundled with COOKIE_ECHO
    net: don't wait for order-3 page allocation
    mpls: handle device renames for per-device sysctls
    net: igb: fix the start time for periodic output signals
    enic: fix memory leak in rq_clean
    enic: check return value for stat dump
    enic: unlock napi busy poll before unmasking intr
    net, swap: Remove a warning and clarify why sk_mem_reclaim is required when deactivating swap
    bridge: fix multicast router rlist endless loop
    tipc: disconnect socket directly after probe failure
    Revert "ipv6: Fix protocol resubmission"
    cfg80211: wext: clear sinfo struct before calling driver

    Linus Torvalds
     
  • This patch fix URL (http to https) for wiki.wireshark.org.

    Signed-off-by: Masanari Iida
    Signed-off-by: David S. Miller

    Masanari Iida
     
  • Currently, we can ask to authenticate DATA chunks and we can send DATA
    chunks on the same packet as COOKIE_ECHO, but if you try to combine
    both, the DATA chunk will be sent unauthenticated and peer won't accept
    it, leading to a communication failure.

    This happens because even though the data was queued after it was
    requested to authenticate DATA chunks, it was also queued before we
    could know that remote peer can handle authenticating, so
    sctp_auth_send_cid() returns false.

    The fix is whenever we set up an active key, re-check send queue for
    chunks that now should be authenticated. As a result, such packet will
    now contain COOKIE_ECHO + AUTH + DATA chunks, in that order.

    Reported-by: Liu Wei
    Signed-off-by: Marcelo Ricardo Leitner
    Acked-by: Neil Horman
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Marcelo Ricardo Leitner
     
  • Pull block layer fixes from Jens Axboe:
    "Remember about a week ago when I sent the last pull request for 4.1?
    Well, I lied. Now, I don't want to shift the blame, but Dan, Ming,
    and Richard made a liar out of me.

    Here are three small patches that should go into 4.1. More
    specifically, this pull request contains:

    - A Kconfig dependency for the pmem block driver, so it can't be
    selected if HAS_IOMEM isn't availble. From Richard Weinberger.

    - A fix for genhd, making the ext_devt_lock softirq safe. This makes
    lockdep happier, since we also end up grabbing this lock on release
    off the softirq path. From Dan Williams.

    - A blk-mq software queue release fix from Ming Lei.

    Last two are headed to stable, first fixes an issue introduced in this
    cycle"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: pmem: Add dependency on HAS_IOMEM
    block: fix ext_dev_lock lockdep report
    blk-mq: free hctx->ctxs in queue's release handler

    Linus Torvalds
     
  • Pull three more md fixes from Neil Brown:
    "Hasn't been a good cycle for md has it :-(

    The main issue fixed here is a rare race which can result in two
    reshape threads running at once, which doesn't end well.

    Also a minor issue with a write to a sysfs file returning the wrong
    value. Backports to 4.0-stable are indicated"

    * tag 'md/4.1-rc7-fixes' of git://neil.brown.name/md:
    md: make sure MD_RECOVERY_DONE is clear before starting recovery/resync
    md: Close race when setting 'action' to 'idle'.
    md: don't return 0 from array_state_store

    Linus Torvalds
     
  • Pull VT-d hardware workarounds from David Woodhouse:
    "This contains a workaround for hardware issues which I *thought* were
    never going to be seen on production hardware. I'm glad I checked
    that before the 4.1 release...

    Firstly, PASID support is so broken on existing chips that we're just
    going to declare the old capability bit 28 as 'reserved' and change
    the VT-d spec to move PASID support to another bit. So any existing
    hardware doesn't support SVM; it only sets that (now) meaningless bit
    28.

    That patch *wasn't* imperative for 4.1 because we don't have PASID
    support yet. But *even* the extended context tables are broken — if
    you just enable the wider tables and use none of the new bits in them,
    which is precisely what 4.1 does, you find that translations don't
    work. It's this problem which I thought was caught in time to be
    fixed before production, but wasn't.

    To avoid triggering this issue, we now *only* enable the extended
    context tables on hardware which also advertises "we have PASID
    support and we actually tested it this time" with the new PASID
    feature bit.

    In addition, I've added an 'intel_iommu=ecs_off' command line
    parameter to allow us to disable it manually if we need to"

    * git://git.infradead.org/intel-iommu:
    iommu/vt-d: Only enable extended context tables if PASID is supported
    iommu/vt-d: Change PASID support to bit 40 of Extended Capability Register

    Linus Torvalds
     

12 Jun, 2015

14 commits

  • Although the extended tables are theoretically a completely orthogonal
    feature to PASID and anything else that *uses* the newly-available bits,
    some of the early hardware has problems even when all we do is enable
    them and use only the same bits that were in the old context tables.

    For now, there's no motivation to support extended tables unless we're
    going to use PASID support to do SVM. So just don't use them unless
    PASID support is advertised too. Also add a command-line bailout just in
    case later chips also have issues.

    The equivalent problem for PASID support has already been fixed with the
    upcoming VT-d spec update and commit bd00c606a ("iommu/vt-d: Change
    PASID support to bit 40 of Extended Capability Register"), because the
    problematic platforms use the old definition of the PASID-capable bit,
    which is now marked as reserved and meaningless.

    So with this change, we'll magically start using ECS again only when we
    see the new hardware advertising "hey, we have PASID support and we
    actually tested it this time" on bit 40.

    The VT-d hardware architect has promised that we are not going to have
    any reason to support ECS *without* PASID any time soon, and he'll make
    sure he checks with us before changing that.

    In the future, if hypothetical new features also use new bits in the
    context tables and can be seen on implementations *without* PASID support,
    we might need to add their feature bits to the ecs_enabled() macro.

    Signed-off-by: David Woodhouse

    David Woodhouse
     
  • MD_RECOVERY_DONE is normally cleared by md_check_recovery after a
    resync etc finished. However it is possible for raid5_start_reshape
    to race and start a reshape before MD_RECOVERY_DONE is cleared. This
    can lean to multiple reshapes running at the same time, which isn't
    good.

    To make sure it is cleared before starting a reshape, and also clear
    it when reaping a thread, just to be safe.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Checking ->sync_thread without holding the mddev_lock()
    isn't really safe, even after flushing the workqueue which
    ensures md_start_sync() has been run.

    While this code is waiting for the lock, md_check_recovery could reap
    the thread itself, and then start another thread (e.g. recovery might
    finish, then reshape starts). When this thread gets the lock
    md_start_sync() hasn't run so it doesn't get reaped, but
    MD_RECOVERY_RUNNING gets cleared. This allows two threads to start
    which leads to confusion.

    So don't both if MD_RECOVERY_RUNNING isn't set, but if it is do
    the flush and the test and the reap all under the mddev_lock to
    avoid any race with md_check_recovery.

    Signed-off-by: NeilBrown
    Fixes: 6791875e2e53 ("md: make reconfig_mutex optional for writes to md sysfs files.")
    Cc: stable@vger.kernel.org (v4.0+)

    NeilBrown
     
  • Returning zero from a 'store' function is bad.
    The return value should be either len length of the string
    or an error.

    So use 'len' if 'err' is zero.

    Fixes: 6791875e2e53 ("md: make reconfig_mutex optional for writes to md sysfs files.")
    Signed-off-by: NeilBrown
    Cc: stable@vger.kernel (v4.0+)

    NeilBrown
     
  • Some drivers implement only pause operation (no resuming). Example is
    pl330 where pause is needed for getting residuum. pl330 does not support
    resume operation, transfer must be stopped after pause.

    However for slaves this is exposed always as "pause and resume" which
    introduces subtle errors on Odroid U3 board (Exynos4412 with pl330).
    After adding pause function to pl330 driver the audio playback
    (utilizing DMA) gets choppy after some time (approximately 24 hours).

    Fix this by exposing "cmd_pause" if and only if pause and resume are
    implemented.

    Signed-off-by: Krzysztof Kozlowski
    Reported-by: gabriel@unseen.is
    Reported-by: Marek Szyprowski
    Cc:
    Fixes: 88987d2c7534 ("dmaengine: pl330: add DMA_PAUSE feature")
    Acked-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Krzysztof Kozlowski
     
  • The previous patch tried to continue the probe if i915 binding fails.
    For for simplicity reason, we haven't implemented abort even for
    controller chips that are dedicated for HDMI/DP on HSW and BDW.
    However, Mengdong suggested that this can be dangerous; BIOS may
    disable gfx power well although the PCI entry for HD-audio is left,
    and this may result in the unexpected behavior, kernel errors, etc.

    For avoiding this situation, abort the probe at i915 binding failure
    only for HSW/BDW chips selectively. For other chips, it still
    continues.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Pull drm fixes from Dave Airlie:
    "i915 and radeon fixes:

    i915:
    fix for connector oops regression
    DDC probing fix

    radeon:
    two radeon reverts, along with a freeze workaround and a fix"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: Make sure radeon_vm_bo_set_addr always unreserves the BO
    Revert "drm/radeon: adjust pll when audio is not enabled"
    Revert "drm/radeon: don't share plls if monitors differ in audio support"
    drm/radeon: fix freeze for laptop with Turks/Thames GPU.
    drm/i915: Fix DDC probe for passive adapters
    drm/i915: Properly initialize SDVO analog connectors

    Linus Torvalds
     
  • We saw excessive direct memory compaction triggered by skb_page_frag_refill.
    This causes performance issues and add latency. Commit 5640f7685831e0
    introduces the order-3 allocation. According to the changelog, the order-3
    allocation isn't a must-have but to improve performance. But direct memory
    compaction has high overhead. The benefit of order-3 allocation can't
    compensate the overhead of direct memory compaction.

    This patch makes the order-3 page allocation atomic. If there is no memory
    pressure and memory isn't fragmented, the alloction will still success, so we
    don't sacrifice the order-3 benefit here. If the atomic allocation fails,
    direct memory compaction will not be triggered, skb_page_frag_refill will
    fallback to order-0 immediately, hence the direct memory compaction overhead is
    avoided. In the allocation failure case, kswapd is waken up and doing
    compaction, so chances are allocation could success next time.

    alloc_skb_with_frags is the same.

    The mellanox driver does similar thing, if this is accepted, we must fix
    the driver too.

    V3: fix the same issue in alloc_skb_with_frags as pointed out by Eric
    V2: make the changelog clearer

    Cc: Eric Dumazet
    Cc: Chris Mason
    Cc: Debabrata Banerjee
    Signed-off-by: Shaohua Li
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Shaohua Li
     
  • Fix for the regression Linus called out, and another for probing
    dongles.

    * tag 'drm-intel-fixes-2015-06-11' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Fix DDC probe for passive adapters
    drm/i915: Properly initialize SDVO analog connectors

    Dave Airlie
     
  • Two regression reverts, and two fixes, one for a dpm boot freeze.

    * 'drm-fixes-4.1' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: Make sure radeon_vm_bo_set_addr always unreserves the BO
    Revert "drm/radeon: adjust pll when audio is not enabled"
    Revert "drm/radeon: don't share plls if monitors differ in audio support"
    drm/radeon: fix freeze for laptop with Turks/Thames GPU.

    Dave Airlie
     
  • If a device is renamed and the original name is subsequently reused
    for a new device, the following warning is generated:

    sysctl duplicate entry: /net/mpls/conf/veth0//input
    CPU: 3 PID: 1379 Comm: ip Not tainted 4.1.0-rc4+ #20
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
    0000000000000000 0000000000000000 ffffffff81566aaf 0000000000000000
    ffffffff81236279 ffff88002f7d7f00 0000000000000000 ffff88000db336d8
    ffff88000db33698 0000000000000005 ffff88002e046000 ffff8800168c9280
    Call Trace:
    [] ? dump_stack+0x40/0x50
    [] ? __register_sysctl_table+0x289/0x5a0
    [] ? mpls_dev_notify+0x1ff/0x300 [mpls_router]
    [] ? notifier_call_chain+0x4f/0x70
    [] ? register_netdevice+0x2b2/0x480
    [] ? veth_newlink+0x178/0x2d3 [veth]
    [] ? rtnl_newlink+0x73c/0x8e0
    [] ? rtnl_newlink+0x16a/0x8e0
    [] ? __kmalloc_reserve.isra.30+0x32/0x90
    [] ? rtnetlink_rcv_msg+0x8d/0x250
    [] ? __alloc_skb+0x47/0x1f0
    [] ? __netlink_lookup+0xab/0xe0
    [] ? rtnetlink_rcv+0x30/0x30
    [] ? netlink_rcv_skb+0xb0/0xd0
    [] ? rtnetlink_rcv+0x24/0x30
    [] ? netlink_unicast+0x107/0x1a0
    [] ? netlink_sendmsg+0x50e/0x630
    [] ? sock_sendmsg+0x3c/0x50
    [] ? ___sys_sendmsg+0x27b/0x290
    [] ? mem_cgroup_try_charge+0x88/0x110
    [] ? mem_cgroup_commit_charge+0x56/0xa0
    [] ? do_filp_open+0x30/0xa0
    [] ? __sys_sendmsg+0x3e/0x80
    [] ? system_call_fastpath+0x16/0x75

    Fix this by unregistering the previous sysctl table (registered for
    the path containing the original device name) and re-registering the
    table for the path containing the new device name.

    Fixes: 37bde79979c3 ("mpls: Per-device enabling of packet input")
    Reported-by: Scott Feldman
    Signed-off-by: Robert Shearman
    Signed-off-by: David S. Miller

    Robert Shearman
     
  • When programming the start of a periodic output, the code wrongly places
    the seconds value into the "low" register and the nanoseconds into the
    "high" register. Even though this is backwards, it slipped through my
    testing, because the re-arming code in the interrupt service routine is
    correct, and the signal does appear starting with the second edge.

    This patch fixes the issue by programming the registers correctly.

    Signed-off-by: Richard Cochran
    Reviewed-by: Jacob Keller
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Richard Cochran
     
  • Not all architectures have io memory.

    Fixes:
    drivers/block/pmem.c: In function ‘pmem_alloc’:
    drivers/block/pmem.c:146:2: error: implicit declaration of function ‘ioremap_nocache’ [-Werror=implicit-function-declaration]
    pmem->virt_addr = ioremap_nocache(pmem->phys_addr, pmem->size);
    ^
    drivers/block/pmem.c:146:18: warning: assignment makes pointer from integer without a cast [enabled by default]
    pmem->virt_addr = ioremap_nocache(pmem->phys_addr, pmem->size);
    ^
    drivers/block/pmem.c:182:2: error: implicit declaration of function ‘iounmap’ [-Werror=implicit-function-declaration]
    iounmap(pmem->virt_addr);
    ^

    Signed-off-by: Richard Weinberger
    Reviewed-by: Ross Zwisler
    Signed-off-by: Jens Axboe

    Richard Weinberger
     
  • …/git/rostedt/linux-trace

    Pull ring buffer benchmark buglet fix from Steven Rostedt:
    "Wang Long fixed a minor bug in the module parameter for the ring
    buffer benchmark, where the produce_fifo was being ignored and the
    producer thread's priority was being set with the consumer_fifo
    parameter"

    * tag 'trace-rb-bm-fix-4.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ring-buffer-benchmark: Fix the wrong sched_priority of producer

    Linus Torvalds
     

11 Jun, 2015

2 commits

  • =================================
    [ INFO: inconsistent lock state ]
    4.1.0-rc7+ #217 Tainted: G O
    ---------------------------------
    inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
    swapper/6/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
    (ext_devt_lock){+.?...}, at: [] blk_free_devt+0x3c/0x70
    {SOFTIRQ-ON-W} state was registered at:
    [] __lock_acquire+0x461/0x1e70
    [] lock_acquire+0xb7/0x290
    [] _raw_spin_lock+0x38/0x50
    [] blk_alloc_devt+0x6d/0xd0 ] __lock_acquire+0x3fe/0x1e70
    [] ? __lock_acquire+0xe5d/0x1e70
    [] lock_acquire+0xb7/0x290
    [] ? blk_free_devt+0x3c/0x70
    [] _raw_spin_lock+0x38/0x50
    [] ? blk_free_devt+0x3c/0x70
    [] blk_free_devt+0x3c/0x70 ] part_release+0x1c/0x50
    [] device_release+0x36/0xb0
    [] kobject_cleanup+0x7b/0x1a0
    [] kobject_put+0x30/0x70
    [] put_device+0x17/0x20
    [] delete_partition_rcu_cb+0x16c/0x180
    [] ? read_dev_sector+0xa0/0xa0
    [] rcu_process_callbacks+0x2ff/0xa90
    [] ? rcu_process_callbacks+0x2bf/0xa90
    [] __do_softirq+0xde/0x600

    Neil sees this in his tests and it also triggers on pmem driver unbind
    for the libnvdimm tests. This fix is on top of an initial fix by Keith
    for incorrect usage of mutex_lock() in this path: 2da78092dda1 "block:
    Fix dev_t minor allocation lifetime". Both this and 2da78092dda1 are
    candidates for -stable.

    Fixes: 2da78092dda1 ("block: Fix dev_t minor allocation lifetime")
    Cc:
    Cc: Keith Busch
    Reported-by: NeilBrown
    Signed-off-by: Dan Williams
    Signed-off-by: Jens Axboe

    Dan Williams
     
  • Some error paths didn't unreserve the BO. This resulted in a deadlock
    down the road on the next attempt to reserve the (still reserved) BO.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90873
    Cc: stable@vger.kernel.org
    Reviewed-by: Christian König
    Signed-off-by: Michel Dänzer
    Signed-off-by: Alex Deucher

    Michel Dänzer