]> Pileus Git - ~andy/linux/commitdiff
Merge tag 'stable/for-linus-3.14-rc0-late-tag' of git://git.kernel.org/pub/scm/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 31 Jan 2014 16:38:18 +0000 (08:38 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 31 Jan 2014 16:38:18 +0000 (08:38 -0800)
Pull Xen bugfixes from Konrad Rzeszutek Wilk:
 "Bug-fixes for the new features that were added during this cycle.

  There are also two fixes for long-standing issues for which we have a
  solution: grant-table operations extra work that was not needed
  causing performance issues and the self balloon code was too
  aggressive causing OOMs.

  Details:
   - Xen ARM couldn't use the new FIFO events
   - Xen ARM couldn't use the SWIOTLB if compiled as 32-bit with 64-bit PCIe devices.
   - Grant table were doing needless M2P operations.
   - Ratchet down the self-balloon code so it won't OOM.
   - Fix misplaced kfree in Xen PVH error code paths"

* tag 'stable/for-linus-3.14-rc0-late-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen/pvh: Fix misplaced kfree from xlated_setup_gnttab_pages
  drivers: xen: deaggressive selfballoon driver
  xen/grant-table: Avoid m2p_override during mapping
  xen/gnttab: Use phys_addr_t to describe the grant frame base address
  xen: swiotlb: handle sizeof(dma_addr_t) != sizeof(phys_addr_t)
  arm/xen: Initialize event channels earlier

1  2 
arch/arm/Kconfig
drivers/block/xen-blkback/blkback.c

diff --combined arch/arm/Kconfig
index dc6ef9a2c649df04d0d8de515b5565978164dde5,24307dc85d08ad34c66c130ddecc5874daa25328..e254198177914ca13050f37519a6ca43e0da596d
@@@ -6,13 -6,12 +6,13 @@@ config AR
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAVE_CUSTOM_GPIO_H
        select ARCH_MIGHT_HAVE_PC_PARPORT
 +      select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_EXTABLE_SORT if MMU
        select CLONE_BACKWARDS
        select CPU_PM if (SUSPEND || CPU_IDLE)
 -      select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU
 +      select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
        select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI)
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
        select GENERIC_IDLE_POLL_SETUP
        select HAVE_BPF_JIT
        select HAVE_CONTEXT_TRACKING
        select HAVE_C_RECORDMCOUNT
 +      select HAVE_CC_STACKPROTECTOR
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DMA_API_DEBUG
        select HAVE_DMA_ATTRS
        select HAVE_DMA_CONTIGUOUS if MMU
        select HAVE_DYNAMIC_FTRACE if (!XIP_KERNEL)
 +      select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
        select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL)
        select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL)
        select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
@@@ -65,7 -62,6 +65,7 @@@
        select IRQ_FORCED_THREADING
        select KTIME_SCALAR
        select MODULES_USE_ELF_REL
 +      select NO_BOOTMEM
        select OLD_SIGACTION
        select OLD_SIGSUSPEND3
        select PERF_USE_VMALLOC
@@@ -317,8 -313,6 +317,8 @@@ config ARCH_INTEGRATO
        bool "ARM Ltd. Integrator family"
        select ARCH_HAS_CPUFREQ
        select ARM_AMBA
 +      select ARM_PATCH_PHYS_VIRT
 +      select AUTO_ZRELADDR
        select COMMON_CLK
        select COMMON_CLK_VERSATILE
        select GENERIC_CLOCKEVENTS
@@@ -416,26 -410,6 +416,26 @@@ config ARCH_EBSA11
          Ethernet interface, two PCMCIA sockets, two serial ports and a
          parallel port.
  
 +config ARCH_EFM32
 +      bool "Energy Micro efm32"
 +      depends on !MMU
 +      select ARCH_REQUIRE_GPIOLIB
 +      select ARM_NVIC
 +      # CLKSRC_MMIO is wrong here, but needed until a proper fix is merged,
 +      # i.e. CLKSRC_EFM32 selecting CLKSRC_MMIO
 +      select CLKSRC_MMIO
 +      select CLKSRC_OF
 +      select COMMON_CLK
 +      select CPU_V7M
 +      select GENERIC_CLOCKEVENTS
 +      select NO_DMA
 +      select NO_IOPORT
 +      select SPARSE_IRQ
 +      select USE_OF
 +      help
 +        Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
 +        processors.
 +
  config ARCH_EP93XX
        bool "EP93xx-based"
        select ARCH_HAS_HOLES_MEMORYMODEL
@@@ -657,10 -631,10 +657,10 @@@ config ARCH_PX
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
  
 -config ARCH_MSM
 +config ARCH_MSM_NODT
        bool "Qualcomm MSM"
 +      select ARCH_MSM
        select ARCH_REQUIRE_GPIOLIB
 -      select CLKSRC_OF if OF
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
        help
          stack and controls some vital subsystems
          (clock and power control, etc).
  
 -config ARCH_SHMOBILE
 -      bool "Renesas SH-Mobile / R-Mobile"
 +config ARCH_SHMOBILE_LEGACY
 +      bool "Renesas ARM SoCs (non-multiplatform)"
 +      select ARCH_SHMOBILE
        select ARM_PATCH_PHYS_VIRT
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
        select PM_GENERIC_DOMAINS if PM
        select SPARSE_IRQ
        help
 -        Support for Renesas's SH-Mobile and R-Mobile ARM platforms.
 +        Support for Renesas ARM SoC platforms using a non-multiplatform
 +        kernel. This includes the SH-Mobile, R-Mobile, EMMA-Mobile, R-Car
 +        and RZ families.
  
  config ARCH_RPC
        bool "RiscPC"
@@@ -739,6 -710,7 +739,6 @@@ config ARCH_S3C24X
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
        select MULTI_IRQ_HANDLER
 -      select NEED_MACH_GPIO_H
        select NEED_MACH_IO_H
        select SAMSUNG_ATAGS
        help
@@@ -751,23 -723,24 +751,23 @@@ config ARCH_S3C64X
        bool "Samsung S3C64XX"
        select ARCH_HAS_CPUFREQ
        select ARCH_REQUIRE_GPIOLIB
 +      select ARM_AMBA
        select ARM_VIC
        select CLKDEV_LOOKUP
        select CLKSRC_SAMSUNG_PWM
        select COMMON_CLK
 -      select CPU_V6
 +      select CPU_V6K
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_TCM
 -      select NEED_MACH_GPIO_H
        select NO_IOPORT
        select PLAT_SAMSUNG
        select PM_GENERIC_DOMAINS
        select S3C_DEV_NAND
        select S3C_GPIO_TRACK
        select SAMSUNG_ATAGS
 -      select SAMSUNG_GPIOLIB_4BIT
        select SAMSUNG_WAKEMASK
        select SAMSUNG_WDT_RESET
        select USB_ARCH_HAS_OHCI
@@@ -938,8 -911,6 +938,8 @@@ source "arch/arm/mach-bcm/Kconfig
  
  source "arch/arm/mach-bcm2835/Kconfig"
  
 +source "arch/arm/mach-berlin/Kconfig"
 +
  source "arch/arm/mach-clps711x/Kconfig"
  
  source "arch/arm/mach-cns3xxx/Kconfig"
@@@ -956,8 -927,6 +956,8 @@@ source "arch/arm/mach-gemini/Kconfig
  
  source "arch/arm/mach-highbank/Kconfig"
  
 +source "arch/arm/mach-hisi/Kconfig"
 +
  source "arch/arm/mach-integrator/Kconfig"
  
  source "arch/arm/mach-iop32x/Kconfig"
@@@ -976,8 -945,6 +976,8 @@@ source "arch/arm/mach-ks8695/Kconfig
  
  source "arch/arm/mach-msm/Kconfig"
  
 +source "arch/arm/mach-moxart/Kconfig"
 +
  source "arch/arm/mach-mv78xx0/Kconfig"
  
  source "arch/arm/mach-imx/Kconfig"
@@@ -1086,8 -1053,6 +1086,8 @@@ config ARM_TIMER_SP80
        select CLKSRC_MMIO
        select CLKSRC_OF if OF
  
 +source "arch/arm/firmware/Kconfig"
 +
  source arch/arm/mm/Kconfig
  
  config ARM_NR_BANKS
@@@ -1470,14 -1435,14 +1470,14 @@@ config SM
        depends on MMU || ARM_MPU
        help
          This enables support for systems with more than one CPU. If you have
 -        a system with only one CPU, like most personal computers, say N. If
 -        you have a system with more than one CPU, say Y.
 +        a system with only one CPU, say N. If you have a system with more
 +        than one CPU, say Y.
  
 -        If you say N here, the kernel will run on single and multiprocessor
 +        If you say N here, the kernel will run on uni- and multiprocessor
          machines, but will use only one CPU of a multiprocessor machine. If
 -        you say Y here, the kernel will run on many, but not all, single
 -        processor machines. On a single processor machine, the kernel will
 -        run faster if you say N here.
 +        you say Y here, the kernel will run on many, but not all,
 +        uniprocessor machines. On a uniprocessor machine, the kernel
 +        will run faster if you say N here.
  
          See also <file:Documentation/x86/i386/IO-APIC.txt>,
          <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
@@@ -1628,7 -1593,7 +1628,7 @@@ config ARM_PSC
  config ARCH_NR_GPIO
        int
        default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
 -      default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX
 +      default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX
        default 392 if ARCH_U8500
        default 352 if ARCH_VT8500
        default 288 if ARCH_SUNXI
@@@ -1646,7 -1611,7 +1646,7 @@@ config HZ_FIXE
        default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
                ARCH_S5PV210 || ARCH_EXYNOS4
        default AT91_TIMER_HZ if ARCH_AT91
 -      default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
 +      default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE_LEGACY
        default 0
  
  choice
@@@ -1686,6 -1651,9 +1686,6 @@@ config H
  config SCHED_HRTICK
        def_bool HIGH_RES_TIMERS
  
 -config SCHED_HRTICK
 -      def_bool HIGH_RES_TIMERS
 -
  config THUMB2_KERNEL
        bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
        depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
@@@ -1828,10 -1796,10 +1828,10 @@@ config ARCH_WANT_GENERAL_HUGETL
  source "mm/Kconfig"
  
  config FORCE_MAX_ZONEORDER
 -      int "Maximum zone order" if ARCH_SHMOBILE
 -      range 11 64 if ARCH_SHMOBILE
 +      int "Maximum zone order" if ARCH_SHMOBILE_LEGACY
 +      range 11 64 if ARCH_SHMOBILE_LEGACY
        default "12" if SOC_AM33XX
 -      default "9" if SA1111
 +      default "9" if SA1111 || ARCH_EFM32
        default "11"
        help
          The kernel memory allocator divides physically contiguous memory
@@@ -1888,6 -1856,18 +1888,6 @@@ config SECCOM
          and the task is only allowed to execute a few safe syscalls
          defined by each seccomp mode.
  
 -config CC_STACKPROTECTOR
 -      bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
 -      help
 -        This option turns on the -fstack-protector GCC feature. This
 -        feature puts, at the beginning of functions, a canary value on
 -        the stack just before the return address, and validates
 -        the value just before actually returning.  Stack based buffer
 -        overflows (that need to overwrite this return address) now also
 -        overwrite the canary, which gets detected and the attack is then
 -        neutralized via a kernel panic.
 -        This feature requires gcc version 4.2 or above.
 -
  config SWIOTLB
        def_bool y
  
@@@ -1905,6 -1885,7 +1905,7 @@@ config XE
        depends on !GENERIC_ATOMIC64
        select ARM_PSCI
        select SWIOTLB_XEN
+       select ARCH_DMA_ADDR_T_64BIT
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
  
@@@ -1966,7 -1947,6 +1967,7 @@@ config ZBOOT_ROM_BS
  config ZBOOT_ROM
        bool "Compressed boot loader in ROM/flash"
        depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
 +      depends on !ARM_APPENDED_DTB && !XIP_KERNEL && !AUTO_ZRELADDR
        help
          Say Y here if you intend to execute your compressed kernel image
          (zImage) directly from ROM or flash.  If unsure, say N.
@@@ -2002,7 -1982,7 +2003,7 @@@ endchoic
  
  config ARM_APPENDED_DTB
        bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
 -      depends on OF && !ZBOOT_ROM
 +      depends on OF
        help
          With this option, the boot code will look for a device tree binary
          (DTB) appended to zImage
@@@ -2090,7 -2070,7 +2091,7 @@@ endchoic
  
  config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
 -      depends on !ZBOOT_ROM && !ARM_LPAE && !ARCH_MULTIPLATFORM
 +      depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
        help
          Execute-In-Place allows the kernel to run from non-volatile storage
          directly addressable by the CPU, such as NOR flash. This saves RAM
@@@ -2153,6 -2133,7 +2154,6 @@@ config CRASH_DUM
  
  config AUTO_ZRELADDR
        bool "Auto calculation of the decompressed kernel image address"
 -      depends on !ZBOOT_ROM
        help
          ZRELADDR is the physical address where the decompressed kernel
          image will be placed. If AUTO_ZRELADDR is selected, the address
index 4b97b86da9265b4ca5dcb3a7ab562dbf1eb5bac0,875025f299b6a31bcc10a081b9c9acfee9cfff62..da18046d0e0773bf0986d1ef4510d3b0349e59d3
@@@ -285,8 -285,7 +285,7 @@@ static void free_persistent_gnts(struc
  
                if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST ||
                        !rb_next(&persistent_gnt->node)) {
-                       ret = gnttab_unmap_refs(unmap, NULL, pages,
-                               segs_to_unmap);
+                       ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap);
                        BUG_ON(ret);
                        put_free_pages(blkif, pages, segs_to_unmap);
                        segs_to_unmap = 0;
@@@ -321,8 -320,7 +320,7 @@@ static void unmap_purged_grants(struct 
                pages[segs_to_unmap] = persistent_gnt->page;
  
                if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST) {
-                       ret = gnttab_unmap_refs(unmap, NULL, pages,
-                               segs_to_unmap);
+                       ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap);
                        BUG_ON(ret);
                        put_free_pages(blkif, pages, segs_to_unmap);
                        segs_to_unmap = 0;
                kfree(persistent_gnt);
        }
        if (segs_to_unmap > 0) {
-               ret = gnttab_unmap_refs(unmap, NULL, pages, segs_to_unmap);
+               ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap);
                BUG_ON(ret);
                put_free_pages(blkif, pages, segs_to_unmap);
        }
@@@ -670,15 -668,14 +668,14 @@@ static void xen_blkbk_unmap(struct xen_
                                    GNTMAP_host_map, pages[i]->handle);
                pages[i]->handle = BLKBACK_INVALID_HANDLE;
                if (++invcount == BLKIF_MAX_SEGMENTS_PER_REQUEST) {
-                       ret = gnttab_unmap_refs(unmap, NULL, unmap_pages,
-                                               invcount);
+                       ret = gnttab_unmap_refs(unmap, unmap_pages, invcount);
                        BUG_ON(ret);
                        put_free_pages(blkif, unmap_pages, invcount);
                        invcount = 0;
                }
        }
        if (invcount) {
-               ret = gnttab_unmap_refs(unmap, NULL, unmap_pages, invcount);
+               ret = gnttab_unmap_refs(unmap, unmap_pages, invcount);
                BUG_ON(ret);
                put_free_pages(blkif, unmap_pages, invcount);
        }
@@@ -740,7 -737,7 +737,7 @@@ again
        }
  
        if (segs_to_map) {
-               ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map);
+               ret = gnttab_map_refs(map, pages_to_gnt, segs_to_map);
                BUG_ON(ret);
        }
  
@@@ -1257,7 -1254,7 +1254,7 @@@ static int dispatch_rw_block_io(struct 
                        bio->bi_bdev    = preq.bdev;
                        bio->bi_private = pending_req;
                        bio->bi_end_io  = end_block_io_op;
 -                      bio->bi_sector  = preq.sector_number;
 +                      bio->bi_iter.bi_sector  = preq.sector_number;
                }
  
                preq.sector_number += seg[i].nsec;