1. 22 3月, 2014 25 次提交
    • A
      ARM: pxa: fix colibri build · 847e3496
      Arnd Bergmann 提交于
      The colibri_ohci_init function performs a register access through
      the io_p2v() macro, which requires the IOMEM macro to be defined.
      
      By explicitly including the asm/io.h header file that contains
      this macro, we avoid the build error:
      
      arch/arm/mach-pxa/colibri-evalboard.c: In function 'colibri_ohci_init':
      arch/arm/mach-pxa/colibri-evalboard.c:68:2: error: implicit declaration of function 'IOMEM' [-Werror=implicit-function-declaration]
        UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE;
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Daniel Mack <zonque@gmail.com>
      847e3496
    • A
      ARM: pxa: enable pxafb unconditionally for some boards · e914f19f
      Arnd Bergmann 提交于
      The SAAR and TAVOREVB machines try to call functions from
      the PXAFB frame buffer driver from their platform code,
      which only works if that driver is built-in.
      
      This patch ensures that both the generic frame buffer
      code and the specific pxafb driver are always enabled
      when we build a kernel for one of the two boards.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Daniel Mack <zonque@gmail.com>
      e914f19f
    • A
      ARM: pxa: don't "select" SMC91X on MACH_XCEP · a0ad0fdb
      Arnd Bergmann 提交于
      We normally don't hard-enable Kconfig options just because
      a board contains a specific piece of hardware. In this case,
      selecting SMC91X causes a build error, if we don't also enable
      basic network device driver support.
      
      Since the platform has no direct dependency on this driver
      at link time, we can just remove the 'select' statement.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Daniel Mack <zonque@gmail.com>
      a0ad0fdb
    • A
      ARM: orion5x: make dns323 independent of PHY support · 32ff4971
      Arnd Bergmann 提交于
      The D-Link DNS-323 machine tries to unconditionally select CONFIG_PHYLIB,
      but that has other dependencies that might not necessarily be enabled,
      causing random build errors.
      
      To work around this, this patch removes the 'select' statement and
      instead uses a compile-time check to skip the phy_register_fixup_for_uid()
      call if PHYLIB is not available in the kernel.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NJason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Gregory Clement <gregory.clement@free-electrons.com>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      32ff4971
    • A
      ARM: mvebu: add missing header · 9e128041
      Arnd Bergmann 提交于
      The definition for SIGBUS may not be visible without including
      linux/signal.h, as I found during randconfig testing.
      
      Adding an explicit include is certainly the right thing to do.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NJason Cooper <jason@lakedaemon.net>
      Acked-by: NGregory Clement <gregory.clement@free-electrons.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      9e128041
    • A
      ARM: omap1: don't rely on tps65010 · 0b31c53b
      Arnd Bergmann 提交于
      The code for h2 and osk implicitly assumes that the tps65010
      driver is built-in, in order to perform the initial regulator
      setup.
      
      This is fine for most real uses, but it does get into the way
      of build testing with 'make randconfig', since we don't want
      platforms to implicitly select device drivers and subsystems
      such as I2C.
      
      This patch by contrast changes the board files to not call
      into the tps65010 driver when that is not built-in, allowing
      us to build all configurations including some that will not
      work properly on this hardware.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NTony Lindgren <tony@atomide.com>
      0b31c53b
    • F
      ARM: omap1: fix build when !CONFIG_OMAP_32K_TIMER · 84bef117
      Felipe Balbi 提交于
      If CONFIG_OMAP_32K_TIMER isn't enabled, we will
      try to use enable_dyn_sleep which wasn't defined
      anywhere.
      
      In order to fix the problem, we always define
      enable_dyn_sleep as 0 when !CONFIG_OMAP_32K_TIMER.
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      84bef117
    • A
      ARM: msm: export legacy DMA interfaces · b25a7912
      Arnd Bergmann 提交于
      The msm_sdcc MMC driver and the msm_serial_hs uart driver both
      use the pre-dmaengine interfaces provided by the MSM platform.
      
      Since these drivers can be loadable modules, we should export
      the functions used in the drivers.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      Cc: Daniel Walker <dwalker@fifo99.com>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      b25a7912
    • A
      ARM: msm: avoid calling debug_ll_addr on !MMU · d967b010
      Arnd Bergmann 提交于
      MSM7X00A has an open-coded version of debug_ll_io_init so it
      can use MT_DEVICE_NONSHARED as required by the platform.
      
      However, this fails to build on no-MMU kernels because the
      debug_ll_addr function is not available. Since the iotable_init
      function doesn't actually do anyting in this configuration,
      we can simply get away by enclosing the broken function call
      in an #ifdef, which seems to be the least ugly workaround.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      Cc: Daniel Walker <dwalker@fifo99.com>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      d967b010
    • A
      ARM: msm: add missing include of linux/module.h · 404ed596
      Arnd Bergmann 提交于
      After the restructuring of the module.h and init.h headers,
      we now need to include this explicitly here.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      Cc: Daniel Walker <dwalker@fifo99.com>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      404ed596
    • A
      ARM: lpc32xx: export lpc32xx_return_iram_size · 22833d55
      Arnd Bergmann 提交于
      This symbol is used by the lpc_eth driver, which may
      be a loadable module.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NRoland Stigge <stigge@antcom.de>
      22833d55
    • A
      ARM: ks8695/og: make PCI setup conditional · de94abfa
      Arnd Bergmann 提交于
      The 'og' machine tries to always initialized the PCI code, but that
      may be disabled in Kconfig, leading to a build error.
      
      This patch changes the code to use the same Kconfig symbol to decide
      about calling the ks8695_init_pci function at build time that we
      use to decide about building the ks8695 PCI support.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NGreg Ungerer <gerg@uclinux.org>
      de94abfa
    • A
      ARM: ixp4xx: fix gpio rework · 48ba81f6
      Arnd Bergmann 提交于
      Commit 098e30f6 "ARM: ixp4xx: stop broadcasting the custom GPIO API"
      changed the internal gpio code of ixp4xx to be accessible only from
      common.c, but unfortunately that broke the Goramo MultiLink code, which
      uses this API.
      
      This tries to restore the previous state without exposing the
      API globally again. A better solution might be needed.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Krzysztof Halasa <khc@pm.waw.pl>
      Cc: Imre Kaloz <kaloz@openwrt.org>
      48ba81f6
    • A
      ARM: ixp4xx: avoid use of PCIBIOS_MIN_MEM in io.h · 926aabde
      Arnd Bergmann 提交于
      When using CONFIG_IXP4XX_INDIRECT_PCI, we run into a recursive
      header file dependency between mach/io.h and asm/pci.h, resulting
      in a build failure:
      
      mach-ixp4xx/include/mach/io.h: In function 'is_pci_memory':
      mach-ixp4xx/include/mach/io.h:53:18: error: 'PCIBIOS_MIN_MEM' undeclared (first use in this function)
        return (addr >= PCIBIOS_MIN_MEM) && (addr <= 0x4FFFFFFF);
                        ^
      mach-ixp4xx/include/mach/io.h:53:18: note: each undeclared identifier is reported only once for each function it appears in
      
      We can work around this by referencing the pcibios_min_mem variable
      directly through an extern declaration, rather than using the macro.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Imre Kaloz <kaloz@openwrt.org>
      Cc: Krzysztof Halasa <khc@pm.waw.pl>
      926aabde
    • A
      ARM: ixp4xx/omixp: always include linux/leds.h · e9c610a4
      Arnd Bergmann 提交于
      The omixp board code unconditionally defines a gpio-led
      device, but for some reason includes the header file
      for this only if CONFIG_LEDS_CLASS is enabled, causing
      a build error otherwise.
      
      Removing the #ifdef fixes the build error with no downsides
      whatsoever.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Imre Kaloz <kaloz@openwrt.org>
      Cc: Krzysztof Halasa <khc@pm.waw.pl>
      e9c610a4
    • A
      ARM: hisi: fix building without CONFIG_HOTPLUG_CPU · 1d858f31
      Arnd Bergmann 提交于
      The hisi SMP code always uses the hi3xxx_set_cpu() function
      defined in the hotplug.c file, so we cannot build without
      this when CONFIG_SMP is enabled. This patch slightly restructures
      the code so we always build the parts of hotplug.c that we need
      but just leave out the CPU disable logic if CONFIG_HOTPLUG_CPU
      is turned off.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      1d858f31
    • A
      ARM: ep93xx: export ep93xx_chip_revision · 67e108c5
      Arnd Bergmann 提交于
      ep93xx_chip_revision is used by the pata_ep93xx driver,
      which can be a loadable module. Exporting the symbol
      avoids a link error in this case.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NHartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ryan Mallon <rmallon@gmail.com>
      67e108c5
    • A
      ARM: efm32: select AUTO_ZRELADDR · 1df13d9d
      Arnd Bergmann 提交于
      The efm32 platform does not provide a zreladdr-y line its Makefile.boot,
      so we always have to use CONFIG_AUTO_ZRELADDR in order to successfully
      build and link a zImage.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Uwe Kleine-König <kernel@pengutronix.de>
      1df13d9d
    • A
      ARM: davinci: fix Kconfig for DA850_EVM · 06f07c9e
      Arnd Bergmann 提交于
      The DAVINCI_DA850_EVM board uses an unusual method to
      enable the GPIO_PCA953X and KEYBOARD_GPIO_POLLED symbols,
      which leads to the dependencies on these symbols being
      ignored. As GPIO_PCA953X actually requires I2C, that
      can lead to build failures when I2C is disabled.
      
      This patch removes the duplicate symbol definitions
      and instead enables them from the davinci_all_defconfig
      file.
      
      A different question whether we actually want to automatically
      enable them at all or rather put them into defconfig,
      but that should be a separate patch.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NSekhar Nori <nsekhar@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: davinci-linux-open-source@linux.davincidsp.com
      06f07c9e
    • A
      ARM: davinci: make dm644x-evm phy fixup conditional · 4bbef1da
      Arnd Bergmann 提交于
      We cannot call phy_register_fixup_for_uid() if CONFIG_PHYLIB
      is not built into the kernel, and we should not enforce that
      to be built into vmlinux either, because one might want to
      disable the entire network stack.
      
      This change uses a compile-time condition on CONFIG_PHYLIB
      to remove the call in the cases where it cannot work.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NSekhar Nori <nsekhar@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: davinci-linux-open-source@linux.davincidsp.com
      4bbef1da
    • A
      ARM: at91: sama5 always uses DT · a1628604
      Arnd Bergmann 提交于
      It makes no sense for sama5 support to be enabled if we don't
      also enable USE_OF. Making this automatic in Kconfig avoids
      a possible randconfig conflict between the old and new clock
      support code.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Acked-by: NJean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      a1628604
    • A
      ARM: at91: fix broken "if () else" statement · 871336a9
      Arnd Bergmann 提交于
      If CONFIG_PATA_AT91 is disabled, the code in at91_add_device_cf
      is turned into invalid C statements due to the lack of an
      expression before the 'else' clause.
      
      This moves the first half of the condition inside of the #ifdef,
      which seems to be what the author intended.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      871336a9
    • A
      ARM: at91: export sam9_smc interfaces · c85fc989
      Arnd Bergmann 提交于
      The pata_at91 driver uses interfaces defined in the sam9_smc
      platform code. Since the pata driver can be a loadable module,
      we have to export those symbols in order to link cleanly.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      c85fc989
    • A
      ARM: at91: don't provide dt init code for at91x40 · dfe36763
      Arnd Bergmann 提交于
      at91x40 has no support for device tree, but Kconfig allows
      us to enable CONFIG_OF anyway, causing a link error in the
      at91 reset controller initialization.
      
      The easiest fix is to adapt the existing #ifdef to omit
      the broken code on at91x40 where it is never called anyway.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      dfe36763
    • A
      ARM: at91: split out at91x40 into a top-level option · fe138c23
      Arnd Bergmann 提交于
      at91x40 is different from all the other at91 machines, and it is
      impossible to build a kernel that works on both this SoC and
      any of the others, even though it is possible to build a noMMU
      kernel for any at91 machine.
      
      By turning at91x40 into a separate top-level option, we explicitly
      forbid enabling invalid configurations that include mutually exclusive
      machines.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      fe138c23
  2. 17 2月, 2014 3 次提交
  3. 16 2月, 2014 12 次提交
    • K
      of: search the best compatible match first in __of_match_node() · 06b29e76
      Kevin Hao 提交于
      Currently, of_match_node compares each given match against all node's
      compatible strings with of_device_is_compatible.
      
      To achieve multiple compatible strings per node with ordering from
      specific to generic, this requires given matches to be ordered from
      specific to generic. For most of the drivers this is not true and also
      an alphabetical ordering is more sane there.
      
      Therefore, this patch introduces a function to match each of the node's
      compatible strings against all given compatible matches without type and
      name first, before checking the next compatible string. This implies
      that node's compatibles are ordered from specific to generic while
      given matches can be in any order. If we fail to find such a match
      entry, then fall-back to the old method in order to keep compatibility.
      
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Tested-by: NStephen Chivers <schivers@csc.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      06b29e76
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 946dd683
      Linus Torvalds 提交于
      Pull SCSI target fixes from Nicholas Bellinger:
       "Mostly minor fixes this time to v3.14-rc1 related changes.  Also
        included is one fix for a free after use regression in persistent
        reservations UNREGISTER logic that is CC'ed to >= v3.11.y stable"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        Target/sbc: Fix protection copy routine
        IB/srpt: replace strict_strtoul() with kstrtoul()
        target: Simplify command completion by removing CMD_T_FAILED flag
        iser-target: Fix leak on failure in isert_conn_create_fastreg_pool
        iscsi-target: Fix SNACK Type 1 + BegRun=0 handling
        target: Fix missing length check in spc_emulate_evpd_83()
        qla2xxx: Remove last vestiges of qla_tgt_cmd.cmd_list
        target: Fix 32-bit + CONFIG_LBDAF=n link error w/ sector_div
        target: Fix free-after-use regression in PR unregister
      946dd683
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 2d0ef4fb
      Linus Torvalds 提交于
      Pull i2c fixes from Wolfram Sang:
       "i2c has a bugfix and documentation improvements for you"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        Documentation: i2c: mention ACPI method for instantiating devices
        Documentation: i2c: describe devicetree method for instantiating devices
        i2c: mv64xxx: refactor message start to ensure proper initialization
      2d0ef4fb
    • L
      Merge branches 'irq-urgent-for-linus' and 'irq-core-for-linus' of... · 5a667a0c
      Linus Torvalds 提交于
      Merge branches 'irq-urgent-for-linus' and 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull irq update from Thomas Gleixner:
       "Fix from the urgent branch: a trivial oneliner adding the missing
        Kconfig dependency curing build failures which have been discovered by
        several build robots.
      
        The update in the irq-core branch provides a new function in the
        irq/devres code, which is a prerequisite for driver developers to get
        rid of boilerplate code all over the place.
      
        Not a bugfix, but it has zero impact on the current kernel due to the
        lack of users.  It's simpler to provide the infrastructure to
        interested parties via your tree than fulfilling the wishlist of
        driver maintainers on which particular commit or tag this should be
        based on"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Add missing irq_to_desc export for CONFIG_SPARSE_IRQ=n
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Add devm_request_any_context_irq()
      5a667a0c
    • L
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a19c07c
      Linus Torvalds 提交于
      Pull timer fixes from Thomas Gleixner:
       "The following trilogy of patches brings you:
      
         - fix for a long standing math overflow issue with HZ < 60
      
         - an onliner fix for a corner case in the dreaded tick broadcast
           mechanism affecting a certain range of AMD machines which are
           infested with the infamous automagic C1E power control misfeature
      
         - a fix for one of the ARM platforms which allows the kernel to
           proceed and boot instead of stupidly panicing for no good reason.
           The patch is slightly larger than necessary, but it's less ugly
           than the alternative 5 liner"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick: Clear broadcast pending bit when switching to oneshot
        clocksource: Kona: Print warning rather than panic
        time: Fix overflow when HZ is smaller than 60
      3a19c07c
    • L
      Merge tag 'trace-fixes-v3.14-rc2' of... · 9bd01b9b
      Linus Torvalds 提交于
      Merge tag 'trace-fixes-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull twi tracing fixes from Steven Rostedt:
       "Two urgent fixes in the tracing utility.
      
        The first is a fix for the way the ring buffer stores timestamps.
        After a restructure of the code was done, the ring buffer timestamp
        logic missed the fact that the first event on a sub buffer is to have
        a zero delta, as the full timestamp is stored on the sub buffer
        itself.  But because the delta was not cleared to zero, the timestamp
        for that event will be calculated as the real timestamp + the delta
        from the last timestamp.  This can skew the timestamps of the events
        and have them say they happened when they didn't really happen.
        That's bad.
      
        The second fix is for modifying the function graph caller site.  When
        the stop machine was removed from updating the function tracing code,
        it missed updating the function graph call site location.  It is still
        modified as if it is being done via stop machine.  But it's not.  This
        can lead to a GPF and kernel crash if the function graph call site
        happens to lie between cache lines and one CPU is executing it while
        another CPU is doing the update.  It would be a very hard condition to
        hit, but the result is severe enough to have it fixed ASAP"
      
      * tag 'trace-fixes-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace/x86: Use breakpoints for converting function graph caller
        ring-buffer: Fix first commit on sub-buffer having non-zero delta
      9bd01b9b
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7fc92804
      Linus Torvalds 提交于
      Pull x86 EFI fixes from Peter Anvin:
       "A few more EFI-related fixes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/efi: Check status field to validate BGRT header
        x86/efi: Fix 32-bit fallout
      7fc92804
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 83660b73
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Kevin Hilman:
       "A collection of ARM SoC fixes for v3.14-rc1.
      
        Mostly a collection of Kconfig, device tree data and compilation fixes
        along with fix to drivers/phy that fixes a boot regression on some
        Marvell mvebu platforms"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        dma: mv_xor: Silence a bunch of LPAE-related warnings
        ARM: ux500: disable msp2 device tree node
        ARM: zynq: Reserve not DMAable space in front of the kernel
        ARM: multi_v7_defconfig: Select CONFIG_SOC_DRA7XX
        ARM: imx6: Initialize low-power mode early again
        ARM: pxa: fix various compilation problems
        ARM: pxa: fix compilation problem on AM300EPD board
        ARM: at91: add Atmel's SAMA5D3 Xplained board
        spi/atmel: document clock properties
        mmc: atmel-mci: document clock properties
        ARM: at91: enable USB host on at91sam9n12ek board
        ARM: at91/dt: fix sama5d3 ohci hclk clock reference
        ARM: at91/dt: sam9263: fix compatibility string for the I2C
        ata: sata_mv: Fix probe failures with optional phys
        drivers: phy: Add support for optional phys
        drivers: phy: Make NULL a valid phy reference
        ARM: fix HAVE_ARM_TWD selection for OMAP and shmobile
        ARM: moxart: move DMA_OF selection to driver
        ARM: hisi: fix kconfig warning on HAVE_ARM_TWD
      83660b73
    • W
    • W
    • F
      Btrfs: use right clone root offset for compressed extents · 93de4ba8
      Filipe David Borba Manana 提交于
      For non compressed extents, iterate_extent_inodes() gives us offsets
      that take into account the data offset from the file extent items, while
      for compressed extents it doesn't. Therefore we have to adjust them before
      placing them in a send clone instruction. Not doing this adjustment leads to
      the receiving end requesting for a wrong a file range to the clone ioctl,
      which results in different file content from the one in the original send
      root.
      
      Issue reproducible with the following excerpt from the test I made for
      xfstests:
      
        _scratch_mkfs
        _scratch_mount "-o compress-force=lzo"
      
        $XFS_IO_PROG -f -c "truncate 118811" $SCRATCH_MNT/foo
        $XFS_IO_PROG -c "pwrite -S 0x0d -b 39987 92267 39987" $SCRATCH_MNT/foo
      
        $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap1
      
        $XFS_IO_PROG -c "pwrite -S 0x3e -b 80000 200000 80000" $SCRATCH_MNT/foo
        $BTRFS_UTIL_PROG filesystem sync $SCRATCH_MNT
        $XFS_IO_PROG -c "pwrite -S 0xdc -b 10000 250000 10000" $SCRATCH_MNT/foo
        $XFS_IO_PROG -c "pwrite -S 0xff -b 10000 300000 10000" $SCRATCH_MNT/foo
      
        # will be used for incremental send to be able to issue clone operations
        $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/clones_snap
      
        $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap2
      
        $FSSUM_PROG -A -f -w $tmp/1.fssum $SCRATCH_MNT/mysnap1
        $FSSUM_PROG -A -f -w $tmp/2.fssum -x $SCRATCH_MNT/mysnap2/mysnap1 \
            -x $SCRATCH_MNT/mysnap2/clones_snap $SCRATCH_MNT/mysnap2
        $FSSUM_PROG -A -f -w $tmp/clones.fssum $SCRATCH_MNT/clones_snap \
            -x $SCRATCH_MNT/clones_snap/mysnap1 -x $SCRATCH_MNT/clones_snap/mysnap2
      
        $BTRFS_UTIL_PROG send $SCRATCH_MNT/mysnap1 -f $tmp/1.snap
        $BTRFS_UTIL_PROG send $SCRATCH_MNT/clones_snap -f $tmp/clones.snap
        $BTRFS_UTIL_PROG send -p $SCRATCH_MNT/mysnap1 \
            -c $SCRATCH_MNT/clones_snap $SCRATCH_MNT/mysnap2 -f $tmp/2.snap
      
        _scratch_unmount
        _scratch_mkfs
        _scratch_mount
      
        $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/1.snap
        $FSSUM_PROG -r $tmp/1.fssum $SCRATCH_MNT/mysnap1 2>> $seqres.full
      
        $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/clones.snap
        $FSSUM_PROG -r $tmp/clones.fssum $SCRATCH_MNT/clones_snap 2>> $seqres.full
      
        $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/2.snap
        $FSSUM_PROG -r $tmp/2.fssum $SCRATCH_MNT/mysnap2 2>> $seqres.full
      Signed-off-by: NFilipe David Borba Manana <fdmanana@gmail.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      93de4ba8
    • A
      btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105 · f085381e
      Anand Jain 提交于
      bdev is null when disk has disappeared and mounted with
      the degrade option
      
      stack trace
      ---------
      btrfs_sysfs_add_one+0x105/0x1c0 [btrfs]
      open_ctree+0x15f3/0x1fe0 [btrfs]
      btrfs_mount+0x5db/0x790 [btrfs]
      ? alloc_pages_current+0xa4/0x160
      mount_fs+0x34/0x1b0
      vfs_kern_mount+0x62/0xf0
      do_mount+0x22e/0xa80
      ? __get_free_pages+0x9/0x40
      ? copy_mount_options+0x31/0x170
      SyS_mount+0x7e/0xc0
      system_call_fastpath+0x16/0x1b
      ---------
      
      reproducer:
      -------
      mkfs.btrfs -draid1 -mraid1 /dev/sdc /dev/sdd
      (detach a disk)
      devmgt detach /dev/sdc [1]
      mount -o degrade /dev/sdd /btrfs
      -------
      
      [1] github.com/anajain/devmgt.git
      Signed-off-by: NAnand Jain <Anand.Jain@oracle.com>
      Tested-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: NChris Mason <clm@fb.com>
      f085381e