1. 11 Feb, 2009 19 commits
  2. 10 Feb, 2009 11 commits
  3. 09 Feb, 2009 10 commits
    • Michael Neuling's avatar
      powerpc: Add missing sparsemem.h include · 0b2f8287
      Michael Neuling authored
      arch/powerpc/platforms/pseries/hotplug-memory.c uses
      remove_section_mapping() but doesn't include sparsemem.h which defines
      it.  This can cause compilation fails for some configs.
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    • Benjamin Herrenschmidt's avatar
      powerpc/pci: mmap anonymous memory when legacy_mem doesn't exist · 5b11abfd
      Benjamin Herrenschmidt authored
      The new legacy_mem file in sysfs is causing problems with X on machines
      that don't support legacy memory access. The way I initially implemented
      it, we would fail with -ENXIO when trying to mmap it, thus exposing to
      X that we do support the API but there is no legacy memory.
      Unfortunately, X poor error handling is causing it to fail to start when
      it gets this error.
      This implements a workaround hack that instead maps anonymous memory
      instead (using shmem if VM_SHARED is set, just like /dev/zero does).
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    • Michael Neuling's avatar
      powerpc/cell: Add missing #include for oprofile · d87bf766
      Michael Neuling authored
      arch/powerpc/oprofile/cell/spu_profiler.c is missing a asm/time.h
      include which is required for ppc_proc_freq.  This can cause compile
      failures for some config combinations.
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    • Steven Rostedt's avatar
      powerpc/ftrace: Fix math to calculate offset in TOC · f25f9074
      Steven Rostedt authored
      Impact: fix dynamic ftrace with large modules in PPC64
      The math to calculate the offset into the TOC that is taken from reading
      the trampoline is incorrect. The bottom half of the offset is a signed
      extended short. The current code was using an OR to create the offset
      when it should have been using an addition.
      Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
      Acked-by: default avatarGeoff Levand <geoffrey.levand@am.sony.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    • Ananth N Mavinakayanahalli's avatar
      powerpc: Don't emulate mr. instructions · eef33618
      Ananth N Mavinakayanahalli authored
      Currently emulate_step() emulates mr. instructions without updating cr0
      and this can be disastrous. Don't emulate mr.
      This bug has been around for a while, but I am not sure if its a worthy
      -stable candidate. I'll leave it to Ben do decide.
      Signed-off-by: default avatarAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    • Kumar Gala's avatar
      powerpc/fsl-booke: Fix mapping functions to use phys_addr_t · 6c24b174
      Kumar Gala authored
      Fixed v_mapped_by_tlbcam() and p_mapped_by_tlbcam() to use phys_addr_t
      instead of unsigned long.  In 36-bit physical mode we really need these
      functions to deal with phys_addr_t when trying to match a physical
      address or when returning one.
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
    • Hugh Dickins's avatar
      profiling: fix broken profiling regression · acd89579
      Hugh Dickins authored
      Impact: fix broken /proc/profile on UP machines
      Commit c309b917
       "cpumask: convert
      kernel/profile.c" broke profiling.  prof_cpu_mask was previously
      initialized to CPU_MASK_ALL, but left uninitialized in that commit.
      We need to copy cpu_possible_mask (cpu_online_mask is not enough).
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    • Tejun Heo's avatar
      x86: fix math_emu register frame access · d315760f
      Tejun Heo authored
      do_device_not_available() is the handler for #NM and it declares that
      it takes a unsigned long and calls math_emu(), which takes a long
      argument and surprisingly expects the stack frame starting at the zero
      argument would match struct math_emu_info, which isn't true regardless
      of configuration in the current code.
      This patch makes do_device_not_available() take struct pt_regs like
      other exception handlers and initialize struct math_emu_info with
      pointer to it and pass pointer to the math_emu_info to math_emulate()
      like normal C functions do.  This way, unless gcc makes a copy of
      struct pt_regs in do_device_not_available(), the register frame is
      correctly accessed regardless of kernel configuration or compiler
      This doesn't fix all math_emu problems but it at least gets it
      somewhat working.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    • Herbert Xu's avatar
      bridge: Fix LRO crash with tun · 4906f998
      Herbert Xu authored
      > Kernel BUG at drivers/net/tun.c:444
      > invalid opcode: 0000 [1] SMP
      > last sysfs file: /class/net/lo/ifindex
      > CPU 0
      > Modules linked in: tun ipt_MASQUERADE iptable_nat ip_nat xt_state ip_conntrack
      > nfnetlink ipt_REJECT xt_tcpudp iptable_filter d
      > Pid: 6912, comm: qemu-kvm Tainted: G      2.6.18-128.el5 #1
      > RIP: 0010:[<ffffffff886f57b0>]  [<ffffffff886f57b0>]
      > :tun:tun_chr_readv+0x2b1/0x3a6
      > RSP: 0018:ffff8102202c5e48  EFLAGS: 00010246
      > RAX: 0000000000000000 RBX: ffff8102202c5e98 RCX: 0000000004010000
      > RDX: ffff810227063680 RSI: ffff8102202c5e9e RDI: ffff8102202c5e92
      > RBP: 0000000000010ff6 R08: 0000000000000000 R09: 0000000000000001
      > R10: ffff8102202c5e94 R11: 0000000000000202 R12: ffff8102275357c0
      > R13: ffff81022755e500 R14: 0000000000000000 R15: ffff8102202c5ef8
      > FS:  00002ae4398db980(0000) GS:ffffffff803ac000(0000) knlGS:0000000000000000
      > CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      > CR2: 00002ae4ab514000 CR3: 0000000221344000 CR4: 00000000000026e0
      > Process qemu-kvm (pid: 6912, threadinfo ffff8102202c4000, task
      > ffff81022e58d820)
      > Stack:  00000000498735cb ffff810229d1a3c0 0000000000000000 ffff81022e58d820
      >  ffffffff8008a461 ffff81022755e528 ffff81022755e528 ffffffff8009f925
      >  000005ea05ea0000 ffff8102209d0000 00001051143e1600 ffffffff8003c00e
      > Call Trace:
      >  [<ffffffff8008a461>] default_wake_function+0x0/0xe
      >  [<ffffffff8009f925>] enqueue_hrtimer+0x55/0x70
      >  [<ffffffff8003c00e>] hrtimer_start+0xbc/0xce
      >  [<ffffffff886f58bf>] :tun:tun_chr_read+0x1a/0x1f
      >  [<ffffffff8000b3f3>] vfs_read+0xcb/0x171
      >  [<ffffffff800117d4>] sys_read+0x45/0x6e
      >  [<ffffffff8005d116>] system_call+0x7e/0x83
      > Code: 0f 0b 68 40 62 6f 88 c2 bc 01 f6 42 0a 08 74 0c 80 4c 24 41
      > RIP  [<ffffffff886f57b0>] :tun:tun_chr_readv+0x2b1/0x3a6
      >  RSP <ffff8102202c5e48>
      >  <0>Kernel panic - not syncing: Fatal exception
      This crashed when an LRO packet generated by bnx2x reached a
      tun device through the bridge.  We're supposed to drop it at
      the bridge.  However, because the check was placed in br_forward
      instead of __br_forward, it's only effective if we are sending
      the packet through a single port.
      This patch fixes it by moving the check into __br_forward.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Noriaki TAKAMIYA's avatar
      IPv6: fix to set device name when new IPv6 over IPv6 tunnel device is created. · 20461c17
      Noriaki TAKAMIYA authored
      When the user creates IPv6 over IPv6 tunnel, the device name created
      by the kernel isn't set to t->parm.name, which is referred as the
      result of ioctl().
      Signed-off-by: default avatarNoriaki TAKAMIYA <takamiya@po.ntts.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>