25 Jul, 2012

2 commits

  • Pull PCI changes from Bjorn Helgaas:
    "Host bridge hotplug:
    - Add MMCONFIG support for hot-added host bridges (Jiang Liu)
    Device hotplug:
    - Move fixups from __init to __devinit (Sebastian Andrzej Siewior)
    - Call FINAL fixups for hot-added devices, too (Myron Stowe)
    - Factor out generic code for P2P bridge hot-add (Yinghai Lu)
    - Remove all functions in a slot, not just those with _EJx (Amos
    Kong)
    Dynamic resource management:
    - Track bus number allocation (struct resource tree per domain)
    (Yinghai Lu)
    - Make P2P bridge 1K I/O windows work with resource reassignment
    (Bjorn Helgaas, Yinghai Lu)
    - Disable decoding while updating 64-bit BARs (Bjorn Helgaas)
    Power management:
    - Add PCIe runtime D3cold support (Huang Ying)
    Virtualization:
    - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex
    Williamson)
    - Add quirks for devices with broken INTx masking (Jan Kiszka)
    Miscellaneous:
    - Fix some PCI Express capability version issues (Myron Stowe)
    - Factor out some arch code with a weak, generic, pcibios_setup()
    (Myron Stowe)"

    * tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits)
    PCI: hotplug: ensure a consistent return value in error case
    PCI: fix undefined reference to 'pci_fixup_final_inited'
    PCI: build resource code for M68K architecture
    PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width()
    PCI: reorder __pci_assign_resource() (no change)
    PCI: fix truncation of resource size to 32 bits
    PCI: acpiphp: merge acpiphp_debug and debug
    PCI: acpiphp: remove unused res_lock
    sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases()
    PCI: call final fixups hot-added devices
    PCI: move final fixups from __init to __devinit
    x86/PCI: move final fixups from __init to __devinit
    MIPS/PCI: move final fixups from __init to __devinit
    PCI: support sizing P2P bridge I/O windows with 1K granularity
    PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2)
    PCI: disable MEM decoding while updating 64-bit MEM BARs
    PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too
    PCI: never discard enable/suspend/resume_early/resume fixups
    PCI: release temporary reference in __nv_msi_ht_cap_quirk()
    PCI: restructure 'pci_do_fixups()'
    ...

    Linus Torvalds
     
  • Pull trivial tree from Jiri Kosina:
    "Trivial updates all over the place as usual."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (29 commits)
    Fix typo in include/linux/clk.h .
    pci: hotplug: Fix typo in pci
    iommu: Fix typo in iommu
    video: Fix typo in drivers/video
    Documentation: Add newline at end-of-file to files lacking one
    arm,unicore32: Remove obsolete "select MISC_DEVICES"
    module.c: spelling s/postition/position/g
    cpufreq: Fix typo in cpufreq driver
    trivial: typo in comment in mksysmap
    mach-omap2: Fix typo in debug message and comment
    scsi: aha152x: Fix sparse warning and make printing pointer address more portable.
    Change email address for Steve Glendinning
    Btrfs: fix typo in convert_extent_bit
    via: Remove bogus if check
    netprio_cgroup.c: fix comment typo
    backlight: fix memory leak on obscure error path
    Documentation: asus-laptop.txt references an obsolete Kconfig item
    Documentation: ManagementStyle: fixed typo
    mm/vmscan: cleanup comment error in balance_pgdat
    mm: cleanup on the comments of zone_reclaim_stat
    ...

    Linus Torvalds
     

23 Jul, 2012

1 commit

  • Pull smp/hotplug changes from Ingo Molnar:
    "Various cleanups to the SMP hotplug code - a continuing effort of
    Thomas et al"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smpboot: Remove leftover declaration
    smp: Remove num_booting_cpus()
    smp: Remove ipi_call_lock[_irq]()/ipi_call_unlock[_irq]()
    POWERPC: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    SPARC: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    ia64: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq()
    x86-smp-remove-call-to-ipi_call_lock-ipi_call_unlock
    tile: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
    S390: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    parisc: Smp: remove call to ipi_call_lock()/ipi_call_unlock()
    mn10300: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
    hexagon: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()

    Linus Torvalds
     

06 Jul, 2012

1 commit


28 Jun, 2012

1 commit


05 Jun, 2012

4 commits

  • ipi_call_lock/unlock() lock resp. unlock call_function.lock. This lock
    protects only the call_function data structure itself, but it's
    completely unrelated to cpu_online_mask. The mask to which the IPIs
    are sent is calculated before call_function.lock is taken in
    smp_call_function_many(), so the locking around set_cpu_online() is
    pointless and can be removed.

    [ tglx: Massaged changelog ]

    Signed-off-by: Yong Zhang
    Cc: ralf@linux-mips.org
    Cc: sshtylyov@mvista.com
    Cc: david.daney@cavium.com
    Cc: nikunj@linux.vnet.ibm.com
    Cc: paulmck@linux.vnet.ibm.com
    Cc: axboe@kernel.dk
    Cc: peterz@infradead.org
    Cc: James E.J. Bottomley
    Cc: Helge Deller
    Cc: linux-parisc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1338275765-3217-4-git-send-email-yong.zhang0@gmail.com
    Acked-by: Srivatsa S. Bhat
    Acked-by: Peter Zijlstra
    Signed-off-by: Thomas Gleixner

    Yong Zhang
     
  • Sam broke this with

    commit 1f2bfbd00e466ff3489b2ca5cc75b1cccd14c123
    Author: Sam Ravnborg
    Date: Sat May 5 10:18:41 2012 +0200

    kbuild: link of vmlinux moved to a script

    But we should be deriving the location of libgcc in the same way as all
    the other archs, so fix by adding a LIBGCC variable which is evaluated
    in the makefile

    Signed-off-by: James Bottomley

    James Bottomley
     
  • Linus broke us with

    commit 36126f8f2ed8168eb13aa0662b9b9585cba100a9
    Author: Linus Torvalds
    Date: Sat May 26 10:43:17 2012 -0700

    word-at-a-time: make the interfaces truly generic

    By moving functions defined in strncopy_from_user.c into the asm-geneic
    version word-at-a-time.h. Spark and OpenRisc were fixed to use this, but
    not parisc. Fix by adding to generic-y in asm/Kbuild

    Signed-off-by: James Bottomley

    James Bottomley
     
  • Al viro broke us with

    commit edd63a2763bdae0daa4f0a4d4c5d61d1154352a5
    Author: Al Viro
    Date: Fri Apr 27 13:42:45 2012 -0400

    set_restore_sigmask() is never called without SIGPENDING (and never should be)

    Although it's pretty much our fault since parisc's asm/bug.h uses
    BUGWARN_TAINT but doesn't include the file that defines it. Fix that.

    Signed-off-by: James Bottomley

    James Bottomley
     

02 Jun, 2012

8 commits

  • Pull third pile of signal handling patches from Al Viro:
    "This time it's mostly helpers and conversions to them; there's a lot
    of stuff remaining in the tree, but that'll either go in -rc2
    (isolated bug fixes, ideally via arch maintainers' trees) or will sit
    there until the next cycle."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    x86: get rid of calling do_notify_resume() when returning to kernel mode
    blackfin: check __get_user() return value
    whack-a-mole with TIF_FREEZE
    FRV: Optimise the system call exit path in entry.S [ver #2]
    FRV: Shrink TIF_WORK_MASK [ver #2]
    FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions
    new helper: signal_delivered()
    powerpc: get rid of restore_sigmask()
    most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set
    set_restore_sigmask() is never called without SIGPENDING (and never should be)
    TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set
    don't call try_to_freeze() from do_signal()
    pull clearing RESTORE_SIGMASK into block_sigmask()
    sh64: failure to build sigframe != signal without handler
    openrisc: tracehook_signal_handler() is supposed to be called on success
    new helper: sigmask_to_save()
    new helper: restore_saved_sigmask()
    new helpers: {clear,test,test_and_clear}_restore_sigmask()
    HAVE_RESTORE_SIGMASK is defined on all architectures now

    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
     
  • Does block_sigmask() + tracehook_signal_handler(); called when
    sigframe has been successfully built. All architectures converted
    to it; block_sigmask() itself is gone now (merged into this one).

    I'm still not too happy with the signature, but that's a separate
    story (IMO we need a structure that would contain signal number +
    siginfo + k_sigaction, so that get_signal_to_deliver() would fill one,
    signal_delivered(), handle_signal() and probably setup...frame() -
    take one).

    Signed-off-by: Al Viro

    Al Viro
     
  • Only 3 out of 63 do not. Renamed the current variant to __set_current_blocked(),
    added set_current_blocked() that will exclude unblockable signals, switched
    open-coded instances to it.

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • replace boilerplate "should we use ->saved_sigmask or ->blocked?"
    with calls of obvious inlined helper...

    Signed-off-by: Al Viro

    Al Viro
     
  • first fruits of ..._restore_sigmask() helpers: now we can take
    boilerplate "signal didn't have a handler, clear RESTORE_SIGMASK
    and restore the blocked mask from ->saved_mask" into a common
    helper. Open-coded instances switched...

    Signed-off-by: Al Viro

    Al Viro
     

01 Jun, 2012

1 commit

  • Pull second pile of signal handling patches from Al Viro:
    "This one is just task_work_add() series + remaining prereqs for it.

    There probably will be another pull request from that tree this
    cycle - at least for helpers, to get them out of the way for per-arch
    fixes remaining in the tree."

    Fix trivial conflict in kernel/irq/manage.c: the merge of Andrew's pile
    had brought in commit 97fd75b7b8e0 ("kernel/irq/manage.c: use the
    pr_foo() infrastructure to prefix printks") which changed one of the
    pr_err() calls that this merge moves around.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    keys: kill task_struct->replacement_session_keyring
    keys: kill the dummy key_replace_session_keyring()
    keys: change keyctl_session_to_parent() to use task_work_add()
    genirq: reimplement exit_irq_thread() hook via task_work_add()
    task_work_add: generic process-context callbacks
    avr32: missed _TIF_NOTIFY_RESUME on one of do_notify_resume callers
    parisc: need to check NOTIFY_RESUME when exiting from syscall
    move key_repace_session_keyring() into tracehook_notify_resume()
    TIF_NOTIFY_RESUME is defined on all targets now

    Linus Torvalds
     

31 May, 2012

3 commits


25 May, 2012

4 commits

  • commit 8239c25f47d2b318156993b15f33900a86ea5e17 added an argument to our
    __cpu_up() function, but didn't notice we have an extra definition for
    this in asm/smp.h resulting in a compile failure.

    Fix by removing the extraneous parisc definition of __cpu_up(). While
    we're at it, remove the duplicated definition of smp_send_reschedule().

    Signed-off-by: James Bottomley

    James Bottomley
     
  • commit 5e185581d7c46ddd33cd9c01106d1fc86efb9376
    Author: James Bottomley

    [PARISC] fix PA1.1 oops on boot

    Didn't quite fix the crash on boot. It moved it from PA1.1 processors to
    PA2.0 narrow kernels. The final fix is to make sure the [id]tlb_miss_20 paths
    also work. Even on narrow systems, these paths require using the wide
    instructions becuase the tlb insertion format is wide. Fix this by
    conditioning the dep[wd],z on whether we're being called from _11 or _20[w]
    paths.

    Tested-by: Helge Deller
    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley

    James Bottomley
     
  • In certain configurations, the resulting kernel becomes too large to boot
    because the linker places the long branch stubs for the merged .text section
    at the very start of the image. As a result, the initial transfer of control
    jumps to an unexpected location. Fix this by placing the head text in a
    separate section so the stubs for .text are not at the start of the image.

    Signed-off-by: John David Anglin
    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley

    John David Anglin
     
  • Pull KVM changes from Avi Kivity:
    "Changes include additional instruction emulation, page-crossing MMIO,
    faster dirty logging, preventing the watchdog from killing a stopped
    guest, module autoload, a new MSI ABI, and some minor optimizations
    and fixes. Outside x86 we have a small s390 and a very large ppc
    update.

    Regarding the new (for kvm) rebaseless workflow, some of the patches
    that were merged before we switch trees had to be rebased, while
    others are true pulls. In either case the signoffs should be correct
    now."

    Fix up trivial conflicts in Documentation/feature-removal-schedule.txt
    arch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.

    I suspect the kvm_para.h resolution ends up doing the "do I have cpuid"
    check effectively twice (it was done differently in two different
    commits), but better safe than sorry ;)

    * 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)
    KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block
    KVM: s390: onereg for timer related registers
    KVM: s390: epoch difference and TOD programmable field
    KVM: s390: KVM_GET/SET_ONEREG for s390
    KVM: s390: add capability indicating COW support
    KVM: Fix mmu_reload() clash with nested vmx event injection
    KVM: MMU: Don't use RCU for lockless shadow walking
    KVM: VMX: Optimize %ds, %es reload
    KVM: VMX: Fix %ds/%es clobber
    KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()
    KVM: VMX: unlike vmcs on fail path
    KVM: PPC: Emulator: clean up SPR reads and writes
    KVM: PPC: Emulator: clean up instruction parsing
    kvm/powerpc: Add new ioctl to retreive server MMU infos
    kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM
    KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler
    KVM: PPC: Book3S: Enable IRQs during exit handling
    KVM: PPC: Fix PR KVM on POWER7 bare metal
    KVM: PPC: Fix stbux emulation
    KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields
    ...

    Linus Torvalds
     

24 May, 2012

6 commits

  • ... not just on return from interrupt

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Pull first series of signal handling cleanups from Al Viro:
    "This is just the first part of the queue (about a half of it);
    assorted fixes all over the place in signal handling.

    This one ends with all sigsuspend() implementations switched to
    generic one (->saved_sigmask-based).

    With this, a bunch of assorted old buglets are fixed and most of the
    missing bits of NOTIFY_RESUME hookup are in place. Two more fixes sit
    in arm and um trees respectively, and there's a couple of broken ones
    that need obvious fixes - parisc and avr32 check TIF_NOTIFY_RESUME
    only on one of two codepaths; fixes for that will happen in the next
    series"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (55 commits)
    unicore32: if there's no handler we need to restore sigmask, syscall or no syscall
    xtensa: add handling of TIF_NOTIFY_RESUME
    microblaze: drop 'oldset' argument of do_notify_resume()
    microblaze: handle TIF_NOTIFY_RESUME
    score: add handling of NOTIFY_RESUME to do_notify_resume()
    m68k: add TIF_NOTIFY_RESUME and handle it.
    sparc: kill ancient comment in sparc_sigaction()
    h8300: missing checks of __get_user()/__put_user() return values
    frv: missing checks of __get_user()/__put_user() return values
    cris: missing checks of __get_user()/__put_user() return values
    powerpc: missing checks of __get_user()/__put_user() return values
    sh: missing checks of __get_user()/__put_user() return values
    sparc: missing checks of __get_user()/__put_user() return values
    avr32: struct old_sigaction is never used
    m32r: struct old_sigaction is never used
    xtensa: xtensa_sigaction doesn't exist
    alpha: tidy signal delivery up
    score: don't open-code force_sigsegv()
    cris: don't open-code force_sigsegv()
    blackfin: don't open-code force_sigsegv()
    ...

    Linus Torvalds
     
  • Pull user namespace enhancements from Eric Biederman:
    "This is a course correction for the user namespace, so that we can
    reach an inexpensive, maintainable, and reasonably complete
    implementation.

    Highlights:
    - Config guards make it impossible to enable the user namespace and
    code that has not been converted to be user namespace safe.

    - Use of the new kuid_t type ensures the if you somehow get past the
    config guards the kernel will encounter type errors if you enable
    user namespaces and attempt to compile in code whose permission
    checks have not been updated to be user namespace safe.

    - All uids from child user namespaces are mapped into the initial
    user namespace before they are processed. Removing the need to add
    an additional check to see if the user namespace of the compared
    uids remains the same.

    - With the user namespaces compiled out the performance is as good or
    better than it is today.

    - For most operations absolutely nothing changes performance or
    operationally with the user namespace enabled.

    - The worst case performance I could come up with was timing 1
    billion cache cold stat operations with the user namespace code
    enabled. This went from 156s to 164s on my laptop (or 156ns to
    164ns per stat operation).

    - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.
    Most uid/gid setting system calls treat these value specially
    anyway so attempting to use -1 as a uid would likely cause
    entertaining failures in userspace.

    - If setuid is called with a uid that can not be mapped setuid fails.
    I have looked at sendmail, login, ssh and every other program I
    could think of that would call setuid and they all check for and
    handle the case where setuid fails.

    - If stat or a similar system call is called from a context in which
    we can not map a uid we lie and return overflowuid. The LFS
    experience suggests not lying and returning an error code might be
    better, but the historical precedent with uids is different and I
    can not think of anything that would break by lying about a uid we
    can't map.

    - Capabilities are localized to the current user namespace making it
    safe to give the initial user in a user namespace all capabilities.

    My git tree covers all of the modifications needed to convert the core
    kernel and enough changes to make a system bootable to runlevel 1."

    Fix up trivial conflicts due to nearby independent changes in fs/stat.c

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
    userns: Silence silly gcc warning.
    cred: use correct cred accessor with regards to rcu read lock
    userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
    userns: Convert cgroup permission checks to use uid_eq
    userns: Convert tmpfs to use kuid and kgid where appropriate
    userns: Convert sysfs to use kgid/kuid where appropriate
    userns: Convert sysctl permission checks to use kuid and kgids.
    userns: Convert proc to use kuid/kgid where appropriate
    userns: Convert ext4 to user kuid/kgid where appropriate
    userns: Convert ext3 to use kuid/kgid where appropriate
    userns: Convert ext2 to use kuid/kgid where appropriate.
    userns: Convert devpts to use kuid/kgid where appropriate
    userns: Convert binary formats to use kuid/kgid where appropriate
    userns: Add negative depends on entries to avoid building code that is userns unsafe
    userns: signal remove unnecessary map_cred_ns
    userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
    userns: Fail exec for suid and sgid binaries with ids outside our user namespace.
    userns: Convert stat to return values mapped from kuids and kgids
    userns: Convert user specfied uids and gids in chown into kuids and kgid
    userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs
    ...

    Linus Torvalds
     
  • Pull x86 platform changes from Ingo Molnar:
    "This tree includes assorted platform driver updates and a preparatory
    series for a platform with custom DMA remapping semantics (sta2x11 I/O
    hub)."

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/vsmp: Fix number of CPUs when vsmp is disabled
    keyboard: Use BIOS Keyboard variable to set Numlock
    x86/olpc/xo1/sci: Report RTC wakeup events
    x86/olpc/xo1/sci: Produce wakeup events for buttons and switches
    x86, platform: Initial support for sta2x11 I/O hub
    x86: Introduce CONFIG_X86_DMA_REMAP
    x86-32: Introduce CONFIG_X86_DEV_DMA_OPS

    Linus Torvalds
     
  • Pull fpu state cleanups from Ingo Molnar:
    "This tree streamlines further aspects of FPU handling by eliminating
    the prepare_to_copy() complication and moving that logic to
    arch_dup_task_struct().

    It also fixes the FPU dumps in threaded core dumps, removes and old
    (and now invalid) assumption plus micro-optimizes the exit path by
    avoiding an FPU save for dead tasks."

    Fixed up trivial add-add conflict in arch/sh/kernel/process.c that came
    in because we now do the FPU handling in arch_dup_task_struct() rather
    than the legacy (and now gone) prepare_to_copy().

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, fpu: drop the fpu state during thread exit
    x86, xsave: remove thread_has_fpu() bug check in __sanitize_i387_state()
    coredump: ensure the fpu state is flushed for proper multi-threaded core dump
    fork: move the real prepare_to_copy() users to arch_dup_task_struct()

    Linus Torvalds
     

22 May, 2012

3 commits

  • Signed-off-by: Al Viro

    Al Viro
     
  • As described in e6fa16ab ("signal: sigprocmask() should do
    retarget_shared_pending()") the modification of current->blocked is
    incorrect as we need to check whether the signal we're about to block is
    pending in the shared queue.

    Also, use the new helper function introduced in commit 5e6292c0f28f
    ("signal: add block_sigmask() for adding sigmask to current->blocked")
    which centralises the code for updating current->blocked after
    successfully delivering a signal and reduces the amount of duplicate code
    across architectures. In the past some architectures got this code wrong,
    so using this helper function should stop that from happening again.

    Acked-by: Oleg Nesterov
    Acked-by: Kyle McMartin
    Cc: Helge Deller
    Cc: "James E.J. Bottomley"
    Signed-off-by: Matt Fleming
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Matt Fleming
     
  • Pull smp hotplug cleanups from Thomas Gleixner:
    "This series is merily a cleanup of code copied around in arch/* and
    not changing any of the real cpu hotplug horrors yet. I wish I'd had
    something more substantial for 3.5, but I underestimated the lurking
    horror..."

    Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
    arch/sparc/include/asm/thread_info_32.h

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
    um: Remove leftover declaration of alloc_task_struct_node()
    task_allocator: Use config switches instead of magic defines
    sparc: Use common threadinfo allocator
    score: Use common threadinfo allocator
    sh-use-common-threadinfo-allocator
    mn10300: Use common threadinfo allocator
    powerpc: Use common threadinfo allocator
    mips: Use common threadinfo allocator
    hexagon: Use common threadinfo allocator
    m32r: Use common threadinfo allocator
    frv: Use common threadinfo allocator
    cris: Use common threadinfo allocator
    x86: Use common threadinfo allocator
    c6x: Use common threadinfo allocator
    fork: Provide kmemcache based thread_info allocator
    tile: Use common threadinfo allocator
    fork: Provide weak arch_release_[task_struct|thread_info] functions
    fork: Move thread info gfp flags to header
    fork: Remove the weak insanity
    sh: Remove cpu_idle_wait()
    ...

    Linus Torvalds
     

17 May, 2012

1 commit

  • Historical prepare_to_copy() is mostly a no-op, duplicated for majority of
    the architectures and the rest following the x86 model of flushing the extended
    register state like fpu there.

    Remove it and use the arch_dup_task_struct() instead.

    Suggested-by: Oleg Nesterov
    Suggested-by: Linus Torvalds
    Signed-off-by: Suresh Siddha
    Link: http://lkml.kernel.org/r/1336692811-30576-1-git-send-email-suresh.b.siddha@intel.com
    Acked-by: Benjamin Herrenschmidt
    Cc: David Howells
    Cc: Koichi Yasutake
    Cc: Paul Mackerras
    Cc: Paul Mundt
    Cc: Chris Zankel
    Cc: Richard Henderson
    Cc: Russell King
    Cc: Haavard Skinnemoen
    Cc: Mike Frysinger
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Mikael Starvik
    Cc: Yoshinori Sato
    Cc: Richard Kuo
    Cc: Tony Luck
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Jonas Bonn
    Cc: James E.J. Bottomley
    Cc: Helge Deller
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Chen Liqin
    Cc: Lennox Wu
    Cc: David S. Miller
    Cc: Chris Metcalf
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: Guan Xuetao
    Signed-off-by: H. Peter Anvin

    Suresh Siddha
     

16 May, 2012

5 commits

  • Due to an errata, the PA7300LC generates a TLB miss interruption even on the
    prefetch instruction. This means that prefetch(NULL), which is supposed to be
    a nop on linux actually generates a NULL deref fault. Fix this by testing the
    address of prefetch against NULL before doing the prefetch.

    Cc: stable@vger.kernel.org
    Signed-off-by: James Bottomley

    James Bottomley
     
  • As pointed out by serveral people, PA1.1 only has a type 26 instruction
    meaning that the space register must be explicitly encoded. Not giving an
    explicit space means that the compiler uses the type 24 version which is PA2.0
    only resulting in an illegal instruction crash.

    This regression was caused by

    commit f311847c2fcebd81912e2f0caf8a461dec28db41
    Author: James Bottomley
    Date: Wed Dec 22 10:22:11 2010 -0600

    parisc: flush pages through tmpalias space

    Reported-by: Helge Deller
    Signed-off-by: John David Anglin
    Cc: stable@vger.kernel.org #2.6.39+
    Signed-off-by: James Bottomley

    John David Anglin
     
  • All PA1.1 systems have been oopsing on boot since

    commit f311847c2fcebd81912e2f0caf8a461dec28db41
    Author: James Bottomley
    Date: Wed Dec 22 10:22:11 2010 -0600

    parisc: flush pages through tmpalias space

    because a PA2.0 instruction was accidentally introduced into the PA1.1 TLB
    insertion interruption path when it was consolidated with the do_alias macro.
    Fix the do_alias macro only to use PA2.0 instructions if compiled for 64 bit.
    Cc: stable@vger.kernel.org #2.6.39+
    Signed-off-by: James Bottomley

    James Bottomley
     
  • The scheduler depends on receiving the CPU_STARTING notification, without
    which we end up into a lot of trouble. So add the missing call to
    notify_cpu_starting() in the bringup code.

    Signed-off-by: Srivatsa S. Bhat
    Acked-and-Tested-by: Mikulas Patocka
    Acked-and-Tested-by: Tobias Ulmer
    Tested-by: John David Anglin
    Signed-off-by: Linus Torvalds

    Srivatsa S. Bhat
     
  • - Store uids and gids with kuid_t and kgid_t in struct kstat
    - Convert uid and gids to userspace usable values with
    from_kuid and from_kgid

    Acked-by: Serge Hallyn
    Signed-off-by: Eric W. Biederman

    Eric W. Biederman