1. 18 Dec, 2012 1 commit
    • Li Zhong's avatar
      Add rcu user eqs exception hooks for async page fault · 9b132fbe
      Li Zhong authored
      This patch adds user eqs exception hooks for async page fault page not
      present code path, to exit the user eqs and re-enter it as necessary.
      
      Async page fault is different from other exceptions that it may be
      triggered from idle process, so we still need rcu_irq_enter() and
      rcu_irq_exit() to exit cpu idle eqs when needed, to protect the code
      that needs use rcu.
      
      As Frederic pointed out it would be safest and simplest to protect the
      whole kvm_async_pf_task_wait(). Otherwise, "we need to check all the
      code there deeply for potential RCU uses and ensure it will never be
      extended later to use RCU.".
      
      However, We'd better re-enter the cpu idle eqs if we get the exception
      in cpu idle eqs, by calling rcu_irq_exit() before native_safe_halt().
      
      So the patch does what Frederic suggested for rcu_irq_*() API usage
      here, except that I moved the rcu_irq_*() pair originally in
      do_async_page_fault() into kvm_async_pf_task_wait().
      
      That's because, I think it's better to have rcu_irq_*() pairs to be in
      one function ( rcu_irq_exit() after rcu_irq_enter() ), especially here,
      kvm_async_pf_task_wait() has other callers, which might cause
      rcu_irq_exit() be called without a matching rcu_irq_enter() before it,
      which is illegal if the cpu happens to be in rcu idle state.
      Signed-off-by: default avatarLi Zhong <zhong@linux.vnet.ibm.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      9b132fbe
  2. 13 Dec, 2012 39 commits
    • Linus Torvalds's avatar
      Merge tag 'kvm-3.8-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 66cdd0ce
      Linus Torvalds authored
      Pull KVM updates from Marcelo Tosatti:
       "Considerable KVM/PPC work, x86 kvmclock vsyscall support,
        IA32_TSC_ADJUST MSR emulation, amongst others."
      
      Fix up trivial conflict in kernel/sched/core.c due to cross-cpu
      migration notifier added next to rq migration call-back.
      
      * tag 'kvm-3.8-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (156 commits)
        KVM: emulator: fix real mode segment checks in address linearization
        VMX: remove unneeded enable_unrestricted_guest check
        KVM: VMX: fix DPL during entry to protected mode
        x86/kexec: crash_vmclear_local_vmcss needs __rcu
        kvm: Fix irqfd resampler list walk
        KVM: VMX: provide the vmclear function and a bitmap to support VMCLEAR in kdump
        x86/kexec: VMCLEAR VMCSs loaded on all cpus if necessary
        KVM: MMU: optimize for set_spte
        KVM: PPC: booke: Get/set guest EPCR register using ONE_REG interface
        KVM: PPC: bookehv: Add EPCR support in mtspr/mfspr emulation
        KVM: PPC: bookehv: Add guest computation mode for irq delivery
        KVM: PPC: Make EPCR a valid field for booke64 and bookehv
        KVM: PPC: booke: Extend MAS2 EPN mask for 64-bit
        KVM: PPC: e500: Mask MAS2 EPN high 32-bits in 32/64 tlbwe emulation
        KVM: PPC: Mask ea's high 32-bits in 32/64 instr emulation
        KVM: PPC: e500: Add emulation helper for getting instruction ea
        KVM: PPC: bookehv64: Add support for interrupt handling
        KVM: PPC: bookehv: Remove GET_VCPU macro from exception handler
        KVM: PPC: booke: Fix get_tb() compile error on 64-bit
        KVM: PPC: e500: Silence bogus GCC warning in tlb code
        ...
      66cdd0ce
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.8-rc0-tag' of... · 896ea17d
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.8-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull Xen updates from Konrad Rzeszutek Wilk:
       - Add necessary infrastructure to make balloon driver work under ARM.
       - Add /dev/xen/privcmd interfaces to work with ARM and PVH.
       - Improve Xen PCIBack wild-card parsing.
       - Add Xen ACPI PAD (Processor Aggregator) support - so can offline/
         online sockets depending on the power consumption.
       - PVHVM + kexec = use an E820_RESV region for the shared region so we
         don't overwrite said region during kexec reboot.
       - Cleanups, compile fixes.
      
      Fix up some trivial conflicts due to the balloon driver now working on
      ARM, and there were changes next to the previous work-arounds that are
      now gone.
      
      * tag 'stable/for-linus-3.8-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen/PVonHVM: fix compile warning in init_hvm_pv_info
        xen: arm: implement remap interfaces needed for privcmd mappings.
        xen: correctly use xen_pfn_t in remap_domain_mfn_range.
        xen: arm: enable balloon driver
        xen: balloon: allow PVMMU interfaces to be compiled out
        xen: privcmd: support autotranslated physmap guests.
        xen: add pages parameter to xen_remap_domain_mfn_range
        xen/acpi: Move the xen_running_on_version_or_later function.
        xen/xenbus: Remove duplicate inclusion of asm/xen/hypervisor.h
        xen/acpi: Fix compile error by missing decleration for xen_domain.
        xen/acpi: revert pad config check in xen_check_mwait
        xen/acpi: ACPI PAD driver
        xen-pciback: reject out of range inputs
        xen-pciback: simplify and tighten parsing of device IDs
        xen PVonHVM: use E820_Reserved area for shared_info
      896ea17d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · c7708fac
      Linus Torvalds authored
      Pull s390 update from Martin Schwidefsky:
       "Add support to generate code for the latest machine zEC12, MOD and XOR
        instruction support for the BPF jit compiler, the dasd safe offline
        feature and the big one: the s390 architecture gets PCI support!!
        Right before the world ends on the 21st ;-)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
        s390/qdio: rename the misleading PCI flag of qdio devices
        s390/pci: remove obsolete email addresses
        s390/pci: speed up __iowrite64_copy by using pci store block insn
        s390/pci: enable NEED_DMA_MAP_STATE
        s390/pci: no msleep in potential IRQ context
        s390/pci: fix potential NULL pointer dereference in dma_free_seg_table()
        s390/pci: use kmem_cache_zalloc instead of kmem_cache_alloc/memset
        s390/bpf,jit: add support for XOR instruction
        s390/bpf,jit: add support MOD instruction
        s390/cio: fix pgid reserved check
        vga: compile fix, disable vga for s390
        s390/pci: add PCI Kconfig options
        s390/pci: s390 specific PCI sysfs attributes
        s390/pci: PCI hotplug support via SCLP
        s390/pci: CHSC PCI support for error and availability events
        s390/pci: DMA support
        s390/pci: PCI adapter interrupts for MSI/MSI-X
        s390/bitops: find leftmost bit instruction support
        s390/pci: CLP interface
        s390/pci: base support
        ...
      c7708fac
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 3127f23f
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven.
      
      Fix up trivial conflict (m68k switched to generic version of
      uapi/asm/socket.h, net tree updated the old one) as per Geert.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/sun3: Fix instruction faults
        m68k/sun3: Get interrupts working again
        m68k: move to a single instance of free_initmem()
        m68k: merge MMU and non-MMU versions of mm/init.c
        m68k: switch to using the asm-generic termios.h
        m68k: switch to using the asm-generic termbits.h
        m68k: switch to using the asm-generic sockios.h
        m68k: switch to using the asm-generic socket.h
        m68k: switch to using the asm-generic shmbuf.h
        m68k: switch to using the asm-generic sembuf.h
        m68k: switch to using the asm-generic msgbuf.h
        m68k: switch to using the asm-generic auxvec.h
        m68k: switch to using the asm-generic shmparam.h
        m68k: switch to using the asm-generic spinlock.h
        m68k: switch to using the asm-generic hw_irq.h
        arch/m68k: remove CONFIG_EXPERIMENTAL
      3127f23f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next · 8863e092
      Linus Torvalds authored
      Pull tiny sparc update from David Miller:
       "Not much going on this release cycle in sparc land, just a Kconfig
        tweak."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
        of_i2c: sparc: Allow OF_I2C for sparc
      8863e092
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8d9ea717
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "A pile of fixes in response to yesterday's big merge.  The SCTP HMAC
        thing hasn't been addressed yet, I'll take care of that myself if Neil
        and Vlad don't show signs of life by tomorrow.
      
         1) Use after free of SKB in tuntap code.  Fix by Eric Dumazet,
            reported by Dave Jones.
      
         2) NFC LLCP code emits annoying kernel log message, triggerable by
            the user.  From Dave Jones.
      
         3) Fix several endianness bugs noticed by sparse in the bridging
            code, from Stephen Hemminger.
      
         4) Ipv6 NDISC code doesn't take padding into account properly, fix
            from YOSHIFUJI Hideaki.
      
         5) Add missing docs to ethtool_flow_ext struct, from Yan Burman."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        bridge: fix icmpv6 endian bug and other sparse warnings
        net: ethool: Document struct ethtool_flow_ext
        ndisc: Fix padding error in link-layer address option.
        tuntap: dont use skb after netif_rx_ni(skb)
        nfc: remove noisy message from llcp_sock_sendmsg
      8d9ea717
    • Linus Torvalds's avatar
      Merge branch 'akpm' (Andrew's patch-bomb) · f6e858a0
      Linus Torvalds authored
      Merge misc VM changes from Andrew Morton:
       "The rest of most-of-MM.  The other MM bits await a slab merge.
      
        This patch includes the addition of a huge zero_page.  Not a
        performance boost but it an save large amounts of physical memory in
        some situations.
      
        Also a bunch of Fujitsu engineers are working on memory hotplug.
        Which, as it turns out, was badly broken.  About half of their patches
        are included here; the remainder are 3.8 material."
      
      However, this merge disables CONFIG_MOVABLE_NODE, which was totally
      broken.  We don't add new features with "default y", nor do we add
      Kconfig questions that are incomprehensible to most people without any
      help text.  Does the feature even make sense without compaction or
      memory hotplug?
      
      * akpm: (54 commits)
        mm/bootmem.c: remove unused wrapper function reserve_bootmem_generic()
        mm/memory.c: remove unused code from do_wp_page()
        asm-generic, mm: pgtable: consolidate zero page helpers
        mm/hugetlb.c: fix warning on freeing hwpoisoned hugepage
        hwpoison, hugetlbfs: fix RSS-counter warning
        hwpoison, hugetlbfs: fix "bad pmd" warning in unmapping hwpoisoned hugepage
        mm: protect against concurrent vma expansion
        memcg: do not check for mm in __mem_cgroup_count_vm_event
        tmpfs: support SEEK_DATA and SEEK_HOLE (reprise)
        mm: provide more accurate estimation of pages occupied by memmap
        fs/buffer.c: remove redundant initialization in alloc_page_buffers()
        fs/buffer.c: do not inline exported function
        writeback: fix a typo in comment
        mm: introduce new field "managed_pages" to struct zone
        mm, oom: remove statically defined arch functions of same name
        mm, oom: remove redundant sleep in pagefault oom handler
        mm, oom: cleanup pagefault oom handler
        memory_hotplug: allow online/offline memory to result movable node
        numa: add CONFIG_MOVABLE_NODE for movable-dedicated node
        mm, memcg: avoid unnecessary function call when memcg is disabled
        ...
      f6e858a0
    • Linus Torvalds's avatar
      Merge tag 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 193c0d68
      Linus Torvalds authored
      Pull PCI update from Bjorn Helgaas:
       "Host bridge hotplug:
         - Untangle _PRT from struct pci_bus (Bjorn Helgaas)
         - Request _OSC control before scanning root bus (Taku Izumi)
         - Assign resources when adding host bridge (Yinghai Lu)
         - Remove root bus when removing host bridge (Yinghai Lu)
         - Remove _PRT during hot remove (Yinghai Lu)
      
        SRIOV
          - Add sysfs knobs to control numVFs (Don Dutile)
      
        Power management
         - Notify devices when power resource turned on (Huang Ying)
      
        Bug fixes
         - Work around broken _SEG on HP xw9300 (Bjorn Helgaas)
         - Keep runtime PM enabled for unbound PCI devices (Huang Ying)
         - Fix Optimus dual-GPU runtime D3 suspend issue (Dave Airlie)
         - Fix xen frontend shutdown issue (David Vrabel)
         - Work around PLX PCI 9050 BAR alignment erratum (Ian Abbott)
      
        Miscellaneous
         - Add GPL license for drivers/pci/ioapic (Andrew Cooks)
         - Add standard PCI-X, PCIe ASPM register #defines (Bjorn Helgaas)
         - NumaChip remote PCI support (Daniel Blueman)
         - Fix PCIe Link Capabilities Supported Link Speed definition (Jingoo
           Han)
         - Convert dev_printk() to dev_info(), etc (Joe Perches)
         - Add support for non PCI BAR ROM data (Matthew Garrett)
         - Add x86 support for host bridge translation offset (Mike Yoknis)
         - Report success only when every driver supports AER (Vijay
           Pandarathil)"
      
      Fix up trivial conflicts.
      
      * tag 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (48 commits)
        PCI: Use phys_addr_t for physical ROM address
        x86/PCI: Add NumaChip remote PCI support
        ath9k: Use standard #defines for PCIe Capability ASPM fields
        iwlwifi: Use standard #defines for PCIe Capability ASPM fields
        iwlwifi: collapse wrapper for pcie_capability_read_word()
        iwlegacy: Use standard #defines for PCIe Capability ASPM fields
        iwlegacy: collapse wrapper for pcie_capability_read_word()
        cxgb3: Use standard #defines for PCIe Capability ASPM fields
        PCI: Add standard PCIe Capability Link ASPM field names
        PCI/portdrv: Use PCI Express Capability accessors
        PCI: Use standard PCIe Capability Link register field names
        x86: Use PCI setup data
        PCI: Add support for non-BAR ROMs
        PCI: Add pcibios_add_device
        EFI: Stash ROMs if they're not in the PCI BAR
        PCI: Add and use standard PCI-X Capability register names
        PCI/PM: Keep runtime PM enabled for unbound PCI devices
        xen-pcifront: Handle backend CLOSED without CLOSING
        PCI: SRIOV control and status via sysfs (documentation)
        PCI/AER: Report success only when every device has AER-aware driver
        ...
      193c0d68
    • Linus Torvalds's avatar
      Merge tag 'regulator-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 8b0cab14
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A fairly quiet release again, a couple of relatively small new
        features and a bunch of driver specific work including yet more code
        elimination and fixes from Axel Lin.
      
         - Addidion of linear_min_sel for offsetting linear selectors in the
           helpers.
         - Support for continuous voltage ranges for regulators with extremely
           high resolution.
         - Drivers for AS3711, DA9055, MAX9873, TPS51632, TPS80031 and ARM
           vexpress."
      
      Fix up trivial conflict (due to typo fix) in palmas-regulator.c
      
      * tag 'regulator-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (80 commits)
        regulator: core: Fix logic to determinate if regulator can change voltage
        regulator: s5m8767: Fix to work even if no DVS gpio present
        regulator: s5m8767: Fix to read the first DVS register.
        regulator: s5m8767: Fix to work when platform registers less regulators
        regulator: gpio-regulator: gpio_set_value should use cansleep
        regulator: gpio-regulator: Fix logical error in for() loop
        regulator: anatop: Use regulator_[get|set]_voltage_sel_regmap
        regulator: anatop: Use linear_min_sel with linear mapping
        regulator: max1586: Implement get_voltage_sel callback
        regulator: lp8788-buck: Kill _gpio_request function
        regulator: tps80031: Convert tps80031_ldo_ops to linear_min_sel and list_voltage_linear
        regulator: lp8788-ldo: Remove val array in lp8788_config_ldo_enable_mode
        regulator: gpio-regulator: Add ifdef CONFIG_OF guard for regulator_gpio_of_match
        regulator: palmas: Convert palmas_ops_smps to regulator_[get|set]_voltage_sel_regmap
        regulator: palmas: Return raw register values as the selectors in [get|set]_voltage_sel
        regulators: add regulator_can_change_voltage() function
        regulator: tps51632: Ensure [base|max]_voltage_uV pdata settings are valid
        regulator: wm831x-dcdc: Add MODULE_ALIAS for wm831x-boostp
        regulator: wm831x-dcdc: Ensure selected voltage falls within requested range
        regulator: tps51632: Use linear_min_sel and regulator_[map|list]_voltage_linear
        ...
      8b0cab14
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · fd62c545
      Linus Torvalds authored
      Pull HID subsystem updates from Jiri Kosina:
      
       1) Support for HID over I2C bus has been added by Benjamin Tissoires.
          ACPI device discovery is still in the works.
      
       2) Support for Win8 Multitiouch protocol is being added, most work done
          by Benjamin Tissoires as well
      
       3) EIO/ERESTARTSYS is fixed in hiddev/hidraw, fixes by Andrew Duggan
          and Jiri Kosina
      
       4) ION iCade driver added by Bastien Nocera
      
       5) Support for a couple new Roccat devices has been added by Stefan
          Achatz
      
       6) HID sensor hubs are now auto-detected instead of having to list all
          the VID/PID combinations in the blacklist array
      
       7) other random fixes and support for new device IDs
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (65 commits)
        HID: i2c-hid: add mutex protecting open/close race
        Revert "HID: sensors: add to special driver list"
        HID: sensors: autodetect USB HID sensor hubs
        HID: hidp: fallback to input session properly if hid is blacklisted
        HID: i2c-hid: fix ret_count check
        HID: i2c-hid: fix i2c_hid_get_raw_report count mismatches
        HID: i2c-hid: remove extra .irq field in struct i2c_hid
        HID: i2c-hid: reorder allocation/free of buffers
        HID: i2c-hid: fix memory corruption due to missing hid declaration
        HID: i2c-hid: remove superfluous include
        HID: i2c-hid: remove unneeded test in i2c_hid_remove
        HID: i2c-hid: i2c_hid_get_report may fail
        HID: i2c-hid: also call i2c_hid_free_buffers in i2c_hid_remove
        HID: i2c-hid: fix error messages
        HID: i2c-hid: fix return paths
        HID: i2c-hid: remove unused static declarations
        HID: i2c-hid: fix i2c_hid_dbg macro
        HID: i2c-hid: fix checkpatch.pl warning
        HID: i2c-hid: enhance Kconfig
        HID: i2c-hid: change I2C name
        ...
      fd62c545
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · a2013a13
      Linus Torvalds authored
      Pull trivial branch from Jiri Kosina:
       "Usual stuff -- comment/printk typo fixes, documentation updates, dead
        code elimination."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
        HOWTO: fix double words typo
        x86 mtrr: fix comment typo in mtrr_bp_init
        propagate name change to comments in kernel source
        doc: Update the name of profiling based on sysfs
        treewide: Fix typos in various drivers
        treewide: Fix typos in various Kconfig
        wireless: mwifiex: Fix typo in wireless/mwifiex driver
        messages: i2o: Fix typo in messages/i2o
        scripts/kernel-doc: check that non-void fcts describe their return value
        Kernel-doc: Convention: Use a "Return" section to describe return values
        radeon: Fix typo and copy/paste error in comments
        doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
        various: Fix spelling of "asynchronous" in comments.
        Fix misspellings of "whether" in comments.
        eisa: Fix spelling of "asynchronous".
        various: Fix spelling of "registered" in comments.
        doc: fix quite a few typos within Documentation
        target: iscsi: fix comment typos in target/iscsi drivers
        treewide: fix typo of "suport" in various comments and Kconfig
        treewide: fix typo of "suppport" in various comments
        ...
      a2013a13
    • Linus Torvalds's avatar
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · dadfab48
      Linus Torvalds authored
      Pull IEEE 1394 (FireWire) subsystem updates from Stefan Richter:
        - IPv4-over-1394: fixes for broadcast and multicast
        - SBP-2: allow thin-provisioning related commands
        - trivia
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: net: remove unused variable in fwnet_receive_broadcast()
        firewire: net: Fix handling of fragmented multicast/broadcast packets.
        firewire: sbp2: allow WRITE SAME and REPORT SUPPORTED OPERATION CODES
        tools/firewire: nosy-dump: check for allocation failure
      dadfab48
    • Linus Torvalds's avatar
      Merge tag 'sound-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 046e7d68
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "This update contains a fairly wide range of changes all over in sound
        subdirectory, mainly because of UAPI header moves by David and __dev*
        annotation removals by Bill.  Other highlights are:
      
         - Introduced the support for wallclock timestamps in ALSA PCM core
      
         - Add the poll loop implementation for HD-audio jack detection
      
         - Yet more VGA-switcheroo fixes for HD-audio
      
         - New VIA HD-audio codec support
      
         - More fixes on resource management in USB audio and MIDI drivers
      
         - More quirks for USB-audio ASUS Xonar U3, Reloop Play, Focusrite,
           Roland VG-99, etc
      
         - Add support for FastTrack C400 usb-audio
      
         - Clean ups in many drivers regarding firmware loading
      
         - Add PSC724 Ultiimate Edge support to ice1712
      
         - A few hdspm driver updates
      
         - New Stanton SCS.1d/1m FireWire driver
      
         - Standardisation of the logging in ASoC codes
      
         - DT and dmaengine support for ASoC Atmel
      
         - Support for Wolfson ADSP cores
      
         - New drivers for Freescale/iVeia P1022 and Maxim MAX98090
      
         - Lots of other ASoC driver fixes and developments"
      
      Fix up trivial conflicts.  And go out on a limb and assume the dts file
      'status' field of one of the conflicting things was supposed to be
      "disabled", not "disable" like in pretty much all other cases.
      
      * tag 'sound-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (341 commits)
        ALSA: hda - Move runtime PM check to runtime_idle callback
        ALSA: hda - Add stereo-dmic fixup for Acer Aspire One 522
        ALSA: hda - Avoid doubly suspend after vga switcheroo
        ALSA: usb-audio: Enable S/PDIF on the ASUS Xonar U3
        ALSA: hda - Check validity of CORB/RIRB WP reads
        ALSA: hda - use usleep_range in link reset and change timeout check
        ALSA: HDA: VIA: Add support for codec VT1808.
        ALSA: HDA: VIA Add support for codec VT1705CF.
        ASoC: codecs: remove __dev* attributes
        ASoC: utils: remove __dev* attributes
        ASoC: ux500: remove __dev* attributes
        ASoC: txx9: remove __dev* attributes
        ASoC: tegra: remove __dev* attributes
        ASoC: spear: remove __dev* attributes
        ASoC: sh: remove __dev* attributes
        ASoC: s6000: remove __dev* attributes
        ASoC: OMAP: remove __dev* attributes
        ASoC: nuc900: remove __dev* attributes
        ASoC: mxs: remove __dev* attributes
        ASoC: kirkwood: remove __dev* attributes
        ...
      046e7d68
    • Linus Torvalds's avatar
      Merge tag 'boards2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fe504c5c
      Linus Torvalds authored
      Pull ARM SoC board updates, take 2 from Olof Johansson:
       "This branch contains board updates for shmobile that had dependencies
        on earlier branches past the first driver branch, and thus are merged
        separately.
      
        Most of these are to enable audio and USB on shmobile.  They contain a
        dependent ASoC branch that has been coordinated with Mark Brown."
      
      * tag 'boards2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: shmobile: mackerel: Add FLCTL IRQ resource
        ARM: shmobile: use FSI driver's audio clock on ap4evb
        ARM: shmobile: use FSI driver's audio clock on mackerel
        ARM: shmobile: use FSI driver's audio clock on armadillo800eva
        ARM: shmobile: mackerel: enable DMAEngine on USB Host
        ARM: shmobile: marzen: add USB OHCI driver support
        ARM: shmobile: marzen: add USB EHCI driver support
        ARM: shmobile: marzen: add USB phy support
        ASoC: fsi: add master clock control functions
        ASoC: fsi: care fsi_hw_start/stop() return value
        ASoC: fsi: fsi_set_master_clk() was called from fsi_hw_xxx() only
        ASoC: fsi: use devm_request_irq()
        ASoC: fsi: fixup channels_min/max
      fe504c5c
    • Linus Torvalds's avatar
      Merge tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 698d6012
      Linus Torvalds authored
      Pull ARM SoC driver specific changes from Olof Johansson:
       "A collection of mostly SoC-specific driver updates:
         - a handful of pincontrol and setup changes
         - new drivers for hwmon and reset controller for vexpress
         - timing support updates for OMAP (gpmc and other interfaces)
         - plus a collection of smaller cleanups"
      
      * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)
        ARM: ux500: fix pin warning
        ARM: OMAP2+: tusb6010: generic timing calculation
        ARM: OMAP2+: smc91x: generic timing calculation
        ARM: OMAP2+: onenand: generic timing calculation
        ARM: OMAP2+: gpmc: generic timing calculation
        ARM: OMAP2+: gpmc: handle additional timings
        ARM: OMAP2+: nand: remove redundant rounding
        gpio: samsung: use pr_* instead of printk
        ARM: ux500: fixup magnetometer pins
        ARM: ux500: add STM pin configuration
        ARM: ux500: 8500: add pinctrl support for uart1 and uart2
        ARM: ux500: cosmetic fixups for uart0
        gpio: samsung: Fix input mode setting function for GPIO int
        ARM: SAMSUNG: Insert bitmap_gpio_int member in samsung_gpio_chip
        ARM: ux500: 8500: define SDI sleep states
        ARM: vexpress: Reset driver
        ARM: ux500: 8500: update SKE keypad pinctrl table
        hwmon: Versatile Express hwmon driver
        ARM: ux500: delete duplicate macro
        ARM: ux500: 8500: add IDLE pin configuration for SPI
        ...
      698d6012
    • Linus Torvalds's avatar
      Merge tag 'pm-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · a11da7df
      Linus Torvalds authored
      Pull ARM SoC power management and clock changes from Olof Johansson:
       "This branch contains a largeish set of updates of power management and
        clock setup.  The bulk of it is for OMAP/AM33xx platforms, but also a
        few around hotplug/suspend/resume on Exynos.
      
        It includes a split-up of some of the OMAP clock data into separate
        files which adds to the diffstat, but gross delta is fairly reasonable."
      
      * tag 'pm-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
        ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h
        ASoC: OMAP: mcbsp fixes for enabling ARM multiplatform support
        watchdog: OMAP: fixup for ARM multiplatform support
        ARM: EXYNOS: Add flush_cache_all in suspend finisher
        ARM: EXYNOS: Remove scu_enable from cpuidle
        ARM: EXYNOS: Fix soft reboot hang after suspend/resume
        ARM: EXYNOS: Add support for rtc wakeup
        ARM: EXYNOS: fix the hotplug for Cortex-A15
        ARM: OMAP2+: omap_device: Correct resource handling for DT boot
        ARM: OMAP2+: hwmod: Add possibility to count hwmod resources based on type
        ARM: OMAP2+: hwmod: Add support for per hwmod/module context lost count
        ARM: OMAP2+: PRM: initialize some PRM functions early
        ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n
        ARM: OMAP4: USB: power down MUSB PHY during boot
        ARM: OMAP2+: clock: Cleanup !CONFIG_COMMON_CLK parts
        ARM: OMAP2xxx: clock: drop obsolete clock data
        ARM: OMAP2: clock: Cleanup !CONFIG_COMMON_CLK parts
        ARM: OMAP3+: DPLL: drop !CONFIG_COMMON_CLK sections
        ARM: AM33xx: clock: drop obsolete clock data
        ARM: OMAP3xxx: clk: drop obsolete clock data
        ...
      a11da7df
    • Linus Torvalds's avatar
      Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b8edf848
      Linus Torvalds authored
      Pull ARM SoC multiplatform conversion patches from Olof Johansson:
       "Here are more patches in the progression towards multiplatform, sparse
        irq conversions in particular.
      
        Tegra has a handful of cleanups and general groundwork, but is not
        quite there yet on full enablement.
      
        Platforms that are enabled through this branch are VT8500 and Zynq.
        Note that i.MX was converted in one of the earlier cleanup branches as
        well (before we started a separate topic for multiplatform).  And both
        new platforms for this merge window, sunxi and bcm, were merged with
        multiplatform support enabled."
      
      Fix up conflicts mostly as per Olof.
      
      * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (29 commits)
        ARM: zynq: Remove all unused mach headers
        ARM: zynq: add support for ARCH_MULTIPLATFORM
        ARM: zynq: make use of debug_ll_io_init()
        ARM: zynq: remove TTC early mapping
        ARM: tegra: move debug-macro.S to include/debug
        ARM: tegra: don't include iomap.h from debug-macro.S
        ARM: tegra: decouple uncompress.h and debug-macro.S
        ARM: tegra: simplify DEBUG_LL UART selection options
        ARM: tegra: select SPARSE_IRQ
        ARM: tegra: enhance timer.c to get IO address from device tree
        ARM: tegra: enhance timer.c to get IRQ info from device tree
        ARM: timer: fix checkpatch warnings
        ARM: tegra: add TWD to device tree
        ARM: tegra: define DT bindings for and instantiate RTC
        ARM: tegra: define DT bindings for and instantiate timer
        clocksource/mtu-nomadik: use apb_pclk
        clk: ux500: Register mtu apb_pclocks
        ARM: plat-nomadik: convert platforms to SPARSE_IRQ
        mfd/db8500-prcmu: use the irq_domain_add_simple()
        mfd/ab8500-core: use irq_domain_add_simple()
        ...
      b8edf848
    • Linus Torvalds's avatar
      Merge tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · db5b0ae0
      Linus Torvalds authored
      Pull ARM SoC device tree conversions and enablement from Olof Johansson:
       "Continued device tree conversion and enablement across a number of
        platforms; Kirkwood, tegra, i.MX, Exynos, zynq and a couple of other
        smaller series as well.
      
        ux500 has seen continued conversion for platforms.  Several platforms
        have seen pinctrl-via-devicetree conversions for simpler
        multiplatform.  Tegra is adding data for new devices/drivers, and
        Exynos has a bunch of new bindings and devices added as well.
      
        So, pretty much the same progression in the right direction as the
        last few releases."
      
      Fix up conflicts as per Olof.
      
      * tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (185 commits)
        ARM: ux500: Rename dbx500 cpufreq code to be more generic
        ARM: dts: add missing ux500 device trees
        ARM: ux500: Stop registering the PCM driver from platform code
        ARM: ux500: Move board specific GPIO info out to subordinate DTS files
        ARM: ux500: Disable the MMCI gpio-regulator by default
        ARM: Kirkwood: remove kirkwood_ehci_init() from new boards
        ARM: Kirkwood: Add support LED of OpenBlocks A6
        ARM: Kirkwood: Convert to EHCI via DT for OpenBlocks A6
        ARM: kirkwood: Add NAND partiton map for OpenBlocks A6
        ARM: kirkwood: Add support second I2C bus and RTC on OpenBlocks A6
        ARM: kirkwood: Add support DT of second I2C bus
        ARM: kirkwood: Convert mplcec4 board to pinctrl
        ARM: Kirkwood: Convert km_kirkwood to pinctrl
        ARM: Kirkwood: support 98DX412x kirkwoods with pinctrl
        ARM: Kirkwood: Convert IX2-200 to pinctrl.
        ARM: Kirkwood: Convert lsxl boards to pinctrl.
        ARM: Kirkwood: Convert ib62x0 to pinctrl.
        ARM: Kirkwood: Convert GoFlex Net to pinctrl.
        ARM: Kirkwood: Convert dreamplug to pinctrl.
        ARM: Kirkwood: Convert dockstar to pinctrl.
        ...
      db5b0ae0
    • stephen hemminger's avatar
      bridge: fix icmpv6 endian bug and other sparse warnings · eca2a43b
      stephen hemminger authored
      Fix the warnings reported by sparse on recent bridge multicast
      changes. Mostly just rcu annotation issues but in this case
      sparse found a real bug! The ICMPv6 mld2 query mrc
      values is in network byte order.
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eca2a43b
    • Yan Burman's avatar
      net: ethool: Document struct ethtool_flow_ext · dc2e5734
      Yan Burman authored
      Add documentation for struct ethtool_flow_ext especially in regard
      to what flags are needed for which fields.
      Signed-off-by: default avatarYan Burman <yanb@mellanox.com>
      Reviewed-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc2e5734
    • YOSHIFUJI Hideaki / 吉藤英明's avatar
      ndisc: Fix padding error in link-layer address option. · 7bdc1b4a
      YOSHIFUJI Hideaki / 吉藤英明 authored
      If a natural number n exists where 2 + data_len <= 8n < 2 + data_len + pad,
      post padding is not initialized correctly.
      
      (Un)fortunately, the only type that requires pad is Infiniband,
      whose pad is 2 and data_len is 20, and this logical error has not
      become obvious, but it is better to fix.
      
      Note that ndisc_opt_addr_space() handles the situation described
      above correctly.
      Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7bdc1b4a
    • Eric Dumazet's avatar
      tuntap: dont use skb after netif_rx_ni(skb) · 49974420
      Eric Dumazet authored
      On Wed, 2012-12-12 at 23:16 -0500, Dave Jones wrote:
      > Since todays net merge, I see this when I start openvpn..
      >
      > general protection fault: 0000 [#1] PREEMPT SMP
      > Modules linked in: ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack nf_conntrack ip6table_filter ip6_tables xfs iTCO_wdt iTCO_vendor_support snd_emu10k1 snd_util_mem snd_ac97_codec coretemp ac97_bus microcode snd_hwdep snd_seq pcspkr snd_pcm snd_page_alloc snd_timer lpc_ich i2c_i801 snd_rawmidi mfd_core snd_seq_device snd e1000e soundcore emu10k1_gp gameport i82975x_edac edac_core vhost_net tun macvtap macvlan kvm_intel kvm binfmt_misc nfsd auth_rpcgss nfs_acl lockd sunrpc btrfs libcrc32c zlib_deflate firewire_ohci sata_sil firewire_core crc_itu_t radeon i2c_algo_bit drm_kms_helper ttm drm i2c_core floppy
      > CPU 0
      > Pid: 1381, comm: openvpn Not tainted 3.7.0+ #14                  /D975XBX
      > RIP: 0010:[<ffffffff815b54a4>]  [<ffffffff815b54a4>] skb_flow_dissect+0x314/0x3e0
      > RSP: 0018:ffff88007d0d9c48  EFLAGS: 00010206
      > RAX: 000000000000055d RBX: 6b6b6b6b6b6b6b4b RCX: 1471030a0180040a
      > RDX: 0000000000000005 RSI: 00000000ffffffe0 RDI: ffff8800ba83fa80
      > RBP: ffff88007d0d9cb8 R08: 0000000000000000 R09: 0000000000000000
      > R10: 0000000000000000 R11: 0000000000000101 R12: ffff8800ba83fa80
      > R13: 0000000000000008 R14: ffff88007d0d9cc8 R15: ffff8800ba83fa80
      > FS:  00007f6637104800(0000) GS:ffff8800bf600000(0000) knlGS:0000000000000000
      > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      > CR2: 00007f563f5b01c4 CR3: 000000007d140000 CR4: 00000000000007f0
      > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      > Process openvpn (pid: 1381, threadinfo ffff88007d0d8000, task ffff8800a540cd60)
      > Stack:
      >  ffff8800ba83fa80 0000000000000296 0000000000000000 0000000000000000
      >  ffff88007d0d9cc8 ffffffff815bcff4 ffff88007d0d9ce8 ffffffff815b1831
      >  ffff88007d0d9ca8 00000000703f6364 ffff8800ba83fa80 0000000000000000
      > Call Trace:
      >  [<ffffffff815bcff4>] ? netif_rx+0x114/0x4c0
      >  [<ffffffff815b1831>] ? skb_copy_datagram_from_iovec+0x61/0x290
      >  [<ffffffff815b672a>] __skb_get_rxhash+0x1a/0xd0
      >  [<ffffffffa03b9538>] tun_get_user+0x418/0x810 [tun]
      >  [<ffffffff8135f468>] ? delay_tsc+0x98/0xf0
      >  [<ffffffff8109605c>] ? __rcu_read_unlock+0x5c/0xa0
      >  [<ffffffffa03b9a41>] tun_chr_aio_write+0x81/0xb0 [tun]
      >  [<ffffffff81145011>] ? __buffer_unlock_commit+0x41/0x50
      >  [<ffffffff811db917>] do_sync_write+0xa7/0xe0
      >  [<ffffffff811dc01f>] vfs_write+0xaf/0x190
      >  [<ffffffff811dc375>] sys_write+0x55/0xa0
      >  [<ffffffff81705540>] tracesys+0xdd/0xe2
      > Code: 41 8b 44 24 68 41 2b 44 24 6c 01 de 29 f0 83 f8 03 0f 8e a0 00 00 00 48 63 de 49 03 9c 24 e0 00 00 00 48 85 db 0f 84 72 fe ff ff <8b> 03 41 89 46 08 b8 01 00 00 00 e9 43 fd ff ff 0f 1f 40 00 48
      > RIP  [<ffffffff815b54a4>] skb_flow_dissect+0x314/0x3e0
      >  RSP <ffff88007d0d9c48>
      > ---[ end trace 6d42c834c72c002e ]---
      >
      >
      > Faulting instruction is
      >
      >    0:	8b 03                	mov    (%rbx),%eax
      >
      > rbx is slab poison (-20) so this looks like a use-after-free here...
      >
      >                         flow->ports = *ports;
      >  314:   8b 03                   mov    (%rbx),%eax
      >  316:   41 89 46 08             mov    %eax,0x8(%r14)
      >
      > in the inlined skb_header_pointer in skb_flow_dissect
      >
      > 	Dave
      >
      
      commit 96442e42 (tuntap: choose the txq based on rxq) added
      a use after free.
      
      Cache rxhash in a temp variable before calling netif_rx_ni()
      Reported-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Jason Wang <jasowang@redhat.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49974420
    • Dave Jones's avatar
      nfc: remove noisy message from llcp_sock_sendmsg · 026e43de
      Dave Jones authored
      This is easily triggerable when fuzz-testing as an unprivileged user.
      We could rate-limit it, but given we don't print similar messages
      for other protocols, I just removed it.
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      026e43de
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 6be35c70
      Linus Torvalds authored
      Pull networking changes from David Miller:
      
      1) Allow to dump, monitor, and change the bridge multicast database
         using netlink.  From Cong Wang.
      
      2) RFC 5961 TCP blind data injection attack mitigation, from Eric
         Dumazet.
      
      3) Networking user namespace support from Eric W. Biederman.
      
      4) tuntap/virtio-net multiqueue support by Jason Wang.
      
      5) Support for checksum offload of encapsulated packets (basically,
         tunneled traffic can still be checksummed by HW).  From Joseph
         Gasparakis.
      
      6) Allow BPF filter access to VLAN tags, from Eric Dumazet and
         Daniel Borkmann.
      
      7) Bridge port parameters over netlink and BPDU blocking support
         from Stephen Hemminger.
      
      8) Improve data access patterns during inet socket demux by rearranging
         socket layout, from Eric Dumazet.
      
      9) TIPC protocol updates and cleanups from Ying Xue, Paul Gortmaker, and
         Jon Maloy.
      
      10) Update TCP socket hash sizing to be more in line with current day
          realities.  The existing heurstics were choosen a decade ago.
          From Eric Dumazet.
      
      11) Fix races, queue bloat, and excessive wakeups in ATM and
          associated drivers, from Krzysztof Mazur and David Woodhouse.
      
      12) Support DOVE (Distributed Overlay Virtual Ethernet) extensions
          in VXLAN driver, from David Stevens.
      
      13) Add "oops_only" mode to netconsole, from Amerigo Wang.
      
      14) Support set and query of VEB/VEPA bridge mode via PF_BRIDGE, also
          allow DCB netlink to work on namespaces other than the initial
          namespace.  From John Fastabend.
      
      15) Support PTP in the Tigon3 driver, from Matt Carlson.
      
      16) tun/vhost zero copy fixes and improvements, plus turn it on
          by default, from Michael S. Tsirkin.
      
      17) Support per-association statistics in SCTP, from Michele
          Baldessari.
      
      And many, many, driver updates, cleanups, and improvements.  Too
      numerous to mention individually.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits)
        net/mlx4_en: Add support for destination MAC in steering rules
        net/mlx4_en: Use generic etherdevice.h functions.
        net: ethtool: Add destination MAC address to flow steering API
        bridge: add support of adding and deleting mdb entries
        bridge: notify mdb changes via netlink
        ndisc: Unexport ndisc_{build,send}_skb().
        uapi: add missing netconf.h to export list
        pkt_sched: avoid requeues if possible
        solos-pci: fix double-free of TX skb in DMA mode
        bnx2: Fix accidental reversions.
        bna: Driver Version Updated to 3.1.2.1
        bna: Firmware update
        bna: Add RX State
        bna: Rx Page Based Allocation
        bna: TX Intr Coalescing Fix
        bna: Tx and Rx Optimizations
        bna: Code Cleanup and Enhancements
        ath9k: check pdata variable before dereferencing it
        ath5k: RX timestamp is reported at end of frame
        ath9k_htc: RX timestamp is reported at end of frame
        ...
      6be35c70
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20121212' of... · e37aa63e
      Linus Torvalds authored
      Merge tag 'for-linus-20121212' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-mn10300
      
      Pull MN10300 changes from David Howells:
       "miscellaneous MN10300 arch patches.  I've based it on top of Al Viro's
        signal tree - so these patches should be pulled after that."
      
      * tag 'for-linus-20121212' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-mn10300:
        MN10300: Use asm-generic/pci_iomap.h
        MN10300: Get rid of unused variable from ASB2305 PCI code
        MN10300: ASB2305 PCI code needs linux/irq.h
        mn10300/mm/fault.c: Port OOM changes to do_page_fault
        MN10300: Handle cacheable PCI regions in pci_iomap()
        MN10300: fix debug polling in ttySM driver
        MN10300: ttySM: clean up unnecessary casting
        MN10300: fix SMP synchronization between txdma and serial driver
        MN10300: fix serial port vdma irq setup for SMP
        MN10300: cleanup IRQ affinity setting
        MN10300: ttySM: Use memory barriers correctly in circular buffer logic
      e37aa63e
    • Lin Feng's avatar
      mm/bootmem.c: remove unused wrapper function reserve_bootmem_generic() · 98870901
      Lin Feng authored
      reserve_bootmem_generic() has no caller,
      Signed-off-by: default avatarLin Feng <linfeng@cn.fujitsu.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      98870901
    • Dominik Dingel's avatar
      mm/memory.c: remove unused code from do_wp_page() · 66521d5a
      Dominik Dingel authored
      page_mkwrite is initalized with zero and only set once, from that point
      exists no way to get to the oom or oom_free_new labels.
      
      [akpm@linux-foundation.org: cleanup]
      Signed-off-by: default avatarDominik Dingel <dingel@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66521d5a
    • Kirill A. Shutemov's avatar
      asm-generic, mm: pgtable: consolidate zero page helpers · 816422ad
      Kirill A. Shutemov authored
      We have two different implementation of is_zero_pfn() and my_zero_pfn()
      helpers: for architectures with and without zero page coloring.
      
      Let's consolidate them in <asm-generic/pgtable.h>.
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      816422ad
    • Naoya Horiguchi's avatar
      mm/hugetlb.c: fix warning on freeing hwpoisoned hugepage · 56f2fb14
      Naoya Horiguchi authored
      Fix the warning from __list_del_entry() which is triggered when a process
      tries to do free_huge_page() for a hwpoisoned hugepage.
      
      free_huge_page() can be called for hwpoisoned hugepage from
      unpoison_memory().  This function gets refcount once and clears
      PageHWPoison, and then puts refcount twice to return the hugepage back to
      free pool.  The second put_page() finally reaches free_huge_page().
      Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andi Kleen <andi.kleen@intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56f2fb14
    • Naoya Horiguchi's avatar
      hwpoison, hugetlbfs: fix RSS-counter warning · 5f24ae58
      Naoya Horiguchi authored
      Memory error handling on hugepages can break a RSS counter, which emits a
      message like "Bad rss-counter state mm:ffff88040abecac0 idx:1 val:-1".
      This is because PageAnon returns true for hugepage (this behavior is
      necessary for reverse mapping to work on hugetlbfs).
      
      [akpm@linux-foundation.org: clean up code layout]
      Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Andi Kleen <andi.kleen@intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5f24ae58
    • Naoya Horiguchi's avatar
      hwpoison, hugetlbfs: fix "bad pmd" warning in unmapping hwpoisoned hugepage · 8c4894c6
      Naoya Horiguchi authored
      When a process which used a hwpoisoned hugepage tries to exit() or
      munmap(), the kernel can print out "bad pmd" message because page table
      walker in free_pgtables() encounters 'hwpoisoned entry' on pmd.
      
      This is because currently we fail to clear the hwpoisoned entry in
      __unmap_hugepage_range(), so this patch simply does it.
      Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Andi Kleen <andi.kleen@intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c4894c6
    • Michel Lespinasse's avatar
      mm: protect against concurrent vma expansion · 4128997b
      Michel Lespinasse authored
      expand_stack() runs with a shared mmap_sem lock.  Because of this, there
      could be multiple concurrent stack expansions in the same mm, which may
      cause problems in the vma gap update code.
      
      I propose to solve this by taking the mm->page_table_lock around such vma
      expansions, in order to avoid the concurrency issue.  We only have to
      worry about concurrent expand_stack() calls here, since we hold a shared
      mmap_sem lock and all vma modificaitons other than expand_stack() are done
      under an exclusive mmap_sem lock.
      
      I previously tried to achieve the same effect by making sure all growable
      vmas in a given mm would share the same anon_vma, which we already lock
      here.  However this turned out to be difficult - all of the schemes I
      tried for refcounting the growable anon_vma and clearing turned out ugly.
      So, I'm now proposing only the minimal fix.
      
      The overhead of taking the page table lock during stack expansion is
      expected to be small: glibc doesn't use expandable stacks for the threads
      it creates, so having multiple growable stacks is actually uncommon and we
      don't expect the page table lock to get bounced between threads.
      Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4128997b
    • Michal Hocko's avatar
      memcg: do not check for mm in __mem_cgroup_count_vm_event · c95d26c2
      Michal Hocko authored
      The mm given to __mem_cgroup_count_vm_event() cannot be NULL because the
      function is either called from the page fault path or vma->vm_mm is used.
      So the check can be dropped.
      
      The check was introduced by commit 456f998e ("memcg: add the
      pagefault count into memcg stats") because the originally proposed patch
      used current->mm for shmem but this has been changed to vma->vm_mm later
      on without the check being removed (thanks to Hugh for this
      recollection).
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Ying Han <yinghan@google.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c95d26c2
    • Hugh Dickins's avatar
      tmpfs: support SEEK_DATA and SEEK_HOLE (reprise) · 220f2ac9
      Hugh Dickins authored
      Revert 3.5's commit f21f8062 ("tmpfs: revert SEEK_DATA and
      SEEK_HOLE") to reinstate 4fb5ef08 ("tmpfs: support SEEK_DATA and
      SEEK_HOLE"), with the intervening additional arg to
      generic_file_llseek_size().
      
      In 3.8, ext4 is expected to join btrfs, ocfs2 and xfs with proper
      SEEK_DATA and SEEK_HOLE support; and a good case has now been made for
      it on tmpfs, so let's join the party.
      
      It's quite easy for tmpfs to scan the radix_tree to support llseek's new
      SEEK_DATA and SEEK_HOLE options: so add them while the minutiae are
      still on my mind (in particular, the !PageUptodate-ness of pages
      fallocated but still unwritten).
      
      [akpm@linux-foundation.org: fix warning with CONFIG_TMPFS=n]
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Jaegeuk Hanse <jaegeuk.hanse@gmail.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Zheng Liu <wenqing.lz@taobao.com>
      Cc: Jeff liu <jeff.liu@oracle.com>
      Cc: Paul Eggert <eggert@cs.ucla.edu>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Josef Bacik <josef@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Andreas Dilger <adilger@dilger.ca>
      Cc: Marco Stornelli <marco.stornelli@gmail.com>
      Cc: Chris Mason <chris.mason@fusionio.com>
      Cc: Sunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      220f2ac9
    • Jiang Liu's avatar
      mm: provide more accurate estimation of pages occupied by memmap · 01cefaef
      Jiang Liu authored
      If SPARSEMEM is enabled, it won't build page structures for non-existing
      pages (holes) within a zone, so provide a more accurate estimation of
      pages occupied by memmap if there are bigger holes within the zone.
      
      And pages for highmem zones' memmap will be allocated from lowmem, so
      charge nr_kernel_pages for that.
      
      [akpm@linux-foundation.org: mark calc_memmap_size __paging_init]
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Maciej Rutecki <maciej.rutecki@gmail.com>
      Cc: Chris Clayton <chris2553@googlemail.com>
      Cc: "Rafael J . Wysocki" <rjw@sisk.pl>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Tested-by: default avatarJianguo Wu <wujianguo@huawei.com>
      Cc: Dave Hansen <dave@linux.vnet.ibm.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      01cefaef
    • Yan Hong's avatar
      fs/buffer.c: remove redundant initialization in alloc_page_buffers() · 02c0ab68
      Yan Hong authored
      buffer_head comes from kmem_cache_zalloc(), no need to zero its fields.
      Signed-off-by: default avatarYan Hong <clouds.yan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      02c0ab68
    • Yan Hong's avatar
      fs/buffer.c: do not inline exported function · a3f3c29c
      Yan Hong authored
      It makes no sense to inline an exported function.
      Signed-off-by: default avatarYan Hong <clouds.yan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3f3c29c
    • Yan Hong's avatar
      5aaea51d
    • Jiang Liu's avatar
      mm: introduce new field "managed_pages" to struct zone · 9feedc9d
      Jiang Liu authored
      Currently a zone's present_pages is calcuated as below, which is
      inaccurate and may cause trouble to memory hotplug.
      
      	spanned_pages - absent_pages - memmap_pages - dma_reserve.
      
      During fixing bugs caused by inaccurate zone->present_pages, we found
      zone->present_pages has been abused.  The field zone->present_pages may
      have different meanings in different contexts:
      
      1) pages existing in a zone.
      2) pages managed by the buddy system.
      
      For more discussions about the issue, please refer to:
        http://lkml.org/lkml/2012/11/5/866
        https://patchwork.kernel.org/patch/1346751/
      
      This patchset tries to introduce a new field named "managed_pages" to
      struct zone, which counts "pages managed by the buddy system".  And revert
      zone->present_pages to count "physical pages existing in a zone", which
      also keep in consistence with pgdat->node_present_pages.
      
      We will set an initial value for zone->managed_pages in function
      free_area_init_core() and will adjust it later if the initial value is
      inaccurate.
      
      For DMA/normal zones, the initial value is set to:
      
      	(spanned_pages - absent_pages - memmap_pages - dma_reserve)
      
      Later zone->managed_pages will be adjusted to the accurate value when the
      bootmem allocator frees all free pages to the buddy system in function
      free_all_bootmem_node() and free_all_bootmem().
      
      The bootmem allocator doesn't touch highmem pages, so highmem zones'
      managed_pages is set to the accurate value "spanned_pages - absent_pages"
      in function free_area_init_core() and won't be updated anymore.
      
      This patch also adds a new field "managed_pages" to /proc/zoneinfo
      and sysrq showmem.
      
      [akpm@linux-foundation.org: small comment tweaks]
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Cc: Wen Congyang <wency@cn.fujitsu.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Maciej Rutecki <maciej.rutecki@gmail.com>
      Tested-by: default avatarChris Clayton <chris2553@googlemail.com>
      Cc: "Rafael J . Wysocki" <rjw@sisk.pl>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: Jianguo Wu <wujianguo@huawei.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9feedc9d