1. 28 Aug, 2012 6 commits
    • Oleg Nesterov's avatar
      uprobes: Change uprobe_mmap() to ignore the errors but check fatal_signal_pending() · 5e5be71a
      Oleg Nesterov authored
      Once install_breakpoint() fails uprobe_mmap() "ignores" all other
      uprobes and returns the error.
      
      It was never really needed to to stop after the first error, and
      in fact it was always wrong at least in -ENOTSUPP case.
      
      Change uprobe_mmap() to ignore the errors and always return 0.
      This is not what we want in the long term, but until we teach
      the callers to handle the failure it would be better to remove
      the pointless complications. And this doesn't look too bad, the
      only "reasonable" error is ENOMEM but in this case the caller
      should be oom-killed in the likely case or the system has more
      serious problems.
      
      However it makes sense to stop if fatal_signal_pending() == T.
      In particular this helps if the task was oom-killed.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      5e5be71a
    • Oleg Nesterov's avatar
      uprobes: Kill dup_mmap()->uprobe_mmap(), simplify uprobe_mmap/munmap · f1a45d02
      Oleg Nesterov authored
      1. Kill dup_mmap()->uprobe_mmap(), it was only needed to calculate
         new_mm->uprobes_state.count removed by the previous patch.
      
         If the forking process has a pending uprobe (int3) in vma, it will
         be copied by copy_page_range(), note that it checks vma->anon_vma
         so "Don't copy ptes" is not possible after install_breakpoint()
         which does anon_vma_prepare().
      
      2. Remove is_swbp_at_addr() and "int count" in uprobe_mmap(). Again,
         this was needed for uprobes_state.count.
      
         As a side effect this fixes the bug pointed out by Srikar,
         this code lacked the necessary put_uprobe().
      
      3. uprobe_munmap() becomes a nop after the previous patch. Remove the
         meaningless code but do not remove the helper, we will need it.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      f1a45d02
    • Oleg Nesterov's avatar
      uprobes: Kill uprobes_state->count · 647c42df
      Oleg Nesterov authored
      uprobes_state->count is only needed to avoid the slow path in
      uprobe_pre_sstep_notifier(). It is also checked in uprobe_munmap()
      but ironically its only goal to decrement this counter. However,
      it is very broken. Just some examples:
      
      - uprobe_mmap() can race with uprobe_unregister() and wrongly
        increment the counter if it hits the non-uprobe "int3". Note
        that install_breakpoint() checks ->consumers first and returns
        -EEXIST if it is NULL.
      
        "atomic_sub() if error" in uprobe_mmap() looks obviously wrong
        too.
      
      - uprobe_munmap() can race with uprobe_register() and wrongly
        decrement the counter by the same reason.
      
      - Suppose an appication tries to increase the mmapped area via
        sys_mremap(). vma_adjust() does uprobe_munmap(whole_vma) first,
        this can nullify the counter temporarily and race with another
        thread which can hit the bp, the application will be killed by
        SIGTRAP.
      
      - Suppose an application mmaps 2 consecutive areas in the same file
        and one (or both) of these areas has uprobes. In the likely case
        mmap_region()->vma_merge() suceeds. Like above, this leads to
        uprobe_munmap/uprobe_mmap from vma_merge()->vma_adjust() but then
        mmap_region() does another uprobe_mmap(resulting_vma) and doubles
        the counter.
      
      This patch only removes this counter and fixes the compile errors,
      then we will try to cleanup the changed code and add something else
      instead.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      647c42df
    • Sebastian Andrzej Siewior's avatar
      uprobes: Remove check for uprobe variable in handle_swbp() · 8bd87445
      Sebastian Andrzej Siewior authored
      by the time we get here (after we pass cleanup_ret) uprobe is always is
      set. If it is NULL we leave very early in the code.
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      8bd87445
    • Srikar Dronamraju's avatar
      uprobes: Remove redundant lock_page/unlock_page · 61e1d394
      Srikar Dronamraju authored
      Since read_opcode() reads from the referenced page and doesnt modify
      the page contents nor the page attributes, there is no need to lock
      the page.
      Signed-off-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      61e1d394
    • Ingo Molnar's avatar
      Merge branch 'perf/urgent' into perf/core · 508dc4f8
      Ingo Molnar authored
      Pick up the latest fixes because upcoming uprobes changes will rely on it.
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      508dc4f8
  2. 27 Aug, 2012 1 commit
  3. 26 Aug, 2012 4 commits
    • Linus Torvalds's avatar
      Merge tag 'fixes-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 9acb1725
      Linus Torvalds authored
      Pull arm-soc fixes from Arnd Bergmann:
       "Bug fixes for various ARM platforms.  About half of these are for OMAP
        and submitted before but did not make it into v3.6-rc2."
      
      * tag 'fixes-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
        ARM: ux500: don't select LEDS_GPIO for snowball
        ARM: imx: build i.MX6 functions only when needed
        ARM: imx: select CPU_FREQ_TABLE when needed
        ARM: imx: fix ksz9021rn_phy_fixup
        ARM: imx: build pm-imx5 code only when PM is enabled
        ARM: omap: allow building omap44xx without SMP
        ARM: dts: imx51-babbage: fix esdhc cd/wp properties
        ARM: imx6: spin the cpu until hardware takes it down
        ARM: ux500: Ensure probing of Audio devices when Device Tree is enabled
        ARM: ux500: Fix merge error, no matching driver name for 'snd_soc_u8500'
        ARM i.MX6q: Add virtual 1/3.5 dividers in the LDB clock path
        ARM: Kirkwood: fix Makefile.boot
        ARM: Kirkwood: Fix iconnect leds
        ARM: Orion: Set eth packet size csum offload limit
        ARM: mv78xx0: fix win_cfg_base prototype
        ARM: OMAP: dmtimers: Fix locking issue in omap_dm_timer_request*()
        ARM: mmp: fix potential NULL dereference
        ARM: OMAP4: Register the OPP table only for 4430 device
        cpufreq: OMAP: Handle missing frequency table on SMP systems
        ARM: OMAP4: sleep: Save the complete used register stack frame
        ...
      9acb1725
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.6-rc3-tag' of... · 26756087
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.6-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull three xen bug-fixes from Konrad Rzeszutek Wilk:
       - Revert the kexec fix which caused on non-kexec shutdowns a race.
       - Reuse existing P2M leafs - instead of requiring to allocate a large
         area of bootup virtual address estate.
       - Fix a one-off error when adding PFNs for balloon pages.
      
      * tag 'stable/for-linus-3.6-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M.
        xen/p2m: Reuse existing P2M leafs if they are filled with 1:1 PFNs or INVALID.
        Revert "xen PVonHVM: move shared_info to MMIO before kexec"
      26756087
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 4ae46147
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "I meant to sent that earlier but got swamped with other things, so
        here are some powerpc fixes for 3.6.  A few regression fixes and some
        bug fixes that I deemed should still make it.
      
        There's a FSL update from Kumar with a bunch of defconfig updates
        along with a few embedded fixes.
      
        I also reverted my g5_defconfig update that I merged earlier as it was
        completely busted, not too sure what happened there, I'll do a new one
        later."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        Revert "powerpc: Update g5_defconfig"
        powerpc/perf: Use pmc_overflow() to detect rolled back events
        powerpc: Fix VMX in interrupt check in POWER7 copy loops
        powerpc: POWER7 copy_to_user/copy_from_user patch applied twice
        powerpc: Fix personality handling in ppc64_personality()
        powerpc/dma-iommu: Fix IOMMU window check
        powerpc: Remove unnecessary ifdefs
        powerpc/kgdb: Restore current_thread_info properly
        powerpc/kgdb: Bail out of KGDB when we've been triggered
        powerpc/kgdb: Do not set kgdb_single_step on ppc
        powerpc/mpic_msgr: Add missing includes
        powerpc: Fix null pointer deref in perf hardware breakpoints
        powerpc: Fixup whitespace in xmon
        powerpc: Fix xmon dl command for new printk implementation
        powerpc/fsl: fix "Failed to mount /dev: No such device" errors
        powerpc/fsl: update defconfigs
        booke/wdt: some ioctls do not return values properly
        powerpc/p4080ds: dts - add usb controller version info and port0
        powerpc/85xx: mpc85xx_defconfig - add VIA PATA support for MPC85xxCDS
        powerpc/fsl-pci: Only scan PCI bus if configured as a host
      4ae46147
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 6ec9776c
      Linus Torvalds authored
      Pull kvm fixes from Marcelo Tosatti.
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86 emulator: use stack size attribute to mask rsp in stack ops
        KVM: MMU: Fix mmu_shrink() so that it can free mmu pages as intended
        ppc: e500_tlb memset clears nothing
        KVM: PPC: Add cache flush on page map
        KVM: PPC: Book3S HV: Fix incorrect branch in H_CEDE code
        KVM: x86: update KVM_SAVE_MSRS_BEGIN to correct value
      6ec9776c
  4. 25 Aug, 2012 6 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-v3.6-rc4' of git://oss.sgi.com/xfs/xfs · e1d33a5c
      Linus Torvalds authored
      Pull xfs bugfixes from Ben Myers:
       - fix uninitialised variable in xfs_rtbuf_get()
       - unlock the AGI buffer when looping in xfs_dialloc
       - check for possible overflow in xfs_ioc_trim
      
      * tag 'for-linus-v3.6-rc4' of git://oss.sgi.com/xfs/xfs:
        xfs: check for possible overflow in xfs_ioc_trim
        xfs: unlock the AGI buffer when looping in xfs_dialloc
        xfs: fix uninitialised variable in xfs_rtbuf_get()
      e1d33a5c
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 2432cbe4
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "Random fixes across the MIPS tree.  The two hotspots are several bugs
        in the module loader and the ath79 SOC support; also noteworthy is the
        restructuring of the code to synchronize CPU timers across CPUs on
        startup; the old code recently ceased to work due to unrelated
        changes.
      
        All except one of these patches have sat for a significant time in
        linux-next for testing."
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: pci-ar724x: avoid data bus error due to a missing PCIe module
        MIPS: Malta: Delete duplicate PCI fixup.
        MIPS: ath79: don't hardcode the unavailability of the DSP ASE
        MIPS: Synchronize MIPS count one CPU at a time
        MIPS: BCM63xx: Fix SPI message control register handling for BCM6338/6348.
        MIPS: Module: Deal with malformed HI16/LO16 relocation sequences.
        MIPS: Fix race condition in module relocation code.
        MIPS: Fix memory leak in error path of HI16/LO16 relocation handling.
        MIPS: MTX-1: Add udelay to mtx1_pci_idsel
        MIPS: ath79: select HAVE_CLK
        MIPS: ath79: Use correct IRQ number for the OHCI controller on AR7240
        MIPS: ath79: Fix number of GPIO lines for AR724[12]
        MIPS: Octeon: Fix broken interrupt controller code.
      2432cbe4
    • Linus Torvalds's avatar
      Merge branch 'for-3.6' of git://linux-nfs.org/~bfields/linux · 8497ae61
      Linus Torvalds authored
      Pull nfsd bugfixes from J. Bruce Fields:
       "Particular thanks to Michael Tokarev, Malahal Naineni, and Jamie
        Heilman for their testing and debugging help."
      
      * 'for-3.6' of git://linux-nfs.org/~bfields/linux:
        svcrpc: fix svc_xprt_enqueue/svc_recv busy-looping
        svcrpc: sends on closed socket should stop immediately
        svcrpc: fix BUG() in svc_tcp_clear_pages
        nfsd4: fix security flavor of NFSv4.0 callback
      8497ae61
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · a7e546f1
      Linus Torvalds authored
      Pull block-related fixes from Jens Axboe:
      
       - Improvements to the buffered and direct write IO plugging from
         Fengguang.
      
       - Abstract out the mapping of a bio in a request, and use that to
         provide a blk_bio_map_sg() helper.  Useful for mapping just a bio
         instead of a full request.
      
       - Regression fix from Hugh, fixing up a patch that went into the
         previous release cycle (and marked stable, too) attempting to prevent
         a loop in __getblk_slow().
      
       - Updates to discard requests, fixing up the sizing and how we align
         them.  Also a change to disallow merging of discard requests, since
         that doesn't really work properly yet.
      
       - A few drbd fixes.
      
       - Documentation updates.
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: replace __getblk_slow misfix by grow_dev_page fix
        drbd: Write all pages of the bitmap after an online resize
        drbd: Finish requests that completed while IO was frozen
        drbd: fix drbd wire compatibility for empty flushes
        Documentation: update tunable options in block/cfq-iosched.txt
        Documentation: update tunable options in block/cfq-iosched.txt
        Documentation: update missing index files in block/00-INDEX
        block: move down direct IO plugging
        block: remove plugging at buffered write time
        block: disable discard request merge temporarily
        bio: Fix potential memory leak in bio_find_or_create_slab()
        block: Don't use static to define "void *p" in show_partition_start()
        block: Add blk_bio_map_sg() helper
        block: Introduce __blk_segment_map_sg() helper
        fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
        block: split discard into aligned requests
        block: reorganize rounding of max_discard_sectors
      a7e546f1
    • Linus Torvalds's avatar
      Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · da31ce72
      Linus Torvalds authored
      Pull libata fixes from Jeff Garzik:
       - libata-acpi regression fix
       - additional or corrected drive quirks for ata_blacklist
       - Kconfig text tweaking
       - new PCI IDs
       - pata_atiixp: quirk for MSI motherboard
       - export ahci_dev_classify for an ahci_platform driver
      
      * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry
        [libata] new quirk, lift bridge limits for Buffalo DriveStation Quattro
        [libata] Kconfig: Elaborate that SFF is meant for legacy and PATA stuff
        [libata] acpi: call ata_acpi_gtm during ata port init time
        ata_piix: Add Device IDs for Intel Lynx Point-LP PCH
        ahci: Add Device IDs for Intel Lynx Point-LP PCH
        pata_atiixp: override cable detection on MSI E350DM-E33
        ahci: un-staticize ahci_dev_classify
      da31ce72
    • Prarit Bhargava's avatar
      libata: Add a space to " 2GB ATA Flash Disk" DMA blacklist entry · d17d794c
      Prarit Bhargava authored
      commit d70e551c, Add " 2GB ATA Flash
      Disk"/"ADMA428M" to DMA blacklist, should have added a space before 2GB.
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d17d794c
  5. 24 Aug, 2012 23 commits