22 Nov, 2011

4 commits

  • Writeback and thinkpad_acpi have been using thaw_process() to prevent
    deadlock between the freezer and kthread_stop(); unfortunately, this
    is inherently racy - nothing prevents freezing from happening between
    thaw_process() and kthread_stop().

    This patch implements kthread_freezable_should_stop() which enters
    refrigerator if necessary but is guaranteed to return if
    kthread_stop() is invoked. Both thaw_process() users are converted to
    use the new function.

    Note that this deadlock condition exists for many of freezable
    kthreads. They need to be converted to use the new should_stop or
    freezable workqueue.

    Tested with synthetic test case.

    Signed-off-by: Tejun Heo
    Acked-by: Henrique de Moraes Holschuh
    Cc: Jens Axboe
    Cc: Oleg Nesterov

    Tejun Heo
     
  • There is no reason to export two functions for entering the
    refrigerator. Calling refrigerator() instead of try_to_freeze()
    doesn't save anything noticeable or removes any race condition.

    * Rename refrigerator() to __refrigerator() and make it return bool
    indicating whether it scheduled out for freezing.

    * Update try_to_freeze() to return bool and relay the return value of
    __refrigerator() if freezing().

    * Convert all refrigerator() users to try_to_freeze().

    * Update documentation accordingly.

    * While at it, add might_sleep() to try_to_freeze().

    Signed-off-by: Tejun Heo
    Cc: Samuel Ortiz
    Cc: Chris Mason
    Cc: "Theodore Ts'o"
    Cc: Steven Whitehouse
    Cc: Andrew Morton
    Cc: Jan Kara
    Cc: KONISHI Ryusuke
    Cc: Christoph Hellwig

    Tejun Heo
     
  • Some drivers set PF_NOFREEZE in their kthread functions which is
    completely unnecessary and racy - some part of freezer code doesn't
    consider cases where PF_NOFREEZE is set asynchronous to freezer
    operations.

    In general, there's no reason to allow setting PF_NOFREEZE explicitly.
    Remove them and change the documentation to note that setting
    PF_NOFREEZE directly isn't allowed.

    -v2: Dropped change to twl4030-irq.c as it no longer uses PF_NOFREEZE.

    Signed-off-by: Tejun Heo
    Acked-by: "Gustavo F. Padovan"
    Acked-by: Samuel Ortiz
    Cc: Marcel Holtmann
    Cc: wwang

    Tejun Heo
     
  • refrigerator() saves current->state before entering frozen state and
    restores it before returning using __set_current_state(); however,
    this is racy, for example, please consider the following sequence.

    set_current_state(TASK_INTERRUPTIBLE);
    try_to_freeze();
    if (kthread_should_stop())
    break;
    schedule();

    If kthread_stop() races with ->state restoration, the restoration can
    restore ->state to TASK_INTERRUPTIBLE after kthread_stop() sets it to
    TASK_RUNNING but kthread_should_stop() may still see zero
    ->should_stop because there's no memory barrier between restoring
    TASK_INTERRUPTIBLE and kthread_should_stop() test.

    This isn't restricted to kthread_should_stop(). current->state is
    often used in memory barrier based synchronization and silently
    restoring it w/o mb breaks them.

    Use set_current_state() instead.

    Signed-off-by: Tejun Heo

    Tejun Heo
     

21 Nov, 2011

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (86 commits)
    ipv4: fix redirect handling
    ping: dont increment ICMP_MIB_INERRORS
    sky2: fix hang in napi_disable
    sky2: enforce minimum ring size
    bonding: Don't allow mode change via sysfs with slaves present
    f_phonet: fix page offset of first received fragment
    stmmac: fix pm functions avoiding sleep on spinlock
    stmmac: remove spin_lock in stmmac_ioctl.
    stmmac: parameters auto-tuning through HW cap reg
    stmmac: fix advertising 1000Base capabilties for non GMII iface
    stmmac: use mdelay on timeout of sw reset
    sky2: version 1.30
    sky2: used fixed RSS key
    sky2: reduce default Tx ring size
    sky2: rename up/down functions
    sky2: pci posting issues
    sky2: fix hang on shutdown (and other irq issues)
    r6040: fix check against MCRO_HASHEN bit in r6040_multicast_list
    MAINTAINERS: change email address for shemminger
    pch_gbe: Move #include of module.h
    ...

    Linus Torvalds
     
  • * 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM guest: prevent tracing recursion with kvmclock
    Revert "KVM: PPC: Add support for explicit HIOR setting"
    KVM: VMX: Check for automatic switch msr table overflow
    KVM: VMX: Add support for guest/host-only profiling
    KVM: VMX: add support for switching of PERF_GLOBAL_CTRL
    KVM: s390: announce SYNC_MMU
    KVM: s390: Fix tprot locking
    KVM: s390: handle SIGP sense running intercepts
    KVM: s390: Fix RUNNING flag misinterpretation

    Linus Torvalds
     
  • * 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    ARM: wire up process_vm_writev and process_vm_readv syscalls
    ARM: 7160/1: setup: avoid overflowing {elf,arch}_name from proc_info_list
    ARM: 7158/1: add new MFP implement for NUC900
    ARM: 7157/1: fix a building WARNING for nuc900
    ARM: 7156/1: l2x0: fix compile error on !CONFIG_USE_OF
    ARM: 7155/1: arch.h: Declare 'pt_regs' locally
    ARM: 7154/1: mach-bcmring: fix build error in dma.c
    ARM: 7153/1: mach-bcmring: fix build error in core.c
    ARM: 7152/1: distclean: Remove generated .dtb files
    ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors
    ARM: 7149/1: spi/pl022: Enable clock in probe
    Revert "ARM: 7098/1: kdump: copy kernel relocation code at the kexec prepare stage"

    Linus Torvalds
     
  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM / Suspend: Fix bug in suspend statistics update
    PM / Hibernate: Fix the early termination of test modes
    PM / shmobile: Fix build of sh7372_pm_init() for CONFIG_PM unset
    PM Sleep: Do not extend wakeup paths to devices with ignore_children set
    PM / driver core: disable device's runtime PM during shutdown
    PM / devfreq: correct Kconfig dependency
    PM / devfreq: fix use after free in devfreq_remove_device
    PM / shmobile: Avoid restoring the INTCS state during initialization
    PM / devfreq: Remove compiler error after irq.h update
    PM / QoS: Properly use the WARN() macro in dev_pm_qos_add_request()
    PM / Clocks: Only disable enabled clocks in pm_clk_suspend()
    ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix
    PM / shmobile: Don't skip debugging output in pd_power_up()

    Linus Torvalds
     

20 Nov, 2011

2 commits


19 Nov, 2011

14 commits

  • After commit 2a77c46de1e3dace73745015635ebbc648eca69c
    (PM / Suspend: Add statistics debugfs file for suspend to RAM)
    a missing pair of braces inside the state_store() function causes even
    invalid arguments to suspend to be wrongly treated as failed suspend
    attempts. Fix this.

    [rjw: Put the hash/subject of the buggy commit into the changelog.]

    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     
  • No longer at Citrix, still interested in Xen.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     
  • Dummy, non-zero definitions for HPAGE_MASK and HPAGE_SIZE were added in
    51c6f666fceb ("mm: ZAP_BLOCK causes redundant work") to avoid a divide
    by zero in generic kernel code.

    That code has since been removed, but probably should never have been
    added in the first place: we don't want HPAGE_SIZE to act like PAGE_SIZE
    for code that is working with hugepages, for example, when the
    dependency on CONFIG_HUGETLB_PAGE has not been fulfilled.

    Because hugepage size can differ from architecture to architecture, each
    is required to have their own definitions for both HPAGE_MASK and
    HPAGE_SIZE. This is always done in arch/*/include/asm/page.h.

    So, just remove the dummy and dangerous definitions since they are no
    longer needed and reveals the correct dependencies. Tested on
    architectures using the definitions with allyesconfig: x86 (even with
    thp), hppa, mips, powerpc, s390, sh3, sh4, sparc, and sparc64, and with
    defconfig on ia64.

    Signed-off-by: David Rientjes
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    new helper: mount_subtree()
    switch create_mnt_ns() to saner calling conventions, fix double mntput() in nfs
    btrfs: fix double mntput() in mount_subvol()

    Linus Torvalds
     
  • * 'for-linus' of git://oss.sgi.com/xfs/xfs:
    MAINTAINERS: update XFS maintainer entry
    xfs: use doalloc flag in xfs_qm_dqattach_one()

    Linus Torvalds
     
  • * 'for-3.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: Replace Paul Menage with Tejun Heo as cgroups maintainer

    Linus Torvalds
     
  • * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    random: Fix handing of arch_get_random_long in get_random_bytes()
    x86: Call stop_machine_text_poke() on all CPUs
    x86, ioapic: Only print ioapic debug information for IRQs belonging to an ioapic chip
    x86/mrst: Avoid reporting wrong nmi status
    x86/mrst: Add support for Penwell clock calibration
    x86/apic: Allow use of lapic timer early calibration result
    x86/apic: Do not clear nr_irqs_gsi if no legacy irqs
    x86/platform: Add a wallclock_init func to x86_platforms ops
    x86/mce: Make mce_chrdev_ops 'static const'

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
    cy82c693: fix PCI device selection
    icside: DMA support fix
    IDE: Don't powerdown Compaq Triflex IDE device on suspend
    piix: ICH7 MWDMA1 errata

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Patch sun4v code sequences properly on module load.
    sparc: Kill custom io_remap_pfn_range().
    sparc: Stash orig_i0 into %g6 instead of %g2
    sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.
    sparc: sigutil: Include

    Linus Torvalds
     
  • As is probably painfully obvious, I don't have time to be a cgroups
    maintainer. Rather than have me continue to hope that I'll magically
    find more spare time, instead Tejun has kindly agreed to take over the
    role, along with Li Zefan.

    -tj: added cgroup tree URL to MAINTAINERS file

    Signed-off-by: Paul Menage
    Acked-by: Li Zefan
    Signed-off-by: Tejun Heo
    LKML-Reference:

    Paul Menage
     
  • Commit 2aede851ddf08666f68ffc17be446420e9d2a056
    (PM / Hibernate: Freeze kernel threads after preallocating memory)
    postponed the freezing of kernel threads to after preallocating memory
    for hibernation. But while doing that, the hibernation test TEST_FREEZER
    and the test mode HIBERNATION_TESTPROC were not moved accordingly.

    As a result, when using these test modes, it only goes upto the freezing of
    userspace and exits, when in fact it should go till the complete end of task
    freezing stage, namely the freezing of kernel threads as well.

    So, move these points of exit to appropriate places so that freezing of
    kernel threads is also tested while using these test harnesses.

    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     
  • commit f39925dbde77 (ipv4: Cache learned redirect information in
    inetpeer.) introduced a regression in ICMP redirect handling.

    It assumed ipv4_dst_check() would be called because all possible routes
    were attached to the inetpeer we modify in ip_rt_redirect(), but thats
    not true.

    commit 7cc9150ebe (route: fix ICMP redirect validation) tried to fix
    this but solution was not complete. (It fixed only one route)

    So we must lookup existing routes (including different TOS values) and
    call check_peer_redir() on them.

    Reported-by: Ivan Zahariev
    Signed-off-by: Eric Dumazet
    CC: Flavio Leitner
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • I will no longer be maintaining XFS for SGI. Ben Myers
    (bpm@sgi.com) has agreed to be the primary maintainer
    for XFS in my place. I will continue to be able to push
    commits to the SGI XFS tree if required. As such I will
    continue to be a designated XFS maintainer, but plan to
    serve in more of a backup role.

    Signed-off-by: Alex Elder
    Signed-off-by: Ben Myers

    Alex Elder
     
  • ping module incorrectly increments ICMP_MIB_INERRORS if feeded with a
    frame not belonging to its own sockets.

    RFC 2011 states that ICMP_MIB_INERRORS should count "the number of ICMP
    messages which the entiry received but determined as having
    ICMP-specific errors (bad ICMP checksums, bad length, etc.)."

    Signed-off-by: Eric Dumazet
    CC: Vasiliy Kulikov
    Acked-by: Flavio Leitner
    Acked-by: Vasiliy Kulikov
    Signed-off-by: David S. Miller

    Eric Dumazet
     

18 Nov, 2011

16 commits

  • …kernel/git/konrad/xen

    * 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen-gntalloc: signedness bug in add_grefs()
    xen-gntalloc: integer overflow in gntalloc_ioctl_alloc()
    xen-gntdev: integer overflow in gntdev_alloc_map()
    xen:pvhvm: enable PVHVM VCPU placement when using more than 32 CPUs.
    xen/balloon: Avoid OOM when requesting highmem
    xen: Remove hanging references to CONFIG_XEN_PLATFORM_PCI
    xen: map foreign pages for shared rings by updating the PTEs directly

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-block:
    block: add missed trace_block_plug
    paride: fix potential information leak in pg_read()
    bio: change some signed vars to unsigned
    block: avoid unnecessary plug list flush
    cciss: auto engage SCSI mid layer at driver load time
    loop: cleanup set_status interface
    include/linux/bio.h: use a static inline function for bio_integrity_clone()
    loop: prevent information leak after failed read
    block: Always check length of all iov entries in blk_rq_map_user_iov()
    The Windows driver .inf disables ASPM on all cciss devices. Do the same.
    backing-dev: ensure wakeup_timer is deleted
    block: Revert "[SCSI] genhd: add a new attribute "alias" in gendisk"

    Linus Torvalds
     
  • * 'unicore32' of git://github.com/gxt/linux:
    unicore32, exec: remove redundant set_fs(USER_DS)
    unicore32: Fix typo 'PUV3_I2C'
    unicore32: drop unused Kconfig symbols
    rtc: rtc-puv3: Add __devinit and __devexit markers for probe and remove
    arch/unicore32: do not use EXTRA_AFLAGS or EXTRA_CFLAGS
    unicore32: fix build error for find bitops

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/signal32: Fix sigset_t conversion when copying to user
    powerpc: Fix atomic_xxx_return barrier semantics
    powerpc: Remove buggy 9-year-old test for binutils < 2.12.1
    powerpc/book3e-64: Fix debug support for userspace
    powerpc: Remove extraneous CONFIG_PPC_ADV_DEBUG_REGS define
    powerpc: Revert show_regs() define for readability
    powerpc/ps3: Fix SMP lockdep boot warning
    powerpc/ps3: Fix lost SMP IPIs
    powerpc: Add hvcall.h include to book3s_hv.c
    powerpc/trace: Add a dummy stack frame for trace_hardirqs_off
    powerpc: Copy down exception vectors after feature fixups
    powerpc: panic if we can't instantiate RTAS
    powerpc/4xx: Fix typos in kexec config dependencies
    powerpc/fsl: MCU_MPC8349EMITX wants I2C built-in, modular won't do...
    powerpc/fsl_udc_core: Fix dumb typo
    carma-fpga: Missed switch from of_register_platform_driver()
    powerpc: Fix build breakage in jump_label.c

    Linus Torvalds
     
  • * 'for-linus' of git://git.selinuxproject.org/~jmorris/linux-security:
    encrypted-keys: module build fixes
    encrypted-keys: fix error return code
    Smack: smackfs cipso seq read repair

    Linus Torvalds
     
  • Some of the sun4v code patching occurs in inline functions visible
    to, and usable by, modules.

    Therefore we have to patch them up during module load.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • If IRQ was never initialized, then calling napi_disable() would hang.
    Add more bookkeeping to track whether IRQ was ever initialized.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • The hardware has a restriction that the minimum ring size possible
    is 128. The number of elements used is controlled by tx_pending and
    the overall number of elements in the ring tx_ring_size, therefore it
    is okay to limit the number of elements in use to a small value (63)
    but still provide a bigger ring.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • To handle the large physical addresses, just make a simple wrapper
    around remap_pfn_range() like MIPS does.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • When changing mode via bonding's sysfs, the slaves are not initialized
    correctly. Forbid to change modes with slaves present to ensure that every
    slave is initialized correctly via bond_enslave().

    Signed-off-by: Veaceslav Falico
    Signed-off-by: Andy Gospodarek
    Acked-by: Nicolas de Pesloüan
    Signed-off-by: David S. Miller

    Veaceslav Falico
     
  • …git/zohar/linux-integrity into for-linus

    James Morris
     
  • James Morris
     
  • David S. Miller
     
  • We pull one byte (the MAC header) from the first fragment before the
    fragment is actually appended. So the socket buffer length is 1, not 0.

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     
  • Fix build regression introduced by commit 056879d2f244001b2888cdc8cf
    (ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix) by moving
    the intialization of the A3SP domain to a separate function and
    providing an empty definition of it for CONFIG_PM unset.

    Reported-and-tested-by: Guennadi Liakhovetski
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Commit 4ca46ff3e0d8c234cb40ebb6457653b59584426c (PM / Sleep: Mark
    devices involved in wakeup signaling during suspend) introduced
    the power.wakeup_path field in struct dev_pm_info to mark devices
    whose children are enabled to wake up the system from sleep states,
    so that power domains containing the parents that provide their
    children with wakeup power and/or relay their wakeup signals are not
    turned off. Unfortunately, that introduced a PM regression on SH7372
    whose power consumption in the system "memory sleep" state increased
    as a result of it, because it prevented the power domain containing
    the I2C controller from being turned off when some children of that
    controller were enabled to wake up the system, although the
    controller was not necessary for them to signal wakeup.

    To fix this issue use the observation that devices whose
    power.ignore_children flag is set for runtime PM should be treated
    analogously during system suspend. Namely, they shouldn't be
    included in wakeup paths going through their children. Since the
    SH7372 I2C controller's power.ignore_children flag is set, doing so
    will restore the previous behavior of that SOC.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman

    Rafael J. Wysocki