25 Mar, 2016

1 commit

  • Pull asm-generic updates from Arnd Bergmann:
    "There are only three patches this time, most other changes to files in
    include/asm-generic tend to go through the tree of whoever depends on
    the change.

    Two patches are cleanups for stuff that is no longer needed, the main
    change is to adapt the generic version of BUG_ON() for CONFIG_BUG=n to
    make it behave consistently with BUG().

    This avoids undefined behavior along with a number of warnings about
    that undefined behavior in randconfig builds when we keep going on
    after hitting a BUG_ON()"

    * tag 'asm-generic-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: remove old nonatomic-io wrapper files
    asm-generic: default BUG_ON(x) to if(x)BUG()
    asm-generic: page.h: Remove useless get_user_page and free_user_page

    Linus Torvalds
     

22 Mar, 2016

1 commit

  • Pull ARC architecture updates from Vineet Gupta:
    - Big Endian io accessors fix [Lada]
    - Spellos fixes [Adam]
    - Fix for DW GMAC breakage [Alexey]
    - Making DMA API 64-bit ready
    - Shutting up -Wmaybe-uninitialized noise for ARC
    - Other minor fixes here and there, comments update

    * tag 'arc-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (21 commits)
    ARCv2: ioremap: Support dynamic peripheral address space
    ARC: dma: reintroduce platform specific dmaphys
    ARC: dma: ioremap: use phys_addr_t consistenctly in code paths
    ARC: dma: pass_phys() not sg_virt() to cache ops
    ARC: dma: non-coherent pages need V-P mapping if in HIGHMEM
    ARC: dma: Use struct page based page allocator helpers
    ARC: build: Turn off -Wmaybe-uninitialized for ARC gcc 4.8
    ARC: [plat-axs10x] add Ethernet PHY description in .dts
    arc: use of_platform_default_populate() to populate default bus
    ARC: thp: unbork !CONFIG_TRANSPARENT_HUGEPAGE build
    arc: [plat-nsimosci*] use ezchip network driver
    ARCv2: LLSC: software backoff is NOT needed starting HS2.1c
    ARC: mm: Use virt_to_pfn() for addr >> PAGE_SHIFT pattern
    ARC: [plat-nsim] document ranges
    ARC: build: Better way to detect ISA compatible toolchain
    ARCv2: Allow enabling PAE40 w/o HIGHMEM
    ARC: [BE] readl()/writel() to work in Big Endian CPU configuration
    ARC: [*defconfig] No need to specify CONFIG_CROSS_COMPILE
    ARC: [BE] Select correct CROSS_COMPILE prefix
    ARC: bitops: Remove non relevant comments
    ...

    Linus Torvalds
     

20 Mar, 2016

1 commit

  • Pull networking updates from David Miller:
    "Highlights:

    1) Support more Realtek wireless chips, from Jes Sorenson.

    2) New BPF types for per-cpu hash and arrap maps, from Alexei
    Starovoitov.

    3) Make several TCP sysctls per-namespace, from Nikolay Borisov.

    4) Allow the use of SO_REUSEPORT in order to do per-thread processing
    of incoming TCP/UDP connections. The muxing can be done using a
    BPF program which hashes the incoming packet. From Craig Gallek.

    5) Add a multiplexer for TCP streams, to provide a messaged based
    interface. BPF programs can be used to determine the message
    boundaries. From Tom Herbert.

    6) Add 802.1AE MACSEC support, from Sabrina Dubroca.

    7) Avoid factorial complexity when taking down an inetdev interface
    with lots of configured addresses. We were doing things like
    traversing the entire address less for each address removed, and
    flushing the entire netfilter conntrack table for every address as
    well.

    8) Add and use SKB bulk free infrastructure, from Jesper Brouer.

    9) Allow offloading u32 classifiers to hardware, and implement for
    ixgbe, from John Fastabend.

    10) Allow configuring IRQ coalescing parameters on a per-queue basis,
    from Kan Liang.

    11) Extend ethtool so that larger link mode masks can be supported.
    From David Decotigny.

    12) Introduce devlink, which can be used to configure port link types
    (ethernet vs Infiniband, etc.), port splitting, and switch device
    level attributes as a whole. From Jiri Pirko.

    13) Hardware offload support for flower classifiers, from Amir Vadai.

    14) Add "Local Checksum Offload". Basically, for a tunneled packet
    the checksum of the outer header is 'constant' (because with the
    checksum field filled into the inner protocol header, the payload
    of the outer frame checksums to 'zero'), and we can take advantage
    of that in various ways. From Edward Cree"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits)
    bonding: fix bond_get_stats()
    net: bcmgenet: fix dma api length mismatch
    net/mlx4_core: Fix backward compatibility on VFs
    phy: mdio-thunder: Fix some Kconfig typos
    lan78xx: add ndo_get_stats64
    lan78xx: handle statistics counter rollover
    RDS: TCP: Remove unused constant
    RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket
    net: smc911x: convert pxa dma to dmaengine
    team: remove duplicate set of flag IFF_MULTICAST
    bonding: remove duplicate set of flag IFF_MULTICAST
    net: fix a comment typo
    ethernet: micrel: fix some error codes
    ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it
    bpf, dst: add and use dst_tclassid helper
    bpf: make skb->tc_classid also readable
    net: mvneta: bm: clarify dependencies
    cls_bpf: reset class and reuse major in da
    ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c
    ldmvsw: Add ldmvsw.c driver code
    ...

    Linus Torvalds
     

19 Mar, 2016

6 commits


18 Mar, 2016

2 commits

  • linux-next has been reporting gazillion warnings for ARC build and
    I finally decided to take a bite:

    http://kisskb.ellerman.id.au/kisskb/buildresult/12638735/

    Most of the them are due to -Wmaybe-uninitialized

    | ../kernel/sysctl.c: In function '__do_proc_doulongvec_minmax':
    | ../kernel/sysctl.c:1928:12: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
    | ret = tmp - *buf;
    | ^
    | ../kernel/sysctl.c:2342:29: note: 'p' was declared here
    | char *kbuf = NULL, *p;
    | ^
    | ...
    | ...

    Cursory look at code seemed fine and a definite gcc false positive in say
    kernel/sysctl.c

    Mystery was why only for ARC (and not with ARM linaro toolchain based
    off same gcc 4.8). Turns out that -O3 (default for ARC) triggers these
    and if I enable -O3 for ARM kernel build, I see the same splat.

    I initially wanted to disable this only for gcc 4.8, but Arnd reported
    it is seen even on gcc 6.0 for ARM with -O3. Thus better to disable
    this independent of gcc version.

    Cc: Claudiu Zissulescu
    Cc: Arnd Bergmann
    Cc: Michal Marek
    Cc: Geert Uytterhoeven
    Cc: linux-kbuild@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • With THP refcounting work, no need to mark PMDs splitting.

    (ARC got missed under the sweeping arch change as THP support was likely
    not present in orig baseline)

    Signed-off-by: Vineet Gupta
    Cc: Kirill A. Shutemov

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vineet Gupta
     

17 Mar, 2016

4 commits

  • Commit e34d65696d2e ("stmmac: create of compatible mdio bus for stmmac
    driver") broke DW GMAC functionality on ARC AXS10x boards:

    That's what happens on eth0 up:
    --------------------------->8------------------------
    | libphy: PHY stmmac-0:ffffffff not found
    | eth0: Could not attach to PHY
    | stmmac_open: Cannot attach to PHY (error: -19)
    --------------------------->8------------------------

    Simplest solution is to add PHY description in board's .dts.
    And so we do here.

    Signed-off-by: Alexey Brodkin
    Cc: Rob Herring
    Cc: Phil Reid
    Cc: David S. Miller
    Cc: linux-kernel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: stable@vger.kernel.org # 4.5
    Reviewed-by: Sergei Shtylyov
    Signed-off-by: Vineet Gupta

    Alexey Brodkin
     
  • Use helper of_platform_default_populate() in linux/of_platform
    when possible, instead of calling of_platform_populate() with
    the default match table.

    Signed-off-by: Kefeng Wang
    Signed-off-by: Vineet Gupta

    Kefeng Wang
     
  • linux-next for 4.6-rc1 timeline reported ARC build failures !THP

    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]
    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]
    | arch/arc/include/asm/tlbflush.h:29:0: warning: "flush_pmd_tlb_range" redefined [enabled by default]

    Turns out that commit ("mm/thp/migration: switch from flush_tlb_range
    to flush_pmd_tlb_range") triggered the issue while the problem was in
    ARC code where THP specific helpers were not guarded with #ifdef.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for v4.6:

    Enumeration:
    - Disable IO/MEM decoding for devices with non-compliant BARs (Bjorn Helgaas)
    - Mark Broadwell-EP Home Agent & PCU as having non-compliant BARs (Bjorn Helgaas

    Resource management:
    - Mark shadow copy of VGA ROM as IORESOURCE_PCI_FIXED (Bjorn Helgaas)
    - Don't assign or reassign immutable resources (Bjorn Helgaas)
    - Don't enable/disable ROM BAR if we're using a RAM shadow copy (Bjorn Helgaas)
    - Set ROM shadow location in arch code, not in PCI core (Bjorn Helgaas)
    - Remove arch-specific IORESOURCE_ROM_SHADOW size from sysfs (Bjorn Helgaas)
    - ia64: Use ioremap() instead of open-coded equivalent (Bjorn Helgaas)
    - ia64: Keep CPU physical (not virtual) addresses in shadow ROM resource (Bjorn Helgaas)
    - MIPS: Keep CPU physical (not virtual) addresses in shadow ROM resource (Bjorn Helgaas)
    - Remove unused IORESOURCE_ROM_COPY and IORESOURCE_ROM_BIOS_COPY (Bjorn Helgaas)
    - Don't leak memory if sysfs_create_bin_file() fails (Bjorn Helgaas)
    - rcar: Remove PCI_PROBE_ONLY handling (Lorenzo Pieralisi)
    - designware: Remove PCI_PROBE_ONLY handling (Lorenzo Pieralisi)

    Virtualization:
    - Wait for up to 1000ms after FLR reset (Alex Williamson)
    - Support SR-IOV on any function type (Kelly Zytaruk)
    - Add ACS quirk for all Cavium devices (Manish Jaggi)

    AER:
    - Rename pci_ops_aer to aer_inj_pci_ops (Bjorn Helgaas)
    - Restore pci_ops pointer while calling original pci_ops (David Daney)
    - Fix aer_inject error codes (Jean Delvare)
    - Use dev_warn() in aer_inject (Jean Delvare)
    - Log actual error causes in aer_inject (Jean Delvare)
    - Log aer_inject error injections (Jean Delvare)

    VPD:
    - Prevent VPD access for buggy devices (Babu Moger)
    - Move pci_read_vpd() and pci_write_vpd() close to other VPD code (Bjorn Helgaas)
    - Move pci_vpd_release() from header file to pci/access.c (Bjorn Helgaas)
    - Remove struct pci_vpd_ops.release function pointer (Bjorn Helgaas)
    - Rename VPD symbols to remove unnecessary "pci22" (Bjorn Helgaas)
    - Fold struct pci_vpd_pci22 into struct pci_vpd (Bjorn Helgaas)
    - Sleep rather than busy-wait for VPD access completion (Bjorn Helgaas)
    - Update VPD definitions (Hannes Reinecke)
    - Allow access to VPD attributes with size 0 (Hannes Reinecke)
    - Determine actual VPD size on first access (Hannes Reinecke)

    Generic host bridge driver:
    - Move structure definitions to separate header file (David Daney)
    - Add pci_host_common_probe(), based on gen_pci_probe() (David Daney)
    - Expose pci_host_common_probe() for use by other drivers (David Daney)

    Altera host bridge driver:
    - Fix altera_pcie_link_is_up() (Ley Foon Tan)

    Cavium ThunderX host bridge driver:
    - Add PCIe host driver for ThunderX processors (David Daney)
    - Add driver for ThunderX-pass{1,2} on-chip devices (David Daney)

    Freescale i.MX6 host bridge driver:
    - Add DT bindings to configure PHY Tx driver settings (Justin Waters)
    - Move imx6_pcie_reset_phy() near other PHY handling functions (Lucas Stach)
    - Move PHY reset into imx6_pcie_establish_link() (Lucas Stach)
    - Remove broken Gen2 workaround (Lucas Stach)
    - Move link up check into imx6_pcie_wait_for_link() (Lucas Stach)

    Freescale Layerscape host bridge driver:
    - Add "fsl,ls2085a-pcie" compatible ID (Yang Shi)

    Intel VMD host bridge driver:
    - Attach VMD resources to parent domain's resource tree (Jon Derrick)
    - Set bus resource start to 0 (Keith Busch)

    Microsoft Hyper-V host bridge driver:
    - Add fwnode_handle to x86 pci_sysdata (Jake Oshins)
    - Look up IRQ domain by fwnode_handle (Jake Oshins)
    - Add paravirtual PCI front-end for Microsoft Hyper-V VMs (Jake Oshins)

    NVIDIA Tegra host bridge driver:
    - Add pci_ops.{add,remove}_bus() callbacks (Thierry Reding)
    - Implement ->{add,remove}_bus() callbacks (Thierry Reding)
    - Remove unused struct tegra_pcie.num_ports field (Thierry Reding)
    - Track bus -> CPU mapping (Thierry Reding)
    - Remove misleading PHYS_OFFSET (Thierry Reding)

    Renesas R-Car host bridge driver:
    - Depend on ARCH_RENESAS, not ARCH_SHMOBILE (Simon Horman)

    Synopsys DesignWare host bridge driver:
    - ARC: Add PCI support (Joao Pinto)
    - Add generic dw_pcie_wait_for_link() (Joao Pinto)
    - Add default link up check if sub-driver doesn't override (Joao Pinto)
    - Add driver for prototyping kits based on ARC SDP (Joao Pinto)

    TI Keystone host bridge driver:
    - Defer probing if devm_phy_get() returns -EPROBE_DEFER (Shawn Lin)

    Xilinx AXI host bridge driver:
    - Use of_pci_get_host_bridge_resources() to parse DT (Bharat Kumar Gogada)
    - Remove dependency on ARM-specific struct hw_pci (Bharat Kumar Gogada)
    - Don't call pci_fixup_irqs() on Microblaze (Bharat Kumar Gogada)
    - Update Zynq binding with Microblaze node (Bharat Kumar Gogada)
    - microblaze: Support generic Xilinx AXI PCIe Host Bridge IP driver (Bharat Kumar Gogada)

    Xilinx NWL host bridge driver:
    - Add support for Xilinx NWL PCIe Host Controller (Bharat Kumar Gogada)

    Miscellaneous:
    - Check device_attach() return value always (Bjorn Helgaas)
    - Move pci_set_flags() from asm-generic/pci-bridge.h to linux/pci.h (Bjorn Helgaas)
    - Remove includes of empty asm-generic/pci-bridge.h (Bjorn Helgaas)
    - ARM64: Remove generated include of asm-generic/pci-bridge.h (Bjorn Helgaas)
    - Remove empty asm-generic/pci-bridge.h (Bjorn Helgaas)
    - Remove includes of asm/pci-bridge.h (Bjorn Helgaas)
    - Consolidate PCI DMA constants and interfaces in linux/pci-dma-compat.h (Bjorn Helgaas)
    - unicore32: Remove unused HAVE_ARCH_PCI_SET_DMA_MASK definition (Bjorn Helgaas)
    - Cleanup pci/pcie/Kconfig whitespace (Andreas Ziegler)
    - Include pci/hotplug Kconfig directly from pci/Kconfig (Bjorn Helgaas)
    - Include pci/pcie/Kconfig directly from pci/Kconfig (Bogicevic Sasa)
    - frv: Remove stray pci_{alloc,free}_consistent() declaration (Christoph Hellwig)
    - Move pci_dma_* helpers to common code (Christoph Hellwig)
    - Add PCI_CLASS_SERIAL_USB_DEVICE definition (Heikki Krogerus)
    - Add QEMU top-level IDs for (sub)vendor & device (Robin H. Johnson)
    - Fix broken URL for Dell biosdevname (Naga Venkata Sai Indubhaskar Jupudi)"

    * tag 'pci-v4.6-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (94 commits)
    PCI: Add PCI_CLASS_SERIAL_USB_DEVICE definition
    PCI: designware: Add driver for prototyping kits based on ARC SDP
    PCI: designware: Add default link up check if sub-driver doesn't override
    PCI: designware: Add generic dw_pcie_wait_for_link()
    PCI: Cleanup pci/pcie/Kconfig whitespace
    PCI: Simplify pci_create_attr() control flow
    PCI: Don't leak memory if sysfs_create_bin_file() fails
    PCI: Simplify sysfs ROM cleanup
    PCI: Remove unused IORESOURCE_ROM_COPY and IORESOURCE_ROM_BIOS_COPY
    MIPS: Loongson 3: Keep CPU physical (not virtual) addresses in shadow ROM resource
    MIPS: Loongson 3: Use temporary struct resource * to avoid repetition
    ia64/PCI: Keep CPU physical (not virtual) addresses in shadow ROM resource
    ia64/PCI: Use ioremap() instead of open-coded equivalent
    ia64/PCI: Use temporary struct resource * to avoid repetition
    PCI: Clean up pci_map_rom() whitespace
    PCI: Remove arch-specific IORESOURCE_ROM_SHADOW size from sysfs
    PCI: thunder: Add driver for ThunderX-pass{1,2} on-chip devices
    PCI: thunder: Add PCIe host driver for ThunderX processors
    PCI: generic: Expose pci_host_common_probe() for use by other drivers
    PCI: generic: Add pci_host_common_probe(), based on gen_pci_probe()
    ...

    Linus Torvalds
     

15 Mar, 2016

2 commits


14 Mar, 2016

1 commit

  • This patch updates all instances of csum_tcpudp_magic and
    csum_tcpudp_nofold to reflect the types that are usually used as the source
    inputs. For example the protocol field is populated based on nexthdr which
    is actually an unsigned 8 bit value. The length is usually populated based
    on skb->len which is an unsigned integer.

    This addresses an issue in which the IPv6 function csum_ipv6_magic was
    generating a checksum using the full 32b of skb->len while
    csum_tcpudp_magic was only using the lower 16 bits. As a result we could
    run into issues when attempting to adjust the checksum as there was no
    protocol agnostic way to update it.

    With this change the value is still truncated as many architectures use
    "(len + proto) << 8", however this truncation only occurs for values
    greater than 16776960 in length and as such is unlikely to occur as we stop
    the inner headers at ~64K in size.

    I did have to make a few minor changes in the arm, mn10300, nios2, and
    score versions of the function in order to support these changes as they
    were either using things such as an OR to combine the protocol and length,
    or were using ntohs to convert the length which would have truncated the
    value.

    I also updated a few spots in terms of whitespace and type differences for
    the addresses. Most of this was just to make sure all of the definitions
    were in sync going forward.

    Signed-off-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Alexander Duyck
     

12 Mar, 2016

5 commits

  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • ARC architecture has 2 instruction sets: ARCompact/ARCv2.
    While same gcc supports compiling for either (using appropriate toggles),
    we can't use the same toolchain to build kernel because libgcc needs
    to be unique and the toolchian (uClibc based) is not multilibed.

    uClibc toolchain is convenient since it allows all userspace and
    kernel to be built with a single install for an ISA.

    This however means 2 gnu installs (with same triplet prefix) are needed
    for building for 2 ISA and need to be in PATH.
    As developers we keep switching the builds, but would occassionally fail
    to update the PATH leading to usage of wrong tools. And this would only
    show up at the end of kernel build when linking incompatible libgcc.

    So the initial solution was to have gcc define a special preprocessor macro
    DEFAULT_CPU_xxx which is unique for default toolchain configuration.
    Claudiu proposed using grep for an existing preprocessor macro which is
    again uniquely defined per ISA.

    Cc: Michal Marek
    Suggested-by: Claudiu Zissulescu
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • This allows for regression testing in PAE specific code as we lack
    a 32+ bit physical memory platform other than nSIM.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • read{l,w}() write{l,w}() primitives should use le{16,32}_to_cpu() and
    cpu_to_le{16,32}() respectively to ensure device registers are read
    correctly in Big Endian CPU configuration.

    Per Arnd Bergmann
    | Most drivers using readl() or readl_relaxed() expect those to perform byte
    | swaps on big-endian architectures, as the registers tend to be fixed endian

    This was needed for getting UART to work correctly on a Big Endian ARC.

    The ARC accessors originally were fine, and the bug got introduced
    inadventently by commit b8a033023994 ("ARCv2: barriers")

    Fixes: b8a033023994 ("ARCv2: barriers")
    Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de
    Cc: Alexey Brodkin
    Cc: stable@vger.kernel.org [4.2+]
    Cc: Arnd Bergmann
    Signed-off-by: Lada Trimasova
    [vgupta: beefed up changelog, added Fixes/stable tags]
    Signed-off-by: Vineet Gupta

    Lada Trimasova
     

11 Mar, 2016

5 commits


02 Mar, 2016

1 commit

  • Let the non boot cpus call into idle with the corresponding hotplug state, so
    the hotplug core can handle the further bringup. That's a first step to
    convert the boot side of the hotplugged cpus to do all the synchronization
    with the other side through the state machine. For now it'll only start the
    hotplug thread and kick the full bringup of the cpu.

    Signed-off-by: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: Rik van Riel
    Cc: Rafael Wysocki
    Cc: "Srivatsa S. Bhat"
    Cc: Peter Zijlstra
    Cc: Arjan van de Ven
    Cc: Sebastian Siewior
    Cc: Rusty Russell
    Cc: Steven Rostedt
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Andrew Morton
    Cc: Paul McKenney
    Cc: Linus Torvalds
    Cc: Paul Turner
    Link: http://lkml.kernel.org/r/20160226182341.614102639@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

26 Feb, 2016

1 commit


24 Feb, 2016

6 commits

  • Previous Commit ("ARC: SMP: No need for CONFIG_ARC_IPI_DBG") removed
    the Kconfig option ARC_IPI_DBG. Remove the last reference on this
    option.

    Signed-off-by: Valentin Rothberg
    Signed-off-by: Vineet Gupta

    Valentin Rothberg
     
  • This was more relevant during SMP bringup.

    The warning for bogus msg better be visible always.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • ARConnect/MCIP IPI sending has a retry-wait loop in case caller had
    not seen a previous such interrupt. Turns out that it is not needed at
    all. Linux cross core calling allows coalescing multiple IPIs to same
    receiver - it is fine as long as there is one.

    This logic is built into upper layer already, at a higher level of
    abstraction. ipi_send_msg_one() sets the actual msg payload, but it only
    calls MCIP IPI sending if msg holder was empty (using
    atomic-set-new-and-get-old construct). Thus it is unlikely that the
    retry-wait looping was ever getting exercised at all.

    Cc: Chuck Jordan
    Cc: Peter Zijlstra
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • There is no real ARC700 based SMP SoC so remove IPI definition.
    EZChip's SMP ARC700 is going to use a different intc and IPI provider
    anyways.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • ARConnect/MCIP Inter-Core-Interrupt module can't send interrupt to
    local core. So use core intc capability to trigger software
    interrupt to self, using an unsued IRQ #21.

    This showed up as csd deadlock with LTP trace_sched on a dual core
    system. This test acts as scheduler fuzzer, triggering all sorts of
    schedulting activity. Trouble starts with IPI to self, which doesn't get
    delivered (effectively lost due to H/w capability), but the msg intended
    to be sent remain enqueued in per-cpu @ipi_data.

    All subsequent IPIs to this core from other cores get elided due to the
    IPI coalescing optimization in ipi_send_msg_one() where a pending msg
    implies an IPI already sent and assumes other core is yet to ack it.
    After the elided IPI, other core simply goes into csd_lock_wait()
    but never comes out as this core never sees the interrupt.

    Fixes STAR 9001008624

    Cc: Peter Zijlstra
    Cc: [4.2]
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     

23 Feb, 2016

1 commit

  • Even though DEVTMPFS is required when our pre-built initramfs
    is used it is not the case in general. It is perfectly possible
    to use initramfs with device nodes already populated or there
    could be other usages, see discussion below for more detials:
    http://thread.gmane.org/gmane.comp.embedded.openwrt.devel/37819/focus=37821

    This change removes mentioned dependency from arch/arc/Kconfig
    updating instead those defconfigs that are usually used with this
    kind of pre-build initramfs.

    And while at it all touched defconfigs were regenerated via
    savedefconfig and some options were removed:
    * USB is selected by other options implicitly
    * VGA_CONSOLE is disableb for ARC since
    031e29b5877f31676739dc2f847d04c2c0732034
    * EXT3_FS automatically selects EXT4_FS
    * MTDxxx and JFFS2_FS make no sense for AXS because
    AXS NAND controller is not upstreamed
    * NET_OSCI_LAN is not in upstream as well
    * ARCPGU_xxx options make no sense because ARC PGU is not yet
    in upstream and when it gets there all config options would
    be taken from devicetree

    Signed-off-by: Alexey Brodkin
    Signed-off-by: Vineet Gupta

    Alexey Brodkin
     

18 Feb, 2016

3 commits