1. 04 1月, 2014 2 次提交
    • K
      xen/pvhvm: Remove the xen_platform_pci int. · 6f6c15ef
      Konrad Rzeszutek Wilk 提交于
      Since we have  xen_has_pv_devices,xen_has_pv_disk_devices,
      xen_has_pv_nic_devices, and xen_has_pv_and_legacy_disk_devices
      to figure out the different 'unplug' behaviors - lets
      use those instead of this single int.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      6f6c15ef
    • K
      xen/pvhvm: If xen_platform_pci=0 is set don't blow up (v4). · 51c71a3b
      Konrad Rzeszutek Wilk 提交于
      The user has the option of disabling the platform driver:
      00:02.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)
      
      which is used to unplug the emulated drivers (IDE, Realtek 8169, etc)
      and allow the PV drivers to take over. If the user wishes
      to disable that they can set:
      
        xen_platform_pci=0
        (in the guest config file)
      
      or
        xen_emul_unplug=never
        (on the Linux command line)
      
      except it does not work properly. The PV drivers still try to
      load and since the Xen platform driver is not run - and it
      has not initialized the grant tables, most of the PV drivers
      stumble upon:
      
      input: Xen Virtual Keyboard as /devices/virtual/input/input5
      input: Xen Virtual Pointer as /devices/virtual/input/input6M
      ------------[ cut here ]------------
      kernel BUG at /home/konrad/ssd/konrad/linux/drivers/xen/grant-table.c:1206!
      invalid opcode: 0000 [#1] SMP
      Modules linked in: xen_kbdfront(+) xenfs xen_privcmd
      CPU: 6 PID: 1389 Comm: modprobe Not tainted 3.13.0-rc1upstream-00021-ga6c892b-dirty #1
      Hardware name: Xen HVM domU, BIOS 4.4-unstable 11/26/2013
      RIP: 0010:[<ffffffff813ddc40>]  [<ffffffff813ddc40>] get_free_entries+0x2e0/0x300
      Call Trace:
       [<ffffffff8150d9a3>] ? evdev_connect+0x1e3/0x240
       [<ffffffff813ddd0e>] gnttab_grant_foreign_access+0x2e/0x70
       [<ffffffffa0010081>] xenkbd_connect_backend+0x41/0x290 [xen_kbdfront]
       [<ffffffffa0010a12>] xenkbd_probe+0x2f2/0x324 [xen_kbdfront]
       [<ffffffff813e5757>] xenbus_dev_probe+0x77/0x130
       [<ffffffff813e7217>] xenbus_frontend_dev_probe+0x47/0x50
       [<ffffffff8145e9a9>] driver_probe_device+0x89/0x230
       [<ffffffff8145ebeb>] __driver_attach+0x9b/0xa0
       [<ffffffff8145eb50>] ? driver_probe_device+0x230/0x230
       [<ffffffff8145eb50>] ? driver_probe_device+0x230/0x230
       [<ffffffff8145cf1c>] bus_for_each_dev+0x8c/0xb0
       [<ffffffff8145e7d9>] driver_attach+0x19/0x20
       [<ffffffff8145e260>] bus_add_driver+0x1a0/0x220
       [<ffffffff8145f1ff>] driver_register+0x5f/0xf0
       [<ffffffff813e55c5>] xenbus_register_driver_common+0x15/0x20
       [<ffffffff813e76b3>] xenbus_register_frontend+0x23/0x40
       [<ffffffffa0015000>] ? 0xffffffffa0014fff
       [<ffffffffa001502b>] xenkbd_init+0x2b/0x1000 [xen_kbdfront]
       [<ffffffff81002049>] do_one_initcall+0x49/0x170
      
      .. snip..
      
      which is hardly nice. This patch fixes this by having each
      PV driver check for:
       - if running in PV, then it is fine to execute (as that is their
         native environment).
       - if running in HVM, check if user wanted 'xen_emul_unplug=never',
         in which case bail out and don't load any PV drivers.
       - if running in HVM, and if PCI device 5853:0001 (xen_platform_pci)
         does not exist, then bail out and not load PV drivers.
       - (v2) if running in HVM, and if the user wanted 'xen_emul_unplug=ide-disks',
         then bail out for all PV devices _except_ the block one.
         Ditto for the network one ('nics').
       - (v2) if running in HVM, and if the user wanted 'xen_emul_unplug=unnecessary'
         then load block PV driver, and also setup the legacy IDE paths.
         In (v3) make it actually load PV drivers.
      
      Reported-by: Sander Eikelenboom <linux@eikelenboom.it
      Reported-by: NAnthony PERARD <anthony.perard@citrix.com>
      Reported-and-Tested-by: NFabio Fantoni <fabio.fantoni@m2r.biz>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      [v2: Add extra logic to handle the myrid ways 'xen_emul_unplug'
      can be used per Ian and Stefano suggestion]
      [v3: Make the unnecessary case work properly]
      [v4: s/disks/ide-disks/ spotted by Fabio]
      Reviewed-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Acked-by: Bjorn Helgaas <bhelgaas@google.com> [for PCI parts]
      CC: stable@vger.kernel.org
      51c71a3b
  2. 30 12月, 2013 4 次提交
    • L
      Linux 3.13-rc6 · 802eee95
      Linus Torvalds 提交于
      802eee95
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d7ada73c
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Another smallish batch of fixes, it's been quiet due to the holidays.
        Nothing controversial here, a handful of things across the board"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: pxa: fix USB gadget driver compilation regression
        ARM: OMAP2+: Fix LCD panel backlight regression for LDP legacy booting
        ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data
        ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL
        ARM: shmobile: r8a7790: fix shdi resource sizes
        ARM: shmobile: bockw: fixup DMA mask
        ARM: shmobile: armadillo: Add PWM backlight power supply
      d7ada73c
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8cf126d9
      Linus Torvalds 提交于
      Pull x86 fixes from Peter Anvin:
       "There is a small EFI fix and a big power regression fix in this batch.
      
        My queue also had a fix for downing a CPU when there are insufficient
        number of IRQ vectors available, but I'm holding that one for now due
        to recent bug reports"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/efi: Don't select EFI from certain special ACPI drivers
        x86 idle: Repair large-server 50-watt idle-power regression
      8cf126d9
    • L
      Merge tag 'pm+acpi-3.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bddffa28
      Linus Torvalds 提交于
      Pull ACPI and power management fixes and new device IDs from Rafael Wysocki:
      
       - Fix for a cpufreq regression causing stale sysfs files to be left
         behind during system resume if cpufreq_add_dev() fails for one or
         more CPUs from Viresh Kumar.
      
       - Fix for a bug in cpufreq causing CONFIG_CPU_FREQ_DEFAULT_* to be
         ignored when the intel_pstate driver is used from Jason Baron.
      
       - System suspend fix for a memory leak in pm_vt_switch_unregister()
         that forgot to release objects after removing them from
         pm_vt_switch_list.  From Masami Ichikawa.
      
       - Intel Valley View device ID and energy unit encoding update for the
         (recently added) Intel RAPL (Running Average Power Limit) driver from
         Jacob Pan.
      
       - Intel Bay Trail SoC GPIO and ACPI device IDs for the Low Power
         Subsystem (LPSS) ACPI driver from Paul Drews.
      
      * tag 'pm+acpi-3.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        powercap / RAPL: add support for ValleyView Soc
        PM / sleep: Fix memory leak in pm_vt_switch_unregister().
        cpufreq: Use CONFIG_CPU_FREQ_DEFAULT_* to set initial policy for setpolicy drivers
        cpufreq: remove sysfs files for CPUs which failed to come back after resume
        ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs
      bddffa28
  3. 29 12月, 2013 3 次提交
  4. 28 12月, 2013 2 次提交
  5. 27 12月, 2013 3 次提交
    • R
      Merge branches 'powercap' and 'acpi-lpss' with new device IDs · bfde19c4
      Rafael J. Wysocki 提交于
      * powercap:
        powercap / RAPL: add support for ValleyView Soc
      
      * acpi-lpss:
        ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs
      bfde19c4
    • R
      Merge branches 'pm-cpufreq' and 'pm-sleep' containing PM fixes · 1a672535
      Rafael J. Wysocki 提交于
      * pm-cpufreq:
        cpufreq: Use CONFIG_CPU_FREQ_DEFAULT_* to set initial policy for setpolicy drivers
        cpufreq: remove sysfs files for CPUs which failed to come back after resume
      
      * pm-sleep:
        PM / sleep: Fix memory leak in pm_vt_switch_unregister().
      1a672535
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · f41bfc94
      Linus Torvalds 提交于
      Pull ext4 fixes from Ted Ts'o:
       "A collection of bug fixes destined for stable and some printk cleanups
        and a patch so that instead of BUG'ing we use the ext4_error()
        framework to mark the file system is corrupted"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: add explicit casts when masking cluster sizes
        ext4: fix deadlock when writing in ENOSPC conditions
        jbd2: rename obsoleted msg JBD->JBD2
        jbd2: revise KERN_EMERG error messages
        jbd2: don't BUG but return ENOSPC if a handle runs out of space
        ext4: Do not reserve clusters when fs doesn't support extents
        ext4: fix del_timer() misuse for ->s_err_report
        ext4: check for overlapping extents in ext4_valid_extent_entries()
        ext4: fix use-after-free in ext4_mb_new_blocks
        ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails
      f41bfc94
  6. 26 12月, 2013 2 次提交
    • S
      ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data · 6d4c8830
      Suman Anna 提交于
      Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) and commit
      ec2c0825 (ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ)
      updated the way interrupts for OMAP2/3 devices are defined in the
      HWMOD data structures to being an index plus a fixed offset (defined
      by OMAP_INTC_START).
      
      Couple of irqs in the OMAP2/3 hwmod data were misconfigured completely
      as they were missing this OMAP_INTC_START relative offset. Add this
      offset back to fix the incorrect irq data for the following modules:
      	OMAP2 - GPMC, RNG
      	OMAP3 - GPMC, ISP MMU & IVA MMU
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Fixes: 7d7e1eba ("ARM: OMAP2+: Prepare for irqs.h removal")
      Fixes: ec2c0825 ("ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ")
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6d4c8830
    • R
      ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL · 38958c15
      Rajendra Nayak 提交于
      With commit '7dedd346: ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with
       DEBUG_LL' we moved from parsing cmdline to identify uart used for earlycon
      to using the requsite hwmod CONFIG_DEBUG_OMAPxUARTy FLAGS.
      
      On DRA7 though, we seem to be missing this flag, and atleast on the DRA7 EVM
      where we use uart1 for console, boot fails with DEBUG_LL enabled.
      Reported-by: NLokesh Vutla <lokeshvutla@ti.com>
      Tested-by:  Lokesh Vutla <lokeshvutla@ti.com> # on a different base
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Fixes: 7dedd346 ("ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with DEBUG_LL")
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      38958c15
  7. 25 12月, 2013 5 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · c5fdd531
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
       - fix for a memory leak on certain unplug events
       - a collection of bcache fixes from Kent and Nicolas
       - a few null_blk fixes and updates form Matias
       - a marking of static of functions in the stec pci-e driver
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        null_blk: support submit_queues on use_per_node_hctx
        null_blk: set use_per_node_hctx param to false
        null_blk: corrections to documentation
        null_blk: warning on ignored submit_queues param
        null_blk: refactor init and init errors code paths
        null_blk: documentation
        null_blk: mem garbage on NUMA systems during init
        drivers: block: Mark the functions as static in skd_main.c
        bcache: New writeback PD controller
        bcache: bugfix for race between moving_gc and bucket_invalidate
        bcache: fix for gc and writeback race
        bcache: bugfix - moving_gc now moves only correct buckets
        bcache: fix for gc crashing when no sectors are used
        bcache: Fix heap_peek() macro
        bcache: Fix for can_attach_cache()
        bcache: Fix dirty_data accounting
        bcache: Use uninterruptible sleep in writeback
        bcache: kthread don't set writeback task to INTERUPTIBLE
        block: fix memory leaks on unplugging block device
        bcache: fix sparse non static symbol warning
      c5fdd531
    • L
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 70e672fa
      Linus Torvalds 提交于
      Pull cgroup fixes from Tejun Heo:
       "Two fixes.  One fixes a bug in the error path of cgroup_create().  The
        other changes cgrp->id lifetime rule so that the id doesn't get
        recycled before all controller states are destroyed.  This premature
        id recycling made memcg malfunction"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: don't recycle cgroup id until all csses' have been destroyed
        cgroup: fix cgroup_create() error handling path
      70e672fa
    • L
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · f6398600
      Linus Torvalds 提交于
      Pull percpu fix from Tejun Heo:
       "A single commit to fix a spurious sparse warning coming from
        DEFINE_PER_CPU()'s hack to support the use of weak symbols.  Shouldn't
        cause observable behavior change"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: fix spurious sparse warnings from DEFINE_PER_CPU()
      f6398600
    • L
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 4b69316e
      Linus Torvalds 提交于
      Pull libata fixes from Tejun Heo:
       "There's one interseting commit - "libata, freezer: avoid block device
        removal while system is frozen".  It's an ugly hack working around a
        deadlock condition between driver core resume and block layer device
        removal paths through freezer which was made more reproducible by
        writeback being converted to workqueue some releases ago.  The bug has
        nothing to do with libata but it's just an workaround which is easy to
        backport.  After discussion, Rafael and I seem to agree that we don't
        really need kernel freezables - both kthread and workqueue.  There are
        few specific workqueues which constitute PM operations and require
        freezing, which will be converted to use workqueue_set_max_active()
        instead.  All other kernel freezer uses are planned to be removed,
        followed by the removal of kthread and workqueue freezer support,
        hopefully.
      
        Others are device-specific fixes.  The most notable is the addition of
        NO_NCQ_TRIM which is used to disable queued TRIM commands to Micro
        M500 SSDs which otherwise suffers data corruption"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata, freezer: avoid block device removal while system is frozen
        libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs
        libata: disable a disk via libata.force params
        ahci: bail out on ICH6 before using AHCI BAR
        ahci: imx: Explicitly clear IMX6Q_GPR13_SATA_MPLL_CLK_EN
        libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for Seagate Momentus SpinPoint M8
      4b69316e
    • A
      auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE · f60900f2
      Ard Biesheuvel 提交于
      Commit 2171364d ("powerpc: Add HWCAP2 aux entry") introduced a new
      AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE
      accordingly.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Fixes: 2171364d (powerpc: Add HWCAP2 aux entry)
      Cc: stable@vger.kernel.org
      Acked-by: NMichael Neuling <michael@neuling.org>
      Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f60900f2
  8. 24 12月, 2013 8 次提交
  9. 23 12月, 2013 10 次提交
    • D
      Merge tag 'drm-intel-fixes-2013-12-18' of... · 418cb50b
      Dave Airlie 提交于
      Merge tag 'drm-intel-fixes-2013-12-18' of git://people.freedesktop.org/~danvet/drm-intel into drm-fixes
      
      Besides the 2 fixes for tricky corner cases in gem from Chris I've
      promised already two patche from Paulo to fix pc8 warnings (both ported
      from -next, bug report from Dave Jones) and one patch from to fix vga
      enable/disable on snb+. That one is a really old bug, but apparently it
      can cause machine hangs if you try hard enough with vgacon/efifb handover.
      
      * tag 'drm-intel-fixes-2013-12-18' of git://people.freedesktop.org/~danvet/drm-intel:
        drm/i915: Use the correct GMCH_CTRL register for Sandybridge+
        drm/i915: get a PC8 reference when enabling the power well
        drm/i915: change CRTC assertion on LCPLL disable
        drm/i915: Fix erroneous dereference of batch_obj inside reset_status
        drm/i915: Prevent double unref following alloc failure during execbuffer
      418cb50b
    • D
      Merge branch 'drm-fixes-3.13' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 73e33c11
      Dave Airlie 提交于
      - fix for a long standing corruption bug on some Trinity/Richland parts.
      - Stability fix for cayman dpm
      - audio fixes for dce6+
      
      * 'drm-fixes-3.13' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon: fix asic gfx values for scrapper asics
        drm/radeon: check for 0 count in speaker allocation and SAD code
        drm/radeon/dpm: disable ss on Cayman
        drm/radeon/dce6: set correct number of audio pins
      73e33c11
    • T
      drm/ttm: Fix swapin regression · 2e6d8b46
      Thomas Hellstrom 提交于
      Commit "drm/ttm: Don't move non-existing data" didn't take the
      swapped-out corner case into account. This patch corrects that.
      Fixes blank screen after attempted suspend / hibernate on vmwgfx.
      Signed-off-by: NThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      2e6d8b46
    • R
      gpu: fix qxl missing crc32_le · 488574db
      Randy Dunlap 提交于
      Fix build error: qxl uses crc32 functions so it needs to select
      CRC32.
      
      Also use angle quotes around a kernel header file name.
      
      drivers/built-in.o: In function `qxl_display_read_client_monitors_config':
      (.text+0x19d754): undefined reference to `crc32_le'
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      488574db
    • L
      Linux 3.13-rc5 · 413541dd
      Linus Torvalds 提交于
      413541dd
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 93579aee
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Much smaller batch of fixes this week.
      
        Biggest one is a revert of an OMAP display change that removed some
        non-DT pinmux code that was still needed for 3.13 to get DSI displays
        to work.
      
        There's also a fix that resolves some misdescribed GPIO controller
        resources on shmobile.  The rest are mostly smaller fixes, a couple of
        MAINTAINERS updates, etc"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        Revert "ARM: OMAP2+: Remove legacy mux code for display.c"
        MAINTAINERS: Add keystone clock drivers
        MAINTAINERS: Add keystone git tree information
        ARM: s3c64xx: dt: Fix boot failure due to double clock initialization
        ARM: shmobile: r8a7790: Fix GPIO resources in DTS
        irqchip: renesas-intc-irqpin: Fix register bitfield shift calculation
        ARM: shmobile: lager: phy fixup needs CONFIG_PHYLIB
      93579aee
    • L
      Merge tag 'firewire-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · ba8b844f
      Linus Torvalds 提交于
      Pull firewire fixlet from Stefan Richter:
       "A one-liner to reenable WRITE SAME over SBP-2 like in v3.8...v3.12.
        Buggy targets which could malfunction when being subjected to this
        command are already sufficiently protected by a scsi_level check in sd
        + SCSI core"
      
      * tag 'firewire-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: sbp2: bring back WRITE SAME support
      ba8b844f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 1733348b
      Linus Torvalds 提交于
      Pull SCSI target fixes from Nicholas Bellinger:
       "Mostly minor items this time around, the most notable being a FILEIO
        backend change to enforce hw_max_sectors based upon the current
        block_size to address a bug where large sized I/Os (> 1M) where being
        rejected"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        qla2xxx: Fix scsi_host leak on qlt_lport_register callback failure
        target: Remove extra percpu_ref_init
        target/file: Update hw_max_sectors based on current block_size
        iser-target: Move INIT_WORK setup into isert_create_device_ib_res
        iscsi-target: Fix incorrect np->np_thread NULL assignment
        qla2xxx: Fix schedule_delayed_work() for target timeout calculations
        iser-target: fix error return code in isert_create_device_ib_res()
        iscsi-target: Fix-up all zero data-length CDBs with R/W_BIT set
        target: Remove write-only stats fields and lock from struct se_node_acl
        iscsi-target: return -EINVAL on oversized configfs parameter
      1733348b
    • L
      Merge git://git.kvack.org/~bcrl/aio-next · a8472b4b
      Linus Torvalds 提交于
      Pull AIO leak fixes from Ben LaHaise:
       "I've put these two patches plus Linus's change through a round of
        tests, and it passes millions of iterations of the aio numa
        migratepage test, as well as a number of repetitions of a few simple
        read and write tests.
      
        The first patch fixes the memory leak Kent introduced, while the
        second patch makes aio_migratepage() much more paranoid and robust"
      
      * git://git.kvack.org/~bcrl/aio-next:
        aio/migratepages: make aio migrate pages sane
        aio: fix kioctx leak introduced by "aio: Fix a trinity splat"
      a8472b4b
    • L
      aio: clean up and fix aio_setup_ring page mapping · 3dc9acb6
      Linus Torvalds 提交于
      Since commit 36bc08cc ("fs/aio: Add support to aio ring pages
      migration") the aio ring setup code has used a special per-ring backing
      inode for the page allocations, rather than just using random anonymous
      pages.
      
      However, rather than remembering the pages as it allocated them, it
      would allocate the pages, insert them into the file mapping (dirty, so
      that they couldn't be free'd), and then forget about them.  And then to
      look them up again, it would mmap the mapping, and then use
      "get_user_pages()" to get back an array of the pages we just created.
      
      Now, not only is that incredibly inefficient, it also leaked all the
      pages if the mmap failed (which could happen due to excessive number of
      mappings, for example).
      
      So clean it all up, making it much more straightforward.  Also remove
      some left-overs of the previous (broken) mm_populate() usage that was
      removed in commit d6c355c7 ("aio: fix race in ring buffer page
      lookup introduced by page migration support") but left the pointless and
      now misleading MAP_POPULATE flag around.
      Tested-and-acked-by: NBenjamin LaHaise <bcrl@kvack.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3dc9acb6
  10. 22 12月, 2013 1 次提交