Commits on Dec 17, 2011
  1. @torvalds

    Linux 3.2-rc6

    torvalds committed Dec 16, 2011
Commits on Dec 16, 2011
  1. @torvalds

    Revert "drm/i915: fix infinite recursion on unbind due to ilk vt-d w/a"

    This reverts commit eb1711b.
    
    It blows up the i915 seqno tracking, resulting in the
    
    	BUG_ON(seqno == 0);
    
    in i915_wait_request() triggering, which will cause lock-ups.
    
    See for example
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/903010
      https://lkml.org/lkml/2011/12/14/395
    
    Reported-requested-and-tested-by: Dirk Hohndel <dirk@hohndel.org>
    Reported-by: Richard Eames <Richard.Eames@flinders.edu.au>
    Reported-by: Rocko Requin <rockorequin@hotmail.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Keith Packard <keithp@keithp.com>
    Cc: Eric Anholt <eric@anholt.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Dec 16, 2011
  2. @torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
      sparc32: Be less strict in matching %lo part of relocation.
      sbus: convert drivers/sbus/char/* to use module_platform_driver()
      bbc_i2c: Remove unneeded err variable
      sparc: Use kmemdup rather than duplicating its implementation
    torvalds committed Dec 16, 2011
  3. @torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      ipv6: Check dest prefix length on original route not copied one in rt6_alloc_cow().
      sch_gred: should not use GFP_KERNEL while holding a spinlock
      ipip, sit: copy parms.name after register_netdevice
      ipv6: Fix for adding multicast route for loopback device automatically.
      ssb: fix init regression with SoCs
      rtl8192{ce,cu,de,se}: avoid problems because of possible ERFOFF -> ERFSLEEP transition
      mac80211: fix another race in aggregation start
      fsl_pq_mdio: Clean up tbi address configuration
      ppp: fix pptp double release_sock in pptp_bind()
      net/fec: fix the use of pdev->id
      ath9k: fix check for antenna diversity support
      batman-adv: delete global entry in case of roaming
      batman-adv: in case of roaming mark the client with TT_CLIENT_ROAM
      Bluetooth: Correct version check in hci_setup
      btusb: fix a memory leak in btusb_send_frame()
      Bluetooth: bnep: Fix module reference
      Bluetooth: cmtp: Fix module reference
      Bluetooth: btmrvl: support Marvell Bluetooth device SD8797
    torvalds committed Dec 16, 2011
  4. @torvalds

    Merge branches 'for-linus' and 'for-linus-3.2' of git://git.kernel.or…

    …g/pub/scm/linux/kernel/git/mason/linux-btrfs
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
      Btrfs: unplug every once and a while
      Btrfs: deal with NULL srv_rsv in the delalloc inode reservation code
      Btrfs: only set cache_generation if we setup the block group
      Btrfs: don't panic if orphan item already exists
      Btrfs: fix leaked space in truncate
      Btrfs: fix how we do delalloc reservations and how we free reservations on error
      Btrfs: deal with enospc from dirtying inodes properly
      Btrfs: fix num_workers_starting bug and other bugs in async thread
      BTRFS: Establish i_ops before calling d_instantiate
      Btrfs: add a cond_resched() into the worker loop
      Btrfs: fix ctime update of on-disk inode
      btrfs: keep orphans for subvolume deletion
      Btrfs: fix inaccurate available space on raid0 profile
      Btrfs: fix wrong disk space information of the files
      Btrfs: fix wrong i_size when truncating a file to a larger size
      Btrfs: fix btrfs_end_bio to deal with write errors to a single mirror
    
    * 'for-linus-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
      btrfs: lower the dirty balance poll interval
    torvalds committed Dec 16, 2011
  5. @torvalds

    Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~keith…

    …p/linux
    
    * 'drm-intel-fixes' of git://people.freedesktop.org/~keithp/linux:
      drm/i915/dp: Dither down to 6bpc if it makes the mode fit
      drm/i915: enable semaphores on per-device defaults
      drm/i915: don't set unpin_work if vblank_get fails
      drm/i915: By default, enable RC6 on IVB and SNB when reasonable
      iommu: Export intel_iommu_enabled to signal when iommu is in use
      drm/i915/sdvo: Include LVDS panels for the IS_DIGITAL check
      drm/i915: prevent division by zero when asking for chipset power
      drm/i915: add PCH info to i915_capabilities
      drm/i915: set the right SDVO transcoder for CPT
      drm/i915: no-lvds quirk for ASUS AT5NM10T-I
      drm/i915: Treat pre-gen4 backlight duty cycle value consistently
      drm/i915: Hook up Ivybridge eDP
      drm/i915: add multi-threaded forcewake support
    torvalds committed Dec 16, 2011
  6. @torvalds

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/tiwai/sound
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: HDA: Use LPIB Position fix for Intel SCH Poulsbo
      ALSA: hda: fix mute led polarity for HP laptops with buggy BIOS
      ALSA: HDA: Set position fix to LPIB for an Atom/Poulsbo based device
      ASoC: Fix hx4700 error handling to free gpios if snd_soc_register_card fails
      ASoC: WM8958: correctly show firmware magic on mismatch
      ASoC: mxs: Add appropriate MODULE_ALIAS()
      ASoC: mxs: Add missing MODULE_LICENSE("GPL")
      ASoC: Fix WM8996 24.576MHz clock operation
      ASoC: Include linux/module.h for smdk2443_wm9710
      ASoC: Fix a typo in jive_wm8750
      ASoC: Fix build dependency for SND_SOC_JZ4740_CODEC
      ASoC: Include linux/io.h for jz4740 codec
    torvalds committed Dec 16, 2011
  7. @torvalds

    Merge branch 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6

    * 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6:
      gpio: Fix DA9052 GPIO build errors.
      gpio: mpc8xxx: don't allow input-only pins to be output for MPC5121
      gpio-ml-ioh: Add the irq_disable/irq_enable hooks for ml-ioh irq chip
      gpio-ml-ioh: fix a bug in the interrupt handler
      gpio: pl061: drop extra check for NULL platform_data
    torvalds committed Dec 16, 2011
  8. @torvalds

    Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/arm/arm-soc
    
    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
      ARM: OMAP: rx51: fix USB
      ARM: OMAP: mcbsp: Fix possible memory corruption
      arm/imx: fix power button on imx51 babbage board
      ARM: imx: fix cpufreq build errors
      ARM: mx5: add __initconst for fec pdata
      MXC PWM: should active during DOZE/WAIT/DBG mode
      ARM: EXYNOS: Fix build error without CONFIG_LOCAL_TIMERS
      ARM: EXYNOS: Fix for stall in case of cpu hotplug or sleep
      ARM: S5PV210: Set 1000ns as PWM backlight period on SMDKV210
      ARM: SAMSUNG: remove duplicated header include
    torvalds committed Dec 16, 2011
  9. @torvalds

    Merge branch 'for-linus' of git://git.kernel.dk/linux-block

    * 'for-linus' of git://git.kernel.dk/linux-block:
      block: don't kick empty queue in blk_drain_queue()
      block/swim3: Locking fixes
      loop: Fix discard_alignment default setting
      cfq-iosched: fix cfq_cic_link() race confition
      cfq-iosched: free cic_index if blkio_alloc_blkg_stats fails
      cciss: fix flush cache transfer length
      cciss: Add IRQF_SHARED back in for the non-MSI(X) interrupt handler
      loop: fix loop block driver discard and encryption comment
      block: initialize request_queue's numa node during
    torvalds committed Dec 16, 2011
  10. @fengguang @chrismason-xx

    btrfs: lower the dirty balance poll interval

    Tests show that the original large intervals can easily make the dirty
    limit exceeded on 100 concurrent dd's. So adapt to as large as the
    next check point selected by the dirty throttling algorithm.
    
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    fengguang committed with chrismason-xx Dec 16, 2011
  11. @nwnk @keith-packard

    drm/i915/dp: Dither down to 6bpc if it makes the mode fit

    Some active adaptors (VGA usually) only have two lanes at 2.7GHz.
    That's a maximum pixel clock of 144MHz at 8bpc, but 192MHz at 6bpc.
    
    Fixes Asus UX31 panel being black at startup due to no valid modes since
    dc22ee6.
    
    v2: Rebased to current code, resulting in the fix applying to EDP panels as
        well.  Also changed from spatio-temporal to just spatial dithering on
        pre-ironlake, to be conssitent (and less visual flicker)
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Tested-by: Eric Anholt <eric@anholt.net>
    Tested-by: Dirk Hohndel <hohndel@infradead.org>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    nwnk committed with keith-packard Dec 13, 2011
  12. @keith-packard

    drm/i915: enable semaphores on per-device defaults

    This adds a default setting for semaphores parameter, and enables
    semaphores by default on IVB.
    
    For now, as semaphores interaction with VTd causes random issues on
    SNB, we do not enable them by default. But they can still be enabled
    via the semaphores=1 kernel parameter.
    
    v2: enables semaphores on SNB when IO remapping is disabled, with base
    on Keith Packard patch.
    
    CC: Daniel Vetter <daniel.vetter@ffwll.ch>
    CC: Ben Widawsky <ben@bwidawsk.net>
    CC: Keith Packard <keithp@keithp.com>
    CC: Jesse Barnes <jbarnes@virtuousgeek.org>
    CC: Chris Wilson <chris@chris-wilson.co.uk>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42696
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40564
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38862
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Eugeni Dodonov committed with keith-packard Dec 9, 2011
  13. @jbarnes993 @keith-packard

    drm/i915: don't set unpin_work if vblank_get fails

    This fixes a race where we may try to finish a page flip and decrement
    the refcount even if our vblank_get failed and we ended up with a
    spurious flip pending interrupt.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=34211.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    jbarnes993 committed with keith-packard Aug 29, 2011
  14. @keith-packard

    drm/i915: By default, enable RC6 on IVB and SNB when reasonable

    RC6 should always work on IVB, and should work on SNB whenever IO
    remapping is disabled. RC6 never works on Ironlake. Make the default
    value for the parameter follow these guidelines. Setting the value
    to either 0 or 1 will force the specified behavior.
    
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38567
    Cc: Ted Phelps <phelps@gnusto.com>
    Cc: Peter <pab1612@gmail.com>
    Cc: Lukas Hejtmanek <xhejtman@fi.muni.cz>
    Cc: Andrew Lutomirski <luto@mit.edu>
    keith-packard committed Nov 16, 2011
  15. @keith-packard

    iommu: Export intel_iommu_enabled to signal when iommu is in use

    In i915 driver, we do not enable either rc6 or semaphores on SNB when dmar
    is enabled. The new 'intel_iommu_enabled' variable signals when the
    iommu code is in operation.
    
    Cc: Ted Phelps <phelps@gnusto.com>
    Cc: Peter <pab1612@gmail.com>
    Cc: Lukas Hejtmanek <xhejtman@fi.muni.cz>
    Cc: Andrew Lutomirski <luto@mit.edu>
    CC: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Eugeni Dodonov committed with keith-packard Nov 23, 2011
  16. @ickle @keith-packard

    drm/i915/sdvo: Include LVDS panels for the IS_DIGITAL check

    We were checking whether the supplied edid matched the connector it was
    read from. We do this in case a DDC read returns an EDID for another
    device on a multifunction or otherwise interesting card. However, we
    failed to include LVDS as a digital device and so rejecting an otherwise
    valid EDID.
    
    Fixes the detection of the secondary SDVO LVDS panel on the Libretto
    W105.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39216
    Signed-off-by: Keith Packard <keithp@keithp.com>
    ickle committed with keith-packard Jun 20, 2011
  17. @keith-packard

    drm/i915: prevent division by zero when asking for chipset power

    This prevents an in-kernel division by zero which happens when we are
    asking for i915_chipset_val too quickly, or within a race condition
    between the power monitoring thread and userspace accesses via debugfs.
    
    The issue can be reproduced easily via the following command:
    while ``; do cat /sys/kernel/debug/dri/0/i915_emon_status; done
    
    This is particularly dangerous because it can be triggered by
    a non-privileged user by just reading the debugfs entry.
    
    This issue was also found independently by Konstantin Belousov
    <kostikbel@gmail.com>, who proposed a similar patch.
    
    Reported-by: Konstantin Belousov <kostikbel@gmail.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Acked-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Eugeni Dodonov committed with keith-packard Nov 10, 2011
  18. @keith-packard

    drm/i915: add PCH info to i915_capabilities

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Paulo Zanoni committed with keith-packard Oct 14, 2011
  19. @keith-packard

    drm/i915: set the right SDVO transcoder for CPT

    v2: add a CPT-specific macro, make code cleaner
    v3: fix commit message
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41272
    Cc: stable@kernel.org
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Paulo Zanoni committed with keith-packard Oct 14, 2011
  20. @nwnk @keith-packard

    drm/i915: no-lvds quirk for ASUS AT5NM10T-I

    https://bugzilla.redhat.com/show_bug.cgi?id=750006
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    nwnk committed with keith-packard Nov 28, 2011
  21. @olofj

    Merge branch 'samsung-fixes-3' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/kgene/linux-samsung into fixes
    olofj committed Dec 15, 2011
  22. @olofj

    Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/tmlind/linux-omap into fixes
    olofj committed Dec 15, 2011
Commits on Dec 15, 2011
  1. @torvalds

    Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/konrad/ibft
    
    * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft:
      ibft: Fix finding IBFT ACPI table on UEFI
    torvalds committed Dec 15, 2011
  2. @torvalds

    Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/gregkh/staging
    
    * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
      staging: r8712u: Add new USB ID
      staging: tidspbridge: request dmtimer clocks on init
      staging: tidspbridge: include module.h by default
    torvalds committed Dec 15, 2011
  3. @torvalds

    Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/gregkh/usb
    
    * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
      USB: option: Removing one bogus and adding some new Huawei combinations
      USB: cdc-acm: add IDs for Motorola H24 HSPA USB module.
      usb: option: Add Huawei E398 controlling interfaces
      usb: renesas_usbhs: add hcd->has_tt for low/full speed
      usb: renesas_usbhs: typofix: irq_dtch control DTCHE
      usb: gadget: storage: release superspeed descriptors.
    torvalds committed Dec 15, 2011
  4. @torvalds

    ARM: unwinder: fix bisection to find origin in .idx section

    The bisection implemented in unwind_find_origin() stopped to early.  If
    there is only a single entry left to check the original code just took
    the end point as origin which might be wrong.
    
    This was introduced in commit de66a97 ("ARM: 7187/1: fix unwinding
    for XIP kernels").
    
    Reported-and-tested-by: Nick Bowler <nbowler@elliptictech.com>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Uwe Kleine-K��nig committed with torvalds Dec 15, 2011
  5. @chrismason-xx

    Btrfs: unplug every once and a while

    The btrfs io submission threads can build up massive plug lists.  This
    keeps things more reasonable so we don't hand over huge dumps of IO at
    once.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    chrismason-xx committed Dec 15, 2011
  6. @htejun @axboe

    block: don't kick empty queue in blk_drain_queue()

    While probing, fd sets up queue, probes hardware and tears down the
    queue if probing fails.  In the process, blk_drain_queue() kicks the
    queue which failed to finish initialization and fd is unhappy about
    that.
    
      floppy0: no floppy controllers found
      ------------[ cut here ]------------
      WARNING: at drivers/block/floppy.c:2929 do_fd_request+0xbf/0xd0()
      Hardware name: To Be Filled By O.E.M.
      VFS: do_fd_request called on non-open device
      Modules linked in:
      Pid: 1, comm: swapper Not tainted 3.2.0-rc4-00077-g5983fe2 #2
      Call Trace:
       [<ffffffff81039a6a>] warn_slowpath_common+0x7a/0xb0
       [<ffffffff81039b41>] warn_slowpath_fmt+0x41/0x50
       [<ffffffff813d657f>] do_fd_request+0xbf/0xd0
       [<ffffffff81322b95>] blk_drain_queue+0x65/0x80
       [<ffffffff81322c93>] blk_cleanup_queue+0xe3/0x1a0
       [<ffffffff818a809d>] floppy_init+0xdeb/0xe28
       [<ffffffff818a72b2>] ? daring+0x6b/0x6b
       [<ffffffff810002af>] do_one_initcall+0x3f/0x170
       [<ffffffff81884b34>] kernel_init+0x9d/0x11e
       [<ffffffff810317c2>] ? schedule_tail+0x22/0xa0
       [<ffffffff815dbb14>] kernel_thread_helper+0x4/0x10
       [<ffffffff81884a97>] ? start_kernel+0x2be/0x2be
       [<ffffffff815dbb10>] ? gs_change+0xb/0xb
    
    Avoid it by making blk_drain_queue() kick queue iff dispatch queue has
    something on it.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Ralf Hildebrandt <Ralf.Hildebrandt@charite.de>
    Reported-by: Wu Fengguang <fengguang.wu@intel.com>
    Tested-by: Sergei Trofimovich <slyich@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    htejun committed with axboe Dec 15, 2011
  7. @torvalds

    Merge branch 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub…

    …/scm/linux/kernel/git/konrad/xen
    
    * 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
      xen/swiotlb: Use page alignment for early buffer allocation.
      xen: only limit memory map to maximum reservation for domain 0.
    torvalds committed Dec 15, 2011
  8. @chrismason-xx

    Merge branch 'for-chris' of http://git.kernel.org/pub/scm/linux/kerne…

    …l/git/josef/btrfs-work into integration
    
    Conflicts:
    	fs/btrfs/inode.c
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    chrismason-xx committed Dec 15, 2011
  9. @chrismason-xx

    Btrfs: deal with NULL srv_rsv in the delalloc inode reservation code

    btrfs_update_inode is sometimes called with a null reservation.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>
    chrismason-xx committed Dec 15, 2011
  10. @glikely

    gpio: Fix DA9052 GPIO build errors.

    This patch is functionally tested on Samsung SMDKV6410.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: David Dajun Chen <dchen@diasemi.com>
    Signed-off-by: Ashish Jangam <ashish.jangam@kpitcummins.com>
    [grant.likely: don't create an unnecessary header file]
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    Ashish Jangam committed with glikely Dec 15, 2011
  11. xen/swiotlb: Use page alignment for early buffer allocation.

    This fixes an odd bug found on a Dell PowerEdge 1850/0RC130
    (BIOS A05 01/09/2006) where all of the modules doing pci_set_dma_mask
    would fail with:
    
    ata_piix 0000:00:1f.1: enabling device (0005 -> 0007)
    ata_piix 0000:00:1f.1: can't derive routing for PCI INT A
    ata_piix 0000:00:1f.1: BMDMA: failed to set dma mask, falling back to PIO
    
    The issue was the Xen-SWIOTLB was allocated such as that the end of
    buffer was stradling a page (and also above 4GB). The fix was
    spotted by Kalev Leonid  which was to piggyback on git commit
    e79f86b "swiotlb: Use page alignment
    for early buffer allocation" which:
    
    	We could call free_bootmem_late() if swiotlb is not used, and
    	it will shrink to page alignment.
    
    	So alloc them with page alignment at first, to avoid lose two pages
    
    And doing that fixes the outstanding issue.
    
    CC: stable@kernel.org
    Suggested-by: "Kalev, Leonid" <Leonid.Kalev@ca.com>
    Reported-and-Tested-by: "Taylor, Neal E" <Neal.Taylor@ca.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Konrad Rzeszutek Wilk committed Dec 15, 2011
  12. xen: only limit memory map to maximum reservation for domain 0.

    d312ae8 "xen: use maximum reservation to limit amount of usable RAM"
    clamped the total amount of RAM to the current maximum reservation. This is
    correct for dom0 but is not correct for guest domains. In order to boot a guest
    "pre-ballooned" (e.g. with memory=1G but maxmem=2G) in order to allow for
    future memory expansion the guest must derive max_pfn from the e820 provided by
    the toolstack and not the current maximum reservation (which can reflect only
    the current maximum, not the guest lifetime max). The existing algorithm
    already behaves this correctly if we do not artificially limit the maximum
    number of pages for the guest case.
    
    For a guest booted with maxmem=512, memory=128 this results in:
     [    0.000000] BIOS-provided physical RAM map:
     [    0.000000]  Xen: 0000000000000000 - 00000000000a0000 (usable)
     [    0.000000]  Xen: 00000000000a0000 - 0000000000100000 (reserved)
    -[    0.000000]  Xen: 0000000000100000 - 0000000008100000 (usable)
    -[    0.000000]  Xen: 0000000008100000 - 0000000020800000 (unusable)
    +[    0.000000]  Xen: 0000000000100000 - 0000000020800000 (usable)
    ...
     [    0.000000] NX (Execute Disable) protection: active
     [    0.000000] DMI not present or invalid.
     [    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
     [    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
    -[    0.000000] last_pfn = 0x8100 max_arch_pfn = 0x1000000
    +[    0.000000] last_pfn = 0x20800 max_arch_pfn = 0x1000000
     [    0.000000] initial memory mapped : 0 - 027ff000
     [    0.000000] Base memory trampoline at [c009f000] 9f000 size 4096
    -[    0.000000] init_memory_mapping: 0000000000000000-0000000008100000
    -[    0.000000]  0000000000 - 0008100000 page 4k
    -[    0.000000] kernel direct mapping tables up to 8100000 @ 27bb000-27ff000
    +[    0.000000] init_memory_mapping: 0000000000000000-0000000020800000
    +[    0.000000]  0000000000 - 0020800000 page 4k
    +[    0.000000] kernel direct mapping tables up to 20800000 @ 26f8000-27ff000
     [    0.000000] xen: setting RW the range 27e8000 - 27ff000
     [    0.000000] 0MB HIGHMEM available.
    -[    0.000000] 129MB LOWMEM available.
    -[    0.000000]   mapped low ram: 0 - 08100000
    -[    0.000000]   low ram: 0 - 08100000
    +[    0.000000] 520MB LOWMEM available.
    +[    0.000000]   mapped low ram: 0 - 20800000
    +[    0.000000]   low ram: 0 - 20800000
    
    With this change "xl mem-set <domain> 512M" will successfully increase the
    guest RAM (by reducing the balloon).
    
    There is no change for dom0.
    
    Reported-and-Tested-by:  George Shuklin <george.shuklin@gmail.com>
    Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
    Cc: stable@kernel.org
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Ian Campbell committed with Konrad Rzeszutek Wilk Dec 14, 2011