1. 04 3月, 2008 3 次提交
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 5ce6386b
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (24 commits)
        [POWERPC] Convert the cell IOMMU fixed mapping to 16M IOMMU pages
        [POWERPC] Allow for different IOMMU page sizes in cell IOMMU code
        [POWERPC] Cell IOMMU: n_pte_pages is in 4K page units, not IOMMU_PAGE_SIZE
        [POWERPC] Split setup of IOMMU stab and ptab, allocate dynamic/fixed ptabs separately
        [POWERPC] Move allocation of cell IOMMU pad page
        [POWERPC] Remove unused pte_offset variable
        [POWERPC] Use it_offset not pte_offset in cell IOMMU code
        [POWERPC] Clearup cell IOMMU fixed mapping terminology
        [POWERPC] enable hardware watchpoints on cell blades
        [POWERPC] move celleb DABRX definitions
        [POWERPC] OProfile: enable callgraph support for Cell
        [POWERPC] spufs: fix use time accounting on SPE-overcommit
        [POWERPC] spufs: serialize SLB invalidation against SLB loading
        [POWERPC] spufs: invalidate SLB translation before adding a new entry
        [POWERPC] spufs: synchronize IRQ when disabling
        [POWERPC] spufs: fix order of sputrace thread IDs
        [POWERPC] Xilinx: hwicap cleanup
        [POWERPC] 4xx: Use correct board info structure in cuboot wrappers
        [POWERPC] spufs: fix invalid scheduling of forgotten contexts
        [POWERPC] 44x: add missing define TARGET_4xx and TARGET_440GX to cuboot-taishan
        ...
      5ce6386b
    • L
      Allow ARG_MAX execve string space even with a small stack limit · a64e715f
      Linus Torvalds 提交于
      The new code that removed the limitation on the execve string size
      (which was historically 32 pages) replaced it with a much softer limit
      based on RLIMIT_STACK which is usually much larger than the traditional
      limit.  See commit b6a2fea3 ("mm:
      variable length argument support") for details.
      
      However, if you have a small stack limit (perhaps because you need lots
      of stacks in a threaded environment), the new heuristic of allowing up
      to 1/4th of RLIMIT_STACK to be used for argument and environment strings
      could actually be smaller than the old limit.
      
      So just say that it's ok to have up to ARG_MAX strings regardless of the
      value of RLIMIT_STACK, and check the rlimit only when going over that
      traditional limit.
      
      (Of course, if you actually have a *really* small stack limit, the whole
      stack itself will be limited before you hit ARG_MAX, but that has always
      been true and is clearly the right behaviour anyway).
      Acked-by: NCarlos O'Donell <carlos@codesourcery.com>
      Cc: Michael Kerrisk <michael.kerrisk@googlemail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Ollie Wild <aaw@google.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a64e715f
    • L
      Revert "x86: fix pmd_bad and pud_bad to support huge pages" · a345b4ba
      Linus Torvalds 提交于
      This reverts commit cded932b.
      
      Arjan bisected down a boot-time hang to this, saying:
        ".. it prevents the kernel to finish booting on my (Penryn based)
         laptop.  The boot stops right after freeing the init memory."
      
      and while it's not clear exactly what triggers it, at this stage we're
      better off just reverting it while Ingo tries to figure out what went
      wrong.
      Requested-by: NArjan van de Ven <arjan@linux.intel.com>
      Cc: Hans Rosenfeld <hans.rosenfeld@amd.com>
      Cc: Nish Aravamudan <nish.aravamudan@gmail.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a345b4ba
  2. 03 3月, 2008 15 次提交
  3. 02 3月, 2008 3 次提交
    • S
      firewire: fix crash in automatic module unloading · 855c603d
      Stefan Richter 提交于
      "modprobe firewire-ohci; sleep .1; modprobe -r firewire-ohci" used to
      result in crashes like this:
      
          BUG: unable to handle kernel paging request at ffffffff8807b455
          IP: [<ffffffff8807b455>]
          PGD 203067 PUD 207063 PMD 7c170067 PTE 0
          Oops: 0010 [1] PREEMPT SMP
          CPU 0
          Modules linked in: i915 drm cpufreq_ondemand acpi_cpufreq freq_table applesmc input_polldev led_class coretemp hwmon eeprom snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss button thermal processor sg snd_hda_intel snd_pcm snd_timer snd snd_page_alloc sky2 i2c_i801 rtc [last unloaded: crc_itu_t]
          Pid: 9, comm: events/0 Not tainted 2.6.25-rc2 #3
          RIP: 0010:[<ffffffff8807b455>]  [<ffffffff8807b455>]
          RSP: 0018:ffff81007dcdde88  EFLAGS: 00010246
          RAX: ffff81007dc95040 RBX: ffff81007dee5390 RCX: 0000000000005e13
          RDX: 0000000000008c8b RSI: 0000000000000001 RDI: ffff81007dee5388
          RBP: ffff81007dc5eb40 R08: 0000000000000002 R09: ffffffff8022d05c
          R10: ffffffff8023b34c R11: ffffffff8041a353 R12: ffff81007dee5388
          R13: ffffffff8807b455 R14: ffffffff80593bc0 R15: 0000000000000000
          FS:  0000000000000000(0000) GS:ffffffff8055a000(0000) knlGS:0000000000000000
          CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
          CR2: ffffffff8807b455 CR3: 0000000000201000 CR4: 00000000000006e0
          DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
          DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
          Process events/0 (pid: 9, threadinfo ffff81007dcdc000, task ffff81007dc95040)
          Stack:  ffffffff8023b396 ffffffff88082524 0000000000000000 ffffffff8807d9ae
          ffff81007dc5eb40 ffff81007dc9dce0 ffff81007dc5eb40 ffff81007dc5eb80
          ffff81007dc9dce0 ffffffffffffffff ffffffff8023be87 0000000000000000
          Call Trace:
          [<ffffffff8023b396>] ? run_workqueue+0xdf/0x1df
          [<ffffffff8023be87>] ? worker_thread+0xd8/0xe3
          [<ffffffff8023e917>] ? autoremove_wake_function+0x0/0x2e
          [<ffffffff8023bdaf>] ? worker_thread+0x0/0xe3
          [<ffffffff8023e813>] ? kthread+0x47/0x74
          [<ffffffff804198e0>] ? trace_hardirqs_on_thunk+0x35/0x3a
          [<ffffffff8020c008>] ? child_rip+0xa/0x12
          [<ffffffff8020b6e3>] ? restore_args+0x0/0x3d
          [<ffffffff8023e68a>] ? kthreadd+0x14c/0x171
          [<ffffffff8023e68a>] ? kthreadd+0x14c/0x171
          [<ffffffff8023e7cc>] ? kthread+0x0/0x74
          [<ffffffff8020bffe>] ? child_rip+0x0/0x12
      
          Code:  Bad RIP value.
          RIP  [<ffffffff8807b455>]
          RSP <ffff81007dcdde88>
          CR2: ffffffff8807b455
          ---[ end trace c7366c6657fe5bed ]---
      
      Note that this crash happened _after_ firewire-core was unloaded.  The
      shared workqueue tried to run firewire-core's device initialization jobs
      or similar jobs.
      
      The fix makes sure that firewire-ohci and hence firewire-core is not
      unloaded before all device shutdown jobs have been completed.  This is
      determined by the count of device initializations minus device releases.
      
      Also skip useless retries in the node initialization job if the node is
      to be shut down.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJarod Wilson <jwilson@redhat.com>
      855c603d
    • S
      firewire: potentially invalid pointers used in fw_card_bm_work · 15803478
      Stefan Richter 提交于
      The bus management workqueue job was in danger to dereference NULL
      pointers.  Also, after having temporarily lifted card->lock, a few node
      pointers and a device pointer may have become invalid.
      
      Add NULL pointer checks and get the necessary references.  Also, move
      card->local_node out of fw_card_bm_work's sight during shutdown of the
      card.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NJarod Wilson <jwilson@redhat.com>
      15803478
    • S
      firewire: fw-sbp2: better fix for NULL pointer dereference in scsi_remove_device · f8436158
      Stefan Richter 提交于
      Patch "firewire: fw-sbp2: fix NULL pointer deref. in scsi_remove_device"
      had the unintended effect that firewire-sbp2 could not be unloaded
      anymore until all SBP-2 devices were unplugged.
      
      We now fix the NULL pointer bug by reacquiring a reference to the sdev
      instead of holding a reference to the sdev (and to the module) all the
      time.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Tested-by: NJarod Wilson <jwilson@redhat.com>
      f8436158
  4. 01 3月, 2008 19 次提交