1. 12 10月, 2014 15 次提交
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 5e40d331
      Linus Torvalds 提交于
      Pull security subsystem updates from James Morris.
      
      Mostly ima, selinux, smack and key handling updates.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (65 commits)
        integrity: do zero padding of the key id
        KEYS: output last portion of fingerprint in /proc/keys
        KEYS: strip 'id:' from ca_keyid
        KEYS: use swapped SKID for performing partial matching
        KEYS: Restore partial ID matching functionality for asymmetric keys
        X.509: If available, use the raw subjKeyId to form the key description
        KEYS: handle error code encoded in pointer
        selinux: normalize audit log formatting
        selinux: cleanup error reporting in selinux_nlmsg_perm()
        KEYS: Check hex2bin()'s return when generating an asymmetric key ID
        ima: detect violations for mmaped files
        ima: fix race condition on ima_rdwr_violation_check and process_measurement
        ima: added ima_policy_flag variable
        ima: return an error code from ima_add_boot_aggregate()
        ima: provide 'ima_appraise=log' kernel option
        ima: move keyring initialization to ima_init()
        PKCS#7: Handle PKCS#7 messages that contain no X.509 certs
        PKCS#7: Better handling of unsupported crypto
        KEYS: Overhaul key identification when searching for asymmetric keys
        KEYS: Implement binary asymmetric key ID handling
        ...
      5e40d331
    • L
      Merge branch 'parisc-3.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · d0ca4757
      Linus Torvalds 提交于
      Pull parisc fix from Helge Deller:
       "This patch intentionally breaks the ABI on PARISC Linux!
      
        It assigns new numbers to SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS so
        that those are below 32 and thus leaves us with 32 RT signals like
        other Linux architectures (SIGRTMIN now becomes 32 instead of 37).
      
        Even if it breaks the ABI, it doesn't seem to have any visible impact
        on existing userspace applications.  I was able to mix new kernel
        and/or glibc without impacting normal bootup.  So, even if it breaks
        the ABI, the benefits (e.g.  being able to use systemd on PARISC
        Linux) outperforms the minimal (if any) impact it gives.
      
        The patch has been discussed on the parisc kernel mailing list and the
        coresponding glibc patch will be committed by the parisc glibc
        maintainer after this patch went into 3.18.
      
        Some more background information about this patch is in the commit
        message"
      
      [ Side note: the "no regressions" rule has always been about *users*,
        not ABI's.  You can change ABI's all you like, until somebody actually
        notices.  At that point it gets reverted regardless of how good your
        reasons and excuses.
      
        And admittedly, with parisc, the distinct lack of many users makes
        that fairly unlikely anyway :^p    - Linus ]
      
      * 'parisc-3.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures
      d0ca4757
    • L
      Merge tag 'platform-drivers-x86-v3.18-1' of... · 4ee9f611
      Linus Torvalds 提交于
      Merge tag 'platform-drivers-x86-v3.18-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver updates from Darren Hart:
       "The following have all spent at least a few days in linux-next, most
        for more than a week.  These are mostly cleanups and error handling
        improvements with a few updates to extend existing support to newer
        hardware.
      
        Details:
         - dell-wmi: fix access out of memory
         - eeepc-laptop: cleanups, refactoring, sysfs perms, and improved
           error handling
         - intel-rst: ACPI and error handling cleanups
         - thinkpad-acpi: whitespace cleanup
         - toshiba_acpi: HCI/SCI interface update, keyboard backlight type 2
           support, new scancodes, cleanups"
      
      * tag 'platform-drivers-x86-v3.18-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (23 commits)
        toshiba_acpi: Adapt kbd_bl_timeout_store to the new kbd type
        toshiba_acpi: Change HCI/SCI functions return code type
        toshiba_acpi: Unify return codes prefix from HCI/SCI to TOS
        toshiba_acpi: Rename hci_raw to tci_raw
        dell-wmi: Fix access out of memory
        eeepc-laptop: clean up control flow in *_rfkill_notifier
        eeepc-laptop: store_cpufv: return error if set_acpi fails
        eeepc-laptop: check proper return values in get_cpufv
        eeepc-laptop: make fan1_input really read-only
        eeepc-laptop: pull out SENSOR_STORE_FUNC and SENSOR_SHOW_FUNC macros
        eeepc-laptop: tell sysfs that the disp attribute is write-only
        eeepc-laptop: pull out ACPI_STORE_FUNC and ACPI_SHOW_FUNC macros
        eeepc-laptop: use DEVICE_ATTR* to instantiate device_attributes
        eeepc-laptop: change sysfs function names to API expectations
        eeepc-laptop: clean up coding style
        eeepc-laptop: simplify parse_arg()
        intel-rst: Clean up ACPI add function
        intel-rst: Use ACPI_FAILURE() macro instead !ACPI_SUCCESS() for error checking
        x86: thinkpad_acpi.c: fixed spacing coding style issue
        toshiba_acpi: Support new keyboard backlight type
        ...
      4ee9f611
    • L
      Merge tag 'tiny/no-advice-fixup-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/josh/linux · ce254b34
      Linus Torvalds 提交于
      Pull tinification fix from Josh "Paper Bag" Triplett:
       "Fixup to use PATCHv2 of 'mm: Support compiling out madvise and
        fadvise'"
      
      * tag 'tiny/no-advice-fixup-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/josh/linux:
        mm: Support fadvise without CONFIG_MMU
      ce254b34
    • L
      Merge tag 'kselftest-3.18-updates-1' of... · 47e0de1a
      Linus Torvalds 提交于
      Merge tag 'kselftest-3.18-updates-1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       - fix for missing arguments to printf
       - fix to build failures on 32-bit systems.
       - enhancement to run memfd_test run on all architectures as most
         architectures support __NR_memfd_create
      
      * tag 'kselftest-3.18-updates-1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/memfd: Run test on all architectures
        memfd_test: Add missing argument to printf()
        memfd_test: Make it work on 32-bit systems
      47e0de1a
    • L
      Merge tag 'ftracetest-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 90eac7ee
      Linus Torvalds 提交于
      Pull ftrace test code from Steven Rostedt:
       "This patch series starts a new selftests section in the
        tools/testing/selftest directory called "ftrace" that holds tests
        aimed at testing ftrace and subsystems that use ftrace (like kprobes).
      
        So far only a few tests were written (by Masami Hiramatsu), but more
        will be added in the near future (3.19)"
      
      * tag 'ftracetest-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing/kprobes: Add selftest scripts testing kprobe-tracer as startup test
        ftracetest: Add POSIX.3 standard and XFAIL result codes
        ftracetest: Add kprobe basic testcases
        ftracetest: Add ftrace basic testcases
        ftracetest: Initial commit for ftracetest
      90eac7ee
    • L
      Merge tag 'ktest-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · 6bbcb1d3
      Linus Torvalds 提交于
      Pull ktest update from Steven Rostedt:
       "A fix and a clean up to ktest, as well as two small features.
      
         - A way to allow users to skip a manual bisect.
         - Allowing cherry picked patches to be tested.
      
        The cherry pick worked for a test I needed, but stressing it may not
        have all the desired effects.  It doesn't cause any regressions so I
        kept it in"
      
      * tag 'ktest-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Don't bother with bisect good or bad on replay
        ktest: Fix check for new kernel success on rebooting to good kernel
        ktest: add ability to skip during BISECT_MANUAL
        ktest: Add PATCHCHECK_CHERRY
      6bbcb1d3
    • L
      Merge tag 'trace-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 8df6be11
      Linus Torvalds 提交于
      Pull tracing fixes from Steven Rostedt:
       "Seems that Peter Zijlstra added a new check that is making old code
        scream nasty warnings:
      
          WARNING: CPU: 0 PID: 91 at kernel/sched/core.c:7253 __might_sleep+0x9a/0x378()
          do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffff8d79b511>] event_test_thread+0x48/0x93
          Call Trace:
            __might_sleep+0x9a/0x378
            down_read+0x26/0x98
            exit_signals+0x27/0x1c2
            do_exit+0x193/0x10bd
            kthread+0x156/0x156
            ret_from_fork+0x7a/0xb0
      
        These are triggered by some self tests that run at start up when
        configure in.  Although the code is technically correct, they are a
        little sloppy and not very robust.  They work now because it runs at
        boot up and the tests do not call anything that might trigger a
        spurious wake up.  But that doesn't mean those tests wont change in
        the future.
      
        It's best to clean them now to make sure the tests used to test the
        internal workings of the system don't cause breakage themselves.
      
        This also quiets the warnings made by the new checks"
      
      * tag 'trace-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Clean up scheduling in trace_wakeup_test_thread()
        tracing: Robustify wait loop
      8df6be11
    • L
      Merge tag 'trace-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 9837acff
      Linus Torvalds 提交于
      Pull tracing updates from Steven Rostedt:
       "This set has a few minor updates, but the big change is the redesign
        of the trampoline logic.
      
        The trampoline logic of 3.17 required a descriptor for every function
        that is registered to be traced and uses a trampoline.  Currently,
        only the function graph tracer uses a trampoline, but if you were to
        trace all 32,000 (give or take a few thousand) functions with the
        function graph tracer, it would create 32,000 descriptors to let us
        know that there's a trampoline associated with it.  This takes up a
        bit of memory when there's a better way to do it.
      
        The redesign now reuses the ftrace_ops' (what registers the function
        graph tracer) hash tables.  The hash tables tell ftrace what the
        tracer wants to trace or doesn't want to trace.  There's two of them:
        one that tells us what to trace, the other tells us what not to trace.
        If the first one is empty, it means all functions should be traced,
        otherwise only the ones that are listed should be.  The second hash
        table tells us what not to trace, and if it is empty, all functions
        may be traced, and if there's any listed, then those should not be
        traced even if they exist in the first hash table.
      
        It took a bit of massaging, but now these hashes can be used to keep
        track of what has a trampoline and what does not, and allows the
        ftrace accounting to work.  Now we can trace all functions when using
        the function graph trampoline, and avoid needing to create any special
        descriptors to hold all the functions that are being traced"
      
      * tag 'trace-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace: Only disable ftrace_enabled to test buffer in selftest
        ftrace: Add sanity check when unregistering last ftrace_ops
        kernel: trace_syscalls: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
        tracing: generate RCU warnings even when tracepoints are disabled
        ftrace: Replace tramp_hash with old_*_hash to save space
        ftrace: Annotate the ops operation on update
        ftrace: Grab any ops for a rec for enabled_functions output
        ftrace: Remove freeing of old_hash from ftrace_hash_move()
        ftrace: Set callback to ftrace_stub when no ops are registered
        ftrace: Add helper function ftrace_ops_get_func()
        ftrace: Add separate function for non recursive callbacks
      9837acff
    • H
      parisc: Reduce SIGRTMIN from 37 to 32 to behave like other Linux architectures · 1f25df2e
      Helge Deller 提交于
      This patch reduces the value of SIGRTMIN on PARISC from 37 to 32, thus
      increasing the number of available RT signals and bring it in sync with other
      Linux architectures.
      
      Historically we wanted to natively support HP-UX 32bit binaries with the
      PA-RISC Linux port.  Because of that we carried the various available signals
      from HP-UX (e.g. SIGEMT and SIGLOST) and folded them in between the native
      Linux signals.  Although this was the right decision at that time, this
      required us to increase SIGRTMIN to at least 37 which left us with 27 (64-37)
      RT signals.
      
      Those 27 RT signals haven't been a problem in the past, but with the upcoming
      importance of systemd we now got the problem that systemd alloctes (hardcoded)
      signals up to SIGRTMIN+29 which is beyond our NSIG of 64. Because of that we
      have not been able to use systemd on the PARISC Linux port yet.
      
      Of course we could ask the systemd developers to not use those hardcoded
      values, but this change is very unlikely, esp. with PA-RISC being a niche
      architecture.
      
      The other possibility would be to increase NSIG to e.g. 128, but this would
      mean to duplicate most of the existing Linux signal handling code into the
      parisc specific Linux kernel tree which would most likely introduce lots of new
      bugs beside the code duplication.
      
      The third option is to drop some HP-UX signals and shuffle some other signals
      around to bring SIGRTMIN to 32.  This is of course an ABI change, but testing
      has shown that existing Linux installations are not visibly affected by this
      change - most likely because we move those signals around which are rarely used
      and move them to slots which haven't been used in Linux yet. In an existing
      installation I was able to exchange either the Linux kernel or glibc (or both)
      without affecting the boot process and installed applications.
      
      Dropping the HP-UX signals isn't an issue either, since support for HP-UX was
      basically dropped a few months back with Kernel 3.14 in commit
      f5a408d5 already, when we changed EWOULDBLOCK
      to be equal to EAGAIN.
      
      So, even if this is an ABI change, it's better to change it now and thus bring
      PARISC Linux in sync with other architectures to avoid other issues in the
      future.
      Signed-off-by: NHelge Deller <deller@gmx.de>
      Cc: Carlos O'Donell <carlos@systemhalted.org>
      Cc: John David Anglin <dave.anglin@bell.net>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Cc: PARISC Linux Kernel Mailinglist <linux-parisc@vger.kernel.org>
      Tested-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      1f25df2e
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ca321885
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
       "This set fixes a bunch of fallout from the changes that went in during
        this merge window, particularly:
      
         - Fix fsl_pq_mdio (Claudiu Manoil) and fm10k (Pranith Kumar) build
           failures.
      
         - Several networking drivers do atomic_set() on page counts where
           that's not exactly legal.  From Eric Dumazet.
      
         - Make __skb_flow_get_ports() work cleanly with unaligned data, from
           Alexander Duyck.
      
         - Fix some kernel-doc buglets in rfkill and netlabel, from Fabian
           Frederick.
      
         - Unbalanced enable_irq_wake usage in bcmgenet and systemport
           drivers, from Florian Fainelli.
      
         - pxa168_eth needs to depend on HAS_DMA, from Geert Uytterhoeven.
      
         - Multi-dequeue in the qdisc layer severely bypasses the fairness
           limits the previous code used to enforce, reintroduce in a way that
           at the same time doesn't compromise bulk dequeue opportunities.
           From Jesper Dangaard Brouer.
      
         - macvlan receive path unnecessarily hops through a softirq by using
           netif_rx() instead of netif_receive_skb().  From Jason Baron"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (51 commits)
        net: systemport: avoid unbalanced enable_irq_wake calls
        net: bcmgenet: avoid unbalanced enable_irq_wake calls
        net: bcmgenet: fix off-by-one in incrementing read pointer
        net: fix races in page->_count manipulation
        mlx4: fix race accessing page->_count
        ixgbe: fix race accessing page->_count
        igb: fix race accessing page->_count
        fm10k: fix race accessing page->_count
        net/phy: micrel: Add clock support for KSZ8021/KSZ8031
        flow-dissector: Fix alignment issue in __skb_flow_get_ports
        net: filter: fix the comments
        Documentation: replace __sk_run_filter with __bpf_prog_run
        macvlan: optimize the receive path
        macvlan: pass 'bool' type to macvlan_count_rx()
        drivers: net: xgene: Add 10GbE ethtool support
        drivers: net: xgene: Add 10GbE support
        drivers: net: xgene: Preparing for adding 10GbE support
        dtb: Add 10GbE node to APM X-Gene SoC device tree
        Documentation: dts: Update section header for APM X-Gene
        MAINTAINERS: Update APM X-Gene section
        ...
      ca321885
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 052db7ec
      Linus Torvalds 提交于
      Pull sparc updates from David Miller:
      
       1) Move to 4-level page tables on sparc64 and support up to 53-bits of
          physical addressing.  Kernel static image BSS size reduced by
          several megabytes.
      
       2) M6/M7 cpu support, from Allan Pais.
      
       3) Move to sparse IRQs, handle hypervisor TLB call errors more
          gracefully, and add T5 perf_event support.  From Bob Picco.
      
       4) Recognize cdroms and compute geometry from capacity in virtual disk
          driver, also from Allan Pais.
      
       5) Fix memset() return value on sparc32, from Andreas Larsson.
      
       6) Respect gfp flags in dma_alloc_coherent on sparc32, from Daniel
          Hellstrom.
      
       7) Fix handling of compound pages in virtual disk driver, from Dwight
          Engen.
      
       8) Fix lockdep warnings in LDC layer by moving IRQ requesting to
          ldc_alloc() from ldc_bind().
      
       9) Increase boot string length to 1024 bytes, from Dave Kleikamp.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: (31 commits)
        sparc64: Fix lockdep warnings on reboot on Ultra-5
        sparc64: Increase size of boot string to 1024 bytes
        sparc64: Kill unnecessary tables and increase MAX_BANKS.
        sparc64: sparse irq
        sparc64: Adjust vmalloc region size based upon available virtual address bits.
        sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53.
        sparc64: Use kernel page tables for vmemmap.
        sparc64: Fix physical memory management regressions with large max_phys_bits.
        sparc64: Adjust KTSB assembler to support larger physical addresses.
        sparc64: Define VA hole at run time, rather than at compile time.
        sparc64: Switch to 4-level page tables.
        sparc64: Fix reversed start/end in flush_tlb_kernel_range()
        sparc64: Add vio_set_intr() to enable/disable Rx interrupts
        vio: fix reuse of vio_dring slot
        sunvdc: limit each sg segment to a page
        sunvdc: compute vdisk geometry from capacity
        sunvdc: add cdrom and v1.1 protocol support
        sparc: VIO protocol version 1.6
        sparc64: Fix hibernation code refrence to PAGE_OFFSET.
        sparc64: Move request_irq() from ldc_bind() to ldc_alloc()
        ...
      052db7ec
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · fd9879b9
      Linus Torvalds 提交于
      Pull powerpc updates from Michael Ellerman:
       "Here's a first pull request for powerpc updates for 3.18.
      
        The bulk of the additions are for the "cxl" driver, for IBM's Coherent
        Accelerator Processor Interface (CAPI).  Most of it's in drivers/misc,
        which Greg & Arnd maintain, Greg said he was happy for us to take it
        through our tree.
      
        There's the usual minor cleanups and fixes, including a bit of noise
        in drivers from some of those.  A bunch of updates to our EEH code,
        which has been getting more testing.  Several nice speedups from
        Anton, including 20% in clear_page().
      
        And a bunch of updates for freescale from Scott"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (130 commits)
        cxl: Fix afu_read() not doing finish_wait() on signal or non-blocking
        cxl: Add documentation for userspace APIs
        cxl: Add driver to Kbuild and Makefiles
        cxl: Add userspace header file
        cxl: Driver code for powernv PCIe based cards for userspace access
        cxl: Add base builtin support
        powerpc/mm: Add hooks for cxl
        powerpc/opal: Add PHB to cxl mode call
        powerpc/mm: Add new hash_page_mm()
        powerpc/powerpc: Add new PCIe functions for allocating cxl interrupts
        cxl: Add new header for call backs and structs
        powerpc/powernv: Split out set MSI IRQ chip code
        powerpc/mm: Export mmu_kernel_ssize and mmu_linear_psize
        powerpc/msi: Improve IRQ bitmap allocator
        powerpc/cell: Make spu_flush_all_slbs() generic
        powerpc/cell: Move data segment faulting code out of cell platform
        powerpc/cell: Move spu_handle_mm_fault() out of cell platform
        powerpc/pseries: Use new defines when calling H_SET_MODE
        powerpc: Update contact info in Documentation files
        powerpc/perf/hv-24x7: Simplify catalog_read()
        ...
      fd9879b9
    • L
      Merge tag 'stable/for-linus-3.18-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 81ae31d7
      Linus Torvalds 提交于
      Pull Xen updates from David Vrabel:
       "Features and fixes:
      
         - Add pvscsi frontend and backend drivers.
         - Remove _PAGE_IOMAP PTE flag, freeing it for alternate uses.
         - Try and keep memory contiguous during PV memory setup (reduces
           SWIOTLB usage).
         - Allow front/back drivers to use threaded irqs.
         - Support large initrds in PV guests.
         - Fix PVH guests in preparation for Xen 4.5"
      
      * tag 'stable/for-linus-3.18-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (22 commits)
        xen: remove DEFINE_XENBUS_DRIVER() macro
        xen/xenbus: Remove BUG_ON() when error string trucated
        xen/xenbus: Correct the comments for xenbus_grant_ring()
        x86/xen: Set EFER.NX and EFER.SCE in PVH guests
        xen: eliminate scalability issues from initrd handling
        xen: sync some headers with xen tree
        xen: make pvscsi frontend dependant on xenbus frontend
        arm{,64}/xen: Remove "EXPERIMENTAL" in the description of the Xen options
        xen-scsifront: don't deadlock if the ring becomes full
        x86: remove the Xen-specific _PAGE_IOMAP PTE flag
        x86/xen: do not use _PAGE_IOMAP PTE flag for I/O mappings
        x86: skip check for spurious faults for non-present faults
        xen/efi: Directly include needed headers
        xen-scsiback: clean up a type issue in scsiback_make_tpg()
        xen-scsifront: use GFP_ATOMIC under spin_lock
        MAINTAINERS: Add xen pvscsi maintainer
        xen-scsiback: Add Xen PV SCSI backend driver
        xen-scsifront: Add Xen PV SCSI frontend driver
        xen: Add Xen pvSCSI protocol description
        xen/events: support threaded irqs for interdomain event channels
        ...
      81ae31d7
    • L
      Merge tag 'locks-v3.18-1' of git://git.samba.org/jlayton/linux · ef4a48c5
      Linus Torvalds 提交于
      Pull file locking related changes from Jeff Layton:
       "This release is a little more busy for file locking changes than the
        last:
      
         - a set of patches from Kinglong Mee to fix the lockowner handling in
           knfsd
         - a pile of cleanups to the internal file lease API.  This should get
           us a bit closer to allowing for setlease methods that can block.
      
        There are some dependencies between mine and Bruce's trees this cycle,
        and I based my tree on top of the requisite patches in Bruce's tree"
      
      * tag 'locks-v3.18-1' of git://git.samba.org/jlayton/linux: (26 commits)
        locks: fix fcntl_setlease/getlease return when !CONFIG_FILE_LOCKING
        locks: flock_make_lock should return a struct file_lock (or PTR_ERR)
        locks: set fl_owner for leases to filp instead of current->files
        locks: give lm_break a return value
        locks: __break_lease cleanup in preparation of allowing direct removal of leases
        locks: remove i_have_this_lease check from __break_lease
        locks: move freeing of leases outside of i_lock
        locks: move i_lock acquisition into generic_*_lease handlers
        locks: define a lm_setup handler for leases
        locks: plumb a "priv" pointer into the setlease routines
        nfsd: don't keep a pointer to the lease in nfs4_file
        locks: clean up vfs_setlease kerneldoc comments
        locks: generic_delete_lease doesn't need a file_lock at all
        nfsd: fix potential lease memory leak in nfs4_setlease
        locks: close potential race in lease_get_mtime
        security: make security_file_set_fowner, f_setown and __f_setown void return
        locks: consolidate "nolease" routines
        locks: remove lock_may_read and lock_may_write
        lockd: rip out deferred lock handling from testlock codepath
        NFSD: Get reference of lockowner when coping file_lock
        ...
      ef4a48c5
  2. 11 10月, 2014 25 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 90d0c376
      Linus Torvalds 提交于
      Pull btrfs updates from Chris Mason:
       "The largest set of changes here come from Miao Xie.  He's cleaning up
        and improving read recovery/repair for raid, and has a number of
        related fixes.
      
        I've merged another set of fsync fixes from Filipe, and he's also
        improved the way we handle metadata write errors to make sure we force
        the FS readonly if things go wrong.
      
        Otherwise we have a collection of fixes and cleanups.  Dave Sterba
        gets a cookie for removing the most lines (thanks Dave)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (139 commits)
        btrfs: Fix compile error when CONFIG_SECURITY is not set.
        Btrfs: fix compiles when CONFIG_BTRFS_FS_RUN_SANITY_TESTS is off
        btrfs: Make btrfs handle security mount options internally to avoid losing security label.
        Btrfs: send, don't delay dir move if there's a new parent inode
        btrfs: add more superblock checks
        Btrfs: fix race in WAIT_SYNC ioctl
        Btrfs: be aware of btree inode write errors to avoid fs corruption
        Btrfs: remove redundant btrfs_verify_qgroup_counts declaration.
        btrfs: fix shadow warning on cmp
        Btrfs: fix compilation errors under DEBUG
        Btrfs: fix crash of btrfs_release_extent_buffer_page
        Btrfs: add missing end_page_writeback on submit_extent_page failure
        btrfs: Fix the wrong condition judgment about subset extent map
        Btrfs: fix build_backref_tree issue with multiple shared blocks
        Btrfs: cleanup error handling in build_backref_tree
        btrfs: move checks for DUMMY_ROOT into a helper
        btrfs: new define for the inline extent data start
        btrfs: kill extent_buffer_page helper
        btrfs: drop constant param from btrfs_release_extent_buffer_page
        btrfs: hide typecast to definition of BTRFS_SEND_TRANS_STUB
        ...
      90d0c376
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · ac0c4939
      Linus Torvalds 提交于
      Pull UDF and quota updates from Jan Kara:
       "A few UDF fixes and also a few patches which are preparing filesystems
        for support of project quotas in VFS"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Fix loading of special inodes
        ocfs2: Back out change to use OCFS2_MAXQUOTAS in ocfs2_setattr()
        udf: remove redundant sys_tz declaration
        ocfs2: Don't use MAXQUOTAS value
        reiserfs: Don't use MAXQUOTAS value
        ext3: Don't use MAXQUOTAS value
        udf: Fix race between write(2) and close(2)
      ac0c4939
    • L
      Merge tag 'ecryptfs-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs · eca9fdf3
      Linus Torvalds 提交于
      Pull eCryptfs updates from Tyler Hicks:
       "Minor code cleanups and a fix for when eCryptfs metadata is stored in
        xattrs"
      
      * tag 'ecryptfs-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        ecryptfs: remove unneeded buggy code in ecryptfs_do_create()
        ecryptfs: avoid to access NULL pointer when write metadata in xattr
        ecryptfs: remove unnecessary break after goto
        ecryptfs: Remove unnecessary include of syscall.h in keystore.c
        fs/ecryptfs/messaging.c: remove null test before kfree
        ecryptfs: Drop cast
        Use %pd in eCryptFS
      eca9fdf3
    • L
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 41e46ac0
      Linus Torvalds 提交于
      Pull gfs2 updates from Steven Whitehouse:
       "This time we have a couple of bug fixes, one relating to bad i_goal
        values which are now ignored (i_goal is basically a hint so it is safe
        to so this) and another relating to the saving of the dirent location
        during rename.
      
        There is one performance improvement, which is an optimisation in
        rgblk_free so that multiple block deallocations will now be more
        efficient, and one clean up patch to use _RET_IP_ rather than writing
        it out longhand"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
        GFS2: use _RET_IP_ instead of (unsigned long)__builtin_return_address(0)
        GFS2: Use gfs2_rbm_incr in rgblk_free
        GFS2: Make rename not save dirent location
        GFS2: fix bad inode i_goal values during block allocation
      41e46ac0
    • L
      Merge tag 'vfio-v3.18-rc1' of git://github.com/awilliam/linux-vfio · 27a9716b
      Linus Torvalds 提交于
      Pull VFIO updates from Alex Williamson:
       - Nested IOMMU extension to type1 (Will Deacon)
       - Restore MSIx message before enabling (Gavin Shan)
       - Fix remove path locking (Alex Williamson)
      
      * tag 'vfio-v3.18-rc1' of git://github.com/awilliam/linux-vfio:
        vfio-pci: Fix remove path locking
        drivers/vfio: Export vfio_spapr_iommu_eeh_ioctl() with GPL
        vfio/pci: Restore MSIx message prior to enabling
        PCI: Export MSI message relevant functions
        vfio/iommu_type1: add new VFIO_TYPE1_NESTING_IOMMU IOMMU type
        iommu: introduce domain attribute for nesting IOMMUs
      27a9716b
    • L
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · e98d6e7f
      Linus Torvalds 提交于
      Pull devicetree changes from Grant Likely:
       "This branch contains bug fixes and new features for the devicetree
        code.
      
        Most of the changes are either new testcases for the selftest code or
        documentation changes.  The most notable change is the addition of a
        phandle resolver for use when grafting in a second device tree blob
        into the core tree.  The resolver isn't currently used by anything
        other than the selftest module, but it will be used to support device
        tree overlays; probably in the v3.19 timeframe.
      
        Also note that I've moved my normal tree from git.secretlab.ca to
        git.kernel.org"
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of/selftest: Move hash table off stack to fix large frame size
        To remove non-ascii characters in of_selftest.txt
        of/selftest: Use the resolver to fixup phandles
        of: Introduce Device Tree resolve support.
        of/selftest: Add a test for duplicate phandles
        of: Don't try to search when phandle == 0
        of/selftest: Test structure of device tree
        of: Fix NULL dereference in selftest removal code
        of: add vendor prefix for Chipidea
        of: Add vendor prefix for Innolux Corporation
        of: Add vendor prefix for Sitronix
        devicetree: bindings: Document Gateworks vendor prefix
        of: Add vendor prefix for Energy Micro
        dt/documentation: add specification of dma bus information
      e98d6e7f
    • L
      Merge tag 'backlight-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 4e0b7fe3
      Linus Torvalds 提交于
      Pull backlight driver updates from Lee Jones:
       "Changes to existing drivers:
         - Checkpatch fixes
         - Removal of unused code in generic_bl
         - Removal of superfluous .owner attribute
      
        No new or removed drivers/supported devices"
      
      * tag 'backlight-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: omap1: add blank line after declarations
        backlight: jornada720: Remove 'else' after a return
        backlight: jornada720: Remove 'else' after a return
        backlight: wm831x_bl: Add blank line after declarations
        backlight: tdo24m: Add blank line after declarations
        backlight: s6e63m0: Remove 'else' after a return
        backlight: pcf50633: Add blank line after declarations
        backlight: lp855x: Add blank line after declarations
        backlight: lms501kf03: Remove 'else' after a return
        backlight: lm3639: Remove unnecessary return statements
        backlight: ld9040: Remove 'else' after a return
        backlight: ili922x: Remove 'else' after a return
        backlight: cr_bllcd: Add blank line after declarations
        backlight: corgi_lcd: Add blank line after declarations
        backlight: ams369fg06: Remove 'else' after a return
        backlight: adp8870: Add blank line after declarations
        backlight: adp8860: Add blank line after declarations
        backlight: adp5520: Add blank line after declarations
        backlight: generic_bl: Remove unused function
        backlight: Remove .owner field for drivers using module_platform_driver
      4e0b7fe3
    • L
      Merge tag 'mmc-v3.18-1' of git://git.linaro.org/people/ulf.hansson/mmc · f43b179b
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Fix SDIO IRQ bug
         - MMC regulator improvements
         - Fix slot-gpio card detect bug
         - Add support for Driver Stage Register
         - Convert the common MMC OF parser to use GPIO descriptors
         - Convert MMC_CAP2_NO_MULTI_READ into a callback, ->multi_io_quirk()
         - Some additional minor fixes
      
        MMC host:
         - mmci: Support Qualcomm specific DML layer for DMA
         - dw_mmc: Use common MMC regulators
         - dw_mmc: Add support for Rock-chips RK3288
         - tmio: Enable runtime PM support
         - tmio: Add support for R-Car Gen2 SoCs
         - tmio: Several fixes and improvements
         - omap_hsmmc: Removed Balaji from MAINTAINERS
         - jz4740: add DMA and pre/post support
         - sdhci: Add support for Intel Braswell
         - sdhci: Several fixes and improvements"
      
      * tag 'mmc-v3.18-1' of git://git.linaro.org/people/ulf.hansson/mmc: (119 commits)
        ARM: dts: fix MMC2 regulators for Exynos5420 Arndale Octa board
        mmc: sdhci-acpi: Fix Braswell eMMC timeout clock frequency
        mmc: sdhci-acpi: Pass HID and UID to probe_slot
        mmc: sdhci-acpi: Get UID directly from acpi_device
        mmc, sdhci, bcm-kona, LLVMLinux: Remove use of __initconst
        mmc: sdhci-pci: Fix Braswell eMMC timeout clock frequency
        mmc: sdhci: Let a driver override timeout clock frequency
        mmc: sdhci-pci: Add Bay Trail and Braswell SD card detect
        mmc: sdhci-pci: Set SDHCI_QUIRK2_STOP_WITH_TC for Intel BYT host controllers
        mmc: sdhci-acpi: Add a HID and UID for a SD Card host controller
        mmc: sdhci-acpi: Set SDHCI_QUIRK2_STOP_WITH_TC for Intel host controllers
        mmc: sdhci: Add quirk for always getting TC with stop cmd
        mmc: core: restore detect line inversion semantics
        mmc: Fix incorrect warning when setting 0 Hz via debugfs
        mmc: Fix use of wrong device in mmc_gpiod_free_cd()
        mmc: atmel-mci: fix mismatched section on atmci_cleanup_slot
        mmc: rtsx_pci: Set power related cap2 macros
        mmc: core: Add new power_mode MMC_POWER_UNDEFINED
        mmc: sdhci: execute tuning when device is not busy
        mmc: atmel-mci: Release mmc resources on failure in probe
        ..
      f43b179b
    • L
      Merge tag 'sound-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a2ce3527
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "This time it's a relatively calm update batch, but the amount isn't
        too small in the end.  Here we go over some highlights:
      
        ALSA core:
         - One major change is the support of nonatomic PCM operations.  This
           allows the trigger and other callbacks to call schedule(), which
           would be useful for mailbox type communications.  Already some
           drivers (Digigram ones) have been converted to use together with
           threaded irqs as an example.
         - Improvement / fixes of DSD PCM format support
      
        HD-audio:
         - Large volume of rewrites are found in Realtek codec driver for
           converting Dell and HP quirks to generic forms.
         - Inverted dmic code cleanup from David.
         - Realtek COEF access has been optimized.
         - Now HD-audio jack infrastructure allows multiple callbacks, which
           fixes / simplifies the jack-dependent power controls on STAC/IDT
           and VIA codecs.
         - Many additional device-specific fixups as usual
         - A few deadcode cleanups, CA0132 code cleanup, etc.
      
        ASoC:
         - More componentization work from Lars-Peter, this time mainly
           cleaning up the suspend and bias level transition callbacks.
         - Real system support for the Intel drivers and a bunch of fixes and
           enhancements for the associated CODEC drivers, this is going to
           need a lot quirks over time due to the lack of any firmware
           description of the boards.
         - Jack detect support for simple card from Dylan Reid.
         - A bunch of small fixes and enhancements for the Freescale drivers.
         - New drivers for Analog Devices SSM4567, Cirrus Logic CS35L32,
           Everest Semiconductor ES8328 and Freescale cards using the ASRC in
           newer i.MX processors.
         - A few simple-card fixes, mostly cleanups but also a fix for
           interaction between GPIO 0 and simple-card.
      
        Misc:
         - Virtuoso / Oxygen updates by Clemens
         - USB-audio: Yamaha MOTIF XF MIDI port name fixes
         - Conversion of kernel messages to standard dev_*() in ctxfi driver"
      
      * tag 'sound-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (251 commits)
        ASoC: mc13783: Ensure we only try to dereference valid of_nodes
        ASoC: rockchip-i2s: fix infinite loop in rockchip_snd_txctrl
        ALSA: hda - Add dock port support to Thinkpad L440 (71aa:501e)
        ALSA: Allow pass NULL dev for snd_pci_quirk_lookup()
        ASoC: imx-es8328: Fix of_node_put() call with uninitialized object
        ASoC: soc-pcm: fix sig_bits determination in soc_pcm_apply_msb()
        ASoC: simple-card: Initialize headphone and mic GPIO numbers
        ASoC: imx-es8328: Fix missing return code in imx_es8328_probe()
        ALSA: hda - Add dock support for Thinkpad T440 (17aa:2212)
        ALSA: usb: caiaq: check for cdev->n_streams > 1
        ASoC: 88pm860x-codec: Fix possibly missing string termination
        ASoC: core: fix use after free in snd_soc_remove_platform()
        ASoC: soc-dapm: fix use after free
        ALSA: hda - Make the inv dmic handling for Realtek use generic parser
        ALSA: hda - Add Inverted Internal mic for Samsung Ativ book 9 (NP900X3G)
        ALSA: hda - Add inverted internal mic for Asus Aspire 4830T
        ASoC: Intel: byt-rt5640: fix coccinelle warnings
        ASoC: fsl_esai doc: Add "fsl,vf610-esai" as compatible string
        ASoC: da732x: Remove unnecessary KERN_ERR in pr_err()
        ASoC: simple-card: Fix detect gpio documentation.
        ...
      a2ce3527
    • L
      Merge tag 'edac/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · bf65dea8
      Linus Torvalds 提交于
      Pull edac updates from Mauro Carvalho Chehab:
       "Nothing really exiting here: just one bug fix at sb_edac, and some
        changes to allow other drivers to use some shared PCI addresses"
      
      * tag 'edac/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
        sb_edac: Claim a different PCI device
        Move Intel SNB device ids from sb_edac to pci_ids.h
        sb_edac: avoid INTERNAL ERROR message in EDAC with unspecified channel
      bf65dea8
    • L
      Merge tag 'media/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4d9708ea
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
      
       - new IR driver: hix5hd2-ir
      
       - the virtual test driver (vivi) was replaced by vivid, with has an
         almost complete set of features to emulate most v4l2 devices and
         properly test all sorts of userspace apps
      
       - the as102 driver had several bugs fixed and was properly split into a
         frontend and a core driver.  With that, it got promoted from staging
         into mainstream
      
       - one new CI driver got added for CIMaX SP2/SP2HF (sp2 driver)
      
       - one new frontend driver for Toshiba ISDB-T/ISDB-S demod (tc90522)
      
       - one new PCI driver for ISDB-T/ISDB-S (pt3 driver)
      
       - saa7134 driver got support for go7007-based devices
      
       - added a new PCI driver for Techwell 68xx chipsets (tw68)
      
       - a new platform driver was added (coda)
      
       - new tuner drivers: mxl301rf and qm1d1c0042
      
       - a new DVB USB driver was added for DVBSky S860 & similar devices
      
       - added a new SDR driver (hackrf)
      
       - usbtv got audio support
      
       - several platform drivers are now compiled with COMPILE_TEST
      
       - a series of compiler fixup patches, making sparse/spatch happier with
         the media stuff and removing several warnings, especially on those
         platform drivers that didn't use to compile on x86
      
       - Support for several new modern devices got added
      
       - lots of other fixes, improvements and cleanups
      
      * tag 'media/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (544 commits)
        [media] ir-hix5hd2: fix build on c6x arch
        [media] pt3: fix DTV FE I2C driver load error paths
        Revert "[media] media: em28xx - remove reset_resume interface"
        [media] exynos4-is: fix some warnings when compiling on arm64
        [media] usb drivers: use %zu instead of %zd
        [media] pci drivers: use %zu instead of %zd
        [media] dvb-frontends: use %zu instead of %zd
        [media] s5p-mfc: Fix several printk warnings
        [media] s5p_mfc_opr: Fix warnings
        [media] ti-vpe: Fix typecast
        [media] s3c-camif: fix dma_addr_t printks
        [media] s5p_mfc_opr_v6: get rid of warnings when compiled with 64 bits
        [media] s5p_mfc_opr_v5: Fix lots of warnings on x86_64
        [media] em28xx: Fix identation
        [media] drxd: remove a dead code
        [media] saa7146: remove return after BUG()
        [media] cx88: remove return after BUG()
        [media] cx88: fix cards table CodingStyle
        [media] radio-sf16fmr2: declare some structs as static
        [media] radio-sf16fmi: declare pnp_attached as static
        ...
      4d9708ea
    • L
      Merge branch 'for-v3.18' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 754c7809
      Linus Torvalds 提交于
      Pull dma-mapping update from Marek Szyprowski:
       "Provide the dma write coherent api (available previously on ARM
        architecture) for all other architectures, which use dma_ops-based dma
        mapping implementation.
      
        This lets one to use the same code in the device drivers regardless of
        the selected architecture"
      
      * 'for-v3.18' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
        dma-mapping: Provide write-combine allocations
        s390: Implement dma_{alloc,free}_attrs()
      754c7809
    • L
      Merge tag 'hwmon-for-linus-v3.18' of... · 40c43269
      Linus Torvalds 提交于
      Merge tag 'hwmon-for-linus-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       - new driver for menf21bmc.
       - convert k10temp, smsc47b397, da9052, da9055 to new hwmon API.
       - register ntc_thermistor driver with thermal subsystem.
       - add support for F15h M60h to k10temp driver.
       - add driver for MEN14F021P00 BMC HWMON driver; this required a merge
         with tag mfd-hwmon-leds-watchdog-v3.18
      
      * tag 'hwmon-for-linus-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ab8500) Call kernel_power_off instead of pm_power_off
        hwmon: (menf21bmc) Introduce MEN14F021P00 BMC HWMON driver
        leds: leds-menf21bmc: Introduce MEN 14F021P00 BMC LED driver
        watchdog: menf21bmc_wdt: Introduce MEN 14F021P00 BMC Watchdog driver
        mfd: menf21bmc: Introduce MEN 14F021P00 BMC MFD Core driver
        hwmon: (ntc_thermistor) Add ntc thermistor to thermal subsystem as a sensor.
        hwmon: (smsc47b397) Convert to devm_hwmon_device_register_with_groups
        MAINTAINERS: add entry for the PWM fan driver
        hwmon: (k10temp) Convert to devm_hwmon_device_register_with_groups
        hwmon: (k10temp) Add support for F15h M60h
        hwmon: (da9052) Convert to devm_hwmon_device_register_with_groups
        hwmon: (da9055) Convert to devm_hwmon_device_register_with_groups
        hwmon: (ads1015) Use of_property_read_u32 at appropriate places
      40c43269
    • L
      Merge tag 'restart-handler-for-v3.18' of... · 93834c64
      Linus Torvalds 提交于
      Merge tag 'restart-handler-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull restart handler infrastructure from Guenter Roeck:
       "This series was supposed to be pulled through various trees using it,
        and I did not plan to send a separate pull request.  As it turns out,
        the pinctrl tree did not merge with it, is now upstream, and uses it,
        meaning there are now build failures.
      
        Please pull this series directly to fix those build failures"
      
      * tag 'restart-handler-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        arm/arm64: unexport restart handlers
        watchdog: sunxi: register restart handler with kernel restart handler
        watchdog: alim7101: register restart handler with kernel restart handler
        watchdog: moxart: register restart handler with kernel restart handler
        arm: support restart through restart handler call chain
        arm64: support restart through restart handler call chain
        power/restart: call machine_restart instead of arm_pm_restart
        kernel: add support for kernel restart handler call chain
      93834c64
    • J
      mm: Support fadvise without CONFIG_MMU · 887e7019
      Josh Triplett 提交于
      Commit d3ac21ca ("mm: Support compiling
      out madvise and fadvise") incorrectly made fadvise conditional on
      CONFIG_MMU.  (The merged branch unintentionally incorporated v1 of the
      patch rather than the fixed v2.)  Apply the delta from v1 to v2, to
      allow fadvise without CONFIG_MMU.
      Reported-by: NJohannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: NJosh Triplett <josh@joshtriplett.org>
      887e7019
    • D
      sparc64: Fix lockdep warnings on reboot on Ultra-5 · bdcf81b6
      David S. Miller 提交于
      Inconsistently, the raw_* IRQ routines do not interact with and update
      the irqflags tracing and lockdep state, whereas the raw_* spinlock
      interfaces do.
      
      This causes problems in p1275_cmd_direct() because we disable hardirqs
      by hand using raw_local_irq_restore() and then do a raw_spin_lock()
      which triggers a lockdep trace because the CPU's hw IRQ state doesn't
      match IRQ tracing's internal software copy of that state.
      
      The CPU's irqs are disabled, yet current->hardirqs_enabled is true.
      
      ====================
      reboot: Restarting system
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:3536 check_flags+0x7c/0x240()
      DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)
      Modules linked in: openpromfs
      CPU: 0 PID: 1 Comm: systemd-shutdow Tainted: G        W      3.17.0-dirty #145
      Call Trace:
       [000000000045919c] warn_slowpath_common+0x5c/0xa0
       [0000000000459210] warn_slowpath_fmt+0x30/0x40
       [000000000048f41c] check_flags+0x7c/0x240
       [0000000000493280] lock_acquire+0x20/0x1c0
       [0000000000832b70] _raw_spin_lock+0x30/0x60
       [000000000068f2fc] p1275_cmd_direct+0x1c/0x60
       [000000000068ed28] prom_reboot+0x28/0x40
       [000000000043610c] machine_restart+0x4c/0x80
       [000000000047d2d4] kernel_restart+0x54/0x80
       [000000000047d618] SyS_reboot+0x138/0x200
       [00000000004060b4] linux_sparc_syscall32+0x34/0x60
      ---[ end trace 5c439fe81c05a100 ]---
      possible reason: unannotated irqs-off.
      irq event stamp: 2010267
      hardirqs last  enabled at (2010267): [<000000000049a358>] vprintk_emit+0x4b8/0x580
      hardirqs last disabled at (2010266): [<0000000000499f08>] vprintk_emit+0x68/0x580
      softirqs last  enabled at (2010046): [<000000000045d278>] __do_softirq+0x378/0x4a0
      softirqs last disabled at (2010039): [<000000000042bf08>] do_softirq_own_stack+0x28/0x40
      Resetting ...
      ====================
      
      Use local_* variables of the hw IRQ interfaces so that IRQ tracing sees
      all of our changes.
      Reported-by: NMeelis Roos <mroos@linux.ee>
      Tested-by: NMeelis Roos <mroos@linux.ee>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bdcf81b6
    • D
      Merge branch 'bcmgenet_systemport' · 01d2d484
      David S. Miller 提交于
      Florian Fainelli says:
      
      ====================
      net: bcmgenet & systemport fixes
      
      This patch series fixes an off-by-one error introduced during a previous
      change, and the two other fixes fix a wake depth imbalance situation for
      the Wake-on-LAN interrupt line.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      01d2d484
    • F
      net: systemport: avoid unbalanced enable_irq_wake calls · 61b423a8
      Florian Fainelli 提交于
      Multiple enable_irq_wake() calls will keep increasing the IRQ
      wake_depth, which ultimately leads to the following types of
      situation:
      
      1) enable Wake-on-LAN interrupt w/o password
      2) enable Wake-on-LAN interrupt w/ password
      3) enable Wake-on-LAN interrupt w/o password
      4) disable Wake-on-LAN interrupt
      
      After step 4), SYSTEMPORT would always wake-up the system no matter what
      wake-up device we use, which is not what we want. Fix this by making
      sure there are no unbalanced enable_irq_wake() calls.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      61b423a8
    • F
      net: bcmgenet: avoid unbalanced enable_irq_wake calls · 083731a8
      Florian Fainelli 提交于
      Multiple enable_irq_wake() calls will keep increasing the IRQ
      wake_depth, which ultimately leads to the following types of
      situation:
      
      1) enable Wake-on-LAN interrupt w/o password
      2) enable Wake-on-LAN interrupt w/ password
      3) enable Wake-on-LAN interrupt w/o password
      4) disable Wake-on-LAN interrupt
      
      After step 4), GENET would always wake-up the system no matter what
      wake-up device we use, which is not what we want. Fix this by making
      sure there are no unbalanced enable_irq_wake() calls.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      083731a8
    • F
      net: bcmgenet: fix off-by-one in incrementing read pointer · cf377d88
      Florian Fainelli 提交于
      Commit b629be5c ("net: bcmgenet: check
      harder for out of memory conditions") moved the increment of the local
      read pointer *before* reading from the hardware descriptor using
      dmadesc_get_length_status(), which creates an off-by-one situation.
      
      Fix this by moving again the read_ptr increment after we have read the
      hardware descriptor to get both the control block and the read pointer
      back in sync.
      
      Fixes: b629be5c ("net: bcmgenet: check harder for out of memory conditions")
      Signed-off-by: NJaedon Shin <jaedon.shin@gmail.com>
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: NPetri Gynther <pgynther@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cf377d88
    • D
      Merge branch 'net-drivers-pgcnt' · 35b7a191
      David S. Miller 提交于
      Eric Dumazet says:
      
      ====================
      net: fix races accessing page->_count
      
      This is illegal to use atomic_set(&page->_count, ...) even if we 'own'
      the page. Other entities in the kernel need to use get_page_unless_zero()
      to get a reference to the page before testing page properties, so we could
      loose a refcount increment.
      
      The only case it is valid is when page->_count is 0, we can use this in
      __netdev_alloc_frag()
      
      Note that I never seen crashes caused by these races, the issue was reported
      by Andres Lagar-Cavilla and Hugh Dickins.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      35b7a191
    • E
      net: fix races in page->_count manipulation · 4c450583
      Eric Dumazet 提交于
      This is illegal to use atomic_set(&page->_count, ...) even if we 'own'
      the page. Other entities in the kernel need to use get_page_unless_zero()
      to get a reference to the page before testing page properties, so we could
      loose a refcount increment.
      
      The only case it is valid is when page->_count is 0
      
      Fixes: 540eb7bf ("net: Update alloc frag to reduce get/put page usage and recycle pages")
      Signed-off-by: NEric Dumaze <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c450583
    • E
      mlx4: fix race accessing page->_count · 98226208
      Eric Dumazet 提交于
      This is illegal to use atomic_set(&page->_count, ...) even if we 'own'
      the page. Other entities in the kernel need to use get_page_unless_zero()
      to get a reference to the page before testing page properties, so we could
      loose a refcount increment.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      98226208
    • E
      ixgbe: fix race accessing page->_count · ec916983
      Eric Dumazet 提交于
      This is illegal to use atomic_set(&page->_count, 2) even if we 'own'
      the page. Other entities in the kernel need to use get_page_unless_zero()
      to get a reference to the page before testing page properties, so we could
      loose a refcount increment.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec916983
    • E
      igb: fix race accessing page->_count · 00cd5adb
      Eric Dumazet 提交于
      This is illegal to use atomic_set(&page->_count, 2) even if we 'own'
      the page. Other entities in the kernel need to use get_page_unless_zero()
      to get a reference to the page before testing page properties, so we could
      loose a refcount increment.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      00cd5adb