1. 12 Oct, 2014 3 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 052db7ec
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · fd9879b9
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.18-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 81ae31d7
      Linus Torvalds authored
      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
  2. 11 Oct, 2014 12 commits
    • Linus Torvalds's avatar
      Merge tag 'locks-v3.18-1' of git://git.samba.org/jlayton/linux · ef4a48c5
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 90d0c376
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · ac0c4939
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs · eca9fdf3
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 41e46ac0
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'vfio-v3.18-rc1' of git://github.com/awilliam/linux-vfio · 27a9716b
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · e98d6e7f
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 4e0b7fe3
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'mmc-v3.18-1' of git://git.linaro.org/people/ulf.hansson/mmc · f43b179b
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'sound-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a2ce3527
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'edac/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · bf65dea8
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'media/v3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4d9708ea
      Linus Torvalds authored
      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
  3. 10 Oct, 2014 25 commits
    • Linus Torvalds's avatar
      Merge branch 'for-v3.18' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · 754c7809
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v3.18' of... · 40c43269
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'restart-handler-for-v3.18' of... · 93834c64
      Linus Torvalds authored
      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
    • David S. Miller's avatar
      sparc64: Fix lockdep warnings on reboot on Ultra-5 · bdcf81b6
      David S. Miller authored
      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: default avatarMeelis Roos <mroos@linux.ee>
      Tested-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bdcf81b6
    • Linus Torvalds's avatar
      Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · c798360c
      Linus Torvalds authored
      Pull percpu updates from Tejun Heo:
       "A lot of activities on percpu front.  Notable changes are...
      
         - percpu allocator now can take @gfp.  If @gfp doesn't contain
           GFP_KERNEL, it tries to allocate from what's already available to
           the allocator and a work item tries to keep the reserve around
           certain level so that these atomic allocations usually succeed.
      
           This will replace the ad-hoc percpu memory pool used by
           blk-throttle and also be used by the planned blkcg support for
           writeback IOs.
      
           Please note that I noticed a bug in how @gfp is interpreted while
           preparing this pull request and applied the fix 6ae833c7
           ("percpu: fix how @gfp is interpreted by the percpu allocator")
           just now.
      
         - percpu_ref now uses longs for percpu and global counters instead of
           ints.  It leads to more sparse packing of the percpu counters on
           64bit machines but the overhead should be negligible and this
           allows using percpu_ref for refcnting pages and in-memory objects
           directly.
      
         - The switching between percpu and single counter modes of a
           percpu_ref is made independent of putting the base ref and a
           percpu_ref can now optionally be initialized in single or killed
           mode.  This allows avoiding percpu shutdown latency for cases where
           the refcounted objects may be synchronously created and destroyed
           in rapid succession with only a fraction of them reaching fully
           operational status (SCSI probing does this when combined with
           blk-mq support).  It's also planned to be used to implement forced
           single mode to detect underflow more timely for debugging.
      
        There's a separate branch percpu/for-3.18-consistent-ops which cleans
        up the duplicate percpu accessors.  That branch causes a number of
        conflicts with s390 and other trees.  I'll send a separate pull
        request w/ resolutions once other branches are merged"
      
      * 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (33 commits)
        percpu: fix how @gfp is interpreted by the percpu allocator
        blk-mq, percpu_ref: start q->mq_usage_counter in atomic mode
        percpu_ref: make INIT_ATOMIC and switch_to_atomic() sticky
        percpu_ref: add PERCPU_REF_INIT_* flags
        percpu_ref: decouple switching to percpu mode and reinit
        percpu_ref: decouple switching to atomic mode and killing
        percpu_ref: add PCPU_REF_DEAD
        percpu_ref: rename things to prepare for decoupling percpu/atomic mode switch
        percpu_ref: replace pcpu_ prefix with percpu_
        percpu_ref: minor code and comment updates
        percpu_ref: relocate percpu_ref_reinit()
        Revert "blk-mq, percpu_ref: implement a kludge for SCSI blk-mq stall during probe"
        Revert "percpu: free percpu allocation info for uniprocessor system"
        percpu-refcount: make percpu_ref based on longs instead of ints
        percpu-refcount: improve WARN messages
        percpu: fix locking regression in the failure path of pcpu_alloc()
        percpu-refcount: add @gfp to percpu_ref_init()
        proportions: add @gfp to init functions
        percpu_counter: add @gfp to percpu_counter_init()
        percpu_counter: make percpu_counters_lock irq-safe
        ...
      c798360c
    • Linus Torvalds's avatar
      Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · b211e9d7
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Nothing too interesting.  Just a handful of cleanup patches"
      
      * 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        Revert "cgroup: remove redundant variable in cgroup_mount()"
        cgroup: remove redundant variable in cgroup_mount()
        cgroup: fix missing unlock in cgroup_release_agent()
        cgroup: remove CGRP_RELEASABLE flag
        perf/cgroup: Remove perf_put_cgroup()
        cgroup: remove redundant check in cgroup_ino()
        cpuset: simplify proc_cpuset_show()
        cgroup: simplify proc_cgroup_show()
        cgroup: use a per-cgroup work for release agent
        cgroup: remove bogus comments
        cgroup: remove redundant code in cgroup_rmdir()
        cgroup: remove some useless forward declarations
        cgroup: fix a typo in comment.
      b211e9d7
    • Linus Torvalds's avatar
      Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · d9428f09
      Linus Torvalds authored
      Pull libata update from Tejun Heo:
       "AHCI is getting per-port irq handling and locks for better
        scalability.  The gain is not huge but measureable with multiple high
        iops devices connected to the same host; however, the value of
        threaded IRQ handling seems negligible for AHCI and it likely will
        revert to non-threaded handling soon.
      
        Another noteworthy change is George Spelvin's "libata: Un-break ATA
        blacklist".  During 3.17 devel cycle, the libata blacklist glob
        matching got generalized and rewritten; unfortunately, the patch
        forgot to swap arguments to match the new match function and ended up
        breaking blacklist matching completely.  It got noticed only a couple
        days ago so it couldn't make for-3.17-fixes either.  :(
      
        Other than the above two, nothing too interesting - the usual cleanup
        churns and device-specific changes"
      
      * 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (22 commits)
        pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller
        libata: Un-break ATA blacklist
        AHCI: Do not acquire ata_host::lock from single IRQ handler
        AHCI: Optimize single IRQ interrupt processing
        AHCI: Do not read HOST_IRQ_STAT reg in multi-MSI mode
        AHCI: Make few function names more descriptive
        AHCI: Move host activation code into ahci_host_activate()
        AHCI: Move ahci_host_activate() function to libahci.c
        AHCI: Pass SCSI host template as arg to ahci_host_activate()
        ata: pata_imx: Use the SIMPLE_DEV_PM_OPS() macro
        AHCI: Cleanup checking of multiple MSIs/SLM modes
        libata-sff: Fix controllers with no ctl port
        ahci_xgene: Fix the error print invalid resource for APM X-Gene SoC AHCI SATA Host Controller driver.
        libata: change ata_<foo>_printk routines to return void
        ata: qcom: Add device tree bindings information
        ahci-platform: Bump max number of clocks to 5
        ahci: ahci_p5wdh_workaround - constify DMI table
        libahci_platform: Staticize ahci_platform_<en/dis>able_phys()
        pata_platform: Remove useless irq_flags field
        pata_of_platform: Remove "electra-ide" quirk
        ...
      d9428f09
    • Linus Torvalds's avatar
      Merge branch 'akpm' (fixes from Andrew Morton) · 0cf744bc
      Linus Torvalds authored
      Merge patch-bomb from Andrew Morton:
       - part of OCFS2 (review is laggy again)
       - procfs
       - slab
       - all of MM
       - zram, zbud
       - various other random things: arch, filesystems.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (164 commits)
        nosave: consolidate __nosave_{begin,end} in <asm/sections.h>
        include/linux/screen_info.h: remove unused ORIG_* macros
        kernel/sys.c: compat sysinfo syscall: fix undefined behavior
        kernel/sys.c: whitespace fixes
        acct: eliminate compile warning
        kernel/async.c: switch to pr_foo()
        include/linux/blkdev.h: use NULL instead of zero
        include/linux/kernel.h: deduplicate code implementing clamp* macros
        include/linux/kernel.h: rewrite min3, max3 and clamp using min and max
        alpha: use Kbuild logic to include <asm-generic/sections.h>
        frv: remove deprecated IRQF_DISABLED
        frv: remove unused cpuinfo_frv and friends to fix future build error
        zbud: avoid accessing last unused freelist
        zsmalloc: simplify init_zspage free obj linking
        mm/zsmalloc.c: correct comment for fullness group computation
        zram: use notify_free to account all free notifications
        zram: report maximum used memory
        zram: zram memory size limitation
        zsmalloc: change return value unit of zs_get_total_size_bytes
        zsmalloc: move pages_allocated to zs_pool
        ...
      0cf744bc
    • Geert Uytterhoeven's avatar
      nosave: consolidate __nosave_{begin,end} in <asm/sections.h> · 7f8998c7
      Geert Uytterhoeven authored
      The different architectures used their own (and different) declarations:
      
          extern __visible const void __nosave_begin, __nosave_end;
          extern const void __nosave_begin, __nosave_end;
          extern long __nosave_begin, __nosave_end;
      
      Consolidate them using the first variant in <asm/sections.h>.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7f8998c7
    • Geert Uytterhoeven's avatar
      include/linux/screen_info.h: remove unused ORIG_* macros · 578b25df
      Geert Uytterhoeven authored
      The ORIG_* macros definitions to access struct screen_info members and all
      of their users were removed 7 years ago by commit 3ea33510
      ("Remove magic macros for screen_info structure members"), but (only) the
      definitions reappeared a few days later in commit ee8e7cfe ("Make
      asm-x86/bootparam.h includable from userspace.").
      
      Remove them for good. Amen.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      578b25df
    • Scotty Bauer's avatar
      kernel/sys.c: compat sysinfo syscall: fix undefined behavior · 0baae41e
      Scotty Bauer authored
      Fix undefined behavior and compiler warning by replacing right shift 32
      with upper_32_bits macro
      Signed-off-by: default avatarScotty Bauer <sbauer@eng.utah.edu>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0baae41e
    • vishnu.ps's avatar
      kernel/sys.c: whitespace fixes · ec94fc3d
      vishnu.ps authored
      Fix minor errors and warning messages in kernel/sys.c.  These errors were
      reported by checkpatch while working with some modifications in sys.c
      file.  Fixing this first will help me to improve my further patches.
      
      ERROR: trailing whitespace - 9
      ERROR: do not use assignment in if condition - 4
      ERROR: spaces required around that '?' (ctx:VxO) - 10
      ERROR: switch and case should be at the same indent - 3
      
      total 26 errors & 3 warnings fixed.
      Signed-off-by: default avatarvishnu.ps <vishnu.ps@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ec94fc3d
    • Ying Xue's avatar
      acct: eliminate compile warning · 067b722f
      Ying Xue authored
      If ACCT_VERSION is not defined to 3, below warning appears:
        CC      kernel/acct.o
        kernel/acct.c: In function `do_acct_process':
        kernel/acct.c:475:24: warning: unused variable `ns' [-Wunused-variable]
      
      [akpm@linux-foundation.org: retain the local for code size improvements
      Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      067b722f
    • Ionut Alexa's avatar
      kernel/async.c: switch to pr_foo() · 27fb10ed
      Ionut Alexa authored
      Signed-off-by: default avatarIonut Alexa <ionut.m.alexa@gmail.com>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      27fb10ed
    • Michele Curti's avatar
      include/linux/blkdev.h: use NULL instead of zero · 61a04e5b
      Michele Curti authored
      Quite useless but it shuts up some warnings.
      Signed-off-by: default avatarMichele Curti <michele.curti@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      61a04e5b
    • Michal Nazarewicz's avatar
      include/linux/kernel.h: deduplicate code implementing clamp* macros · c185b07f
      Michal Nazarewicz authored
      Instead of open-coding clamp_t macro min_t and max_t the way clamp macro
      does and instead of open-coding clamp_val simply use clamp_t.
      Furthermore, normalise argument naming in the macros to be lo and hi.
      Signed-off-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Cc: Mark Rustad <mark.d.rustad@intel.com>
      Cc: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>
      Cc: Hagen Paul Pfeifer <hagen@jauu.net>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c185b07f
    • Michal Nazarewicz's avatar
      include/linux/kernel.h: rewrite min3, max3 and clamp using min and max · 2e1d06e1
      Michal Nazarewicz authored
      It appears that gcc is better at optimising a double call to min and max
      rather than open coded min3 and max3.  This can be observed here:
      
          $ cat min-max.c
          #define min(x, y) ({				\
          	typeof(x) _min1 = (x);			\
          	typeof(y) _min2 = (y);			\
          	(void) (&_min1 == &_min2);		\
          	_min1 < _min2 ? _min1 : _min2; })
          #define min3(x, y, z) ({			\
          	typeof(x) _min1 = (x);			\
          	typeof(y) _min2 = (y);			\
          	typeof(z) _min3 = (z);			\
          	(void) (&_min1 == &_min2);		\
          	(void) (&_min1 == &_min3);		\
          	_min1 < _min2 ? (_min1 < _min3 ? _min1 : _min3) : \
          		(_min2 < _min3 ? _min2 : _min3); })
      
          int fmin3(int x, int y, int z) { return min3(x, y, z); }
          int fmin2(int x, int y, int z) { return min(min(x, y), z); }
      
          $ gcc -O2 -o min-max.s -S min-max.c; cat min-max.s
          	.file	"min-max.c"
          	.text
          	.p2align 4,,15
          	.globl	fmin3
          	.type	fmin3, @function
          fmin3:
          .LFB0:
          	.cfi_startproc
          	cmpl	%esi, %edi
          	jl	.L5
          	cmpl	%esi, %edx
          	movl	%esi, %eax
          	cmovle	%edx, %eax
          	ret
          	.p2align 4,,10
          	.p2align 3
          .L5:
          	cmpl	%edi, %edx
          	movl	%edi, %eax
          	cmovle	%edx, %eax
          	ret
          	.cfi_endproc
          .LFE0:
          	.size	fmin3, .-fmin3
          	.p2align 4,,15
          	.globl	fmin2
          	.type	fmin2, @function
          fmin2:
          .LFB1:
          	.cfi_startproc
          	cmpl	%edi, %esi
          	movl	%edx, %eax
          	cmovle	%esi, %edi
          	cmpl	%edx, %edi
          	cmovle	%edi, %eax
          	ret
          	.cfi_endproc
          .LFE1:
          	.size	fmin2, .-fmin2
          	.ident	"GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"
          	.section	.note.GNU-stack,"",@progbits
      
      fmin3 function, which uses open-coded min3 macro, is compiled into total
      of ten instructions including a conditional branch, whereas fmin2
      function, which uses two calls to min2 macro, is compiled into six
      instructions with no branches.
      
      Similarly, open-coded clamp produces the same code as clamp using min and
      max macros, but the latter is much shorter:
      
          $ cat clamp.c
          #define clamp(val, min, max) ({			\
          	typeof(val) __val = (val);		\
          	typeof(min) __min = (min);		\
          	typeof(max) __max = (max);		\
          	(void) (&__val == &__min);		\
          	(void) (&__val == &__max);		\
          	__val = __val < __min ? __min: __val;	\
          	__val > __max ? __max: __val; })
          #define min(x, y) ({				\
          	typeof(x) _min1 = (x);			\
          	typeof(y) _min2 = (y);			\
          	(void) (&_min1 == &_min2);		\
          	_min1 < _min2 ? _min1 : _min2; })
          #define max(x, y) ({				\
          	typeof(x) _max1 = (x);			\
          	typeof(y) _max2 = (y);			\
          	(void) (&_max1 == &_max2);		\
          	_max1 > _max2 ? _max1 : _max2; })
      
          int fclamp(int v, int min, int max) { return clamp(v, min, max); }
          int fclampmm(int v, int min, int max) { return min(max(v, min), max); }
      
          $ gcc -O2 -o clamp.s -S clamp.c; cat clamp.s
          	.file	"clamp.c"
          	.text
          	.p2align 4,,15
          	.globl	fclamp
          	.type	fclamp, @function
          fclamp:
          .LFB0:
          	.cfi_startproc
          	cmpl	%edi, %esi
          	movl	%edx, %eax
          	cmovge	%esi, %edi
          	cmpl	%edx, %edi
          	cmovle	%edi, %eax
          	ret
          	.cfi_endproc
          .LFE0:
          	.size	fclamp, .-fclamp
          	.p2align 4,,15
          	.globl	fclampmm
          	.type	fclampmm, @function
          fclampmm:
          .LFB1:
          	.cfi_startproc
          	cmpl	%edi, %esi
          	cmovge	%esi, %edi
          	cmpl	%edi, %edx
          	movl	%edi, %eax
          	cmovle	%edx, %eax
          	ret
          	.cfi_endproc
          .LFE1:
          	.size	fclampmm, .-fclampmm
          	.ident	"GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"
          	.section	.note.GNU-stack,"",@progbits
      
          Linux mpn-glaptop 3.13.0-29-generic #53~precise1-Ubuntu SMP Wed Jun 4 22:06:25 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
          gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
          Copyright (C) 2011 Free Software Foundation, Inc.
          This is free software; see the source for copying conditions.  There is NO
          warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      
          -rwx------ 1 mpn eng 51224656 Jun 17 14:15 vmlinux.before
          -rwx------ 1 mpn eng 51224608 Jun 17 13:57 vmlinux.after
      
      48 bytes reduction.  The do_fault_around was a few instruction shorter
      and as far as I can tell saved 12 bytes on the stack, i.e.:
      
          $ grep -e rsp -e pop -e push do_fault_around.*
          do_fault_around.before.s:push   %rbp
          do_fault_around.before.s:mov    %rsp,%rbp
          do_fault_around.before.s:push   %r13
          do_fault_around.before.s:push   %r12
          do_fault_around.before.s:push   %rbx
          do_fault_around.before.s:sub    $0x38,%rsp
          do_fault_around.before.s:add    $0x38,%rsp
          do_fault_around.before.s:pop    %rbx
          do_fault_around.before.s:pop    %r12
          do_fault_around.before.s:pop    %r13
          do_fault_around.before.s:pop    %rbp
      
          do_fault_around.after.s:push   %rbp
          do_fault_around.after.s:mov    %rsp,%rbp
          do_fault_around.after.s:push   %r12
          do_fault_around.after.s:push   %rbx
          do_fault_around.after.s:sub    $0x30,%rsp
          do_fault_around.after.s:add    $0x30,%rsp
          do_fault_around.after.s:pop    %rbx
          do_fault_around.after.s:pop    %r12
          do_fault_around.after.s:pop    %rbp
      
      or here side-by-side:
      
          Before                    After
          push   %rbp               push   %rbp
          mov    %rsp,%rbp          mov    %rsp,%rbp
          push   %r13
          push   %r12               push   %r12
          push   %rbx               push   %rbx
          sub    $0x38,%rsp         sub    $0x30,%rsp
          add    $0x38,%rsp         add    $0x30,%rsp
          pop    %rbx               pop    %rbx
          pop    %r12               pop    %r12
          pop    %r13
          pop    %rbp               pop    %rbp
      
      There are also fewer branches:
      
          $ grep ^j do_fault_around.*
          do_fault_around.before.s:jae    ffffffff812079b7
          do_fault_around.before.s:jmp    ffffffff812079c5
          do_fault_around.before.s:jmp    ffffffff81207a14
          do_fault_around.before.s:ja     ffffffff812079f9
          do_fault_around.before.s:jb     ffffffff81207a10
          do_fault_around.before.s:jmp    ffffffff81207a63
          do_fault_around.before.s:jne    ffffffff812079df
      
          do_fault_around.after.s:jmp    ffffffff812079fd
          do_fault_around.after.s:ja     ffffffff812079e2
          do_fault_around.after.s:jb     ffffffff812079f9
          do_fault_around.after.s:jmp    ffffffff81207a4c
          do_fault_around.after.s:jne    ffffffff812079c8
      
      And here's with allyesconfig on a different machine:
      
          $ uname -a; gcc --version; ls -l vmlinux.*
          Linux erwin 3.14.7-mn #54 SMP Sun Jun 15 11:25:08 CEST 2014 x86_64 AMD Phenom(tm) II X3 710 Processor AuthenticAMD GNU/Linux
          gcc (GCC) 4.8.3
          Copyright (C) 2013 Free Software Foundation, Inc.
          This is free software; see the source for copying conditions.  There is NO
          warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      
          -rwx------ 1 mpn eng 437027411 Jun 20 16:04 vmlinux.before
          -rwx------ 1 mpn eng 437026881 Jun 20 15:30 vmlinux.after
      
      530 bytes reduction.
      Signed-off-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Signed-off-by: default avatarHagen Paul Pfeifer <hagen@jauu.net>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: Hagen Paul Pfeifer <hagen@jauu.net>
      Cc: David Rientjes <rientjes@google.com>
      Cc: "Rustad, Mark D" <mark.d.rustad@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e1d06e1
    • Geert Uytterhoeven's avatar
    • Michael Opdenacker's avatar
      frv: remove deprecated IRQF_DISABLED · 08e4cf4b
      Michael Opdenacker authored
      Remove the IRQF_DISABLED flag from FRV architecture code.  It's a NOOP
      since 2.6.35 and it will be removed one day.
      Signed-off-by: default avatarMichael Opdenacker <michael.opdenacker@free-electrons.com>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      08e4cf4b
    • Geert Uytterhoeven's avatar
      frv: remove unused cpuinfo_frv and friends to fix future build error · 21f45660
      Geert Uytterhoeven authored
      Frv has a macro named cpu_data, interfering with variables and struct
      members with the same name:
      
      include/linux/pm_domain.h:75:24: error: expected identifier or '('
      before '&' token
        struct gpd_cpu_data *cpu_data;
      
      As struct cpuinfo_frv, boot_cpu_data, cpu_data, and current_cpu_data are
      not used, removed them to fix this.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      21f45660
    • Chao Yu's avatar
      zbud: avoid accessing last unused freelist · f203c3b3
      Chao Yu authored
      For now, there are NCHUNKS of 64 freelists in zbud_pool, the last
      unbuddied[63] freelist linked with all zbud pages which have free chunks
      of 63.  Calculating according to context of num_free_chunks(), our max
      chunk number of unbuddied zbud page is 62, so none of zbud pages will be
      added/removed in last freelist, but still we will try to find an unbuddied
      zbud page in the last unused freelist, it is unneeded.
      
      This patch redefines NCHUNKS to 63 as free chunk number in one zbud page,
      hence we can decrease size of zpool and avoid accessing the last unused
      freelist whenever failing to allocate zbud from freelist in zbud_alloc.
      Signed-off-by: default avatarChao Yu <chao2.yu@samsung.com>
      Cc: Seth Jennings <sjennings@variantweb.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f203c3b3
    • Dan Streetman's avatar
      zsmalloc: simplify init_zspage free obj linking · 5538c562
      Dan Streetman authored
      Change zsmalloc init_zspage() logic to iterate through each object on each
      of its pages, checking the offset to verify the object is on the current
      page before linking it into the zspage.
      
      The current zsmalloc init_zspage free object linking code has logic that
      relies on there only being one page per zspage when PAGE_SIZE is a
      multiple of class->size.  It calculates the number of objects for the
      current page, and iterates through all of them plus one, to account for
      the assumed partial object at the end of the page.  While this currently
      works, the logic can be simplified to just link the object at each
      successive offset until the offset is larger than PAGE_SIZE, which does
      not rely on PAGE_SIZE being a multiple of class->size.
      Signed-off-by: default avatarDan Streetman <ddstreet@ieee.org>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Seth Jennings <sjennings@variantweb.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5538c562
    • Wang Sheng-Hui's avatar
      mm/zsmalloc.c: correct comment for fullness group computation · 6dd9737e
      Wang Sheng-Hui authored
      The letter 'f' in "n <= N/f" stands for fullness_threshold_frac, not
      1/fullness_threshold_frac.
      Signed-off-by: default avatarWang Sheng-Hui <shhuiw@gmail.com>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6dd9737e
    • Sergey Senozhatsky's avatar
      zram: use notify_free to account all free notifications · 015254da
      Sergey Senozhatsky authored
      `notify_free' device attribute accounts the number of slot free
      notifications and internally represents the number of zram_free_page()
      calls.  Slot free notifications are sent only when device is used as a
      swap device, hence `notify_free' is used only for swap devices.  Since
      f4659d8e (zram: support REQ_DISCARD) ZRAM handles yet another one
      free notification (also via zram_free_page() call) -- REQ_DISCARD
      requests, which are sent by a filesystem, whenever some data blocks are
      discarded.  However, there is no way to know the number of notifications
      in the latter case.
      
      Use `notify_free' to account the number of pages freed by
      zram_bio_discard() and zram_slot_free_notify().  Depending on usage
      scenario `notify_free' represents:
      
       a) the number of pages freed because of slot free notifications, which is
         equal to the number of swap_slot_free_notify() calls, so there is no
         behaviour change
      
       b) the number of pages freed because of REQ_DISCARD notifications
      Signed-off-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Acked-by: default avatarJerome Marchand <jmarchan@redhat.com>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Chao Yu <chao2.yu@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      015254da
    • Minchan Kim's avatar
      zram: report maximum used memory · 461a8eee
      Minchan Kim authored
      Normally, zram user could get maximum memory usage zram consumed via
      polling mem_used_total with sysfs in userspace.
      
      But it has a critical problem because user can miss peak memory usage
      during update inverval of polling.  For avoiding that, user should poll it
      with shorter interval(ie, 0.0000000001s) with mlocking to avoid page fault
      delay when memory pressure is heavy.  It would be troublesome.
      
      This patch adds new knob "mem_used_max" so user could see the maximum
      memory usage easily via reading the knob and reset it via "echo 0 >
      /sys/block/zram0/mem_used_max".
      Signed-off-by: default avatarMinchan Kim <minchan@kernel.org>
      Reviewed-by: default avatarDan Streetman <ddstreet@ieee.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Jerome Marchand <jmarchan@redhat.com>
      Cc: <juno.choi@lge.com>
      Cc: <seungho1.park@lge.com>
      Cc: Luigi Semenzato <semenzato@google.com>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Seth Jennings <sjennings@variantweb.net>
      Reviewed-by: default avatarDavid Horner <ds2horner@gmail.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      461a8eee