1. 22 Jun, 2014 1 commit
    • Arnd Bergmann's avatar
      Merge tag 'samsung-fixes-1' of... · 9cbf3d2b
      Arnd Bergmann authored
      Merge tag 'samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      Merge Samsung fixes for 3.16 from Kukjin Kim:
      
      - use WFI macro in platform_do_lowpower because exynos cpuhotplug
        includes a hardcoded WFI instruction and it causes compile error
        in Thumb-2 mode.
      - fix GIC reg sizes for exynos4 SoCs
      - remove reset timer counter value during boot and resume for mct
        to fix a big jump in printk timestamps
      - fix pm code to check cortex-A9 for another exynos SoCs
      - don't rely on firmware's secondary_cpu_start for mcpm
      
      * tag 'samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm
        ARM: EXYNOS: fix pm code to check for cortex A9 rather than the SoC
        clocksource: exynos_mct: Don't reset the counter during boot and resume
        ARM: dts: fix reg sizes of GIC for exynos4
        ARM: EXYNOS: Use wfi macro in platform_do_lowpower
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      9cbf3d2b
  2. 21 Jun, 2014 1 commit
    • Doug Anderson's avatar
      ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm · 7cbcb9d4
      Doug Anderson authored
      On exynos mcpm systems the firmware is hardcoded to jump to an address
      in SRAM (0x02073000) when secondary CPUs come up.  By default the
      firmware puts a bunch of code at that location.  That code expects the
      kernel to fill in a few slots with addresses that it uses to jump back
      to the kernel's entry point for secondary CPUs.
      
      Originally (on prerelease hardware) this firmware code contained a
      bunch of workarounds to deal with boot ROM bugs.  However on all
      shipped hardware we simply use this code to redirect to a kernel
      function for bringing up the CPUs.
      
      Let's stop relying on the code provided by the bootloader and just
      plumb in our own (simple) code jump to the kernel.  This has the nice
      benefit of fixing problems due to the fact that older bootloaders
      (like the one shipped on the Samsung Chromebook 2) might have put
      slightly different code into this location.
      
      Once suspend/resume is implemented for systems using exynos-mcpm we'll
      need to make sure we reinstall our fixed up code after resume.  ...but
      that's not anything new since IRAM (and thus the address of the
      mcpm_entry_point) is lost across suspend/resume anyway.
      Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
      Acked-by: default avatarKevin Hilman <khilman@linaro.org>
      Tested-by: default avatarKevin Hilman <khilman@linaro.org>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      7cbcb9d4
  3. 20 Jun, 2014 2 commits
  4. 19 Jun, 2014 1 commit
  5. 18 Jun, 2014 2 commits
  6. 17 Jun, 2014 18 commits
    • Abhilash Kesavan's avatar
      ARM: EXYNOS: fix pm code to check for cortex A9 rather than the SoC · c0c3c359
      Abhilash Kesavan authored
      We have an soc check to ensure that the scu and certain A9 specific
      registers are not accessed on Exynos5250 (which is A15 based).
      Rather than adding another soc specific check for 5420 let us test
      for the Cortex A9 primary part number.
      
      This resolves the below crash seen on exynos5420 during core switching
      after the CPUIdle consolidation series was merged.
      
      [  155.975589] [<c0013174>] (scu_enable) from [<c001b0dc>] (exynos_cpu_pm_notifier+0x80/0xc4)
      [  155.983833] [<c001b0dc>] (exynos_cpu_pm_notifier) from [<c003c1b0>] (notifier_call_chain+0x44/0x84)
      [  155.992851] [<c003c1b0>] (notifier_call_chain) from [<c007a49c>] (cpu_pm_notify+0x20/0x3c)
      [  156.001089] [<c007a49c>] (cpu_pm_notify) from [<c007a564>] (cpu_pm_exit+0x20/0x38)
      [  156.008635] [<c007a564>] (cpu_pm_exit) from [<c0019e98>] (bL_switcher_thread+0x298/0x40c)
      [  156.016788] [<c0019e98>] (bL_switcher_thread) from [<c003842c>] (kthread+0xcc/0xe8)
      [  156.024426] [<c003842c>] (kthread) from [<c000e438>] (ret_from_fork+0x14/0x3c)
      [  156.031621] Code: ea017fec c0530a00 c052e3f8 c0012dcc (e5903000
      Signed-off-by: default avatarAbhilash Kesavan <a.kesavan@samsung.com>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      c0c3c359
    • Rob Herring's avatar
      ARM: use menuconfig for sub-arch menus · 21278aea
      Rob Herring authored
      The System Type menu is getting quite long with platforms and is
      inconsistent in handling of sub-arch specific options. Tidy up the menu
      by making platform options a menuconfig entry containing any platform
      specific config items.
      
      [arnd: change OMAP part according to suggestion from
       Tony Lindgren <tony@atomide.com>]
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      21278aea
    • Stephen Warren's avatar
      ARM: multi_v7_defconfig: re-enable SDHCI drivers · 216e9d3e
      Stephen Warren authored
      Following 5d01b768 "mmc: simplify SDHCI Kconfig dependencies",
      SDHCI drivers that use MMC_SDHCI_PLTFM no longer select it, but
      instead depend on it. This means that multi_v7_defconfig no longer
      selects it, and hence many SDHCI drivers are no longer enabled.
      Explicitly enable MMC_SDHCI_PLTFM to solve this.
      
      Fixes: 5d01b768 ("mmc: simplify SDHCI Kconfig dependencies")
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Tested-by: default avatarMatt Porter <mporter@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      216e9d3e
    • Sachin Kamat's avatar
      ARM: EXYNOS: Fix compilation warning · 3eb93646
      Sachin Kamat authored
      of_get_flat_dt_prop return type is now const.
      Fixes the following compilation warning introduced by commit 9d0c4dfe
      ("of/fdt: update of_get_flat_dt_prop in prep for libfdt")
      
      arch/arm/mach-exynos/exynos.c:259:6: warning:
      assignment discards ‘const’ qualifier from pointer target type [enabled by default]
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Reviewed-by: default avatarTushar Behera <tushar.behera@linaro.org>
      Cc: Rob Herring <robh@kernel.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      3eb93646
    • Olof Johansson's avatar
      ARM: exynos: move sysram info to exynos.c · 1754c42e
      Olof Johansson authored
      This solves a problem with building with CONFIG_SMP=n due to missing
      sysram_base_addr (or sysram_ns_base_addr) variables.
      
      The new setup method is more awkward than I'd like for it to be, but
      it can't be done in init_early() since ioremap is not yet available,
      but it needs to happen before SMP.
      Reported-by: default avatarRussell King <linux@arm.linux.org.uk>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      1754c42e
    • Ezequiel Garcia's avatar
      ARM: dts: Specify the NAND ECC scheme explicitly on Armada 385 DB board · 1ad58443
      Ezequiel Garcia authored
      The factory bootloader on A385-DB boards expect the ECC strength to be
      4 bits over 512 bytes. Hence, we need to specify this in the devicetree,
      to prevent the kernel from assuming any different ECC scheme.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Link: https://lkml.kernel.org/r/1400941030-2123-3-git-send-email-ezequiel.garcia@free-electrons.comSigned-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      1ad58443
    • Ezequiel Garcia's avatar
      ARM: dts: Specify the NAND ECC scheme explicitly on Armada 375 DB board · 3364ee57
      Ezequiel Garcia authored
      The factory bootloader on A375-DB boards expect the ECC strength to be
      4 bits over 512 bytes. Hence, we need to specify this in the devicetree,
      to prevent the kernel from assuming any different ECC scheme.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Link: https://lkml.kernel.org/r/1400941030-2123-2-git-send-email-ezequiel.garcia@free-electrons.comSigned-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      3364ee57
    • Rob Herring's avatar
      ARM: exynos: cleanup kconfig option display · e509b289
      Rob Herring authored
      The addition of Exynos to multi-platform configs creates a mess of config
      options with options appearing before the Exynos config option. This is
      due to arch/arm/plat-samsung/Kconfig being included out of order with the
      other Samsung platform kconfig files. Reorder the kconfig files and move
      all the options into a sub-menu. Some of the options are dead, so remove
      those as well.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: linux-samsung-soc@vger.kernel.org
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      e509b289
    • Dan Carpenter's avatar
      misc: vexpress: fix error handling vexpress_syscfg_regmap_init() · fc96e661
      Dan Carpenter authored
      This function should be returning an ERR_PTR() on failure instead of
      NULL.  Also there is a use after free bug if regmap_init() fails because
      we free "func" and then dereference doing the return.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarPawel Moll <pawel.moll@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      fc96e661
    • Stephen Boyd's avatar
      ARM: Remove ARCH_HAS_CPUFREQ config option · 19682f72
      Stephen Boyd authored
      This config exists entirely to hide the cpufreq menu from the
      kernel configuration unless a platform has selected it. Nothing
      is actually built if this config is 'Y' and it just leads to more
      patches that add a select under a platform Kconfig so that some
      other CPUfreq option can be chosen. Let's remove the option so
      that we can always enable CPUfreq drivers on ARM platforms.
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      19682f72
    • Linus Walleij's avatar
      ARM: integrator: fix section mismatch problem · e1318391
      Linus Walleij authored
      This addresses a section mismatch problem in the IM-PD1
      driver in the Integrator/AP.
      
      The IM-PD1 contains a VIC interrupt controller and therefore
      the driver calls vic_init_cascaded() which is marked __init as
      irqchips are simply not hot-pluggable and specifically the VIC
      is assumed to initiate only on boot.
      
      However the module driver model of the Integrator LM bus
      assumes that logic tile drivers can be probed at runtime. This
      is not really the case for IM-PD1: these tiles are detected at
      boot and they cannot be plugged into a running system. Before
      this patch it is of course possible to modprobe them later.
      
      By first forcing the IM-PD1 to bool we make sure this driver
      gets compiled into the kernel, and we know it will be probed
      only at boot time when the tiles are detected, so we can tag
      its probe function __init_refok as we know it won't be called
      after boot now, and the section mismatch problem goes away.
      
      As a side effect, sysfs binding from userspace becomes
      impossible, so we tag the driver to suppress the bind/unbind
      sysfs attributes.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      e1318391
    • Jason Cooper's avatar
      ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size · e47043ae
      Jason Cooper authored
      The OpenBlocks AX3-4 has a non-DT bootloader.  It also comes with 1GB of
      soldered on RAM, and a DIMM slot for expansion.
      
      Unfortunately, atags_to_fdt() doesn't work in big-endian mode, so we see
      the following failure when attempting to boot a big-endian kernel:
      
        686 slab pages
        17 pages shared
        0 pages swap cached
        [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
        Kernel panic - not syncing: Out of memory and no killable processes...
      
        CPU: 1 PID: 351 Comm: kworker/u4:0 Not tainted 3.15.0-rc8-next-20140603 #1
        [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
        [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
        [<c0802500>] (dump_stack) from [<c0800068>] (panic+0x90/0x21c)
        [<c0800068>] (panic) from [<c02b5704>] (out_of_memory+0x320/0x340)
        [<c02b5704>] (out_of_memory) from [<c02b93a0>] (__alloc_pages_nodemask+0x874/0x930)
        [<c02b93a0>] (__alloc_pages_nodemask) from [<c02d446c>] (handle_mm_fault+0x744/0x96c)
        [<c02d446c>] (handle_mm_fault) from [<c02cf250>] (__get_user_pages+0xd0/0x4c0)
        [<c02cf250>] (__get_user_pages) from [<c02f3598>] (get_arg_page+0x54/0xbc)
        [<c02f3598>] (get_arg_page) from [<c02f3878>] (copy_strings+0x278/0x29c)
        [<c02f3878>] (copy_strings) from [<c02f38bc>] (copy_strings_kernel+0x20/0x28)
        [<c02f38bc>] (copy_strings_kernel) from [<c02f4f1c>] (do_execve+0x3a8/0x4c8)
        [<c02f4f1c>] (do_execve) from [<c025ac10>] (____call_usermodehelper+0x15c/0x194)
        [<c025ac10>] (____call_usermodehelper) from [<c020e9b8>] (ret_from_fork+0x14/0x3c)
        CPU0: stopping
        CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.15.0-rc8-next-20140603 #1
        [<c0215a54>] (unwind_backtrace) from [<c021160c>] (show_stack+0x10/0x14)
        [<c021160c>] (show_stack) from [<c0802500>] (dump_stack+0x78/0x94)
        [<c0802500>] (dump_stack) from [<c021429c>] (handle_IPI+0x138/0x174)
        [<c021429c>] (handle_IPI) from [<c02087f0>] (armada_370_xp_handle_irq+0xb0/0xcc)
        [<c02087f0>] (armada_370_xp_handle_irq) from [<c0212100>] (__irq_svc+0x40/0x50)
        Exception stack(0xc0b6bf68 to 0xc0b6bfb0)
        bf60:                   e9fad598 00000000 00f509a3 00000000 c0b6a000 c0b724c4
        bf80: c0b72458 c0b6a000 00000000 00000000 c0b66da0 c0b6a000 00000000 c0b6bfb0
        bfa0: c027bb94 c027bb24 60000313 ffffffff
        [<c0212100>] (__irq_svc) from [<c027bb24>] (cpu_startup_entry+0x54/0x214)
        [<c027bb24>] (cpu_startup_entry) from [<c0ac5b30>] (start_kernel+0x318/0x37c)
        [<c0ac5b30>] (start_kernel) from [<00208078>] (0x208078)
        ---[ end Kernel panic - not syncing: Out of memory and no killable processes...
      
      A similar failure will also occur if ARM_ATAG_DTB_COMPAT isn't selected.
      
      Fix this by setting a sane default (1 GB) in the dts file.
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      Tested-by: default avatarKevin Hilman <khilman@linaro.org>
      Cc: <stable@vger.kernel.org> #v3.13+
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      e47043ae
    • Arnd Bergmann's avatar
      ARM: samsung: make SAMSUNG_DMADEV optional · 27873b05
      Arnd Bergmann authored
      The only remaining driver using the samsung dmadev code is the broken
      samsung-ac97 sound driver. However, as found by Russell's autobuilder,
      the elaborate dependency chains around it cause problems with
      circular dependencies.
      
      This is an attempt to simplify those dependencies by making the
      SAMSUNG_DMADEV option user-selectable. I also try to keep the
      default settings for all related options unchanged, so we don't
      introduce any regressions against earlier testing on linux-next.
      
      In particular, all s3c64xx and s5p* platforms keep selecting the
      pl330 and pl08x drivers they require, but the select statement
      is now moved towards the main platform option, and it remains
      optional by unselecting CONFIG_DMADEVICES.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      27873b05
    • Arnd Bergmann's avatar
      remoteproc: da8xx: don't select CMA on no-MMU · 8c094524
      Arnd Bergmann authored
      We can only use CMA on systems that have an MMU, because of
      the requirement to use memory migration. NOMMU systems are
      rather constrained to start with, but it seems reasonable
      to assume that DMA allocations can still succeed in the
      constrained case for remoteproc on NOMMU, so this patch
      changes the da8xx implementation to not rely on CMA when
      the MMU is disabled.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Cc: Robert Tivy <rtivy@ti.com>
      8c094524
    • Arnd Bergmann's avatar
      bus/arm-cci: add dependency on OF && CPU_V7 · 30b6f37d
      Arnd Bergmann authored
      The arm-cci code uses device tree helpers for initialization
      that don't work on kernels built without CONFIG_OF. Further,
      it contains an inline assembly in cci_enable_port_for_self()
      that uses ARMv7 instructions and fails to build when targetting
      other ARM instruction set versions.
      
      This works around both issues by limiting the scope of the
      Kconfig symbol to platforms that can actually build this driver
      cleanly.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Shawn Guo <shawn.guo@linaro.org>
      30b6f37d
    • Arnd Bergmann's avatar
      ARM: keystone requires ARM_PATCH_PHYS_VIRT · 13ee8955
      Arnd Bergmann authored
      The dynamic relocation that the keystone platform performs
      only works if we can pick the phys offset at boot time. It's
      possible that there is another solution for this, but this
      is the easiest workaround. Kernels with ARM_PATCH_PHYS_VIRT
      are not portable across platforms, and I see no reason why
      anyone would run a kernel without ARM_PATCH_PHYS_VIRT on
      keystone.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      13ee8955
    • Arnd Bergmann's avatar
      ARM: omap2: fix am43xx dependency on l2x0 cache · 2ad501cc
      Arnd Bergmann authored
      Commit d941f86f ("ARM: l2c: AM43x: add L2 cache support") enabled
      the L2 cache support for the am43xx SoC, but caused a build regression
      when the driver for that cache controller is disabled:
      
      arch/arm/mach-omap2/built-in.o: In function `am43xx_init_early':
      :(.init.text+0xb20): undefined reference to `omap_l2_cache_init'
      
      This did not happen for OMAP4, which has the same call, but enables
      the l2x0 driver unconditionally. We could do the same thing for
      am43xx, but it seems better to allow turning it off and make the
      code work in either case.
      
      This adds an inline wrapper for omap_l2_cache_init for the disabled
      case, and removes the 'select' from OMAP4 so it becomes a user
      visible option.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: linux-omap@vger.kernel.org
      2ad501cc
    • Peter Griffin's avatar
      ARM: STi: DT: Properly define sti-ethclk & stmmaceth for stih415/6 · 9796853e
      Peter Griffin authored
      This patch fixes two problems: -
      
      1) The device tree isn't currently providing sti-ethclk which is
      required by the dwmac glue code to correctly configure the ethernet
      PHY clock speed.
      
      This means depending on what the bootloader/jtag has
      configured this clock to, and what switch/hub the board is plugged
      into you most likely will NOT successfully negotiate a ethernet link.
      
      2) The stmmaceth clock was associated with the wrong clock. It was
      referencing the PHY clock rather than the interconnect clock which
      clocks the IP.
      
      This patch also brings us closer to not having to boot the upstream
      kernel with the clk_ignore_unused parameter.
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarPeter Griffin <peter.griffin@linaro.org>
      Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@st.com>
      9796853e
  7. 16 Jun, 2014 7 commits
    • Chirantan Ekbote's avatar
      clocksource: exynos_mct: Don't reset the counter during boot and resume · 1d80415d
      Chirantan Ekbote authored
      Unfortunately on some exynos systems, resetting the mct counter also
      resets the architected timer counter.  This can cause problems if the
      architected timer driver has already been initialized because the kernel
      will think that the counter has wrapped around, causing a big jump in
      printk timestamps and delaying any scheduled clock events until the
      counter reaches the value it had before it was reset.
      
      The kernel code makes no assumptions about the initial value of the mct
      counter so there is no reason from a software perspective to clear the
      counter before starting it.  This also fixes the problems described in
      the previous paragraph.
      
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Tomasz Figa <tomasz.figa@gmail.com>
      Signed-off-by: default avatarChirantan Ekbote <chirantan@chromium.org>
      Reviewed-by: default avatarDoug Anderson <dianders@chromium.org>
      Tested-by: default avatarDoug Anderson <dianders@chromium.org>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      1d80415d
    • Tomasz Figa's avatar
      ARM: dts: fix reg sizes of GIC for exynos4 · cf286b40
      Tomasz Figa authored
      This patch fixes reg entry sizes in GIC node that were not
      large enough to cover whole regions.
      Signed-off-by: default avatarTomasz Figa <t.figa@samsung.com>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      cf286b40
    • Leela Krishna Amudala's avatar
      ARM: EXYNOS: Use wfi macro in platform_do_lowpower · b92ad209
      Leela Krishna Amudala authored
      This patch is originally based on commit b3377d18 ("ARM: 7064/1:
      vexpress: Use wfi macro in platform_do_lowpower.")
      
      Current Exynos CPU hotplug code includes a hardcoded WFI instruction,
      in ARM encoding. When the kernel is compiled in Thumb-2 mode, this
      is invalid and causes the machine to hang hard when a CPU is offlined.
      
      Use wfi macro instead of the hardcoded WFI instruction.
      Signed-off-by: default avatarLeela Krishna Amudala <leela.krishna@linaro.org>
      Acked-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      b92ad209
    • Linus Torvalds's avatar
      Linux 3.16-rc1 · 7171511e
      Linus Torvalds authored
      7171511e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a9be2242
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix checksumming regressions, from Tom Herbert.
      
       2) Undo unintentional permissions changes for SCTP rto_alpha and
          rto_beta sysfs knobs, from Denial Borkmann.
      
       3) VXLAN, like other IP tunnels, should advertize it's encapsulation
          size using dev->needed_headroom instead of dev->hard_header_len.
          From Cong Wang.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        net: sctp: fix permissions for rto_alpha and rto_beta knobs
        vxlan: Checksum fixes
        net: add skb_pop_rcv_encapsulation
        udp: call __skb_checksum_complete when doing full checksum
        net: Fix save software checksum complete
        net: Fix GSO constants to match NETIF flags
        udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup
        vxlan: use dev->needed_headroom instead of dev->hard_header_len
        MAINTAINERS: update cxgb4 maintainer
      a9be2242
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.16-part2' of git://git.linaro.org/people/mike.turquette/linux · dd1845af
      Linus Torvalds authored
      Pull more clock framework updates from Mike Turquette:
       "This contains the second half the of the clk changes for 3.16.
      
        They are simply fixes and code refactoring for the OMAP clock drivers.
        The sunxi clock driver changes include splitting out the one
        mega-driver into several smaller pieces and adding support for the A31
        SoC clocks"
      
      * tag 'clk-for-linus-3.16-part2' of git://git.linaro.org/people/mike.turquette/linux: (25 commits)
        clk: sunxi: document PRCM clock compatible strings
        clk: sunxi: add PRCM (Power/Reset/Clock Management) clks support
        clk: sun6i: Protect SDRAM gating bit
        clk: sun6i: Protect CPU clock
        clk: sunxi: Rework clock protection code
        clk: sunxi: Move the GMAC clock to a file of its own
        clk: sunxi: Move the 24M oscillator to a file of its own
        clk: sunxi: Remove calls to clk_put
        clk: sunxi: document new A31 USB clock compatible
        clk: sunxi: Implement A31 USB clock
        ARM: dts: OMAP5/DRA7: use omap5-mpu-dpll-clock capable of dealing with higher frequencies
        CLK: TI: dpll: support OMAP5 MPU DPLL that need special handling for higher frequencies
        ARM: OMAP5+: dpll: support Duty Cycle Correction(DCC)
        CLK: TI: clk-54xx: Set the rate for dpll_abe_m2x2_ck
        CLK: TI: Driver for DRA7 ATL (Audio Tracking Logic)
        dt:/bindings: DRA7 ATL (Audio Tracking Logic) clock bindings
        ARM: dts: dra7xx-clocks: Correct name for atl clkin3 clock
        CLK: TI: gate: add composite interface clock to OMAP2 only build
        ARM: OMAP2: clock: add DT boot support for cpufreq_ck
        CLK: TI: OMAP2: add clock init support
        ...
      dd1845af
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · b55b3902
      Linus Torvalds authored
      Pull NVMe update from Matthew Wilcox:
       "Mostly bugfixes again for the NVMe driver.  I'd like to call out the
        exported tracepoint in the block layer; I believe Keith has cleared
        this with Jens.
      
        We've had a few reports from people who're really pounding on NVMe
        devices at scale, hence the timeout changes (and new module
        parameters), hotplug cpu deadlock, tracepoints, and minor performance
        tweaks"
      
      [ Jens hadn't seen that tracepoint thing, but is ok with it - it will
        end up going away when mq conversion happens ]
      
      * git://git.infradead.org/users/willy/linux-nvme: (22 commits)
        NVMe: Fix START_STOP_UNIT Scsi->NVMe translation.
        NVMe: Use Log Page constants in SCSI emulation
        NVMe: Define Log Page constants
        NVMe: Fix hot cpu notification dead lock
        NVMe: Rename io_timeout to nvme_io_timeout
        NVMe: Use last bytes of f/w rev SCSI Inquiry
        NVMe: Adhere to request queue block accounting enable/disable
        NVMe: Fix nvme get/put queue semantics
        NVMe: Delete NVME_GET_FEAT_TEMP_THRESH
        NVMe: Make admin timeout a module parameter
        NVMe: Make iod bio timeout a parameter
        NVMe: Prevent possible NULL pointer dereference
        NVMe: Fix the buffer size passed in GetLogPage(CDW10.NUMD)
        NVMe: Update data structures for NVMe 1.2
        NVMe: Enable BUILD_BUG_ON checks
        NVMe: Update namespace and controller identify structures to the 1.1a spec
        NVMe: Flush with data support
        NVMe: Configure support for block flush
        NVMe: Add tracepoints
        NVMe: Protect against badly formatted CQEs
        ...
      b55b3902
  8. 15 Jun, 2014 8 commits
    • Daniel Borkmann's avatar
      net: sctp: fix permissions for rto_alpha and rto_beta knobs · b58537a1
      Daniel Borkmann authored
      Commit 3fd091e7 ("[SCTP]: Remove multiple levels of msecs
      to jiffies conversions.") has silently changed permissions for
      rto_alpha and rto_beta knobs from 0644 to 0444. The purpose of
      this was to discourage users from tweaking rto_alpha and
      rto_beta knobs in production environments since they are key
      to correctly compute rtt/srtt.
      
      RFC4960 under section 6.3.1. RTO Calculation says regarding
      rto_alpha and rto_beta under rule C3 and C4:
      
        [...]
        C3)  When a new RTT measurement R' is made, set
      
             RTTVAR <- (1 - RTO.Beta) * RTTVAR + RTO.Beta * |SRTT - R'|
      
             and
      
             SRTT <- (1 - RTO.Alpha) * SRTT + RTO.Alpha * R'
      
             Note: The value of SRTT used in the update to RTTVAR
             is its value before updating SRTT itself using the
             second assignment. After the computation, update
             RTO <- SRTT + 4 * RTTVAR.
      
        C4)  When data is in flight and when allowed by rule C5
             below, a new RTT measurement MUST be made each round
             trip. Furthermore, new RTT measurements SHOULD be
             made no more than once per round trip for a given
             destination transport address. There are two reasons
             for this recommendation: First, it appears that
             measuring more frequently often does not in practice
             yield any significant benefit [ALLMAN99]; second,
             if measurements are made more often, then the values
             of RTO.Alpha and RTO.Beta in rule C3 above should be
             adjusted so that SRTT and RTTVAR still adjust to
             changes at roughly the same rate (in terms of how many
             round trips it takes them to reflect new values) as
             they would if making only one measurement per
             round-trip and using RTO.Alpha and RTO.Beta as given
             in rule C3. However, the exact nature of these
             adjustments remains a research issue.
        [...]
      
      While it is discouraged to adjust rto_alpha and rto_beta
      and not further specified how to adjust them, the RFC also
      doesn't explicitly forbid it, but rather gives a RECOMMENDED
      default value (rto_alpha=3, rto_beta=2). We have a couple
      of users relying on the old permissions before they got
      changed. That said, if someone really has the urge to adjust
      them, we could allow it with a warning in the log.
      
      Fixes: 3fd091e7 ("[SCTP]: Remove multiple levels of msecs to jiffies conversions.")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Cc: Vlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b58537a1
    • David S. Miller's avatar
      Merge branch 'csum_fixes' · e4f7ae93
      David S. Miller authored
      Tom Herbert says:
      
      ====================
      Fixes related to some recent checksum modifications.
      
      - Fix GSO constants to match NETIF flags
      - Fix logic in saving checksum complete in __skb_checksum_complete
      - Call __skb_checksum_complete from UDP if we are checksumming over
        whole packet in order to save checksum.
      - Fixes to VXLAN to work correctly with checksum complete
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4f7ae93
    • Tom Herbert's avatar
      vxlan: Checksum fixes · f79b064c
      Tom Herbert authored
      Call skb_pop_rcv_encapsulation and postpull_rcsum for the Ethernet
      header to work properly with checksum complete.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f79b064c
    • Tom Herbert's avatar
      net: add skb_pop_rcv_encapsulation · e5eb4e30
      Tom Herbert authored
      This function is used by UDP encapsulation protocols in RX when
      crossing encapsulation boundary. If ip_summed is set to
      CHECKSUM_UNNECESSARY and encapsulation is not set, change to
      CHECKSUM_NONE since the checksum has not been validated within the
      encapsulation. Clears csum_valid by the same rationale.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5eb4e30
    • Tom Herbert's avatar
      udp: call __skb_checksum_complete when doing full checksum · bbdff225
      Tom Herbert authored
      In __udp_lib_checksum_complete check if checksum is being done over all
      the data (len is equal to skb->len) and if it is call
      __skb_checksum_complete instead of __skb_checksum_complete_head. This
      allows checksum to be saved in checksum complete.
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbdff225
    • Tom Herbert's avatar
      net: Fix save software checksum complete · 46fb51eb
      Tom Herbert authored
      Geert reported issues regarding checksum complete and UDP.
      The logic introduced in commit 7e3cead5
      ("net: Save software checksum complete") is not correct.
      
      This patch:
      1) Restores code in __skb_checksum_complete_header except for setting
         CHECKSUM_UNNECESSARY. This function may be calculating checksum on
         something less than skb->len.
      2) Adds saving checksum to __skb_checksum_complete. The full packet
         checksum 0..skb->len is calculated without adding in pseudo header.
         This value is saved in skb->csum and then the pseudo header is added
         to that to derive the checksum for validation.
      3) In both __skb_checksum_complete_header and __skb_checksum_complete,
         set skb->csum_valid to whether checksum of zero was computed. This
         allows skb_csum_unnecessary to return true without changing to
         CHECKSUM_UNNECESSARY which was done previously.
      4) Copy new csum related bits in __copy_skb_header.
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      46fb51eb
    • Tom Herbert's avatar
      net: Fix GSO constants to match NETIF flags · 4b28252c
      Tom Herbert authored
      Joseph Gasparakis reported that VXLAN GSO offload stopped working with
      i40e device after recent UDP changes. The problem is that the
      SKB_GSO_* bits are out of sync with the corresponding NETIF flags. This
      patch fixes that. Also, we add BUILD_BUG_ONs in net_gso_ok for several
      GSO constants that were missing to avoid the problem in the future.
      Reported-by: default avatarJoseph Gasparakis <joseph.gasparakis@intel.com>
      Signed-off-by: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b28252c
    • Linus Torvalds's avatar
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · abf04af7
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is just a couple of drivers (hpsa and lpfc) that got left out for
        further testing in linux-next.  We also have one fix to a prior
        submission (qla2xxx sparse)"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (36 commits)
        qla2xxx: fix sparse warnings introduced by previous target mode t10-dif patch
        lpfc: Update lpfc version to driver version 10.2.8001.0
        lpfc: Fix ExpressLane priority setup
        lpfc: mark old devices as obsolete
        lpfc: Fix for initializing RRQ bitmap
        lpfc: Fix for cleaning up stale ring flag and sp_queue_event entries
        lpfc: Update lpfc version to driver version 10.2.8000.0
        lpfc: Update Copyright on changed files from 8.3.45 patches
        lpfc: Update Copyright on changed files
        lpfc: Fixed locking for scsi task management commands
        lpfc: Convert runtime references to old xlane cfg param to fof cfg param
        lpfc: Fix FW dump using sysfs
        lpfc: Fix SLI4 s abort loop to process all FCP rings and under ring_lock
        lpfc: Fixed kernel panic in lpfc_abort_handler
        lpfc: Fix locking for postbufq when freeing
        lpfc: Fix locking for lpfc_hba_down_post
        lpfc: Fix dynamic transitions of FirstBurst from on to off
        hpsa: fix handling of hpsa_volume_offline return value
        hpsa: return -ENOMEM not -1 on kzalloc failure in hpsa_get_device_id
        hpsa: remove messages about volume status VPD inquiry page not supported
        ...
      abf04af7