1. 10 4月, 2013 1 次提交
  2. 09 4月, 2013 2 次提交
    • T
      ARM: EXYNOS: Add support for Exynos secure firmware · bca28f8f
      Tomasz Figa 提交于
      Some Exynos-based boards contain secure firmware and must use firmware
      operations to set up some hardware.
      
      This patch adds firmware operations for Exynos secure firmware and a way
      for board code and device tree to specify that they must be used.
      
      Example of use:
      
      In board code:
      
        ...MACHINE_START(...)
                /* ... */
                .init_early   = exynos_firmware_init,
                /* ... */
        MACHINE_END
      
      In device tree:
      
        / {
                /* ... */
      
                firmware@0203F000 {
                        compatible = "samsung,secure-firmware";
                        reg = <0x0203F000 0x1000>;
                };
      
                /* ... */
        };
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      bca28f8f
    • T
      ARM: Add interface for registering and calling firmware-specific operations · 7366b92a
      Tomasz Figa 提交于
      Some boards are running with secure firmware running in TrustZone secure
      world, which changes the way some things have to be initialized.
      
      This patch adds an interface for platforms to specify available firmware
      operations and call them.
      
      A wrapper macro, call_firmware_op(), checks if the operation is provided
      and calls it if so, otherwise returns -ENOSYS to allow fallback to
      legacy operation..
      
      By default no operations are provided.
      
      Example of use:
      
      In code using firmware ops:
      
        __raw_writel(virt_to_phys(exynos4_secondary_startup),
                     CPU1_BOOT_REG);
      
        /* Call Exynos specific smc call */
        if (call_firmware_op(cpu_boot, cpu) == -ENOSYS)
                cpu_boot_legacy(...); /* Try legacy way */
      
        gic_raise_softirq(cpumask_of(cpu), 1);
      
      In board-/platform-specific code:
      
        static int platformX_do_idle(void)
        {
                /* tell platformX firmware to enter idle */
                return 0;
        }
      
        static int platformX_cpu_boot(int i)
        {
                /* tell platformX firmware to boot CPU i */
                return 0;
        }
      
        static const struct firmware_ops platformX_firmware_ops = {
                .do_idle      = exynos_do_idle,
                .cpu_boot     = exynos_cpu_boot,
                /* other operations not available on platformX */
        };
      
        static void __init board_init_early(void)
        {
                register_firmware_ops(&platformX_firmware_ops);
        }
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      7366b92a
  3. 08 4月, 2013 1 次提交
  4. 04 4月, 2013 8 次提交
  5. 25 3月, 2013 3 次提交
  6. 22 3月, 2013 1 次提交
  7. 19 3月, 2013 2 次提交
    • J
      ipvs: add backup_only flag to avoid loops · 0c12582f
      Julian Anastasov 提交于
      Dmitry Akindinov is reporting for a problem where SYNs are looping
      between the master and backup server when the backup server is used as
      real server in DR mode and has IPVS rules to function as director.
      
      Even when the backup function is enabled we continue to forward
      traffic and schedule new connections when the current master is using
      the backup server as real server. While this is not a problem for NAT,
      for DR and TUN method the backup server can not determine if a request
      comes from client or from director.
      
      To avoid such loops add new sysctl flag backup_only. It can be needed
      for DR/TUN setups that do not need backup and director function at the
      same time. When the backup function is enabled we stop any forwarding
      and pass the traffic to the local stack (real server mode). The flag
      disables the director function when the backup function is enabled.
      
      For setups that enable backup function for some virtual services and
      director function for other virtual services there should be another
      more complex solution to support DR/TUN mode, may be to assign
      per-virtual service syncid value, so that we can differentiate the
      requests.
      Reported-by: NDmitry Akindinov <dimak@stalker.com>
      Tested-by: NGerman Myzovsky <lawyer@sipnet.ru>
      Signed-off-by: NJulian Anastasov <ja@ssi.bg>
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      0c12582f
    • J
      hwmon: (lm75) Fix tcn75 prefix · 25eba81b
      Jean Delvare 提交于
      The TCN75 has its own prefix for a long time now.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      25eba81b
  8. 17 3月, 2013 1 次提交
  9. 12 3月, 2013 2 次提交
  10. 09 3月, 2013 2 次提交
  11. 08 3月, 2013 1 次提交
  12. 07 3月, 2013 4 次提交
  13. 04 3月, 2013 4 次提交
  14. 03 3月, 2013 3 次提交
    • J
      metag: Basic documentation · fdabf525
      James Hogan 提交于
      Add basic metag documentation. This includes an outline description of
      the ABIs (including syscall ABI) and calling conventions, similar to the
      one in Documentation/frv/.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: linux-doc@vger.kernel.org
      fdabf525
    • J
      metag: Internal and external irqchips · 5698c50d
      James Hogan 提交于
      Meta core internal interrupts (from HWSTATMETA and friends) are vectored
      onto the TR1 core trigger for the current thread. This is demultiplexed
      in irq-metag.c to individual Linux IRQs for each internal interrupt.
      
      External SoC interrupts (from HWSTATEXT and friends) are vectored onto
      the TR2 core trigger for the current thread. This is demultiplexed in
      irq-metag-ext.c to individual Linux IRQs for each external SoC interrupt.
      The external irqchip has devicetree bindings for configuring the number
      of irq banks and the type of masking available.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Dom Cobley <popcornmix@gmail.com>
      Cc: Simon Arlott <simon@fire.lp0.eu>
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: devicetree-discuss@lists.ozlabs.org
      Cc: linux-doc@vger.kernel.org
      5698c50d
    • Y
      x86, ACPI, mm: Revert movablemem_map support · 20e6926d
      Yinghai Lu 提交于
      Tim found:
      
        WARNING: at arch/x86/kernel/smpboot.c:324 topology_sane.isra.2+0x6f/0x80()
        Hardware name: S2600CP
        sched: CPU #1's llc-sibling CPU #0 is not on the same node! [node: 1 != 0]. Ignoring dependency.
        smpboot: Booting Node   1, Processors  #1
        Modules linked in:
        Pid: 0, comm: swapper/1 Not tainted 3.9.0-0-generic #1
        Call Trace:
          set_cpu_sibling_map+0x279/0x449
          start_secondary+0x11d/0x1e5
      
      Don Morris reproduced on a HP z620 workstation, and bisected it to
      commit e8d19552 ("acpi, memory-hotplug: parse SRAT before memblock
      is ready")
      
      It turns out movable_map has some problems, and it breaks several things
      
      1. numa_init is called several times, NOT just for srat. so those
      	nodes_clear(numa_nodes_parsed)
      	memset(&numa_meminfo, 0, sizeof(numa_meminfo))
         can not be just removed.  Need to consider sequence is: numaq, srat, amd, dummy.
         and make fall back path working.
      
      2. simply split acpi_numa_init to early_parse_srat.
         a. that early_parse_srat is NOT called for ia64, so you break ia64.
         b.  for (i = 0; i < MAX_LOCAL_APIC; i++)
      	     set_apicid_to_node(i, NUMA_NO_NODE)
           still left in numa_init. So it will just clear result from early_parse_srat.
           it should be moved before that....
         c.  it breaks ACPI_TABLE_OVERIDE...as the acpi table scan is moved
             early before override from INITRD is settled.
      
      3. that patch TITLE is total misleading, there is NO x86 in the title,
         but it changes critical x86 code. It caused x86 guys did not
         pay attention to find the problem early. Those patches really should
         be routed via tip/x86/mm.
      
      4. after that commit, following range can not use movable ram:
        a. real_mode code.... well..funny, legacy Node0 [0,1M) could be hot-removed?
        b. initrd... it will be freed after booting, so it could be on movable...
        c. crashkernel for kdump...: looks like we can not put kdump kernel above 4G
      	anymore.
        d. init_mem_mapping: can not put page table high anymore.
        e. initmem_init: vmemmap can not be high local node anymore. That is
           not good.
      
      If node is hotplugable, the mem related range like page table and
      vmemmap could be on the that node without problem and should be on that
      node.
      
      We have workaround patch that could fix some problems, but some can not
      be fixed.
      
      So just remove that offending commit and related ones including:
      
       f7210e6c ("mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to
          protect movablecore_map in memblock_overlaps_region().")
      
       01a178a9 ("acpi, memory-hotplug: support getting hotplug info from
          SRAT")
      
       27168d38 ("acpi, memory-hotplug: extend movablemem_map ranges to
          the end of node")
      
       e8d19552 ("acpi, memory-hotplug: parse SRAT before memblock is
          ready")
      
       fb06bc8e ("page_alloc: bootmem limit with movablecore_map")
      
       42f47e27 ("page_alloc: make movablemem_map have higher priority")
      
       6981ec31 ("page_alloc: introduce zone_movable_limit[] to keep
          movable limit for nodes")
      
       34b71f1e ("page_alloc: add movable_memmap kernel parameter")
      
       4d59a751 ("x86: get pg_data_t's memory from other node")
      
      Later we should have patches that will make sure kernel put page table
      and vmemmap on local node ram instead of push them down to node0.  Also
      need to find way to put other kernel used ram to local node ram.
      Reported-by: NTim Gardner <tim.gardner@canonical.com>
      Reported-by: NDon Morris <don.morris@hp.com>
      Bisected-by: NDon Morris <don.morris@hp.com>
      Tested-by: NDon Morris <don.morris@hp.com>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Thomas Renninger <trenn@suse.de>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Tang Chen <tangchen@cn.fujitsu.com>
      Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      20e6926d
  15. 02 3月, 2013 3 次提交
  16. 01 3月, 2013 2 次提交