1. 10 Oct, 2014 1 commit
    • Romeo Cane's avatar
      powerpc: Fix sys_call_table declaration to enable syscall tracing · 1028ccf5
      Romeo Cane authored
      Declaring sys_call_table as a pointer causes the compiler to generate
      the wrong lookup code in arch_syscall_addr().
      
           <arch_syscall_addr>:
              lis     r9,-16384
              rlwinm  r3,r3,2,0,29
        -     lwz     r11,30640(r9)
        -     lwzx    r3,r11,r3
        +     addi    r9,r9,30640
        +     lwzx    r3,r9,r3
              blr
      
      The actual sys_call_table symbol, declared in assembler, is an
      array. If we lie about that to the compiler we get the wrong code
      generated, as above.
      
      This definition seems only to be used by the syscall tracing code in
      kernel/trace/trace_syscalls.c. With this patch I can successfully use
      the syscall tracepoints:
      
        bash-3815  [002] ....   333.239082: sys_write -> 0x2
        bash-3815  [002] ....   333.239087: sys_dup2(oldfd: a, newfd: 1)
        bash-3815  [002] ....   333.239088: sys_dup2 -> 0x1
        bash-3815  [002] ....   333.239092: sys_fcntl(fd: a, cmd: 1, arg: 0)
        bash-3815  [002] ....   333.239093: sys_fcntl -> 0x1
        bash-3815  [002] ....   333.239094: sys_close(fd: a)
        bash-3815  [002] ....   333.239094: sys_close -> 0x0
      Signed-off-by: default avatarRomeo Cane <romeo.cane.ext@coriant.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      1028ccf5
  2. 09 Oct, 2014 1 commit
  3. 08 Oct, 2014 16 commits
  4. 07 Oct, 2014 5 commits
  5. 03 Oct, 2014 6 commits
  6. 02 Oct, 2014 8 commits
  7. 01 Oct, 2014 1 commit
  8. 30 Sep, 2014 2 commits
    • Gavin Shan's avatar
      powerpc/powernv: Override dma_get_required_mask() · fe7e85c6
      Gavin Shan authored
      The dma_get_required_mask() function is used by some drivers to
      query the platform about what DMA mask is needed to cover all of
      memory. This is a bit of a strange semantic when we have to choose
      between IOMMU translation or bypass, but essentially what it means
      is "what DMA mask will give best performances".
      
      Currently, our IOMMU backend always returns a 32-bit mask here, we
      don't do anything special to it when we have bypass available. This
      causes some drivers to choose a 32-bit mask, thus losing the ability
      to use the bypass window, thinking this is more efficient. The problem
      was reported from the driver of following device:
      
      0004:03:00.0 0107: 1000:0087 (rev 05)
      0004:03:00.0 Serial Attached SCSI controller: LSI Logic / Symbios \
                   Logic SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)
      
      This patch adds an override of that function in order to, instead,
      return a 64-bit mask whenever a bypass window is available in order
      for drivers to prefer this configuration.
      Reported-by: default avatarMurali N. Iyer <mniyer@us.ibm.com>
      Suggested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      fe7e85c6
    • Gavin Shan's avatar
      powerpc/powernv: Fetch frozen PE on top level · 372fb80d
      Gavin Shan authored
      It should have been part of commit 1ad7a72c ("powerpc/eeh: Report
      frozen parent PE prior to child PE"). There are 2 ways to report
      EEH errors: proactively polling because of 0xFF's returned from
      PCI config or IO read, or interrupt driven event. We missed to
      report and handle parent frozen PE prior to child frozen PE for
      the later case on PowerNV platform.
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      372fb80d