24 Mar, 2012

1 commit

  • Pull KGDB/KDB updates from Jason Wessel:
    "Fixes:
    - Fix KDB keyboard repeat scan codes and leaked keyboard events
    - Fix kernel crash with kdb_printf() for users who compile new
    kdb_printf()'s in early code
    - Return all segment registers to gdb on x86_64

    Features:
    - KDB/KGDB hook the reboot notifier and end user can control if it
    stops, detaches or does nothing (updated docs as well)
    - Notify users who use CONFIG_DEBUG_RODATA to use hw breakpoints"

    * tag 'for_linus-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
    kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint
    kdb: Avoid using dbg_io_ops until it is initialized
    kgdb,debug_core: add the ability to control the reboot notifier
    KDB: Fix usability issues relating to the 'enter' key.
    kgdb,debug-core,gdbstub: Hook the reboot notifier for debugger detach
    kgdb: Respect that flush op is optional
    kgdb: x86: Return all segment registers also in 64-bit mode

    Linus Torvalds
     

23 Mar, 2012

9 commits

  • Pull NFS client updates for Linux 3.4 from Trond Myklebust:
    "New features include:
    - Add NFS client support for containers.

    This should enable most of the necessary functionality, including
    lockd support, and support for rpc.statd, NFSv4 idmapper and
    RPCSEC_GSS upcalls into the correct network namespace from which
    the mount system call was issued.

    - NFSv4 idmapper scalability improvements

    Base the idmapper cache on the keyring interface to allow
    concurrent access to idmapper entries. Start the process of
    migrating users from the single-threaded daemon-based approach to
    the multi-threaded request-key based approach.

    - NFSv4.1 implementation id.

    Allows the NFSv4.1 client and server to mutually identify each
    other for logging and debugging purposes.

    - Support the 'vers=4.1' mount option for mounting NFSv4.1 instead of
    having to use the more counterintuitive 'vers=4,minorversion=1'.

    - SUNRPC tracepoints.

    Start the process of adding tracepoints in order to improve
    debugging of the RPC layer.

    - pNFS object layout support for autologin.

    Important bugfixes include:

    - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to
    fail to wake up all tasks when applied to priority waitqueues.

    - Ensure that we handle read delegations correctly, when we try to
    truncate a file.

    - A number of fixes for NFSv4 state manager loops (mostly to do with
    delegation recovery)."

    * tag 'nfs-for-3.4-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)
    NFS: fix sb->s_id in nfs debug prints
    xprtrdma: Remove assumption that each segment is ls_state in release_lockowner
    NFS: ncommit count is being double decremented
    SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
    Try using machine credentials for RENEW calls
    NFSv4.1: Fix a few issues in filelayout_commit_pagelist
    NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code
    ...

    Linus Torvalds
     
  • Pull pinctrl updates for v3.4 from Linus Walleij (*):
    - Switches the PXA 168, 910 and MMP over to use pinctrl
    - Locking revamped
    - Massive refactorings...
    - Reform the driver API to use multiple states
    - Support pin config in the mapping tables
    - Pinctrl drivers for the nVidia Tegra series
    - Generic pin config support lib for simple pin controllers
    - Implement pin config for the U300

    * tag 'pinctrl-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits)
    ARM: u300: configure some pins as an example
    pinctrl: support pinconfig on the U300
    pinctrl/coh901: use generic pinconf enums and parameters
    pinctrl: introduce generic pin config
    pinctrl: fix error path in pinconf_map_to_setting()
    pinctrl: allow concurrent gpio and mux function ownership of pins
    pinctrl: forward-declare struct device
    pinctrl: split pincontrol states into its own header
    pinctrl: include machine header to core.h
    ARM: tegra: Select PINCTRL Kconfig variables
    pinctrl: add a driver for NVIDIA Tegra
    pinctrl: Show selected function and group in pinmux-pins debugfs
    pinctrl: enhance mapping table to support pin config operations
    pinctrl: API changes to support multiple states per device
    pinctrl: add usecount to pins for muxing
    pinctrl: refactor struct pinctrl handling in core.c vs pinmux.c
    pinctrl: fix and simplify locking
    pinctrl: fix the pin descriptor kerneldoc
    pinctrl: assume map table entries can't have a NULL name field
    pinctrl: introduce PINCTRL_STATE_DEFAULT, define hogs as that state
    ...

    (*) What is it with all these Linuses these days? There's a Linus at
    google too. Some day I will get myself my own broadsword, and run
    around screaming "There can be only one".

    I used to be _special_ dammit. Snif.

    Linus Torvalds
     
  • Pull input subsystem updates from Dmitry Torokhov:
    "- we finally merged driver for USB version of Synaptics touchpads
    (I guess most commonly found in IBM/Lenovo keyboard/touchpad combo);

    - a bunch of new drivers for embedded platforms (Cypress
    touchscreens, DA9052 OnKey, MAX8997-haptic, Ilitek ILI210x
    touchscreens, TI touchscreen);

    - input core allows clients to specify desired clock source for
    timestamps on input events (EVIOCSCLOCKID ioctl);

    - input core allows querying state of all MT slots for given event
    code via EVIOCGMTSLOTS ioctl;

    - various driver fixes and improvements."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
    Input: ili210x - add support for Ilitek ILI210x based touchscreens
    Input: altera_ps2 - use of_match_ptr()
    Input: synaptics_usb - switch to module_usb_driver()
    Input: convert I2C drivers to use module_i2c_driver()
    Input: convert SPI drivers to use module_spi_driver()
    Input: omap4-keypad - move platform_data to
    Input: kxtj9 - who_am_i check value and initial data rate fixes
    Input: add driver support for MAX8997-haptic
    Input: tegra-kbc - revise device tree support
    Input: of_keymap - add device tree bindings for simple key matrices
    Input: wacom - fix physical size calculation for 3rd-gen Bamboo
    Input: twl4030-vibra - really switch from #if to #ifdef
    Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible
    Input: max8925_onkey - avoid accessing input device too early
    Input: max8925_onkey - allow to be used as a wakeup source
    Input: atmel-wm97xx - convert to dev_pm_ops
    Input: atmel-wm97xx - set driver owner
    Input: add cyttsp touchscreen maintainer entry
    Input: cyttsp - remove useless checks in cyttsp_probe()
    Input: usbtouchscreen - add support for Data Modul EasyTouch TP 72037
    ...

    Linus Torvalds
     
  • Pull cleancache changes from Konrad Rzeszutek Wilk:
    "This has some patches for the cleancache API that should have been
    submitted a _long_ time ago. They are basically cleanups:

    - rename of flush to invalidate

    - moving reporting of statistics into debugfs

    - use __read_mostly as necessary.

    Oh, and also the MAINTAINERS file change. The files (except the
    MAINTAINERS file) have been in #linux-next for months now. The late
    addition of MAINTAINERS file is a brain-fart on my side - didn't
    realize I needed that just until I was typing this up - and I based
    that patch on v3.3 - so the tree is on top of v3.3."

    * tag 'stable/for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
    MAINTAINERS: Adding cleancache API to the list.
    mm: cleancache: Use __read_mostly as appropiate.
    mm: cleancache: report statistics via debugfs instead of sysfs.
    mm: zcache/tmem/cleancache: s/flush/invalidate/
    mm: cleancache: s/flush/invalidate/

    Linus Torvalds
     
  • Pull drm main changes from Dave Airlie:
    "This is the main drm pull request, I'm probably going to send two more
    smaller ones, will explain below.

    This contains a patch that is also in the fbdev tree, but it should be
    the same patch, it added an API for hot unplugging framebuffer
    devices, and I need that API for a new driver.

    It also contains some changes to the i2c tree which Jean has acked,
    and one change to moorestown platform stuff in x86.

    Highlights:
    - new drivers: UDL driver for USB displaylink devices, kms only,
    should support correct hotplug operations.
    - core: i2c speedups + better hotplug support, EDID overriding via
    firmware interface - allows user to load a firmware for a broken
    monitor/kvm from userspace, it even has documentation for it.
    - exynos: new HDMI audio + hdmi 1.4 + virtual output driver
    - gma500: code cleanup
    - radeon: cleanups, CS optimisations, streamout support and pageflip
    fix
    - nouveau: NVD9 displayport support + more reclocking work
    - i915: re-enabling GMBUS, finish gpu patch (might help hibernation
    who knows), missed irq fixes, stencil tiling fixes, interlaced
    support, aliasesd PPGTT support for SNB/IVB, swizzling for SNB/IVB,
    semaphore fixes

    As well as the usual bunch of cleanups and fixes all over the place.

    I've got two things I'd like to merge a bit later:

    a) AMD support for all their new radeonhd 7000 series GPU and APUs.
    AMD dropped this a bit late due to insane internal review
    processes, (please AMD just follow Intel and let open source guys
    ship stuff early) however I don't want to penalise people who own
    this hardware (since its been on sale for 3-4 months and GPU hw
    doesn't exactly have a lifetime in years) and consign them to
    using closed drivers for longer than necessary. The changes are
    well contained and just plug into the driver new gpu functionality
    so they should be fairly regression proof. I just want to give
    them a bit of a run on the hw AMD kindly sent me.

    b) drm prime/dma-buf interface code. This is just infrastructure
    code to expose the dma-buf stuff to drm drivers and to userspace.
    I'm not planning on pushing any driver support in this cycle
    (except maybe exynos), but I'd like to get the infrastructure code
    in so for the next cycle I can start getting the driver support
    into the individual drivers. We have started driver support for
    i915, nouveau and udl along with I think exynos and omap in
    staging. However this code relies on the dma-buf tree being
    pulled into your tree first since it needs the latest interfaces
    from that tree. I'll push to get that tree sent asap.

    (oh and any warnings you see in i915 are gcc's fault from what anyone
    can see)."

    Fix up trivial conflicts in arch/x86/platform/mrst/mrst.c due to the new
    msic_thermal_platform_data() thermal function being added next to the
    tc35876x_platform_data() i2c device function..

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (326 commits)
    drm/i915: use DDC_ADDR instead of hard-coding it
    drm/radeon: use DDC_ADDR instead of hard-coding it
    drm: remove unneeded redefinition of DDC_ADDR
    drm/exynos: added virtual display driver.
    drm: allow loading an EDID as firmware to override broken monitor
    drm/exynos: enable hdmi audio feature
    drm/exynos: add default pixel format for plane
    drm/exynos: cleanup exynos_hdmi.h
    drm/exynos: add is_local member in exynos_drm_subdrv struct
    drm/exynos: add subdrv open/close functions
    drm/exynos: remove module of exynos drm subdrv
    drm/exynos: release pending pageflip events when closed
    drm/exynos: added new funtion to get/put dma address.
    drm/exynos: update gem and buffer framework.
    drm/exynos: added mode_fixup feature and code clean.
    drm/exynos: add HDMI version 1.4 support
    drm/exynos: remove exynos_mixer.h
    gma500: Fix mmap frambuffer
    drm/radeon: Drop radeon_gem_object_(un)pin.
    drm/radeon: Restrict offset for legacy display engine.
    ...

    Linus Torvalds
     
  • Sometimes it is desirable to stop the kernel debugger before allowing
    a system to reboot either with kdb or kgdb. This patch adds the
    ability to turn the reboot notifier on and off or enter the debugger
    and stop kernel execution before rebooting.

    It is possible to change the setting after booting the kernel with the
    following:

    echo 1 > /sys/module/debug_core/parameters/kgdbreboot

    It is also possible to change this setting using kdb / kgdb to
    manipulate the variable directly.

    Using KDB:
    mm kgdbreboot 1

    Using gdb:
    set kgdbreboot=1

    Reported-by: Jan Kiszka
    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • Pull updates of sound stuff from Takashi Iwai:
    "Here is the first big update chunk of sound stuff for 3.4-rc1.

    In the common sound infrastructure, there are a few changes for
    dynamic PCM support (used in ASoC) and a few clean-ups. Majority of
    changes are found, as usual, in HD-audio and ASoC.

    Some highlights of HD-audio changes:

    - All the long-standing static quirk codes for Realtek codec were
    finally removed by fixing and extending the Realtek auto-parser.

    - The mute-LED control is standardized over all HD-audio codec
    drivers using the extended vmaster hook.

    - The vmaster slave mixer elements are initialized to 0dB as default
    so that the user won't be annoyed by the silent output after
    updates, e.g. due to the additions of new elements.

    - Other many fix-ups for the misc HD-audio devices.

    In the ASoC side, this is a very active release, including a quite a
    few framework enhancements. Some highlights:

    - Support for widgets not associated with a CODEC, an important part
    of the dynamic PCM framework.

    - A library factoring out the common code shared by dmaengine based
    DMA drivers contributed by Lars-Peter Clausen. This will save a
    lot of code and make it much easier to deploy enhancements to
    dmaengine.

    - Support for binary controls, used for providing runtime
    configuration of algorithm coefficients.

    - A new DAPM widget type for regulator supplies allowing drivers for
    devices that can power down unused supplies while active to do
    without any per-driver code.

    - DAPM widgets for DAIs, initially giving a speed boost for playback
    startup and shutdown and also the basis for CODECCODEC DAI link
    support.

    - Support for specifying the number of significant bits on audio
    interfaces, useful for allowing applications to know how much
    effort to put into generating data for a larger sample format.

    - Conversion of the FSI driver used on some SH processors to
    DMAEngine.

    - Conversion of EP93xx drivers to DMAEngine.

    - New CODEC drivers for Maxim MAX9768 and Wolfson Microelectronics
    WM2200.

    - Move audmux driver from arc/arm to sound/soc

    - McBSP move from arch/ to sound/ and updates

    Also, a few small updates and fixes for other drivers like au88x0,
    ymfpci, USB 6fire, USB usx2yaudio are included."

    * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (446 commits)
    ASoC: wm8994: Provide VMID mode control and fix default sequence
    ASoC: wm8994: Add missing break in resume
    ASoC: wm_hubs: Don't actively manage LINEOUT_VMID_BUF
    ASoC: pxa-ssp: atomically set stream active masks
    ASoC: fsl: p1022ds: tell the WM8776 codec driver that it's the master
    ASoC: Samsung: Added to support mono recording
    ALSA: hda - Fix build with CONFIG_PM=n
    ALSA: au88x0 - Avoid possible Oops at unbinding
    ALSA: usb-audio - Fix build error by consitification of rate list
    ASoC: core: Fix obscure leak of runtime array
    ALSA: pcm - Avoid GFP_ATOMIC in snd_pcm_link()
    ALSA: pcm: Constify the list in snd_pcm_hw_constraint_list
    ASoC: wm8996: Add 44.1kHz support
    ALSA: hda - Fix build of patch_sigmatel.c without CONFIG_SND_HDA_POWER_SAVE
    ASoC: mx27vis-aic32x4: Convert it to platform driver
    ALSA: hda - fix printing of high HDMI sample rates
    ALSA: ymfpci - Fix legacy registers on S3/S4 resume
    ALSA: control - Fixe a trailing white space error
    ALSA: hda - Add expose_enum_ctl flag to snd_hda_add_vmaster_hook()
    ALSA: hda - Add "Mute-LED Mode" enum control
    ...

    Linus Torvalds
     
  • SCSI updates from James Bottomley:
    "The update includes the usual assortment of driver updates (lpfc,
    qla2xxx, qla4xxx, bfa, bnx2fc, bnx2i, isci, fcoe, hpsa) plus a huge
    amount of infrastructure work in the SAS library and transport class
    as well as an iSCSI update. There's also a new SCSI based virtio
    driver."

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (177 commits)
    [SCSI] qla4xxx: Update driver version to 5.02.00-k15
    [SCSI] qla4xxx: trivial cleanup
    [SCSI] qla4xxx: Fix sparse warning
    [SCSI] qla4xxx: Add support for multiple session per host.
    [SCSI] qla4xxx: Export CHAP index as sysfs attribute
    [SCSI] scsi_transport: Export CHAP index as sysfs attribute
    [SCSI] qla4xxx: Add support to display CHAP list and delete CHAP entry
    [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry
    [SCSI] pm8001: fix endian issue with code optimization.
    [SCSI] pm8001: Fix possible racing condition.
    [SCSI] pm8001: Fix bogus interrupt state flag issue.
    [SCSI] ipr: update PCI ID definitions for new adapters
    [SCSI] qla2xxx: handle default case in qla2x00_request_firmware()
    [SCSI] isci: improvements in driver unloading routine
    [SCSI] isci: improve phy event warnings
    [SCSI] isci: debug, provide state-enum-to-string conversions
    [SCSI] scsi_transport_sas: 'enable' phys on reset
    [SCSI] libsas: don't recover end devices attached to disabled phys
    [SCSI] libsas: fixup target_port_protocols for expanders that don't report sata
    [SCSI] libsas: set attached device type and target protocols for local phys
    ...

    Linus Torvalds
     
  • Merge first batch of patches from Andrew Morton:
    "A few misc things and all the MM queue"

    * emailed from Andrew Morton : (92 commits)
    memcg: avoid THP split in task migration
    thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE
    memcg: clean up existing move charge code
    mm/memcontrol.c: remove unnecessary 'break' in mem_cgroup_read()
    mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()
    mm/memcontrol.c: s/stealed/stolen/
    memcg: fix performance of mem_cgroup_begin_update_page_stat()
    memcg: remove PCG_FILE_MAPPED
    memcg: use new logic for page stat accounting
    memcg: remove PCG_MOVE_LOCK flag from page_cgroup
    memcg: simplify move_account() check
    memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)
    memcg: kill dead prev_priority stubs
    memcg: remove PCG_CACHE page_cgroup flag
    memcg: let css_get_next() rely upon rcu_read_lock()
    cgroup: revert ss_id_lock to spinlock
    idr: make idr_get_next() good for rcu_read_lock()
    memcg: remove unnecessary thp check in page stat accounting
    memcg: remove redundant returns
    memcg: enum lru_list lru
    ...

    Linus Torvalds
     

22 Mar, 2012

13 commits

  • Pull powerpc merge from Benjamin Herrenschmidt:
    "Here's the powerpc batch for this merge window. It is going to be a
    bit more nasty than usual as in touching things outside of
    arch/powerpc mostly due to the big iSeriesectomy :-) We finally got
    rid of the bugger (legacy iSeries support) which was a PITA to
    maintain and that nobody really used anymore.

    Here are some of the highlights:

    - Legacy iSeries is gone. Thanks Stephen ! There's still some bits
    and pieces remaining if you do a grep -ir series arch/powerpc but
    they are harmless and will be removed in the next few weeks
    hopefully.

    - The 'fadump' functionality (Firmware Assisted Dump) replaces the
    previous (equivalent) "pHyp assisted dump"... it's a rewrite of a
    mechanism to get the hypervisor to do crash dumps on pSeries, the
    new implementation hopefully being much more reliable. Thanks
    Mahesh Salgaonkar.

    - The "EEH" code (pSeries PCI error handling & recovery) got a big
    spring cleaning, motivated by the need to be able to implement a
    new backend for it on top of some new different type of firwmare.

    The work isn't complete yet, but a good chunk of the cleanups is
    there. Note that this adds a field to struct device_node which is
    not very nice and which Grant objects to. I will have a patch soon
    that moves that to a powerpc private data structure (hopefully
    before rc1) and we'll improve things further later on (hopefully
    getting rid of the need for that pointer completely). Thanks Gavin
    Shan.

    - I dug into our exception & interrupt handling code to improve the
    way we do lazy interrupt handling (and make it work properly with
    "edge" triggered interrupt sources), and while at it found & fixed
    a wagon of issues in those areas, including adding support for page
    fault retry & fatal signals on page faults.

    - Your usual random batch of small fixes & updates, including a bunch
    of new embedded boards, both Freescale and APM based ones, etc..."

    I fixed up some conflicts with the generalized irq-domain changes from
    Grant Likely, hopefully correctly.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (141 commits)
    powerpc/ps3: Do not adjust the wrapper load address
    powerpc: Remove the rest of the legacy iSeries include files
    powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces
    init: Remove CONFIG_PPC_ISERIES
    powerpc: Remove FW_FEATURE ISERIES from arch code
    tty/hvc_vio: FW_FEATURE_ISERIES is no longer selectable
    powerpc/spufs: Fix double unlocks
    powerpc/5200: convert mpc5200 to use of_platform_populate()
    powerpc/mpc5200: add options to mpc5200_defconfig
    powerpc/mpc52xx: add a4m072 board support
    powerpc/mpc5200: update mpc5200_defconfig to fit for charon board
    Documentation/powerpc/mpc52xx.txt: Checkpatch cleanup
    powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board
    powerpc/44x: Add support PCI-E for APM821xx SoC and Bluestone board
    MAINTAINERS: Update PowerPC 4xx tree
    powerpc/44x: The bug fixed support for APM821xx SoC and Bluestone board
    powerpc: document the FSL MPIC message register binding
    powerpc: add support for MPIC message register API
    powerpc/fsl: Added aliased MSIIR register address to MSI node in dts
    powerpc/85xx: mpc8548cds - add 36-bit dts
    ...

    Linus Torvalds
     
  • Stack for a new thread is mapped by userspace code and passed via
    sys_clone. This memory is currently seen as anonymous in
    /proc//maps, which makes it difficult to ascertain which mappings
    are being used for thread stacks. This patch uses the individual task
    stack pointers to determine which vmas are actually thread stacks.

    For a multithreaded program like the following:

    #include

    void *thread_main(void *foo)
    {
    while(1);
    }

    int main()
    {
    pthread_t t;
    pthread_create(&t, NULL, thread_main, NULL);
    pthread_join(t, NULL);
    }

    proc/PID/maps looks like the following:

    00400000-00401000 r-xp 00000000 fd:0a 3671804 /home/siddhesh/a.out
    00600000-00601000 rw-p 00000000 fd:0a 3671804 /home/siddhesh/a.out
    019ef000-01a10000 rw-p 00000000 00:00 0 [heap]
    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0
    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0
    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0
    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0
    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0
    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0
    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0
    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0 [stack]
    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0 [vdso]
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

    Here, one could guess that 7f8a44492000-7f8a44c92000 is a stack since
    the earlier vma that has no permissions (7f8a44e3d000-7f8a4503d000) but
    that is not always a reliable way to find out which vma is a thread
    stack. Also, /proc/PID/maps and /proc/PID/task/TID/maps has the same
    content.

    With this patch in place, /proc/PID/task/TID/maps are treated as 'maps
    as the task would see it' and hence, only the vma that that task uses as
    stack is marked as [stack]. All other 'stack' vmas are marked as
    anonymous memory. /proc/PID/maps acts as a thread group level view,
    where all thread stack vmas are marked as [stack:TID] where TID is the
    process ID of the task that uses that vma as stack, while the process
    stack is marked as [stack].

    So /proc/PID/maps will look like this:

    00400000-00401000 r-xp 00000000 fd:0a 3671804 /home/siddhesh/a.out
    00600000-00601000 rw-p 00000000 fd:0a 3671804 /home/siddhesh/a.out
    019ef000-01a10000 rw-p 00000000 00:00 0 [heap]
    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0
    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0 [stack:1442]
    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0
    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0
    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0
    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0
    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0
    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0 [stack]
    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0 [vdso]
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

    Thus marking all vmas that are used as stacks by the threads in the
    thread group along with the process stack. The task level maps will
    however like this:

    00400000-00401000 r-xp 00000000 fd:0a 3671804 /home/siddhesh/a.out
    00600000-00601000 rw-p 00000000 fd:0a 3671804 /home/siddhesh/a.out
    019ef000-01a10000 rw-p 00000000 00:00 0 [heap]
    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0
    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0 [stack]
    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482 /lib64/libc-2.14.90.so
    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0
    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938 /lib64/libpthread-2.14.90.so
    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0
    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0
    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0
    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348 /lib64/ld-2.14.90.so
    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0
    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0
    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0 [vdso]
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

    where only the vma that is being used as a stack by *that* task is
    marked as [stack].

    Analogous changes have been made to /proc/PID/smaps,
    /proc/PID/numa_maps, /proc/PID/task/TID/smaps and
    /proc/PID/task/TID/numa_maps. Relevant snippets from smaps and
    numa_maps:

    [siddhesh@localhost ~ ]$ pgrep a.out
    1441
    [siddhesh@localhost ~ ]$ cat /proc/1441/smaps | grep "\[stack"
    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0 [stack:1442]
    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0 [stack]
    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/smaps | grep "\[stack"
    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0 [stack]
    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/smaps | grep "\[stack"
    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0 [stack]
    [siddhesh@localhost ~ ]$ cat /proc/1441/numa_maps | grep "stack"
    7f8a44492000 default stack:1442 anon=2 dirty=2 N0=2
    7fff6273a000 default stack anon=3 dirty=3 N0=3
    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/numa_maps | grep "stack"
    7f8a44492000 default stack anon=2 dirty=2 N0=2
    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/numa_maps | grep "stack"
    7fff6273a000 default stack anon=3 dirty=3 N0=3

    [akpm@linux-foundation.org: checkpatch fixes]
    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Siddhesh Poyarekar
    Cc: KOSAKI Motohiro
    Cc: Alexander Viro
    Cc: Jamie Lokier
    Cc: Mike Frysinger
    Cc: Alexey Dobriyan
    Cc: Matt Mackall
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Siddhesh Poyarekar
     
  • The behavior of THP can either be toggled through sysfs in runtime or
    using a kernel cmdline parameter 'transparent_hugepage='. Document the
    latter in kernel-parameters.txt

    Signed-off-by: Jiri Kosina
    Cc: Andrea Arcangeli
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     
  • page-types, which is a common user of pagemap, gets aware of thp with this
    patch. This helps system admins and kernel hackers know about how thp
    works. Here is a sample output of page-types over a thp:

    $ page-types -p --raw --list

    voffset offset len flags
    ...
    7f9d40200 3f8400 1 ___U_lA____Ma_bH______t____________
    7f9d40201 3f8401 1ff ________________T_____t____________

    flags page-count MB symbolic-flags long-symbolic-flags
    0x0000000000410000 511 1 ________________T_____t____________ compound_tail,thp
    0x000000000040d868 1 0 ___U_lA____Ma_bH______t____________ uptodate,lru,active,mmap,anonymous,swapbacked,compound_head,thp

    Signed-off-by: Naoya Horiguchi
    Acked-by: Wu Fengguang
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: KOSAKI Motohiro
    Cc: David Rientjes
    Cc: Andi Kleen
    Cc: Andrea Arcangeli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi
     
  • Pull vfs pile 1 from Al Viro:
    "This is _not_ all; in particular, Miklos' and Jan's stuff is not there
    yet."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)
    ext4: initialization of ext4_li_mtx needs to be done earlier
    debugfs-related mode_t whack-a-mole
    hfsplus: add an ioctl to bless files
    hfsplus: change finder_info to u32
    hfsplus: initialise userflags
    qnx4: new helper - try_extent()
    qnx4: get rid of qnx4_bread/qnx4_getblk
    take removal of PF_FORKNOEXEC to flush_old_exec()
    trim includes in inode.c
    um: uml_dup_mmap() relies on ->mmap_sem being held, but activate_mm() doesn't hold it
    um: embed ->stub_pages[] into mmu_context
    gadgetfs: list_for_each_safe() misuse
    ocfs2: fix leaks on failure exits in module_init
    ecryptfs: make register_filesystem() the last potential failure exit
    ntfs: forgets to unregister sysctls on register_filesystem() failure
    logfs: missing cleanup on register_filesystem() failure
    jfs: mising cleanup on register_filesystem() failure
    make configfs_pin_fs() return root dentry on success
    configfs: configfs_create_dir() has parent dentry in dentry->d_parent
    configfs: sanitize configfs_create()
    ...

    Linus Torvalds
     
  • Pull security subsystem updates for 3.4 from James Morris:
    "The main addition here is the new Yama security module from Kees Cook,
    which was discussed at the Linux Security Summit last year. Its
    purpose is to collect miscellaneous DAC security enhancements in one
    place. This also marks a departure in policy for LSM modules, which
    were previously limited to being standalone access control systems.
    Chromium OS is using Yama, and I believe there are plans for Ubuntu,
    at least.

    This patchset also includes maintenance updates for AppArmor, TOMOYO
    and others."

    Fix trivial conflict in due to the jumo_label->static_key
    rename.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)
    AppArmor: Fix location of const qualifier on generated string tables
    TOMOYO: Return error if fails to delete a domain
    AppArmor: add const qualifiers to string arrays
    AppArmor: Add ability to load extended policy
    TOMOYO: Return appropriate value to poll().
    AppArmor: Move path failure information into aa_get_name and rename
    AppArmor: Update dfa matching routines.
    AppArmor: Minor cleanup of d_namespace_path to consolidate error handling
    AppArmor: Retrieve the dentry_path for error reporting when path lookup fails
    AppArmor: Add const qualifiers to generated string tables
    AppArmor: Fix oops in policy unpack auditing
    AppArmor: Fix error returned when a path lookup is disconnected
    KEYS: testing wrong bit for KEY_FLAG_REVOKED
    TOMOYO: Fix mount flags checking order.
    security: fix ima kconfig warning
    AppArmor: Fix the error case for chroot relative path name lookup
    AppArmor: fix mapping of META_READ to audit and quiet flags
    AppArmor: Fix underflow in xindex calculation
    AppArmor: Fix dropping of allowed operations that are force audited
    AppArmor: Add mising end of structure test to caps unpacking
    ...

    Linus Torvalds
     
  • Pull hwmon changes for v3.4 from Guenter Roeck:
    "Mostly cleanup. No new drivers this time around, but support for
    several chips added to existing drivers: TPS40400, TPS40422, MTD040,
    MAX34446, ZL9101M, ZL9117M, and LM96080. Also, added watchdog support
    for SCH56xx, and additional attributes for a couple of drivers."

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (137 commits)
    hwmon: (sch56xx) Add support for the integrated watchdog (v2)
    hwmon: (w83627ehf) Add support for temperature offset registers
    hwmon: (jc42) Remove unnecessary device IDs
    hwmon: (zl6100) Add support for ZL9101M and ZL9117M
    hwmon: (adm1275) Add support for ADM1075
    hwmon: (max34440) Add support for MAX34446
    hwmon: (pmbus) Add more virtual registers
    hwmon: (pmbus) Add support for Lineage Power MDT040
    hwmon: (pmbus) Add support for TI TPS40400 and TPS40422
    hwmon: (max34440) Add support for 'lowest' output voltage attribute
    hwmon: (jc42) Convert to use devm_kzalloc
    hwmon: (max16065) Convert to use devm_kzalloc
    hwmon: (smm665) Convert to use devm_kzalloc
    hwmon: (ltc4261) Convert to use devm_kzalloc
    hwmon: (pmbus) Simplify remove functions
    hwmon: (pmbus) Convert pmbus drivers to use devm_kzalloc
    hwmon: (lineage-pem) Convert to use devm_kzalloc
    hwmon: (hwmon-vid) Fix checkpatch issues
    hwmon: (hwmon-vid) Add new entries to VRM model table
    hwmon: (lm80) Add detection of NatSemi/TI LM96080
    ...

    Linus Torvalds
     
  • Pull regulator updates for 3.4 from Mark Brown:
    "This has been a fairly quiet release from a regulator point of view,
    the only real framework features added were devm support and a
    convenience helper for setting up fixed voltage regulators.

    We also added a couple of drivers (but will drop the BQ240022 driver
    via the arm-soc tree as it's been replaced by the more generic
    gpio-regulator driver) and Axel Lin continued his relentless and
    generally awesome stream of fixes and cleanups."

    * tag 'regulator-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (93 commits)
    regulator: Fix up a confusing dev_warn when DT lookup fails
    regulator: Convert tps6507x to set_voltage_sel
    regulator: Refactor tps6507x to use one tps6507x_pmic_ops for all LDOs and DCDCs
    regulator: Make s5m8767_get_voltage_register always return correct register
    regulator: s5m8767: Check pdata->buck[2|3|4]_gpiodvs earlier
    regulator: tps65910: Provide settling time for DCDC voltage change
    regulator: Add Anatop regulator driver
    regulator: Simplify implementation of tps65912_get_voltage_dcdc
    regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx
    regulator: tps65910: Provide settling time for enabling rails
    regulator: max8925: Use DIV_ROUND_UP macro
    regulator: tps65912: Use simple equations to get register address
    regulator: Fix the logic of tps65910_get_mode
    regulator: Merge tps65217_pmic_ldo234_ops and tps65217_pmic_dcdc_ops to tps65217_pmic_ops
    regulator: Use DIV_ROUND_CLOSEST in wm8350_isink_get_current
    regulator: Use array to store dcdc_range settings for tps65912
    regulator: Rename s5m8767_convert_voltage to s5m8767_convert_voltage_to_sel
    regulator: tps6524x: Remove unneeded comment for N_REGULATORS
    regulator: Rename set_voltage_sel callback function name to *_sel
    regulator: Fix s5m8767_set_voltage_time_sel calculation value
    ...

    Linus Torvalds
     
  • Pull SPI changes for v3.4 from Grant Likely:
    "Mostly a bunch of new drivers and driver bug fixes; but this also
    includes a few patches that create a core message queue infrastructure
    for the spi subsystem instead of making each driver open code it."

    * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6: (34 commits)
    spi/fsl-espi: Make sure pm is within 2..32
    spi/fsl-espi: make the clock computation easier to read
    spi: sh-hspi: modify write/read method
    spi: sh-hspi: control spi clock more correctly
    spi: sh-hspi: convert to using core message queue
    spi: s3c64xx: Fix build
    spi: s3c64xx: remove unnecessary callback msg->complete
    spi: remove redundant variable assignment
    spi: release lock on error path in spi_pump_messages()
    spi: Compatibility with direction which is used in samsung DMA operation
    spi-topcliff-pch: add recovery processing in case wait-event timeout
    spi-topcliff-pch: supports a spi mode setup and bit order setup by IO control
    spi-topcliff-pch: Fix issue for transmitting over 4KByte
    spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device info
    spi/imx: simplify error handling to free gpios
    spi: Convert to DEFINE_PCI_DEVICE_TABLE
    spi: add Broadcom BCM63xx SPI controller driver
    SPI: add CSR SiRFprimaII SPI controller driver
    spi-topcliff-pch: fix -Wuninitialized warning
    spi: Mark spi_register_board_info() __devinit
    ...

    Linus Torvalds
     
  • Pull core device tree changes for Linux v3.4 from Grant Likely:
    "This branch contains a minor documentation addition, a utility
    function for parsing string properties needed by some of the new ARM
    platforms, disables dynamic DT code that isn't used anywhere but on a
    few PPC machines, and exports DT node compatible data to userspace via
    UEVENT properties. Nothing earth shattering here."

    * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    of: Only compile OF_DYNAMIC on PowerPC pseries and iseries
    arm/dts: OMAP3: Add omap3evm and am335xevm support
    drivercore: Output common devicetree information in uevent
    of: Add of_property_match_string() to find index into a string list

    Linus Torvalds
     
  • Pull irq_domain support for all architectures from Grant Likely:
    "Generialize powerpc's irq_host as irq_domain

    This branch takes the PowerPC irq_host infrastructure (reverse mapping
    from Linux IRQ numbers to hardware irq numbering), generalizes it,
    renames it to irq_domain, and makes it available to all architectures.

    Originally the plan has been to create an all-new irq_domain
    implementation which addresses some of the powerpc shortcomings such
    as not handling 1:1 mappings well, but doing that proved to be far
    more difficult and invasive than generalizing the working code and
    refactoring it in-place. So, this branch rips out the 'new'
    irq_domain and replaces it with the modified powerpc version (in a
    fully bisectable way of course). It converts all users over to the
    new API and makes irq_domain selectable on any architecture.

    No architecture is forced to enable irq_domain, but the infrastructure
    is required for doing OpenFirmware style irq translations. It will
    even work on SPARC even though SPARC has it's own mechanism for
    translating irqs at boot time. MIPS, microblaze, embedded x86 and c6x
    are converted too.

    The resulting irq_domain code is probably still too verbose and can be
    optimized more, but that can be done incrementally and is a task for
    follow-on patches."

    * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6: (31 commits)
    dt: fix twl4030 for non-dt compile on x86
    mfd: twl-core: Add IRQ_DOMAIN dependency
    devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc)
    irq_domain: Centralize definition of irq_dispose_mapping()
    irq_domain/mips: Allow irq_domain on MIPS
    irq_domain/x86: Convert x86 (embedded) to use common irq_domain
    ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c
    irq_domain/microblaze: Convert microblaze to use irq_domains
    irq_domain/powerpc: Replace custom xlate functions with library functions
    irq_domain/powerpc: constify irq_domain_ops
    irq_domain/c6x: Use library of xlate functions
    irq_domain/c6x: constify irq_domain structures
    irq_domain/c6x: Convert c6x to use generic irq_domain support.
    irq_domain: constify irq_domain_ops
    irq_domain: Create common xlate functions that device drivers can use
    irq_domain: Remove irq_domain_add_simple()
    irq_domain: Remove 'new' irq_domain in favour of the ppc one
    mfd: twl-core.c: Fix the number of interrupts managed by twl4030
    of/address: add empty static inlines for !CONFIG_OF
    irq_domain: Add support for base irq and hwirq in legacy mappings
    ...

    Linus Torvalds
     
  • Pull power management updates for 3.4 from Rafael Wysocki:
    "Assorted extensions and fixes including:

    * Introduction of early/late suspend/hibernation device callbacks.
    * Generic PM domains extensions and fixes.
    * devfreq updates from Axel Lin and MyungJoo Ham.
    * Device PM QoS updates.
    * Fixes of concurrency problems with wakeup sources.
    * System suspend and hibernation fixes."

    * tag 'pm-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (43 commits)
    PM / Domains: Check domain status during hibernation restore of devices
    PM / devfreq: add relation of recommended frequency.
    PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()
    PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()
    PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()
    PM / Domains: Introduce "always on" device flag
    PM / Domains: Fix hibernation restore of devices, v2
    PM / Domains: Fix handling of wakeup devices during system resume
    sh_mmcif / PM: Use PM QoS latency constraint
    tmio_mmc / PM: Use PM QoS latency constraint
    PM / QoS: Make it possible to expose PM QoS latency constraints
    PM / Sleep: JBD and JBD2 missing set_freezable()
    PM / Domains: Fix include for PM_GENERIC_DOMAINS=n case
    PM / Freezer: Remove references to TIF_FREEZE in comments
    PM / Sleep: Add more wakeup source initialization routines
    PM / Hibernate: Enable usermodehelpers in hibernate() error path
    PM / Sleep: Make __pm_stay_awake() delete wakeup source timers
    PM / Sleep: Fix race conditions related to wakeup source timer function
    PM / Sleep: Fix possible infinite loop during wakeup source destruction
    PM / Hibernate: print physical addresses consistently with other parts of kernel
    ...

    Linus Torvalds
     
  • Pull kmap_atomic cleanup from Cong Wang.

    It's been in -next for a long time, and it gets rid of the (no longer
    used) second argument to k[un]map_atomic().

    Fix up a few trivial conflicts in various drivers, and do an "evil
    merge" to catch some new uses that have come in since Cong's tree.

    * 'kmap_atomic' of git://github.com/congwang/linux: (59 commits)
    feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal
    highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]
    drbd: remove the second argument of k[un]map_atomic()
    zcache: remove the second argument of k[un]map_atomic()
    gma500: remove the second argument of k[un]map_atomic()
    dm: remove the second argument of k[un]map_atomic()
    tomoyo: remove the second argument of k[un]map_atomic()
    sunrpc: remove the second argument of k[un]map_atomic()
    rds: remove the second argument of k[un]map_atomic()
    net: remove the second argument of k[un]map_atomic()
    mm: remove the second argument of k[un]map_atomic()
    lib: remove the second argument of k[un]map_atomic()
    power: remove the second argument of k[un]map_atomic()
    kdb: remove the second argument of k[un]map_atomic()
    udf: remove the second argument of k[un]map_atomic()
    ubifs: remove the second argument of k[un]map_atomic()
    squashfs: remove the second argument of k[un]map_atomic()
    reiserfs: remove the second argument of k[un]map_atomic()
    ocfs2: remove the second argument of k[un]map_atomic()
    ntfs: remove the second argument of k[un]map_atomic()
    ...

    Linus Torvalds
     

21 Mar, 2012

15 commits

  • The pnfs-objects protocol mandates that we autologin into devices not
    present in the system, according to information specified in the
    get_device_info returned from the server.

    The Protocol specifies two login hints.
    1. An IP address:port combination
    2. A string URI which is constructed as a URL with a protocol prefix
    followed by :// and a string as address. For each protocol prefix
    the string-address format might be different.

    We only support the second option. The first option is just redundant
    to the second one.
    NOTE: The Kernel part of autologin does not parse the URI string. It
    just channels it to a user-mode script. So any new login protocols should
    only update the user-mode script which is a part of the nfs-utils package,
    but the Kernel need not change.

    We implement the autologin by using the call_usermodehelper() API.
    (Thanks to Steve Dickson for pointing it out)
    So there is no running daemon needed, and/or special setup.

    We Add the osd_login_prog Kernel module parameters which defaults to:
    /sbin/osd_login

    Kernel try's to upcall the program specified in osd_login_prog. If the file is
    not found or the execution fails Kernel will disable any farther upcalls, by
    zeroing out osd_login_prog, Until Admin re-enables it by setting the
    osd_login_prog parameter to a proper program.

    Also add text about the osd_login program command line API to:
    Documentation/filesystems/nfs/pnfs.txt
    and documentation of the new osd_login_prog module parameter to:
    Documentation/kernel-parameters.txt

    TODO: Add timeout option in the case osd_login program gets
    stuck

    Signed-off-by: Sachin Bhamare
    Signed-off-by: Boaz Harrosh
    Signed-off-by: Trond Myklebust

    Sachin Bhamare
     
  • Pull trivial tree from Jiri Kosina:
    "It's indeed trivial -- mostly documentation updates and a bunch of
    typo fixes from Masanari.

    There are also several linux/version.h include removals from Jesper."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)
    kcore: fix spelling in read_kcore() comment
    constify struct pci_dev * in obvious cases
    Revert "char: Fix typo in viotape.c"
    init: fix wording error in mm_init comment
    usb: gadget: Kconfig: fix typo for 'different'
    Revert "power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c"
    writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header
    writeback: fix typo in the writeback_control comment
    Documentation: Fix multiple typo in Documentation
    tpm_tis: fix tis_lock with respect to RCU
    Revert "media: Fix typo in mixer_drv.c and hdmi_drv.c"
    Doc: Update numastat.txt
    qla4xxx: Add missing spaces to error messages
    compiler.h: Fix typo
    security: struct security_operations kerneldoc fix
    Documentation: broken URL in libata.tmpl
    Documentation: broken URL in filesystems.tmpl
    mtd: simplify return logic in do_map_probe()
    mm: fix comment typo of truncate_inode_pages_range
    power: bq27x00: Fix typos in comment
    ...

    Linus Torvalds
     
  • Pull networking merge from David Miller:
    "1) Move ixgbe driver over to purely page based buffering on receive.
    From Alexander Duyck.

    2) Add receive packet steering support to e1000e, from Bruce Allan.

    3) Convert TCP MD5 support over to RCU, from Eric Dumazet.

    4) Reduce cpu usage in handling out-of-order TCP packets on modern
    systems, also from Eric Dumazet.

    5) Support the IP{,V6}_UNICAST_IF socket options, making the wine
    folks happy, from Erich Hoover.

    6) Support VLAN trunking from guests in hyperv driver, from Haiyang
    Zhang.

    7) Support byte-queue-limtis in r8169, from Igor Maravic.

    8) Outline code intended for IP_RECVTOS in IP_PKTOPTIONS existed but
    was never properly implemented, Jiri Benc fixed that.

    9) 64-bit statistics support in r8169 and 8139too, from Junchang Wang.

    10) Support kernel side dump filtering by ctmark in netfilter
    ctnetlink, from Pablo Neira Ayuso.

    11) Support byte-queue-limits in gianfar driver, from Paul Gortmaker.

    12) Add new peek socket options to assist with socket migration, from
    Pavel Emelyanov.

    13) Add sch_plug packet scheduler whose queue is controlled by
    userland daemons using explicit freeze and release commands. From
    Shriram Rajagopalan.

    14) Fix FCOE checksum offload handling on transmit, from Yi Zou."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1846 commits)
    Fix pppol2tp getsockname()
    Remove printk from rds_sendmsg
    ipv6: fix incorrent ipv6 ipsec packet fragment
    cpsw: Hook up default ndo_change_mtu.
    net: qmi_wwan: fix build error due to cdc-wdm dependecy
    netdev: driver: ethernet: Add TI CPSW driver
    netdev: driver: ethernet: add cpsw address lookup engine support
    phy: add am79c874 PHY support
    mlx4_core: fix race on comm channel
    bonding: send igmp report for its master
    fs_enet: Add MPC5125 FEC support and PHY interface selection
    net: bpf_jit: fix BPF_S_LDX_B_MSH compilation
    net: update the usage of CHECKSUM_UNNECESSARY
    fcoe: use CHECKSUM_UNNECESSARY instead of CHECKSUM_PARTIAL on tx
    net: do not do gso for CHECKSUM_UNNECESSARY in netif_needs_gso
    ixgbe: Fix issues with SR-IOV loopback when flow control is disabled
    net/hyperv: Fix the code handling tx busy
    ixgbe: fix namespace issues when FCoE/DCB is not enabled
    rtlwifi: Remove unused ETH_ADDR_LEN defines
    igbvf: Use ETH_ALEN
    ...

    Fix up fairly trivial conflicts in drivers/isdn/gigaset/interface.c and
    drivers/net/usb/{Kconfig,qmi_wwan.c} as per David.

    Linus Torvalds
     
  • all of those should be umode_t...

    Signed-off-by: Al Viro

    Al Viro
     
  • Making an hfsplus partition bootable requires the ability to "bless" a
    file by putting its inode number in the volume header. Doing this from
    userspace on a mounted filesystem is impractical since the kernel will
    write back the original values on unmount. Add an ioctl to allow userspace
    to update the volume header information based on the target file.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Matthew Garrett
     
  • Adds support for qnx6fs readonly support to the linux kernel.

    * Mount option
    The option mmi_fs can be used to mount Harman Becker/Audi MMI 3G
    HDD qnx6fs filesystems.

    * Documentation
    A high level filesystem stucture description can be found in the
    Documentation/filesystems directory. (qnx6.txt)

    * Additional features
    - Active (stable) superblock selection
    - Superblock checksum check (enforced)
    - Supports mount of qnx6 filesystems with to host different endianess
    - Automatic endianess detection
    - Longfilename support (with non-enfocing crc check)
    - All blocksizes (512, 1024, 2048 and 4096 supported)

    Signed-off-by: Kai Bankett
    Signed-off-by: Al Viro

    Kai Bankett
     
  • all callers converted to d_make_root() by now

    Signed-off-by: Al Viro

    Al Viro
     
  • Pull cgroup changes from Tejun Heo:
    "Out of the 8 commits, one fixes a long-standing locking issue around
    tasklist walking and others are cleanups."

    * 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list
    cgroup: Remove wrong comment on cgroup_enable_task_cg_list()
    cgroup: remove cgroup_subsys argument from callbacks
    cgroup: remove extra calls to find_existing_css_set
    cgroup: replace tasklist_lock with rcu_read_lock
    cgroup: simplify double-check locking in cgroup_attach_proc
    cgroup: move struct cgroup_pidlist out from the header file
    cgroup: remove cgroup_attach_task_current_cg()

    Linus Torvalds
     
  • Benjamin Herrenschmidt
     
  • Pull USB merge for 3.4-rc1 from Greg KH:
    "Here's the big USB merge for the 3.4-rc1 merge window.

    Lots of gadget driver reworks here, driver updates, xhci changes, some
    new drivers added, usb-serial core reworking to fix some bugs, and
    other various minor things.

    There are some patches touching arch code, but they have all been
    acked by the various arch maintainers."

    * tag 'usb-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (302 commits)
    net: qmi_wwan: add support for ZTE MF820D
    USB: option: add ZTE MF820D
    usb: gadget: f_fs: Remove lock is held before freeing checks
    USB: option: make interface blacklist work again
    usb/ub: deprecate & schedule for removal the "Low Performance USB Block" driver
    USB: ohci-pxa27x: add clk_prepare/clk_unprepare calls
    USB: use generic platform driver on ath79
    USB: EHCI: Add a generic platform device driver
    USB: OHCI: Add a generic platform device driver
    USB: ftdi_sio: new PID: LUMEL PD12
    USB: ftdi_sio: add support for FT-X series devices
    USB: serial: mos7840: Fixed MCS7820 device attach problem
    usb: Don't make USB_ARCH_HAS_{XHCI,OHCI,EHCI} depend on USB_SUPPORT.
    usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH
    USB: ohci-nxp: Remove i2c_write(), use smbus
    USB: ohci-nxp: Support for LPC32xx
    USB: ohci-nxp: Rename symbols from pnx4008 to nxp
    USB: OHCI-HCD: Rename ohci-pnx4008 to ohci-nxp
    usb: gadget: Kconfig: fix typo for 'different'
    usb: dwc3: pci: fix another failure path in dwc3_pci_probe()
    ...

    Linus Torvalds
     
  • Pull TTY/serial patches from Greg KH:
    "tty and serial merge for 3.4-rc1

    Here's the big serial and tty merge for the 3.4-rc1 tree.

    There's loads of fixes and reworks in here from Jiri for the tty
    layer, and a number of patches from Alan to help try to wrestle the vt
    layer into a sane model.

    Other than that, lots of driver updates and fixes, and other minor
    stuff, all detailed in the shortlog."

    * tag 'tty-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (132 commits)
    serial: pxa: add clk_prepare/clk_unprepare calls
    TTY: Wrong unicode value copied in con_set_unimap()
    serial: PL011: clear pending interrupts
    serial: bfin-uart: Don't access tty circular buffer in TX DMA interrupt after it is reset.
    vt: NULL dereference in vt_do_kdsk_ioctl()
    tty: serial: vt8500: fix annotations for probe/remove
    serial: remove back and forth conversions in serial_out_sync
    serial: use serial_port_in/out vs serial_in/out in 8250
    serial: introduce generic port in/out helpers
    serial: reduce number of indirections in 8250 code
    serial: delete useless void casts in 8250.c
    serial: make 8250's serial_in shareable to other drivers.
    serial: delete last unused traces of pausing I/O in 8250
    pch_uart: Add module parameter descriptions
    pch_uart: Use existing default_baud in setup_console
    pch_uart: Add user_uartclk parameter
    pch_uart: Add Fish River Island II uart clock quirks
    pch_uart: Use uartclk instead of base_baud
    mpc5200b/uart: select more tolerant uart prescaler on low baudrates
    tty: moxa: fix bit test in moxa_start()
    ...

    Linus Torvalds
     
  • Pull driver core patches for 3.4-rc1 from Greg KH:
    "Here's the big driver core merge for 3.4-rc1.

    Lots of various things here, sysfs fixes/tweaks (with the nlink
    breakage reverted), dynamic debugging updates, w1 drivers, hyperv
    driver updates, and a variety of other bits and pieces, full
    information in the shortlog."

    * tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)
    Tools: hv: Support enumeration from all the pools
    Tools: hv: Fully support the new KVP verbs in the user level daemon
    Drivers: hv: Support the newly introduced KVP messages in the driver
    Drivers: hv: Add new message types to enhance KVP
    regulator: Support driver probe deferral
    Revert "sysfs: Kill nlink counting."
    uevent: send events in correct order according to seqnum (v3)
    driver core: minor comment formatting cleanups
    driver core: move the deferred probe pointer into the private area
    drivercore: Add driver probe deferral mechanism
    DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers
    w1_bq27000: Only one thread can access the bq27000 at a time.
    w1_bq27000 - remove w1_bq27000_write
    w1_bq27000: remove unnecessary NULL test.
    sysfs: Fix memory leak in sysfs_sd_setsecdata().
    intel_idle: Revert change of auto_demotion_disable_flags for Nehalem
    w1: Fix w1_bq27000
    driver-core: documentation: fix up Greg's email address
    powernow-k6: Really enable auto-loading
    powernow-k7: Fix CPU family number
    ...

    Linus Torvalds
     
  • Pull scheduler changes for v3.4 from Ingo Molnar

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    printk: Make it compile with !CONFIG_PRINTK
    sched/x86: Fix overflow in cyc2ns_offset
    sched: Fix nohz load accounting -- again!
    sched: Update yield() docs
    printk/sched: Introduce special printk_sched() for those awkward moments
    sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
    sched: Cleanup cpu_active madness
    sched: Fix load-balance wreckage
    sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
    sched: Ditch per cgroup task lists for load-balancing
    sched: Rename load-balancing fields
    sched: Move load-balancing arguments into helper struct
    sched/rt: Do not submit new work when PI-blocked
    sched/rt: Prevent idle task boosting
    sched/wait: Add __wake_up_all_locked() API
    sched/rt: Document scheduler related skip-resched-check sites
    sched/rt: Use schedule_preempt_disabled()
    sched/rt: Add schedule_preempt_disabled()
    sched/rt: Do not throttle when PI boosting
    sched/rt: Keep period timer ticking when rt throttling is active
    ...

    Linus Torvalds
     
  • Pull perf events changes for v3.4 from Ingo Molnar:

    - New "hardware based branch profiling" feature both on the kernel and
    the tooling side, on CPUs that support it. (modern x86 Intel CPUs
    with the 'LBR' hardware feature currently.)

    This new feature is basically a sophisticated 'magnifying glass' for
    branch execution - something that is pretty difficult to extract from
    regular, function histogram centric profiles.

    The simplest mode is activated via 'perf record -b', and the result
    looks like this in perf report:

    $ perf record -b any_call,u -e cycles:u branchy

    $ perf report -b --sort=symbol
    52.34% [.] main [.] f1
    24.04% [.] f1 [.] f3
    23.60% [.] f1 [.] f2
    0.01% [k] _IO_new_file_xsputn [k] _IO_file_overflow
    0.01% [k] _IO_vfprintf_internal [k] _IO_new_file_xsputn
    0.01% [k] _IO_vfprintf_internal [k] strchrnul
    0.01% [k] __printf [k] _IO_vfprintf_internal
    0.01% [k] main [k] __printf

    This output shows from/to branch columns and shows the highest
    percentage (from,to) jump combinations - i.e. the most likely taken
    branches in the system. "branches" can also include function calls
    and any other synchronous and asynchronous transitions of the
    instruction pointer that are not 'next instruction' - such as system
    calls, traps, interrupts, etc.

    This feature comes with (hopefully intuitive) flat ascii and TUI
    support in perf report.

    - Various 'perf annotate' visual improvements for us assembly junkies.
    It will now recognize function calls in the TUI and by hitting enter
    you can follow the call (recursively) and back, amongst other
    improvements.

    - Multiple threads/processes recording support in perf record, perf
    stat, perf top - which is activated via a comma-list of PIDs:

    perf top -p 21483,21485
    perf stat -p 21483,21485 -ddd
    perf record -p 21483,21485

    - Support for per UID views, via the --uid paramter to perf top, perf
    report, etc. For example 'perf top --uid mingo' will only show the
    tasks that I am running, excluding other users, root, etc.

    - Jump label restructurings and improvements - this includes the
    factoring out of the (hopefully much clearer) include/linux/static_key.h
    generic facility:

    struct static_key key = STATIC_KEY_INIT_FALSE;

    ...

    if (static_key_false(&key))
    do unlikely code
    else
    do likely code

    ...
    static_key_slow_inc();
    ...
    static_key_slow_inc();
    ...

    The static_key_false() branch will be generated into the code with as
    little impact to the likely code path as possible. the
    static_key_slow_*() APIs flip the branch via live kernel code patching.

    This facility can now be used more widely within the kernel to
    micro-optimize hot branches whose likelihood matches the static-key
    usage and fast/slow cost patterns.

    - SW function tracer improvements: perf support and filtering support.

    - Various hardenings of the perf.data ABI, to make older perf.data's
    smoother on newer tool versions, to make new features integrate more
    smoothly, to support cross-endian recording/analyzing workflows
    better, etc.

    - Restructuring of the kprobes code, the splitting out of 'optprobes',
    and a corner case bugfix.

    - Allow the tracing of kernel console output (printk).

    - Improvements/fixes to user-space RDPMC support, allowing user-space
    self-profiling code to extract PMU counts without performing any
    system calls, while playing nice with the kernel side.

    - 'perf bench' improvements

    - ... and lots of internal restructurings, cleanups and fixes that made
    these features possible. And, as usual this list is incomplete as
    there were also lots of other improvements

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)
    perf report: Fix annotate double quit issue in branch view mode
    perf report: Remove duplicate annotate choice in branch view mode
    perf/x86: Prettify pmu config literals
    perf report: Enable TUI in branch view mode
    perf report: Auto-detect branch stack sampling mode
    perf record: Add HEADER_BRANCH_STACK tag
    perf record: Provide default branch stack sampling mode option
    perf tools: Make perf able to read files from older ABIs
    perf tools: Fix ABI compatibility bug in print_event_desc()
    perf tools: Enable reading of perf.data files from different ABI rev
    perf: Add ABI reference sizes
    perf report: Add support for taken branch sampling
    perf record: Add support for sampling taken branch
    perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK
    x86/kprobes: Split out optprobe related code to kprobes-opt.c
    x86/kprobes: Fix a bug which can modify kernel code permanently
    x86/kprobes: Fix instruction recovery on optimized path
    perf: Add callback to flush branch_stack on context switch
    perf: Disable PERF_SAMPLE_BRANCH_* when not supported
    perf/x86: Add LBR software filter support for Intel CPUs
    ...

    Linus Torvalds
     
  • Pull RCU changes for v3.4 from Ingo Molnar. The major features of this
    series are:

    - making RCU more aggressive about entering dyntick-idle mode in order
    to improve energy efficiency

    - converting a few more call_rcu()s to kfree_rcu()s

    - applying a number of rcutree fixes and cleanups to rcutiny

    - removing CONFIG_SMP #ifdefs from treercu

    - allowing RCU CPU stall times to be set via sysfs

    - adding CPU-stall capability to rcutorture

    - adding more RCU-abuse diagnostics

    - updating documentation

    - fixing yet more issues located by the still-ongoing top-to-bottom
    inspection of RCU, this time with a special focus on the CPU-hotplug
    code path.

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
    rcu: Stop spurious warnings from synchronize_sched_expedited
    rcu: Hold off RCU_FAST_NO_HZ after timer posted
    rcu: Eliminate softirq-mediated RCU_FAST_NO_HZ idle-entry loop
    rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections
    rcu: Allow nesting of rcu_idle_enter() and rcu_idle_exit()
    rcu: Remove redundant check for rcu_head misalignment
    PTR_ERR should be called before its argument is cleared.
    rcu: Convert WARN_ON_ONCE() in rcu_lock_acquire() to lockdep
    rcu: Trace only after NULL-pointer check
    rcu: Call out dangers of expedited RCU primitives
    rcu: Rework detection of use of RCU by offline CPUs
    lockdep: Add CPU-idle/offline warning to lockdep-RCU splat
    rcu: No interrupt disabling for rcu_prepare_for_idle()
    rcu: Move synchronize_sched_expedited() to rcutree.c
    rcu: Check for illegal use of RCU from offlined CPUs
    rcu: Update stall-warning documentation
    rcu: Add CPU-stall capability to rcutorture
    rcu: Make documentation give more realistic rcutorture duration
    rcutorture: Permit holding off CPU-hotplug operations during boot
    rcu: Print scheduling-clock information on RCU CPU stall-warning messages
    ...

    Linus Torvalds
     

20 Mar, 2012

2 commits

  • Signed-off-by: Cong Wang

    Cong Wang
     
  • Add support for the watchdog integrated into the SMSC SCH5627 and
    SCH5636 superio-s. Since the watchdog is part of the hwmon logical device
    and thus shares ioports with it, the watchdog driver is integrated into the
    existing hwmon drivers for these.

    Note that this version of the watchdog support for sch56xx superio-s
    implements the watchdog chardev interface itself, rather then relying on
    the recently added watchdog core / watchdog_dev. This is done because
    currently some needed functionality is missing from watchdog_dev, as soon
    as this functionality is added (which is being discussed on the
    linux-watchdog mailinglist), I'll convert this driver over to using
    watchdog_dev.

    Signed-off-by: Hans de Goede
    [guenter.roeck@ericsson.com: Added missing linux/slab.h include]
    Signed-off-by: Guenter Roeck

    Hans de Goede