03 Jun, 2012

3 commits

  • Pull device-mapper updates from Alasdair G Kergon:
    "Improve multipath's retrying mechanism in some defined circumstances
    and provide a simple reserve/release mechanism for userspace tools to
    access thin provisioning metadata while the pool is in use."

    * tag 'dm-3.5-changes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
    dm thin: provide userspace access to pool metadata
    dm thin: use slab mempools
    dm mpath: allow ioctls to trigger pg init
    dm mpath: delay retry of bypassed pg
    dm mpath: reduce size of struct multipath

    Linus Torvalds
     
  • This patch implements two new messages that can be sent to the thin
    pool target allowing it to take a snapshot of the _metadata_. This,
    read-only snapshot can be accessed by userland, concurrently with the
    live target.

    Only one metadata snapshot can be held at a time. The pool's status
    line will give the block location for the current msnap.

    Since version 0.1.5 of the userland thin provisioning tools, the
    thin_dump program displays the msnap as follows:

    thin_dump -m

    Available here: https://github.com/jthornber/thin-provisioning-tools

    Now that userland can access the metadata we can do various things
    that have traditionally been kernel side tasks:

    i) Incremental backups.

    By using metadata snapshots we can work out what blocks have
    changed over time. Combined with data snapshots we can ensure
    the data doesn't change while we back it up.

    A short proof of concept script can be found here:

    https://github.com/jthornber/thinp-test-suite/blob/master/incremental_backup_example.rb

    ii) Migration of thin devices from one pool to another.

    iii) Merging snapshots back into an external origin.

    iv) Asyncronous replication.

    Signed-off-by: Joe Thornber
    Signed-off-by: Alasdair G Kergon

    Joe Thornber
     
  • Pull straggler x86 fixes from Peter Anvin:
    "Three groups of patches:

    - EFI boot stub documentation and the ability to print error messages;
    - Removal for PTRACE_ARCH_PRCTL for x32 (obsolete interface which
    should never have been ported, and the port is broken and
    potentially dangerous.)
    - ftrace stack corruption fixes. I'm not super-happy about the
    technical implementation, but it is probably the least invasive in
    the short term. In the future I would like a single method for
    nesting the debug stack, however."

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, x32, ptrace: Remove PTRACE_ARCH_PRCTL for x32
    x86, efi: Add EFI boot stub documentation
    x86, efi; Add EFI boot stub console support
    x86, efi: Only close open files in error path
    ftrace/x86: Do not change stacks in DEBUG when calling lockdep
    x86: Allow nesting of the debug stack IDT setting
    x86: Reset the debug_stack update counter
    ftrace: Use breakpoint method to update ftrace caller
    ftrace: Synchronize variable setting with breakpoints

    Linus Torvalds
     

02 Jun, 2012

6 commits

  • Pull fbdev updates from Florian Tobias Schandinat:
    - driver for AUO-K1900 and AUO-K1901 epaper controller
    - large updates for OMAP (e.g. decouple HDMI audio and video)
    - some updates for Exynos and SH Mobile
    - various other small fixes and cleanups

    * tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6: (130 commits)
    video: bfin_adv7393fb: Fix cleanup code
    video: exynos_dp: reduce delay time when configuring video setting
    video: exynos_dp: move sw reset prioir to enabling sw defined function
    video: exynos_dp: use devm_ functions
    fb: handle NULL pointers in framebuffer release
    OMAPDSS: HDMI: OMAP4: Update IRQ flags for the HPD IRQ request
    OMAPDSS: Apply VENC timings even if panel is disabled
    OMAPDSS: VENC/DISPC: Delay dividing Y resolution for managers connected to VENC
    OMAPDSS: DISPC: Support rotation through TILER
    OMAPDSS: VRFB: remove compiler warnings when CONFIG_BUG=n
    OMAPFB: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: remove compiler warnings when CONFIG_BUG=n
    OMAPDSS: DISPC: fix usage of dispc_ovl_set_accu_uv
    OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays
    OMAPDSS: DSI: Support command mode interleaving during video mode blanking periods
    OMAPDSS: DISPC: Update Accumulator configuration for chroma plane
    drivers/video: fsl-diu-fb: don't initialize the THRESHOLDS registers
    video: exynos mipi dsi: support reverse panel type
    video: exynos mipi dsi: Properly interpret the interrupt source flags
    video: exynos mipi dsi: Avoid races in probe()
    ...

    Linus Torvalds
     
  • Pull mtd update from David Woodhouse:
    - More robust parsing especially of xattr data in JFFS2
    - Updates to mxc_nand and gpmi drivers to support new boards and device tree
    - Improve consistency of information about ECC strength in NAND devices
    - Clean up partition handling of plat_nand
    - Support NAND drivers without dedicated access to OOB area
    - BCH hardware ECC support for OMAP
    - Other fixes and cleanups, and a few new device IDs

    Fixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to
    added include files next to each other.

    * tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd: (75 commits)
    mtd: mxc_nand: move ecc strengh setup before nand_scan_tail
    mtd: block2mtd: fix recursive call of mtd_writev
    mtd: gpmi-nand: define ecc.strength
    mtd: of_parts: fix breakage in Kconfig
    mtd: nand: fix scan_read_raw_oob
    mtd: docg3 fix in-middle of blocks reads
    mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
    mtd: add fixup for S29NS512P NOR flash.
    jffs2: allow to complete xattr integrity check on first GC scan
    jffs2: allow to discriminate between recoverable and non-recoverable errors
    mtd: nand: omap: add support for hardware BCH ecc
    ARM: OMAP3: gpmc: add BCH ecc api and modes
    mtd: nand: check the return code of 'read_oob/read_oob_raw'
    mtd: nand: remove 'sndcmd' parameter of 'read_oob/read_oob_raw'
    mtd: m25p80: Add support for Winbond W25Q80BW
    jffs2: get rid of jffs2_sync_super
    jffs2: remove unnecessary GC pass on sync
    jffs2: remove unnecessary GC pass on umount
    jffs2: remove lock_super
    mtd: gpmi: add gpmi support for mx6q
    ...

    Linus Torvalds
     
  • Pull slab updates from Pekka Enberg:
    "Mainly a bunch of SLUB fixes from Joonsoo Kim"

    * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
    slub: use __SetPageSlab function to set PG_slab flag
    slub: fix a memory leak in get_partial_node()
    slub: remove unused argument of init_kmem_cache_node()
    slub: fix a possible memory leak
    Documentations: Fix slabinfo.c directory in vm/slub.txt
    slub: fix incorrect return type of get_any_partial()

    Linus Torvalds
     
  • Pull vfs changes from Al Viro.
    "A lot of misc stuff. The obvious groups:
    * Miklos' atomic_open series; kills the damn abuse of
    ->d_revalidate() by NFS, which was the major stumbling block for
    all work in that area.
    * ripping security_file_mmap() and dealing with deadlocks in the
    area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in
    general.
    * ->encode_fh() switched to saner API; insane fake dentry in
    mm/cleancache.c gone.
    * assorted annotations in fs (endianness, __user)
    * parts of Artem's ->s_dirty work (jff2 and reiserfs parts)
    * ->update_time() work from Josef.
    * other bits and pieces all over the place.

    Normally it would've been in two or three pull requests, but
    signal.git stuff had eaten a lot of time during this cycle ;-/"

    Fix up trivial conflicts in Documentation/filesystems/vfs.txt (the
    'truncate_range' inode method was removed by the VM changes, the VFS
    update adds an 'update_time()' method), and in fs/btrfs/ulist.[ch] (due
    to sparse fix added twice, with other changes nearby).

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)
    nfs: don't open in ->d_revalidate
    vfs: retry last component if opening stale dentry
    vfs: nameidata_to_filp(): don't throw away file on error
    vfs: nameidata_to_filp(): inline __dentry_open()
    vfs: do_dentry_open(): don't put filp
    vfs: split __dentry_open()
    vfs: do_last() common post lookup
    vfs: do_last(): add audit_inode before open
    vfs: do_last(): only return EISDIR for O_CREAT
    vfs: do_last(): check LOOKUP_DIRECTORY
    vfs: do_last(): make ENOENT exit RCU safe
    vfs: make follow_link check RCU safe
    vfs: do_last(): use inode variable
    vfs: do_last(): inline walk_component()
    vfs: do_last(): make exit RCU safe
    vfs: split do_lookup()
    Btrfs: move over to use ->update_time
    fs: introduce inode operation ->update_time
    reiserfs: get rid of resierfs_sync_super
    reiserfs: mark the superblock as dirty a bit later
    ...

    Linus Torvalds
     
  • Since we can't expect every user to read the EFI boot stub code it
    seems prudent to have a couple of paragraphs explaining what it is and
    how it works.

    The "initrd=" option in particular is tricky because it only
    understands absolute EFI-style paths (backslashes as directory
    separators), and until now this hasn't been documented anywhere. This
    has tripped up a couple of users.

    Cc: Matthew Garrett
    Cc: Randy Dunlap
    Signed-off-by: Matt Fleming
    Link: http://lkml.kernel.org/r/1331907517-3985-4-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin

    Matt Fleming
     
  • Btrfs has to make sure we have space to allocate new blocks in order to modify
    the inode, so updating time can fail. We've gotten around this by having our
    own file_update_time but this is kind of a pain, and Christoph has indicated he
    would like to make xfs do something different with atime updates. So introduce
    ->update_time, where we will deal with i_version an a/m/c time updates and
    indicate which changes need to be made. The normal version just does what it
    has always done, updates the time and marks the inode dirty, and then
    filesystems can choose to do something different.

    I've gone through all of the users of file_update_time and made them check for
    errors with the exception of the fault code since it's complicated and I wasn't
    quite sure what to do there, also Jan is going to be pushing the file time
    updates into page_mkwrite for those who have it so that should satisfy btrfs and
    make it not a big deal to check the file_update_time() return code in the
    generic fault path. Thanks,

    Signed-off-by: Josef Bacik

    Josef Bacik
     

01 Jun, 2012

10 commits

  • Merge misc patches from Andrew Morton:

    - the "misc" tree - stuff from all over the map

    - checkpatch updates

    - fatfs

    - kmod changes

    - procfs

    - cpumask

    - UML

    - kexec

    - mqueue

    - rapidio

    - pidns

    - some checkpoint-restore feature work. Reluctantly. Most of it
    delayed a release. I'm still rather worried that we don't have a
    clear roadmap to completion for this work.

    * emailed from Andrew Morton : (78 patches)
    kconfig: update compression algorithm info
    c/r: prctl: add ability to set new mm_struct::exe_file
    c/r: prctl: extend PR_SET_MM to set up more mm_struct entries
    c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat
    syscalls, x86: add __NR_kcmp syscall
    fs, proc: introduce /proc//task//children entry
    sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE
    aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()
    eventfd: change int to __u64 in eventfd_signal()
    fs/nls: add Apple NLS
    pidns: make killed children autoreap
    pidns: use task_active_pid_ns in do_notify_parent
    rapidio/tsi721: add DMA engine support
    rapidio: add DMA engine support for RIO data transfers
    ipc/mqueue: add rbtree node caching support
    tools/selftests: add mq_perf_tests
    ipc/mqueue: strengthen checks on mqueue creation
    ipc/mqueue: correct mq_attr_ok test
    ipc/mqueue: improve performance of send/recv
    selftests: add mq_open_tests
    ...

    Linus Torvalds
     
  • We would like to have an ability to restore command line arguments and
    program environment pointers but first we need to obtain them somehow.
    Thus we put these values into /proc/$pid/stat. The exit_code is needed to
    restore zombie tasks.

    Signed-off-by: Cyrill Gorcunov
    Acked-by: Kees Cook
    Cc: Pavel Emelyanov
    Cc: Serge Hallyn
    Cc: KAMEZAWA Hiroyuki
    Cc: Alexey Dobriyan
    Cc: Tejun Heo
    Cc: Andrew Vagin
    Cc: Vasiliy Kulikov
    Cc: Alexey Dobriyan
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     
  • When we do checkpoint of a task we need to know the list of children the
    task, has but there is no easy and fast way to generate reverse
    parent->children chain from arbitrary (while a parent pid is
    provided in "PPid" field of /proc//status).

    So instead of walking over all pids in the system (creating one big
    process tree in memory, just to figure out which children a task has) --
    we add explicit /proc//task//children entry, because the kernel
    already has this kind of information but it is not yet exported.

    This is a first level children, not the whole process tree.

    Signed-off-by: Cyrill Gorcunov
    Reviewed-by: Oleg Nesterov
    Reviewed-by: Kees Cook
    Cc: Pavel Emelyanov
    Cc: Serge Hallyn
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     
  • Commit b231cca4381e ("message queues: increase range limits") changed
    mqueue default value when attr parameter is specified NULL from hard
    coded value to fs.mqueue.{msg,msgsize}_max sysctl value.

    This made large side effect. When user need to use two mqueue
    applications 1) using !NULL attr parameter and it require big message
    size and 2) using NULL attr parameter and only need small size message,
    app (1) require to raise fs.mqueue.msgsize_max and app (2) consume large
    memory size even though it doesn't need.

    Doug Ledford propsed to switch back it to static hard coded value.
    However it also has a compatibility problem. Some applications might
    started depend on the default value is tunable.

    The solution is to separate default value from maximum value.

    Signed-off-by: KOSAKI Motohiro
    Signed-off-by: Doug Ledford
    Acked-by: Doug Ledford
    Acked-by: Joe Korty
    Cc: Amerigo Wang
    Acked-by: Serge E. Hallyn
    Cc: Jiri Slaby
    Cc: Manfred Spraul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • This is an implementation of Andrew's proposal to extend the pagemap file
    bits to report what is missing about tasks' working set.

    The problem with the working set detection is multilateral. In the criu
    (checkpoint/restore) project we dump the tasks' memory into image files
    and to do it properly we need to detect which pages inside mappings are
    really in use. The mincore syscall I though could help with this did not.
    First, it doesn't report swapped pages, thus we cannot find out which
    parts of anonymous mappings to dump. Next, it does report pages from page
    cache as present even if they are not mapped, and it doesn't make that has
    not been cow-ed.

    Note, that issue with swap pages is critical -- we must dump swap pages to
    image file. But the issues with file pages are optimization -- we can
    take all file pages to image, this would be correct, but if we know that a
    page is not mapped or not cow-ed, we can remove them from dump file. The
    dump would still be self-consistent, though significantly smaller in size
    (up to 10 times smaller on real apps).

    Andrew noticed, that the proc pagemap file solved 2 of 3 above issues --
    it reports whether a page is present or swapped and it doesn't report not
    mapped page cache pages. But, it doesn't distinguish cow-ed file pages
    from not cow-ed.

    I would like to make the last unused bit in this file to report whether the
    page mapped into respective pte is PageAnon or not.

    [comment stolen from Pavel Emelyanov's v1 patch]

    Signed-off-by: Konstantin Khlebnikov
    Cc: Pavel Emelyanov
    Cc: Matt Mackall
    Cc: Hugh Dickins
    Cc: Rik van Riel
    Acked-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Add the new kmalloc_array() to the list of general-purpose memory
    allocators in chapter 14.

    Signed-off-by: Xi Wang
    Acked-by: Jesper Juhl
    Acked-by: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xi Wang
     
  • Pull battery updates from Anton Vorontsov:
    "A bunch of fixes for v3.5, nothing extraordinary."

    * tag 'for-v3.5' of git://git.infradead.org/battery-2.6: (27 commits)
    smb347-charger: Include missing
    smb347-charger: Clean up battery attributes
    max17042_battery: Add support for max17047/50 chip
    sbs-battery.c: Capacity attr = remaining relative capacity
    isp1704_charger: Use after free on probe error
    ds2781_battery: Use DS2781_PARAM_EEPROM_SIZE and DS2781_USER_EEPROM_SIZE
    power_supply: Fix a typo in BATTERY_DS2781 Kconfig entry
    charger-manager: Provide cm_notify_event function for in-kernel use
    charger-manager: Poll battery health in normal state
    smb347-charger: Convert to regmap API
    smb347-charger: Move IRQ enabling to the end of probe
    smb347-charger: Rename few functions to match better what they are doing
    smb347-charger: Convert to use module_i2c_driver()
    smb347_charger: Cleanup power supply registration code in probe
    ab8500: Clean up probe routines
    ab8500_fg: Harden platform data check
    ab8500_btemp: Harden platform data check
    ab8500_charger: Harden platform data check
    MAINTAINERS: Fix 'F' entry for the power supply class
    max17042_battery: Handle irq request failure case
    ...

    Linus Torvalds
     
  • Pull final round of SCSI updates from James Bottomley:
    "This is primarily another round of driver updates (bnx2fc, qla2xxx,
    qla4xxx) including the target mode driver for qla2xxx. We've also got
    a couple of regression fixes (async scanning, broken this merge window
    and a fix to a long standing break in the scsi_wait_scan module)."

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (45 commits)
    [SCSI] fix scsi_wait_scan
    [SCSI] fix async probe regression
    [SCSI] be2iscsi: fix dma free size mismatch regression
    [SCSI] qla4xxx: Update driver version to 5.02.00-k17
    [SCSI] qla4xxx: Capture minidump for ISP82XX on firmware failure
    [SCSI] qla4xxx: Add change_queue_depth API support
    [SCSI] qla4xxx: Fix clear ddb mbx command failure issue.
    [SCSI] qla4xxx: Fix kernel panic during discovery logout.
    [SCSI] qla4xxx: Correct early completion of pending mbox.
    [SCSI] fcoe, bnx2fc, libfcoe: SW FCoE and bnx2fc use FCoE Syfs
    [SCSI] libfcoe: Add fcoe_sysfs
    [SCSI] bnx2fc: Allocate fcoe_ctlr with bnx2fc_interface, not as a member
    [SCSI] fcoe: Allocate fcoe_ctlr with fcoe_interface, not as a member
    [SCSI] Fix dm-multipath starvation when scsi host is busy
    [SCSI] ufs: fix potential NULL pointer dereferencing error in ufshcd_prove.
    [SCSI] qla2xxx: don't free pool that wasn't allocated
    [SCSI] mptfusion: unlock on error in mpt_config()
    [SCSI] tcm_qla2xxx: Add >= 24xx series fabric module for target-core
    [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series
    [SCSI] Revert "qla2xxx: During loopdown perform Diagnostic loopback."
    ...

    Linus Torvalds
     
  • Pull follow-up block updates from Jens Axboe:
    "Includes the fix from Eric to resolve the infinite loop in looking up
    or creating an IO context for an exiting task.

    Also a bunch of mtip32xx patches. Fairly trivial stuff. It's fairly
    new though, but no point in keeping it out of the tree until 3.6 imho.
    I've thrown it through basic testing locally as well, works fine. The
    one contentious part is the patch that Greg complained about (sysfs
    file with multiple values, should be a debugfs file), which is
    perfectly valid, but not a regression from what the file contains now.
    That will be fixed up separately."

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: avoid infinite loop in get_task_io_context()
    mtip32xx: Changes to sysfs entries
    mtip32xx: Convert macro definitions for flag bits to enum
    mtip32xx: minor performance tweak
    mtip32xx: Fix to support more than one sector in exec_drive_command()
    mtip32xx: Use plain spinlock for 'cmd_issue_lock'
    mtip32xx: Set block queue boundary variables
    mtip32xx: Fix to handle TFE for PIO(IOCTL/internal) commands
    mtip32xx: Change HDIO_GET_IDENTITY to return stored data
    mtip32xx: Set custom timeouts for PIO commands
    mtip32xx: fix clearing an incorrect register in mtip_init_port

    Linus Torvalds
     
  • Pull networking changes from David S. Miller:

    1) Fix IPSEC header length calculation for transport mode in ESP. The
    issue is whether to do the calculation before or after alignment.
    Fix from Benjamin Poirier.

    2) Fix regression in IPV6 IPSEC fragment length calculations, from Gao
    Feng. This is another transport vs tunnel mode issue.

    3) Handle AF_UNSPEC connect()s properly in L2TP to avoid OOPSes. Fix
    from James Chapman.

    4) Fix USB ASIX driver's reception of full sized VLAN packets, from
    Eric Dumazet.

    5) Allow drop monitor (and, more generically, all generic netlink
    protocols) to be automatically loaded as a module. From Neil
    Horman.

    Fix up trivial conflict in Documentation/feature-removal-schedule.txt
    due to new entries added next to each other at the end. As usual.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)
    net/smsc911x: Repair broken failure paths
    virtio-net: remove useless disable on freeze
    netdevice: Update netif_dbg for CONFIG_DYNAMIC_DEBUG
    drop_monitor: Add module alias to enable automatic module loading
    genetlink: Build a generic netlink family module alias
    net: add MODULE_ALIAS_NET_PF_PROTO_NAME
    r6040: Do a Proper deinit at errorpath and also when driver unloads (calling r6040_remove_one)
    r6040: disable pci device if the subsequent calls (after pci_enable_device) fails
    skb: avoid unnecessary reallocations in __skb_cow
    net: sh_eth: fix the rxdesc pointer when rx descriptor empty happens
    asix: allow full size 8021Q frames to be received
    rds_rdma: don't assume infiniband device is PCI
    l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case
    mac80211: fix ADDBA declined after suspend with wowlan
    wlcore: fix undefined symbols when CONFIG_PM is not defined
    mac80211: fix flag check for QoS NOACK frames
    ath9k_hw: apply internal regulator settings on AR933x
    ath9k_hw: update AR933x initvals to fix issues with high power devices
    ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails
    ath9k: stop rx dma before stopping tx
    ...

    Linus Torvalds
     

31 May, 2012

4 commits

  • * Formatted the output of 'registers' entry
    * Added "Commands in Q' to output of 'registers' entry
    * Added a new entry 'flags'

    Signed-off-by: Asai Thambi S P
    Signed-off-by: Jens Axboe

    Asai Thambi S P
     
  • Pull ceph updates from Sage Weil:
    "There are some updates and cleanups to the CRUSH placement code, a bug
    fix with incremental maps, several cleanups and fixes from Josh Durgin
    in the RBD block device code, a series of cleanups and bug fixes from
    Alex Elder in the messenger code, and some miscellaneous bounds
    checking and gfp cleanups/fixes."

    Fix up trivial conflicts in net/ceph/{messenger.c,osdmap.c} due to the
    networking people preferring "unsigned int" over just "unsigned".

    * git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (45 commits)
    libceph: fix pg_temp updates
    libceph: avoid unregistering osd request when not registered
    ceph: add auth buf in prepare_write_connect()
    ceph: rename prepare_connect_authorizer()
    ceph: return pointer from prepare_connect_authorizer()
    ceph: use info returned by get_authorizer
    ceph: have get_authorizer methods return pointers
    ceph: ensure auth ops are defined before use
    ceph: messenger: reduce args to create_authorizer
    ceph: define ceph_auth_handshake type
    ceph: messenger: check return from get_authorizer
    ceph: messenger: rework prepare_connect_authorizer()
    ceph: messenger: check prepare_write_connect() result
    ceph: don't set WRITE_PENDING too early
    ceph: drop msgr argument from prepare_write_connect()
    ceph: messenger: send banner in process_connect()
    ceph: messenger: reset connection kvec caller
    libceph: don't reset kvec in prepare_write_banner()
    ceph: ignore preferred_osd field
    ceph: fully initialize new layout
    ...

    Linus Torvalds
     
  • Pull i2c updates from Jean Delvare.

    * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING
    i2c-dev: Add support for I2C_M_RECV_LEN

    Linus Torvalds
     
  • Pull second set of watchdog updates from Wim Van Sebroeck:
    "This changeset contains following changes:
    * Add support for multiple watchdog devices. We use dynamically
    allocated device id's for this.
    * Add locking into the generic watchdog infrastructure.
    * Add support for dynamically allocated watchdog_device structs so
    that we can deal with devices that get unbound.
    * convert following drivers to the generic watchdog framework:
    sch5627, sch5636 and sp805_wdt.
    * Add DA9052/53 PMIC watchdog support
    * Fix printk format warnings for iTCO_wdt.c"

    * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: iTCO_wdt.c: fix printk format warnings
    watchdog: sp805_wdt: Add clk_{un}prepare support
    watchdog: sp805_wdt: convert to watchdog core
    hwmon/sch56xx: Depend on watchdog for watchdog core functions
    watchdog: sch56xx-common: set correct bits in register()
    Watchdog: DA9052/53 PMIC watchdog support
    watchdog: sch56xx-common: Add proper ref-counting of watchdog data
    watchdog: sch56xx: Remove unnecessary checks for register changes
    watchdog: sch56xx: Use watchdog core
    watchdog: Add support for dynamically allocated watchdog_device structs
    watchdog: Add Locking support
    watchdog: watchdog_dev: Rewrite wrapper code
    watchdog: use dev_ functions
    watchdog: create all the proper device files
    watchdog: Add a flag to indicate the watchdog doesn't reboot things
    watchdog: Add multiple device support
    watchdog: watchdog_core.h: make functions extern
    watchdog: correct the name of the watchdog_core inlude file
    watchdog: Add watchdog_active() routine
    watchdog: watchdog_dev: include private header to pickup global symbol prototypes

    Linus Torvalds
     

30 May, 2012

17 commits

  • Pull IOMMU updates from Joerg Roedel:
    "Not much stuff this time. The only change to the IOMMU core code is
    the addition of a handle to the fault handling code. A few updates to
    the AMD IOMMU driver to work around new errata. The other patches are
    mostly fixes and enhancements to the existing ARM IOMMU drivers and
    documentation updates.

    A new IOMMU driver for the Exynos platform was also underway but got
    merged via the Samsung tree and is not part of this tree."

    * tag 'iommu-updates-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    Documentation: kernel-parameters.txt Add amd_iommu_dump
    iommu/core: pass a user-provided token to fault handlers
    iommu/tegra: gart: Fix register offset correctly
    iommu: OMAP: device detach on domain destroy
    iommu: tegra/gart: Add device tree support
    iommu: tegra/gart: use correct gart_device
    iommu/tegra: smmu: Print device name correctly
    iommu/amd: Add workaround for event log erratum
    iommu/amd: Check for the right TLP prefix bit
    dma-debug: release free_entries_lock before saving stack trace

    Linus Torvalds
     
  • Joerg Roedel
     
  • Add amd_iommu_dump to kernel-parameters.txt

    Signed-off-by: Shuah Khan
    Signed-off-by: Joerg Roedel

    Shuah Khan
     
  • Since there are uses for I2C_M_NOSTART which are much more sensible and
    standard than most of the protocol mangling functionality (the main one
    being gather writes to devices where something like a register address
    needs to be inserted before a block of data) create a new I2C_FUNC_NOSTART
    for this feature and update all the users to use it.

    Also strengthen the disrecommendation of the protocol mangling while we're
    at it.

    In the case of regmap-i2c we remove the requirement for mangling as
    I2C_M_NOSTART is the only mangling feature which is being used.

    Signed-off-by: Mark Brown
    Acked-by: Wolfram Sang
    Signed-off-by: Jean Delvare

    Mark Brown
     
  • This driver adds support for the watchdog functionality provided by
    the Dialog Semiconductor DA9052 PMIC chip.

    Tested on samsung smdkv6410 and i.mx53 QS boards.

    Signed-off-by: Anthony Olech
    Signed-off-by: Ashish Jangam
    Signed-off-by: Wim Van Sebroeck

    Ashish Jangam
     
  • If a driver's watchdog_device struct is part of a dynamically allocated
    struct (which it often will be), merely locking the module is not enough,
    even with a drivers module locked, the driver can be unbound from the device,
    examples:
    1) The root user can unbind it through sysfd
    2) The i2c bus master driver being unloaded for an i2c watchdog

    I will gladly admit that these are corner cases, but we still need to handle
    them correctly.

    The fix for this consists of 2 parts:
    1) Add ref / unref operations, so that the driver can refcount the struct
    holding the watchdog_device struct and delay freeing it until any
    open filehandles referring to it are closed
    2) Most driver operations will do IO on the device and the driver should not
    do any IO on the device after it has been unbound. Rather then letting each
    driver deal with this internally, it is better to ensure at the watchdog
    core level that no operations (other then unref) will get called after
    the driver has called watchdog_unregister_device(). This actually is the
    bulk of this patch.

    Signed-off-by: Hans de Goede
    Signed-off-by: Wim Van Sebroeck

    Hans de Goede
     
  • This patch fixes some potential multithreading issues, despite only
    allowing one process to open the /dev/watchdog device, we can still get
    called multiple times at the same time, since a program could be using thread,
    or could share the fd after a fork.

    This causes 2 potential problems:
    1) watchdog_start / open do an unlocked test_n_set / test_n_clear,
    if these 2 race, the watchdog could be stopped while the active
    bit indicates it is running or visa versa.

    2) Most watchdog_dev drivers probably assume that only one
    watchdog-op will get called at a time, this is not necessary
    true atm.

    Signed-off-by: Hans de Goede
    Signed-off-by: Wim Van Sebroeck

    Hans de Goede
     
  • Create the watchdog class and it's associated devices.

    Signed-off-by: Alan Cox
    Signed-off-by: Hans de Goede
    Signed-off-by: Wim Van Sebroeck

    Alan Cox
     
  • We keep the old /dev/watchdog interface file for the first watchdog via
    miscdev. This is basically a cut and paste of the relevant interface code
    from the rtc driver layer tweaked for watchdog.

    Revised to fix problems noted by Hans de Goede

    Signed-off-by: Alan Cox
    Signed-off-by: Hans de Goede
    Signed-off-by: Tomas Winkler
    Signed-off-by: Wim Van Sebroeck

    Alan Cox
     
  • Pull MIPS updates from Ralf Baechle:
    "The whole series has been sitting in -next for quite a while with no
    complaints. The last change to the series was before the weekend the
    removal of an SPI patch which Grant - even though previously acked by
    himself - appeared to raise objections. So I removed it until the
    situation is clarified. Other than that all the patches have the acks
    from their respective maintainers, all MIPS and x86 defconfigs are
    building fine and I'm not aware of any problems introduced by this
    series.

    Among the key features for this patch series is a sizable patchset for
    Lantiq which among other things introduces support for Lantiq's
    flagship product, the FALCON SOC. It also means that the opensource
    developers behind this patchset have overtaken Lantiq's competing
    inhouse development team that was working behind closed doors.

    Less noteworthy the ath79 patchset which adds support for a few more
    chip variants, cleanups and fixes. Finally the usual dose of tweaking
    of generic code."

    Fix up trivial conflicts in arch/mips/lantiq/xway/gpio_{ebu,stp}.c where
    printk spelling fixes clashed with file move and eventual removal of the
    printk.

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (81 commits)
    MIPS: lantiq: remove orphaned code
    MIPS: Remove all -Wall and almost all -Werror usage from arch/mips.
    MIPS: lantiq: implement support for FALCON soc
    MTD: MIPS: lantiq: verify that the NOR interface is available on falcon soc
    MTD: MIPS: lantiq: implement OF support
    watchdog: MIPS: lantiq: implement OF support and minor fixes
    SERIAL: MIPS: lantiq: implement OF support
    GPIO: MIPS: lantiq: convert gpio-stp-xway to OF
    GPIO: MIPS: lantiq: convert gpio-mm-lantiq to OF and of_mm_gpio
    GPIO: MIPS: lantiq: move gpio-stp and gpio-ebu to the subsystem folder
    MIPS: pci: convert lantiq driver to OF
    MIPS: lantiq: convert dma to platform driver
    MIPS: lantiq: implement support for clkdev api
    MIPS: lantiq: drop ltq_gpio_request() and gpio_to_irq()
    OF: MIPS: lantiq: implement irq_domain support
    OF: MIPS: lantiq: implement OF support
    MIPS: lantiq: drop mips_machine support
    OF: PCI: const usage needed by MIPS
    MIPS: Cavium: Remove smp_reserve_lock.
    MIPS: Move cache setup to setup_arch().
    ...

    Linus Torvalds
     
  • Adds device tree support for rtc-lpc32xx.c

    Signed-off-by: Roland Stigge
    Acked-by: Rob Herring
    Acked-by: Arnd Bergmann
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roland Stigge
     
  • SPEAr platforms now support DT and so must convert all drivers support DT.
    This patch adds DT probing support for rtc and updates its documentation
    too.

    Signed-off-by: Viresh Kumar
    Cc: Stefan Roese
    Cc: Arnd Bergmann
    Cc: Alessandro Zummo
    Cc: Rajeev Kumar
    Cc: Rob Herring
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • Add sub-driver for the LEDs on National Semiconductor / TI LM3533 lighting
    power chips.

    The chip provides 256 brightness levels, hardware accelerated blinking as
    well as ambient-light-sensor and pwm input control.

    Signed-off-by: Johan Hovold
    Cc: Richard Purdie
    Cc: Rob Landley
    Cc: Samuel Ortiz
    Cc: Jonathan Cameron
    Cc: Greg Kroah-Hartman
    Cc: Florian Tobias Schandinat
    Cc: Arnd Bergmann
    Cc: Mark Brown
    Cc: Bryan Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johan Hovold
     
  • The leds timer trigger does not currently have an interface to activate a
    one shot timer. The current support allows for setting two timers, one
    for specifying how long a state to be on, and the second for how long the
    state to be off. The delay_on value specifies the time period an LED
    should stay in on state, followed by a delay_off value that specifies how
    long the LED should stay in off state. The on and off cycle repeats until
    the trigger gets deactivated. There is no provision for one time
    activation to implement features that require an on or off state to be
    held just once and then stay in the original state forever.

    Without one shot timer interface, user space can still use timer trigger
    to set a timer to hold a state, however when user space application
    crashes or goes away without deactivating the timer, the hardware will be
    left in that state permanently.

    As a specific example of this use-case, let's look at vibrate feature on
    phones. Vibrate function on phones is implemented using PWM pins on SoC
    or PMIC. There is a need to activate one shot timer to control the
    vibrate feature, to prevent user space crashes leaving the phone in
    vibrate mode permanently causing the battery to drain.

    This trigger exports three properties, activate, state, and duration When
    transient trigger is activated these properties are set to default values.

    - duration allows setting timer value in msecs. The initial value is 0.
    - activate allows activating and deactivating the timer specified by
    duration as needed. The initial and default value is 0. This will allow
    duration to be set after trigger activation.
    - state allows user to specify a transient state to be held for the specified
    duration.

    Signed-off-by: Shuah Khan
    Cc: Jonas Bonn
    Cc: Richard Purdie
    Cc: NeilBrown
    Cc: Bryan Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shuah Khan
     
  • Add sub-driver for the backlights on National Semiconductor / TI LM3533
    lighting power chips.

    The chip provides 256 brightness levels and ambient-light-sensor and pwm
    input control.

    [akpm@linux-foundation.org: fix warning]
    [akpm@linux-foundation.org: fix the type of `mode']
    Signed-off-by: Johan Hovold
    Cc: Richard Purdie
    Cc: Rob Landley
    Cc: Samuel Ortiz
    Cc: Jonathan Cameron
    Cc: Greg Kroah-Hartman
    Cc: Florian Tobias Schandinat
    Cc: Arnd Bergmann
    Cc: Mark Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johan Hovold
     
  • Presently, at removal of cgroup, ->pre_destroy() is called and moves
    charges to the parent cgroup. A major reason for returning -EBUSY from
    ->pre_destroy() is that the 'moving' hits the parent's resource
    limitation. It happens only when use_hierarchy=0.

    Considering use_hierarchy=0, all cgroups should be flat. So, no one
    cannot justify moving charges to parent...parent and children are in flat
    configuration, not hierarchical.

    This patch modifes the code to move charges to the root cgroup at
    rmdir/force_empty if use_hierarchy==0. This will much simplify rmdir()
    and reduce error in ->pre_destroy.

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Aneesh Kumar K.V
    Cc: Michal Hocko
    Cc: Johannes Weiner
    Cc: Frederic Weisbecker
    Cc: Ying Han
    Cc: Glauber Costa
    Reviewed-by: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • When killing a res_counter which is a child of other counter, we need to
    do

    res_counter_uncharge(child, xxx)
    res_counter_charge(parent, xxx)

    This is not atomic and wastes CPU. This patch adds
    res_counter_uncharge_until(). This function's uncharge propagates to
    ancestors until specified res_counter.

    res_counter_uncharge_until(child, parent, xxx)

    Now the operation is atomic and efficient.

    Signed-off-by: Frederic Weisbecker
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Aneesh Kumar K.V
    Cc: Michal Hocko
    Cc: Johannes Weiner
    Cc: Ying Han
    Cc: Glauber Costa
    Reviewed-by: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frederic Weisbecker