1. 01 10月, 2016 19 次提交
    • V
      ARC: [plat*] enables MODULE* · ef25bacb
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      ef25bacb
    • V
      ARCv2: fix local_save_flags · cd5d38b0
      Vineet Gupta 提交于
      Commit d9676fa1 ("ARCv2: Enable LOCKDEP"), changed
      local_save_flags() to not return raw STATUS32 but encoded in the form
      such that it could be fed directly to CLRI/SETI instructions.
      However the STATUS32.E[] was not captured correctly as it corresponds to
      bits [4:1] in the register and not [3:0]
      
      Fixes: d9676fa1 ("ARCv2: Enable LOCKDEP")
      Cc: Evgeny Voevodin <evgeny.voevodin@intel.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      cd5d38b0
    • N
      ARC: CONFIG_NODES_SHIFT fix default values · 3528f84f
      Noam Camus 提交于
      Seem like values assigned as absolute number and not and
      shift value, i.e. should be 0 for one node (2^0) and 1 for
      couple of nodes (2^1)
      Signed-off-by: NNoam Camus <noamca@mellanox.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      3528f84f
    • Y
      ARCv2: intc: Use kflag if STATUS32.IE must be reset · bc0c7ece
      Yuriy Kolerov 提交于
      In the end of "arc_init_IRQ" STATUS32.IE flag is going to be affected by
      "flag" instruction but "flag" never touches IE flag on ARCv2. So "kflag"
      instruction must be used instead of "flag".
      Signed-off-by: NYuriy Kolerov <yuriy.kolerov@synopsys.com>
      Cc: stable@vger.kernel.org #4.2+
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      bc0c7ece
    • V
      ARC: .exit.* sections can be discarded in .eh_frame regime · 99a2ca65
      Vineet Gupta 提交于
      We used to keep the .exit.* sections as linker would fail in final link
      due to references from .debug_frame which itself could not be discardrd
      due to the forced "write,alloc" attributes for it.
      
      |   LD      init/built-in.o
      | `.exit.text' referenced in section `.debug_frame' of arch/arc/built-in.o: defined in discarded section `.exit.text' of arch/arc/built-in.o
      | Makefile:949: recipe for target 'vmlinux' failed
      
      With .debug_frame now retired, this hack is no longer needed.
      kernel binary is now a little bit smaller as well.
      
      closes STAR 9000549913
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      99a2ca65
    • V
      ARC: dw2 unwind: enable cfi pseudo ops in string lib · 86effd0d
      Vineet Gupta 提交于
      This uses a new set of annoations viz. ENTRY_CFI/END_CFI to enabel cfi
      ops generation.
      
      Note that we didn't change the normal ENTRY/EXIT as we don't actually
      want unwind info in the trap/exception/interrutp handlers which use
      these, as unwinder then gets confused (it keeps recursing vs. stopping).
      Semantically these are leaf routines and unwinding should stop when it
      hits those routines.
      
      Before
      ------
      
          28.52%     1.19%          9929  hackbench  libuClibc-1.0.17.so   [.] __write_nocancel
                  |
                  ---__write_nocancel
                     |--8.95%--EV_Trap
                     |           --8.25%--sys_write
                     |                     |--3.93%--sock_write_iter
           ...
                     |--2.62%--memset   <==== [LEAF entry as no unwind info]
                               ^^^^^^
      
      After
      -----
      
          29.46%     1.24%         13622  hackbench  libuClibc-1.0.17.so   [.] __write_nocancel
                  |
                  ---__write_nocancel
                     |--9.31%--EV_Trap
                     |           --8.62%--sys_write
                     |                     |--4.17%--sock_write_iter
           ...
                     |--6.19%--sys_write
                     |           --6.19%--sock_write_iter
                     |                     unix_stream_sendmsg
                     |                     |--1.62%--sock_alloc_send_pskb
                     |                     |--0.89%--sock_def_readable
                     |                     |--0.88%--_raw_spin_unlock_irqrestore
                     |                     |--0.69%--memset
                     |                     |         ^^^^^^     <==== [now in proper callframe]
                     |                     |
                     |                      --0.52%--skb_copy_datagram_from_iter
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      86effd0d
    • V
      ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm · 5a205a32
      Vineet Gupta 提交于
      1. detect whether binutils supports the cfi pseudo ops
      2. define conditional macros to generate the ops
      3. define new ENTRY_CFI/END_CFI to annotate hand asm code.
         - Needed because we don't want to emit dwarf info in general ENTRY/END
           used by lowest level trap/exception/interrutp handlers as unwinder
           gets confused trying to unwind out of them. We want unwinder to
           instead stop when it hits onfo those routines
         - These provide minimal start/end cfi ops assuming routine doesn't
           touch stack memory/regs
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      5a205a32
    • V
      ARC: entry: make ret_from_system_call local label · 2dad1122
      Vineet Gupta 提交于
      This essentially removes ENTRY() assembler annotation for this symbol
      since it didn't have a pairing END()
      
      This in ahead of introducing cfi pseudo ops in ENTRY/END which expects
      paired cfi_startproc/cfi_endproc
      
      | ../arch/arc/kernel/entry.S: Assembler messages:
      | ../arch/arc/kernel/entry.S:270: Error: previous CFI entry not closed (missing .cfi_endproc)
      | ../scripts/Makefile.build:326: recipe for target 'arch/arc/kernel/entry-arcv2.o' failed
      | make[4]: *** [arch/arc/kernel/entry-arcv2.o] Error 1
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      2dad1122
    • V
      ARC: dw2 unwind: don't force dwarf 2 · 2d048642
      Vineet Gupta 提交于
      In .debug_frame based unwinding regime, we used to force -gdwarf-2 since
      kernel unwinder only claimed to handle dwarf 2. This changed since commit
      6d0d5060 ("ARC: dw2 unwind: Don't bail for CIE.version != 1")
      which added some support beyond dwarf 2, atleast to handle CIE != 1
      
      The ill-effect of -gdwarf-2 is that it forces generation of .debug_*
      sections, which bloats loadable modules .ko files. For the curious, this
      doesn't affect vmlinx binary since linker script discards .debug_* but
      same discard is not yet implemented for modules.
      
      So it seems we can drop the -gdwarf-2 toggle, which should not be needed
      anyways given that we now use .eh_frame based unwinding.
      
      I've verified using GNU 2016.09-engo10 that the actual unwind info is
      not different with or w/o this toggle - but the debug_* sections are
      gone for good.
      
      before
      -----
      arc-linux-readelf -S q_proc.ko-unwinding-1-eh_frame-switch | grep debug
        [15] .debug_info       PROGBITS        00000000 000300 00d08d 00 	0   0  1
        [16] .rela.debug_info  RELA            00000000 0162a0 008844 0c   I 29  15  4
        [17] .debug_abbrev     PROGBITS        00000000 00d38d 0005f8 00 	0   0  1
        [18] .debug_loc        PROGBITS        00000000 00d985 000070 00 	0   0  1
        [19] .rela.debug_loc   RELA            00000000 01eae4 0000c0 0c   I 29  18  4
        [20] .debug_aranges    PROGBITS        00000000 00d9f5 000040 00 	0   0  1
        [21] .rela.debug_arang RELA            00000000 01eba4 000030 0c   I 29  20  4
        [22] .debug_ranges     PROGBITS        00000000 00da35 000018 00 	0   0  1
        [23] .rela.debug_range RELA            00000000 01ebd4 000030 0c   I 29  22  4
        [24] .debug_line       PROGBITS        00000000 00da4d 000b5b 00 	0   0  1
        [25] .rela.debug_line  RELA            00000000 01ec04 0000cc 0c   I 29  24  4
        [26] .debug_str        PROGBITS        00000000 00e5a8 007831 01   MS 0   0  1
      
      after
      ----
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      2d048642
    • V
      ARC: dw2 unwind: switch to .eh_frame based unwinding · 6716dbbd
      Vineet Gupta 提交于
      So finally after almost 8 years of dealing with .debug_frame, we are
      finally switching to .eh_frame. The reason being stripped kernel
      binaries had non-functional unwinder as .debug_frame was gone.
      Also, in general .eh_frame seems more common way of doing unwinding.
      
      This also folds a revert of f52e126c ("ARC: unwind: ensure that
      .debug_frame is generated (vs. .eh_frame)") to ensure that we start
      getting .eh_frame
      Reported-by: NDaniel Mentz <danielmentz@google.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      6716dbbd
    • V
      ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame · d040876b
      Vineet Gupta 提交于
      This paves way for switching to .eh_frame based unwindiing
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      d040876b
    • V
      ARC: module: support R_ARC_32_PCREL relocation · 94f4fb08
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      94f4fb08
    • A
      arc: perf: Enable generic "cache-references" and "cache-misses" events · e0d5321f
      Alexey Brodkin 提交于
      We used to live with PERF_COUNT_HW_CACHE_REFERENCES and
      PERF_COUNT_HW_CACHE_REFERENCES not specified on ARC.
      
      Those events are actually aliases to 2 cache events that we do support
      and so this change sets "cache-reference" and "cache-misses" events
      in the same way as "L1-dcache-loads" and L1-dcache-load-misses.
      
      And while at it adding debug info for cache events as well as doing a
      subtle fix in HW events debug info - config value is much better
      represented by hex so we may see not only event index but as well other
      control bits set (if they exist).
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-snps-arc@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      e0d5321f
    • N
      ARC: [plat-eznps] add missing atomic_fetch_xxx operations · ce0f4932
      Noam Camus 提交于
      Build brekeage since last changes to generic atomic operations.
      Added couple of missing macros which are now mandatory
      Signed-off-by: NNoam Camus <noamca@mellanox.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      ce0f4932
    • V
      ARCv2: Implement atomic64 based on LLOCKD/SCONDD instructions · ce636527
      Vineet Gupta 提交于
      ARCv2 ISA provides 64-bit exclusive load/stores so use them to implement
      the 64-bit atomics and elide the spinlock based generic 64-bit atomics
      
      boot tested with atomic64 self-test (and GOD bless the person who wrote
      them, I realized my inline assmebly is sloppy as hell)
      
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: linux-snps-arc@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      ce636527
    • V
      ARCv2: Support dynamic peripheral address space in HS38 rel 3.0 cores · 26c01c49
      Vineet Gupta 提交于
      HS release 3.0 provides for even more flexibility in specifying the
      volatile address space for mapping peripherals.
      
      With HS 2.1 @start was made flexible / programmable - with HS 3.0 even
      @end can be setup (vs. fixed to 0xFFFF_FFFF before).
      
      So add code to reflect that and while at it remove an unused struct
      defintion
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      26c01c49
    • V
      ARCv2: identify HS38 rel 3.0 cores · f5076846
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      f5076846
    • V
      ARCv2: Add support for ZeBu Emulation platform for HS cores · 9efac679
      Vineet Gupta 提交于
      The cool thing is that same kernel image can run on
       - nsim OSCI simulation platform
       - SDPlite FPGA setups
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      9efac679
    • A
      arc: Add "model" properly in device tree description of all boards · 618a9cd0
      Alexey Brodkin 提交于
      As it was discussed quite some time ago (see
      https://lkml.org/lkml/2015/11/5/862) it's a good practice to add
      "model" property in .dts. Moreover as per ePAPR "model" property is
      required and should look like "manufacturer,model" so we do here.
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Christian Ruppert <christian.ruppert@alitech.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      618a9cd0
  2. 14 9月, 2016 1 次提交
    • V
      ARC: uaccess: get_user to zero out dest in cause of fault · 05d9d0b9
      Vineet Gupta 提交于
      Al reported potential issue with ARC get_user() as it wasn't clearing
      out destination pointer in case of fault due to bad address etc.
      
      Verified using following
      
      | {
      |  	u32 bogus1 = 0xdeadbeef;
      |	u64 bogus2 = 0xdead;
      |	int rc1, rc2;
      |
      |  	pr_info("Orig values %x %llx\n", bogus1, bogus2);
      |	rc1 = get_user(bogus1, (u32 __user *)0x40000000);
      |	rc2 = get_user(bogus2, (u64 __user *)0x50000000);
      |	pr_info("access %d %d, new values %x %llx\n",
      |		rc1, rc2, bogus1, bogus2);
      | }
      
      | [ARCLinux]# insmod /mnt/kernel-module/qtn.ko
      | Orig values deadbeef dead
      | access -14 -14, new values 0 0
      Reported-by: NAl Viro <viro@ZenIV.linux.org.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: linux-snps-arc@lists.infradead.org
      Cc: linux-kernel@vger.kernel.org
      Cc: stable@vger.kernel.org
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      05d9d0b9
  3. 20 8月, 2016 5 次提交
    • V
      ARC: export __udivdi3 for modules · c57653dc
      Vineet Gupta 提交于
      Some module using div_u64() was failing to link because the libgcc 64-bit
      divide assist routine was not being exported for modules
      
      Reported-by: avinashp@quantenna.com
      Cc: stable@vger.kernel.org
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      c57653dc
    • V
      ARC: mm: fix build breakage with STRICT_MM_TYPECHECKS · 1c3c9093
      Vineet Gupta 提交于
      |  CC      mm/memory.o
      | In file included from ../mm/memory.c:53:0:
      | ../include/linux/pfn_t.h: In function ‘pfn_t_pte’:
      | ../include/linux/pfn_t.h:78:2: error: conversion to non-scalar type requested
      |  return pfn_pte(pfn_t_to_pfn(pfn), pgprot);
      
      With STRICT_MM_TYPECHECKS pte_t is a struct and the offending code
      forces a cast which ends up shifting a struct and hence the gcc warning.
      
      Note that in recent past some of the arches (aarch64, s390) made
      STRICT_MM_TYPECHECKS default, but we don't for ARC as this leads to slightly
      worse generated code, given ARC ABI definition of returning structs
      (which pte_t would become)
      
      Quoting from ARC ABI...
      
        "Results of type struct are returned in a caller-supplied temporary
        variable whose address is passed in r0.
        For such functions, the arguments are shifted so that they are
        passed in r1 and up."
      
      So
       - struct to be returned would be allocated on stack requiring extra
         code at call sites
       - callee updates stack memory to facilitate the return (vs. simple
         MOV into return reg r0)
      
      Hence STRICT_MM_TYPECHECKS is not enabled by default for ARC
      
      Cc: <stable@vger.kernel.org>   #4.4+
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      1c3c9093
    • V
      ARC: export kmap · d77976c4
      Vineet Gupta 提交于
      |  MODPOST 7 modules
      | ERROR: "kmap" [fs/ext2/ext2.ko] undefined!
      | ../scripts/Makefile.modpost:91: recipe for target '__modpost' failed
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      d77976c4
    • V
      ARC: Support syscall ABI v4 · 840c054f
      Vineet Gupta 提交于
      The syscall ABI includes the gcc functional calling ABI since a syscall
      implies userland caller and kernel callee.
      
      The current gcc ABI (v3) for ARCv2 ISA required 64-bit data be passed in
      even-odd register pairs, (potentially punching reg holes when passing such
      values as args). This was partly driven by the fact that the double-word
      LDD/STD instructions in ARCv2 expect the register alignment and thus gcc
      forcing this avoids extra MOV at the cost of a few unused register (which we
      have plenty anyways).
      
      This however was rejected as part of upstreaming gcc port to HS. So the new
      ABI v4 doesn't enforce the even-odd reg restriction.
      
      Do note that for ARCompact ISA builds v3 and v4 are practically the same in
      terms of gcc code generation.
      
      In terms of change management, we infer the new ABI if gcc 6.x onwards
      is used for building the kernel.
      
      This also needs a stable backport to enable older kernels to work with
      new tools/user-space
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      840c054f
    • L
      ARC: use correct offset in pt_regs for saving/restoring user mode r25 · 86147e3c
      Liav Rehana 提交于
      User mode callee regs are explicitly collected before signal delivery or
      breakpoint trap. r25 is special for kernel as it serves as task pointer,
      so user mode value is clobbered very early. It is saved in pt_regs where
      generally only scratch (aka caller saved) regs are saved.
      
      The code to access the corresponding pt_regs location had a subtle bug as
      it was using load/store with scaling of offset, whereas the offset was already
      byte wise correct. So fix this by replacing LD.AS with a standard LD
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NLiav Rehana <liavr@mellanox.com>
      Reviewed-by: NAlexey Brodkin <abrodkin@synopsys.com>
      [vgupta: rewrote title and commit log]
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      86147e3c
  4. 11 8月, 2016 2 次提交
    • V
      ARC: Elide redundant setup of DMA callbacks · 45c3b08a
      Vineet Gupta 提交于
      For resources shared by all cores such as SLC and IOC, only the master
      core needs to do any setups / enabling / disabling etc.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      45c3b08a
    • D
      ARC: Call trace_hardirqs_on() before enabling irqs · 18b43e89
      Daniel Mentz 提交于
      trace_hardirqs_on_caller() in lockdep.c expects to be called before, not
      after interrupts are actually enabled.
      
      The following comment in kernel/locking/lockdep.c substantiates this
      claim:
      
      "
      /*
       * We're enabling irqs and according to our state above irqs weren't
       * already enabled, yet we find the hardware thinks they are in fact
       * enabled.. someone messed up their IRQ state tracing.
       */
      "
      
      An example can be found in include/linux/irqflags.h:
      
      	do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
      
      Without this change, we hit the following DEBUG_LOCKS_WARN_ON.
      
      [    7.760000] ------------[ cut here ]------------
      [    7.760000] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:2711 resume_user_mode_begin+0x48/0xf0
      [    7.770000] DEBUG_LOCKS_WARN_ON(!irqs_disabled())
      [    7.780000] Modules linked in:
      [    7.780000] CPU: 0 PID: 1 Comm: init Not tainted 4.7.0-00003-gc668bb9-dirty #366
      [    7.790000]
      [    7.790000] Stack Trace:
      [    7.790000]   arc_unwind_core.constprop.1+0xa4/0x118
      [    7.800000]   warn_slowpath_fmt+0x72/0x158
      [    7.800000]   resume_user_mode_begin+0x48/0xf0
      [    7.810000] ---[ end trace 6f6a7a8fae20d2f0 ]---
      Signed-off-by: NDaniel Mentz <danielmentz@google.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      18b43e89
  5. 04 8月, 2016 1 次提交
    • K
      dma-mapping: use unsigned long for dma_attrs · 00085f1e
      Krzysztof Kozlowski 提交于
      The dma-mapping core and the implementations do not change the DMA
      attributes passed by pointer.  Thus the pointer can point to const data.
      However the attributes do not have to be a bitfield.  Instead unsigned
      long will do fine:
      
      1. This is just simpler.  Both in terms of reading the code and setting
         attributes.  Instead of initializing local attributes on the stack
         and passing pointer to it to dma_set_attr(), just set the bits.
      
      2. It brings safeness and checking for const correctness because the
         attributes are passed by value.
      
      Semantic patches for this change (at least most of them):
      
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
      
          @@
          f(...,
          - struct dma_attrs *attrs
          + unsigned long attrs
          , ...)
          {
          ...
          }
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      and
      
          // Options: --all-includes
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
          type t;
      
          @@
          t f(..., struct dma_attrs *attrs);
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.comSigned-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NRobin Murphy <robin.murphy@arm.com>
      Acked-by: NHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
      Acked-by: Mark Salter <msalter@redhat.com> [c6x]
      Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> [cris]
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> [drm]
      Reviewed-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Fabien Dessenne <fabien.dessenne@st.com> [bdisp]
      Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> [vb2-core]
      Acked-by: David Vrabel <david.vrabel@citrix.com> [xen]
      Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen swiotlb]
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon]
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
      Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> [s390]
      Acked-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> [avr32]
      Acked-by: Vineet Gupta <vgupta@synopsys.com> [arc]
      Acked-by: Robin Murphy <robin.murphy@arm.com> [arm64 and dma-iommu]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00085f1e
  6. 03 8月, 2016 1 次提交
  7. 29 7月, 2016 1 次提交
    • V
      ARC: mm: don't loose PTE_SPECIAL in pte_modify() · 3925a16a
      Vineet Gupta 提交于
      LTP madvise05 was generating mm splat
      
      | [ARCLinux]# /sd/ltp/testcases/bin/madvise05
      | BUG: Bad page map in process madvise05  pte:80e08211 pmd:9f7d4000
      | page:9fdcfc90 count:1 mapcount:-1 mapping:  (null) index:0x0 flags: 0x404(referenced|reserved)
      | page dumped because: bad pte
      | addr:200b8000 vm_flags:00000070 anon_vma:  (null) mapping:  (null) index:1005c
      | file:  (null) fault:  (null) mmap:  (null) readpage:  (null)
      | CPU: 2 PID: 6707 Comm: madvise05
      
      And for newer kernels, the system was rendered unusable afterwards.
      
      The problem was mprotect->pte_modify() clearing PTE_SPECIAL (which is
      set to identify the special zero page wired to the pte).
      When pte was finally unmapped, special casing for zero page was not
      done, and instead it was treated as a "normal" page, tripping on the
      map counts etc.
      
      This fixes ARC STAR 9001053308
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      3925a16a
  8. 28 7月, 2016 1 次提交
    • L
      Disable "maybe-uninitialized" warning globally · 6e8d666e
      Linus Torvalds 提交于
      Several build configurations had already disabled this warning because
      it generates a lot of false positives.  But some had not, and it was
      still enabled for "allmodconfig" builds, for example.
      
      Looking at the warnings produced, every single one I looked at was a
      false positive, and the warnings are frequent enough (and big enough)
      that they can easily hide real problems that you don't notice in the
      noise generated by -Wmaybe-uninitialized.
      
      The warning is good in theory, but this is a classic case of a warning
      that causes more problems than the warning can solve.
      
      If gcc gets better at avoiding false positives, we may be able to
      re-enable this warning.  But as is, we're better off without it, and I
      want to be able to see the *real* warnings.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6e8d666e
  9. 27 7月, 2016 1 次提交
  10. 21 7月, 2016 1 次提交
  11. 20 7月, 2016 1 次提交
  12. 15 7月, 2016 1 次提交
  13. 14 7月, 2016 1 次提交
  14. 28 6月, 2016 4 次提交