1. 23 Jun, 2014 5 commits
    • Viresh Kumar's avatar
      hrtimer: Kick lowres dynticks targets on timer enqueue · 49a2a075
      Viresh Kumar authored
      In lowres mode, hrtimers are serviced by the tick instead of a clock
      event. It works well as long as the tick stays periodic but we must also
      make sure that the hrtimers are serviced in dynticks mode targets,
      pretty much like timer list timers do.
      
      Note that all dynticks modes are concerned: get_nohz_timer_target()
      tries not to return remote idle CPUs but there is nothing to prevent
      the elected target from entering dynticks idle mode until we lock its
      base. It's also prefectly legal to enqueue hrtimers on full dynticks CPU.
      
      So there are two requirements to correctly handle dynticks:
      
      1) On target's tick stop time, we must not delay the next tick further
         the next hrtimer.
      
      2) On hrtimer queue time. If the tick of the target is stopped, we must
         wake up that CPU such that it sees the new hrtimer and recalculate
         the next tick accordingly.
      
      The point 1 is well handled currently through get_nohz_timer_interrupt() and
      cmp_next_hrtimer_event().
      
      But the point 2 isn't handled at all.
      
      Fixing this is easy though as we have the necessary API ready for that.
      All we need is to call wake_up_nohz_cpu() on a target when a newly
      enqueued hrtimer requires tick rescheduling, like timer list timer do.
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Link: http://lkml.kernel.org/r/3d7ea08ce008698e26bd39fe10f55949391073ab.1403507178.git.viresh.kumar@linaro.orgSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      49a2a075
    • Viresh Kumar's avatar
      hrtimer: Store cpu-number in struct hrtimer_cpu_base · cddd0248
      Viresh Kumar authored
      In lowres mode, hrtimers are serviced by the tick instead of a clock
      event. Now it works well as long as the tick stays periodic but we
      must also make sure that the hrtimers are serviced in dynticks mode.
      
      Part of that job consist in kicking a dynticks hrtimer target in order
      to make it reconsider the next tick to schedule to correctly handle the
      hrtimer's expiring time. And that part isn't handled by the hrtimers
      subsystem.
      
      To prepare for fixing this, we need __hrtimer_start_range_ns() to be
      able to resolve the CPU target associated to a hrtimer's object
      'cpu_base' so that the kick can be centralized there.
      
      So lets store it in the 'struct hrtimer_cpu_base' to resolve the CPU
      without overhead. It is set once at CPU's online notification.
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Link: http://lkml.kernel.org/r/1403393357-2070-4-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      cddd0248
    • Viresh Kumar's avatar
      timer: Kick dynticks targets on mod_timer*() calls · 9f6d9baa
      Viresh Kumar authored
      When a timer is enqueued or modified on a dynticks target, that CPU
      must re-evaluate the next tick to service that timer.
      
      The tick re-evaluation is performed by an IPI kick on the target.
      Now while we correctly call wake_up_nohz_cpu() from add_timer_on(), the
      mod_timer*() API family doesn't support so well dynticks targets.
      
      The reason for this is likely that __mod_timer() isn't supposed to
      select an idle target for a timer, unless that target is the current
      CPU, in which case a dynticks idle kick isn't actually needed.
      
      But there is a small race window lurking behind that assumption: the
      elected target has all the time to turn dynticks idle between the call
      to get_nohz_timer_target() and the locking of its base. Hence a risk
      that we enqueue a timer on a dynticks idle destination without kicking
      it. As a result, the timer might be serviced too late in the future.
      
      Also a target elected by __mod_timer() can be in full dynticks mode
      and thus require to be kicked as well. And unlike idle dynticks, this
      concern both local and remote targets.
      
      To fix this whole issue, lets centralize the dynticks kick to
      internal_add_timer() so that it is well handled for all sort of timer
      enqueue. Even timer migration is concerned so that a full dynticks target
      is correctly kicked as needed when timers are migrating to it.
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Link: http://lkml.kernel.org/r/1403393357-2070-3-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      9f6d9baa
    • Viresh Kumar's avatar
      timer: Store cpu-number in struct tvec_base · d6f93829
      Viresh Kumar authored
      Timers are serviced by the tick. But when a timer is enqueued on a
      dynticks target, we need to kick it in order to make it reconsider the
      next tick to schedule to correctly handle the timer's expiring time.
      
      Now while this kick is correctly performed for add_timer_on(), the
      mod_timer*() family has been a bit neglected.
      
      To prepare for fixing this, we need internal_add_timer() to be able to
      resolve the CPU target associated to a timer's object 'base' so that the
      kick can be centralized there.
      
      This can't be passed as an argument as not all the callers know the CPU
      number of a timer's base. So lets store it in the struct tvec_base to
      resolve the CPU without much overhead. It is set once for good at every
      CPU's first boot.
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Link: http://lkml.kernel.org/r/1403393357-2070-2-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      d6f93829
    • Thomas Gleixner's avatar
      time/timers: Move all time(r) related files into kernel/time · 5cee9645
      Thomas Gleixner authored
      Except for Kconfig.HZ. That needs a separate treatment.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      5cee9645
  2. 21 Jun, 2014 1 commit
  3. 12 Jun, 2014 7 commits
  4. 08 Jun, 2014 13 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-3.16-merge-window' of... · 963649d7
      Linus Torvalds authored
      Merge tag 'for-linus-3.16-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs
      
      Pull 9p fixes from Eric Van Hensbergen:
       "Two bug fixes, one in xattr error path and the other in parsing
        major/minor numbers from devices"
      
      * tag 'for-linus-3.16-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        9P: fix return value in v9fs_fid_xattr_set
        fs/9p: adjust sscanf parameters accordingly to the variable types
      963649d7
    • Rik van Riel's avatar
      numa,sched: fix load_to_imbalanced logic inversion · 1662867a
      Rik van Riel authored
      This function is supposed to return true if the new load imbalance is
      worse than the old one.  It didn't.  I can only hope brown paper bags
      are in style.
      
      Now things converge much better on both the 4 node and 8 node systems.
      
      I am not sure why this did not seem to impact specjbb performance on the
      4 node system, which is the system I have full-time access to.
      
      This bug was introduced recently, with commit e63da036 ("sched/numa:
      Allow task switch if load imbalance improves")
      Signed-off-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1662867a
    • Linus Torvalds's avatar
      Don't trigger congestion wait on dirty-but-not-writeout pages · b738d764
      Linus Torvalds authored
      shrink_inactive_list() used to wait 0.1s to avoid congestion when all
      the pages that were isolated from the inactive list were dirty but not
      under active writeback.  That makes no real sense, and apparently causes
      major interactivity issues under some loads since 3.11.
      
      The ostensible reason for it was to wait for kswapd to start writing
      pages, but that seems questionable as well, since the congestion wait
      code seems to trigger for kswapd itself as well.  Also, the logic behind
      delaying anything when we haven't actually started writeback is not
      clear - it only delays actually starting that writeback.
      
      We'll still trigger the congestion waiting if
      
       (a) the process is kswapd, and we hit pages flagged for immediate
           reclaim
      
       (b) the process is not kswapd, and the zone backing dev writeback is
           actually congested.
      
      This probably needs to be revisited, but as it is this fixes a reported
      regression.
      Reported-by: default avatarFelipe Contreras <felipe.contreras@gmail.com>
      Pinpointed-by: default avatarHillf Danton <dhillf@gmail.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b738d764
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · f8409abd
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Clean ups and miscellaneous bug fixes, in particular for the new
        collapse_range and zero_range fallocate functions.  In addition,
        improve the scalability of adding and remove inodes from the orphan
        list"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits)
        ext4: handle symlink properly with inline_data
        ext4: fix wrong assert in ext4_mb_normalize_request()
        ext4: fix zeroing of page during writeback
        ext4: remove unused local variable "stored" from ext4_readdir(...)
        ext4: fix ZERO_RANGE test failure in data journalling
        ext4: reduce contention on s_orphan_lock
        ext4: use sbi in ext4_orphan_{add|del}()
        ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged()
        ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access
        ext4: remove unnecessary double parentheses
        ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails
        ext4: make local functions static
        ext4: fix block bitmap validation when bigalloc, ^flex_bg
        ext4: fix block bitmap initialization under sparse_super2
        ext4: find the group descriptors on a 1k-block bigalloc,meta_bg filesystem
        ext4: avoid unneeded lookup when xattr name is invalid
        ext4: fix data integrity sync in ordered mode
        ext4: remove obsoleted check
        ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode
        ext4: fix locking for O_APPEND writes
        ...
      f8409abd
    • Linus Torvalds's avatar
      Merge tag 'llvmlinux-for-v3.16' of git://git.linuxfoundation.org/llvmlinux/kernel · b20dcab9
      Linus Torvalds authored
      Pull LLVM patches from Behan Webster:
       "Next set of patches to support compiling the kernel with clang.
        They've been soaking in linux-next since the last merge window.
      
        More still in the works for the next merge window..."
      
      * tag 'llvmlinux-for-v3.16' of git://git.linuxfoundation.org/llvmlinux/kernel:
        arm, unwind, LLVMLinux: Enable clang to be used for unwinding the stack
        ARM: LLVMLinux: Change "extern inline" to "static inline" in glue-cache.h
        all: LLVMLinux: Change DWARF flag to support gcc and clang
        net: netfilter: LLVMLinux: vlais-netfilter
        crypto: LLVMLinux: aligned-attribute.patch
      b20dcab9
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ed81e780
      Linus Torvalds authored
      Pull x86 vdso build fix from Peter Anvin:
       "This fixes building the vdso code on older Linux systems, and probably
        some non-Linux systems"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, vdso: Use <tools/le_byteshift.h> for littleendian access
      ed81e780
    • Linus Torvalds's avatar
      Merge branch 'next' (accumulated 3.16 merge window patches) into master · 3f17ea6d
      Linus Torvalds authored
      Now that 3.15 is released, this merges the 'next' branch into 'master',
      bringing us to the normal situation where my 'master' branch is the
      merge window.
      
      * accumulated work in next: (6809 commits)
        ufs: sb mutex merge + mutex_destroy
        powerpc: update comments for generic idle conversion
        cris: update comments for generic idle conversion
        idle: remove cpu_idle() forward declarations
        nbd: zero from and len fields in NBD_CMD_DISCONNECT.
        mm: convert some level-less printks to pr_*
        MAINTAINERS: adi-buildroot-devel is moderated
        MAINTAINERS: add linux-api for review of API/ABI changes
        mm/kmemleak-test.c: use pr_fmt for logging
        fs/dlm/debug_fs.c: replace seq_printf by seq_puts
        fs/dlm/lockspace.c: convert simple_str to kstr
        fs/dlm/config.c: convert simple_str to kstr
        mm: mark remap_file_pages() syscall as deprecated
        mm: memcontrol: remove unnecessary memcg argument from soft limit functions
        mm: memcontrol: clean up memcg zoneinfo lookup
        mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
        mm/mempool.c: update the kmemleak stack trace for mempool allocations
        lib/radix-tree.c: update the kmemleak stack trace for radix tree allocations
        mm: introduce kmemleak_update_trace()
        mm/kmemleak.c: use %u to print ->checksum
        ...
      3f17ea6d
    • Linus Torvalds's avatar
      Linux 3.15 · 1860e379
      Linus Torvalds authored
      1860e379
    • Linus Torvalds's avatar
      Revert "x86/smpboot: Initialize secondary CPU only if master CPU will wait for it" · bb077d60
      Linus Torvalds authored
      This reverts commit 3e1a878b.
      
      It came in very late, and already has one reported failure: Sitsofe
      reports that the current tree fails to boot on his EeePC, and bisected
      it down to this.  Rather than waste time trying to figure out what's
      wrong, just revert it.
      Reported-by: default avatarSitsofe Wheeler <sitsofe@gmail.com>
      Cc: Igor Mammedov <imammedo@redhat.com>
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bb077d60
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.16' of git://git.linaro.org/people/mike.turquette/linux into next · 1a5700bc
      Linus Torvalds authored
      Pull clock framework updates from Mike Turquette:
       "The clock framework changes for 3.16 are pretty typical: mostly clock
        driver additions and fixes.  There are additions to the clock core
        code for some of the basic types (e.g. the common divider type has
        some fixes and featured added to it).
      
        One minor annoyance is a last-minute dependency that wasn't handled
        quite right.  Commit ba0fae3b ("clk: berlin: add core clock driver
        for BG2/BG2CD") in this pull request depends on
        include/dt-bindings/clock/berlin2.h, which is already in your tree via
        the arm-soc pull request.  Building for the berlin platform will break
        when the clk tree is built on it's own, but merged into your master
        branch everything should be fine"
      
      * tag 'clk-for-linus-3.16' of git://git.linaro.org/people/mike.turquette/linux: (75 commits)
        mmc: sunxi: Add driver for SD/MMC hosts found on Allwinner sunxi SoCs
        clk: export __clk_round_rate for providers
        clk: versatile: free icst on error return
        clk: qcom: Return error pointers for unimplemented clocks
        clk: qcom: Support msm8974pro global clock control hardware
        clk: qcom: Properly support display clocks on msm8974
        clk: qcom: Support display RCG clocks
        clk: qcom: Return highest rate when round_rate() exceeds plan
        clk: qcom: Fix mmcc-8974's PLL configurations
        clk: qcom: Fix clk_rcg2_is_enabled() check
        clk: berlin: add core clock driver for BG2Q
        clk: berlin: add core clock driver for BG2/BG2CD
        clk: berlin: add driver for BG2x complex divider cells
        clk: berlin: add driver for BG2x simple PLLs
        clk: berlin: add driver for BG2x audio/video PLL
        clk: st: Terminate of match table
        clk/exynos4: Fix compilation warning
        ARM: shmobile: r8a7779: Add clock index macros for DT sources
        clk: divider: Fix overflow in clk_divider_bestdiv
        clk: u300: Terminate of match table
        ...
      1a5700bc
    • Linus Torvalds's avatar
      Merge tag 'vfio-v3.16-rc1' of git://github.com/awilliam/linux-vfio into next · a68a7509
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
       "A handful of VFIO bug fixes for v3.16"
      
      * tag 'vfio-v3.16-rc1' of git://github.com/awilliam/linux-vfio:
        drivers/vfio/pci: Fix wrong MSI interrupt count
        drivers/vfio: Rework offsetofend()
        vfio/iommu_type1: Avoid overflow
        vfio/pci: Fix unchecked return value
        vfio/pci: Fix sizing of DPA and THP express capabilities
      a68a7509
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6 into next · 639b4ac6
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "Here is the crypto update for 3.16:
      
         - Added test vectors for SHA/AES-CCM/DES-CBC/3DES-CBC.
         - Fixed a number of error-path memory leaks in tcrypt.
         - Fixed error-path memory leak in caam.
         - Removed unnecessary global mutex from mxs-dcp.
         - Added ahash walk interface that can actually be asynchronous.
         - Cleaned up caam error reporting.
         - Allow crypto_user get operation to be used by non-root users.
         - Add support for SSS module on Exynos.
         - Misc fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6: (60 commits)
        crypto: testmgr - add aead cbc des, des3_ede tests
        crypto: testmgr - Fix DMA-API warning
        crypto: cesa - tfm->__crt_alg->cra_type directly
        crypto: sahara - tfm->__crt_alg->cra_name directly
        crypto: padlock - tfm->__crt_alg->cra_name directly
        crypto: n2 - tfm->__crt_alg->cra_name directly
        crypto: dcp - tfm->__crt_alg->cra_name directly
        crypto: cesa - tfm->__crt_alg->cra_name directly
        crypto: ccp - tfm->__crt_alg->cra_name directly
        crypto: geode - Don't use tfm->__crt_alg->cra_name directly
        crypto: geode - Weed out printk() from probe()
        crypto: geode - Consistently use AES_KEYSIZE_128
        crypto: geode - Kill AES_IV_LENGTH
        crypto: geode - Kill AES_MIN_BLOCK_SIZE
        crypto: mxs-dcp - Remove global mutex
        crypto: hash - Add real ahash walk interface
        hwrng: n2-drv - Introduce the use of the managed version of kzalloc
        crypto: caam - reinitialize keys_fit_inline for decrypt and givencrypt
        crypto: s5p-sss - fix multiplatform build
        hwrng: timeriomem - remove unnecessary OOM messages
        ...
      639b4ac6
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd into next · 9d2cd01b
      Linus Torvalds authored
      Pull exofs raid6 support from Boaz Harrosh:
       "These simple patches will enable raid6 using the kernel's raid6_pq
        engine for support under exofs and pnfs-objects.
      
        There is nothing needed to do at exofs and pnfs-obj.  Just fire your
        mkfs.exofs with --raid=6 (that was already supported before) and off
        you go as usual.  The ORE will pick up the new map and will start
        writing two devices of redundancy bits.  The patches are so simple
        because most of the ORE was already for the general raid case, only a
        few bug fixes were needed and the actual wiring into the raid6_pq
        engine"
      
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        ore: Support for raid 6
        ore: Remove redundant dev_order(), more cleanups
        ore: (trivial) reformat some code
      9d2cd01b
  5. 07 Jun, 2014 9 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · c593e897
      Linus Torvalds authored
      Pull btrfs fix from Chris Mason:
       "I had this in my 3.16 merge window queue, but it is small and obvious
        enough for 3.15.  I cherry-picked and retested against current rc8"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: send, fix corrupted path strings for long paths
      c593e897
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 052e5c7e
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "Here are the remaining fixes for v3.15.
      
        This series includes:
      
         - iser-target fix for ImmediateData exception reference count bug
           (Sagi + nab)
         - iscsi-target fix for MC/S login + potential iser-target MRDSL
           buffer overrun (Santosh + Roland)
         - iser-target fix for v3.15-rc multi network portal shutdown
           regression (nab)
         - target fix for allowing READ_CAPCITY during ALUA Standby access
           state (Chris + nab)
         - target fix for NULL pointer dereference of alua_access_state for
           un-configured devices (Chris + nab)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target: Fix alua_access_state attribute OOPs for un-configured devices
        target: Allow READ_CAPACITY opcode in ALUA Standby access state
        iser-target: Fix multi network portal shutdown regression
        iscsi-target: Fix wrong buffer / buffer overrun in iscsi_change_param_value()
        iser-target: Add missing target_put_sess_cmd for ImmedateData failure
      052e5c7e
    • Linus Torvalds's avatar
      Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 813895f8
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "A significantly larger than I'd like set of patches for just below the
        wire.  All of these, however, fix real problems.
      
        The one thing that is genuinely scary in here is the change of SMP
        initialization, but that *does* fix a confirmed hang when booting
        virtual machines.
      
        There is also a patch to actually do the right thing about not
        offlining a CPU when there are not enough interrupt vectors available
        in the system; the accounting was done incorrectly.  The worst case
        for that patch is that we fail to offline CPUs when we should (the new
        code is strictly more conservative than the old), so is not
        particularly risky.
      
        Most of the rest is minor stuff; the EFI patches are all about
        exporting correct information to boot loaders and kexec"
      
      * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: EFI_MIXED should not prohibit loading above 4G
        x86/smpboot: Initialize secondary CPU only if master CPU will wait for it
        x86/smpboot: Log error on secondary CPU wakeup failure at ERR level
        x86: Fix list/memory corruption on CPU hotplug
        x86: irq: Get correct available vectors for cpu disable
        x86/efi: Do not export efi runtime map in case old map
        x86/efi: earlyprintk=efi,keep fix
      813895f8
    • Mark Charlebois's avatar
      arm, unwind, LLVMLinux: Enable clang to be used for unwinding the stack · e6b80757
      Mark Charlebois authored
      Patch to prevent warning of a buggy compiler when using clang and
      the ARM_UNWIND option.
      
      Clang defines (at least on the current trunk) GNUC, GNUC_MINOR, and
      GNUC_PATCHLEVEL to 4, 2, and 1 respectively.
      
      This version of GCC gets flagged as buggy, but it isn't actually an
      issue with clang so the patch will do what it did before unless clang
      is defined and then it will not report the GCC version as an issue.
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      e6b80757
    • Behan Webster's avatar
      ARM: LLVMLinux: Change "extern inline" to "static inline" in glue-cache.h · 76ae0382
      Behan Webster authored
      With compilers which follow the C99 standard (like modern versions of gcc and
      clang), "extern inline" does the wrong thing (emits code for an externally
      linkable version of the inline function). "static inline" is the correct choice
      instead.
      
      Author: Behan Webster <behanw@converseincode.com>
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      Reviewed-by: default avatarMark Charlebois <charlebm@gmail.com>
      76ae0382
    • Behan Webster's avatar
      all: LLVMLinux: Change DWARF flag to support gcc and clang · 2288328c
      Behan Webster authored
      Both gcc (well, actually gnu as) and clang support the "-Wa,-gdwarf-2" option
      (though clang does not support "-Wa,--gdwarf-2"). Since these flags are equivalent
      in meaning, this patch uses the one which is better supported across compilers.
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      2288328c
    • Mark Charlebois's avatar
      net: netfilter: LLVMLinux: vlais-netfilter · 066c6807
      Mark Charlebois authored
      Replaced non-standard C use of Variable Length Arrays In Structs (VLAIS) in
      xt_repldata.h with a C99 compliant flexible array member and then calculated
      offsets to the other struct members. These other members aren't referenced by
      name in this code, however this patch maintains the same memory layout and
      padding as was previously accomplished using VLAIS.
      
      Had the original structure been ordered differently, with the entries VLA at
      the end, then it could have been a flexible member, and this patch would have
      been a lot simpler. However since the data stored in this structure is
      ultimately exported to userspace, the order of this structure can't be changed.
      
      This patch makes no attempt to change the existing behavior, merely the way in
      which the current layout is accomplished using standard C99 constructs. As such
      the code can now be compiled with either gcc or clang.
      
      This version of the patch removes the trailing alignment that the VLAIS
      structure would allocate in order to simplify the patch.
      
      Author: Mark Charlebois <charlebm@gmail.com>
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      Signed-off-by: default avatarVinícius Tinti <viniciustinti@gmail.com>
      066c6807
    • Mark Charlebois's avatar
      crypto: LLVMLinux: aligned-attribute.patch · 66d8ea57
      Mark Charlebois authored
      __attribute__((aligned)) applies the default alignment for the largest scalar
      type for the target ABI. gcc allows it to be applied inline to a defined type.
      Clang only allows it to be applied to a type definition (PR11071).
      
      Making it into 2 lines makes it more readable and works with both compilers.
      
      Author: Mark Charlebois <charlebm@gmail.com>
      Signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
      Signed-off-by: default avatarBehan Webster <behanw@converseincode.com>
      66d8ea57
    • Matt Fleming's avatar
      x86/boot: EFI_MIXED should not prohibit loading above 4G · 745c5167
      Matt Fleming authored
      commit 7d453eee ("x86/efi: Wire up CONFIG_EFI_MIXED") introduced a
      regression for the functionality to load kernels above 4G. The relevant
      (incorrect) reasoning behind this change can be seen in the commit
      message,
      
        "The xloadflags field in the bzImage header is also updated to reflect
        that the kernel supports both entry points by setting both of
        XLF_EFI_HANDOVER_32 and XLF_EFI_HANDOVER_64 when CONFIG_EFI_MIXED=y.
        XLF_CAN_BE_LOADED_ABOVE_4G is disabled so that the kernel text is
        guaranteed to be addressable with 32-bits."
      
      This is obviously bogus since 32-bit EFI loaders will never place the
      kernel above the 4G mark. So this restriction is entirely unnecessary.
      
      But things are worse than that - since we want to encourage people to
      always compile with CONFIG_EFI_MIXED=y so that their kernels work out of
      the box for both 32-bit and 64-bit firmware, commit 7d453eee
      effectively disables XLF_CAN_BE_LOADED_ABOVE_4G completely.
      
      Remove the overzealous and superfluous restriction and restore the
      XLF_CAN_BE_LOADED_ABOVE_4G functionality.
      
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Dave Young <dyoung@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Link: http://lkml.kernel.org/r/1402140380-15377-1-git-send-email-matt@console-pimps.orgSigned-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      745c5167
  6. 06 Jun, 2014 5 commits
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew Morton) into next · 57d32616
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
      
       - Most of the rest of MM.
      
         This includes "mark remap_file_pages syscall as deprecated" but the
         actual "replace remap_file_pages syscall with emulation" is held
         back.  I guess we'll need to work out when to pull the trigger on
         that one.
      
       - various minor cleanups to obscure filesystems
      
       - the drivers/rtc queue
      
       - hfsplus updates
      
       - ufs, hpfs, fatfs, affs, reiserfs
      
       - Documentation/
      
       - signals
      
       - procfs
      
       - cpu hotplug
      
       - lib/idr.c
      
       - rapidio
      
       - sysctl
      
       - ipc updates
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (171 commits)
        ufs: sb mutex merge + mutex_destroy
        powerpc: update comments for generic idle conversion
        cris: update comments for generic idle conversion
        idle: remove cpu_idle() forward declarations
        nbd: zero from and len fields in NBD_CMD_DISCONNECT.
        mm: convert some level-less printks to pr_*
        MAINTAINERS: adi-buildroot-devel is moderated
        MAINTAINERS: add linux-api for review of API/ABI changes
        mm/kmemleak-test.c: use pr_fmt for logging
        fs/dlm/debug_fs.c: replace seq_printf by seq_puts
        fs/dlm/lockspace.c: convert simple_str to kstr
        fs/dlm/config.c: convert simple_str to kstr
        mm: mark remap_file_pages() syscall as deprecated
        mm: memcontrol: remove unnecessary memcg argument from soft limit functions
        mm: memcontrol: clean up memcg zoneinfo lookup
        mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
        mm/mempool.c: update the kmemleak stack trace for mempool allocations
        lib/radix-tree.c: update the kmemleak stack trace for radix tree allocations
        mm: introduce kmemleak_update_trace()
        mm/kmemleak.c: use %u to print ->checksum
        ...
      57d32616
    • Fabian Frederick's avatar
      ufs: sb mutex merge + mutex_destroy · 0244756e
      Fabian Frederick authored
      Commit 788257d6 ("ufs: remove the BKL") replaced BKL with mutex
      protection using functions lock_ufs, unlock_ufs and struct mutex 'mutex'
      in sb_info.
      
      Commit b6963327 ("ufs: drop lock/unlock super") removed lock/unlock
      super and added struct mutex 's_lock' in sb_info.
      
      Those 2 mutexes are generally locked/unlocked at the same time except in
      allocation (balloc, ialloc).
      
      This patch merges the 2 mutexes and propagates first commit solution.
      It also adds mutex destruction before kfree during ufs_fill_super
      failure and ufs_put_super.
      
      [akpm@linux-foundation.org: avoid ifdefs, return -EROFS not -EINVAL]
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Cc: "Chen, Jet" <jet.chen@intel.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0244756e
    • Geert Uytterhoeven's avatar
      powerpc: update comments for generic idle conversion · 0d2b7ea9
      Geert Uytterhoeven authored
      As of commit 799fef06 ("powerpc: Use generic idle loop"), this
      applies to arch_cpu_idle() instead of cpu_idle().
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d2b7ea9
    • Geert Uytterhoeven's avatar
      cris: update comments for generic idle conversion · 835eeeed
      Geert Uytterhoeven authored
      As of commit 8dc7c5ec ("cris: Use generic idle loop"), cris no
      longer provides cpu_idle().
      
      - On cris-v10, etrax_gpio_wake_up_check() is called from default_idle()
        instead of cpu_idle(),
      
      - On cris-v32, etrax_gpio_wake_up_check() is not called from
        default_idle(), so remove this (copy-and-paste?) part.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      835eeeed
    • Geert Uytterhoeven's avatar
      idle: remove cpu_idle() forward declarations · ae022622
      Geert Uytterhoeven authored
      After all architectures were converted to the generic idle framework,
      commit d190e819 ("idle: Remove GENERIC_IDLE_LOOP config switch")
      removed the last caller of cpu_idle().  The forward declarations in
      header files were forgotten.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae022622