1. 20 8月, 2008 1 次提交
  2. 08 7月, 2008 7 次提交
    • C
      x86, SGI UV: uv_ptc_proc_write fix · e7eb8726
      Cliff Wickman 提交于
      Someone could write 0 bytes to /proc/sgi_uv/ptc_statistics,
      causing
        optstr[count - 1] = '\0';
      to write to who-knows-where.
      
      (Andi Kleen noticed this need from a patch I sent for
       similar code in the ia64 world (sn2_ptc_proc_write()).)
      
      (count less than zero is not possible here, as count is unsigned)
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e7eb8726
    • C
      x86, SGI UV: TLB shootdown using broadcast assist unit, v6 · cef53278
      Cliff Wickman 提交于
      v6: 6/19 close the security hole in uv_ptc_proc_write())
      
        > Found a potential security hole while doing that:
        > static ssize_t uv_ptc_proc_write(struct file *file, const char __user *user,
        >                              size_t count, loff_t *data)
        >     if (copy_from_user(optstr, user, count))
        >             return -EFAULT;
        >
        > is count guaranteed to never be larger than 64?
      
      is fixed below.
      
      It adds tlb_uv.o to the Makefile.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: mingo@elte.hu
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cef53278
    • I
      SGI UV: TLB shootdown using broadcast assist unit, fix · d400524a
      Ingo Molnar 提交于
      fix:
      
      arch/x86/kernel/tlb_uv.c: In function ‘uv_table_bases_init':
      arch/x86/kernel/tlb_uv.c:612: error: ‘bau_tabsp' undeclared (first use in this function)
      arch/x86/kernel/tlb_uv.c:612: error: (Each undeclared identifier is reported only once
      arch/x86/kernel/tlb_uv.c:612: error: for each function it appears in.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d400524a
    • I
      SGI UV: clean up arch/x86/kernel/tlb_uv.c · b4c286e6
      Ingo Molnar 提交于
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b4c286e6
    • I
      SGI UV: TLB shootdown using broadcast assist unit · dc163a41
      Ingo Molnar 提交于
      TLB shootdown for SGI UV.
      
      v5: 6/12 corrections/improvements per Ingo's second review
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      dc163a41
    • C
      SGI UV: TLB shootdown using broadcast assist unit, cleanups · b194b120
      Cliff Wickman 提交于
      TLB shootdown for SGI UV.
      
      v1: 6/2 original
      v2: 6/3 corrections/improvements per Ingo's review
      v3: 6/4 split atomic operations off to a separate patch (Jeremy's review)
      v4: 6/12 include <mach_apic.h> rather than <asm/mach-bigsmp/mach_apic.h>
               (fixes a !SMP build problem that Ingo found)
               fix the index on uv_table_bases[blade]
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b194b120
    • C
      x86, SGI UV: TLB shootdown using broadcast assist unit · 1812924b
      Cliff Wickman 提交于
      TLB shootdown for SGI UV.
      
      Depends on patch (in tip/x86/irq):
         x86-update-macros-used-by-uv-platform.patch   Jack Steiner May 29
      
      This patch provides the ability to flush TLB's in cpu's that are not on
      the local node.  The hardware mechanism for distributing the flush
      messages is the UV's "broadcast assist unit".
      
      The hook to intercept TLB shootdown requests is a 2-line change to
      native_flush_tlb_others() (arch/x86/kernel/tlb_64.c).
      
      This code has been tested on a hardware simulator. The real hardware
      is not yet available.
      
      The shootdown statistics are provided through /proc/sgi_uv/ptc_statistics.
      The use of /sys was considered, but would have required the use of
      many /sys files.  The debugfs was also considered, but these statistics
      should be available on an ongoing basis, not just for debugging.
      
      Issues to be fixed later:
      - The IRQ for the messaging interrupt is currently hardcoded as 200
        (see UV_BAU_MESSAGE).  It should be dynamically assigned in the future.
      - The use of appropriate udelay()'s is untested, as they are a problem
        in the simulator.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1812924b