1. 28 6月, 2006 1 次提交
    • C
      [PATCH] cpu hotplug: revert init patch submitted for 2.6.17 · 9c7b216d
      Chandra Seetharaman 提交于
      In 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a
      band-aid solution to solve that problem.  In the process, i undid all the
      changes you both were making to ensure that these notifiers were available
      only at init time (unless CONFIG_HOTPLUG_CPU is defined).
      
      We deferred the real fix to 2.6.18.  Here is a set of patches that fixes the
      XFS problem cleanly and makes the cpu notifiers available only at init time
      (unless CONFIG_HOTPLUG_CPU is defined).
      
      If CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run
      time.
      
      This patch reverts the notifier_call changes made in 2.6.17
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Cc: Ashok Raj <ashok.raj@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9c7b216d
  2. 26 6月, 2006 2 次提交
  3. 23 6月, 2006 1 次提交
  4. 26 4月, 2006 1 次提交
  5. 28 2月, 2006 1 次提交
    • J
      [SCSI] add execute_in_process_context() API · 1fa44eca
      James Bottomley 提交于
      We have several points in the SCSI stack (primarily for our device
      functions) where we need to guarantee process context, but (given the
      place where the last reference was released) we cannot guarantee this.
      
      This API gets around the issue by executing the function directly if
      the caller has process context, but scheduling a workqueue to execute
      in process context if the caller doesn't have it.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      1fa44eca
  6. 15 1月, 2006 1 次提交
  7. 09 1月, 2006 3 次提交
    • N
      [PATCH] fix workqueue oops during cpu offline · f756d5e2
      Nathan Lynch 提交于
      Use first_cpu(cpu_possible_map) for the single-thread workqueue case.  We
      used to hardcode 0, but that broke on systems where !cpu_possible(0) when
      workqueue_struct->cpu_workqueue_struct was changed from a static array to
      alloc_percpu.
      
      Commit id bce61dd4 ("Fix hardcoded cpu=0 in
      workqueue for per_cpu_ptr() calls") fixed that for Ben's funky sparc64
      system, but it regressed my Power5.  Offlining cpu 0 oopses upon the next
      call to queue_work for a single-thread workqueue, because now we try to
      manipulate per_cpu_ptr(wq->cpu_wq, 1), which is uninitialized.
      
      So we need to establish an unchanging "slot" for single-thread workqueues
      which will have a valid percpu allocation.  Since alloc_percpu keys off of
      cpu_possible_map, which must not change after initialization, make this
      slot == first_cpu(cpu_possible_map).
      Signed-off-by: NNathan Lynch <ntl@pobox.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f756d5e2
    • B
      [PATCH] Unchecked alloc_percpu() return in __create_workqueue() · 676121fc
      Ben Collins 提交于
      __create_workqueue() not checking return of alloc_percpu()
      
      NULL dereference was possible.
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      676121fc
    • C
      [PATCH] add schedule_on_each_cpu() · 15316ba8
      Christoph Lameter 提交于
      swap migration's isolate_lru_page() currently uses an IPI to notify other
      processors that the lru caches need to be drained if the page cannot be
      found on the LRU.  The IPI interrupt may interrupt a processor that is just
      processing lru requests and cause a race condition.
      
      This patch introduces a new function run_on_each_cpu() that uses the
      keventd() to run the LRU draining on each processor.  Processors disable
      preemption when dealing the LRU caches (these are per processor) and thus
      executing LRU draining from another process is safe.
      
      Thanks to Lee Schermerhorn <lee.schermerhorn@hp.com> for finding this race
      condition.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      15316ba8
  8. 29 11月, 2005 1 次提交
    • B
      [PATCH] Fix hardcoded cpu=0 in workqueue for per_cpu_ptr() calls · bce61dd4
      Ben Collins 提交于
      Tracked this down on an Ultra Enterprise 3000.  It's a 6-way machine.  Odd
      thing about this machine (and it's good for finding bugs like this) is that
      the CPU id's are not 0 based.  For instance, on my machine the CPU's are
      6/7/10/11/14/15.
      
      This caused some NULL pointer dereference in kernel/workqueue.c because for
      single_threaded workqueue's, it hardcoded the cpu to 0.
      
      I changed the 0's to any_online_cpu(cpu_online_mask), which cpumask.h
      claims is "First cpu in mask".  So this fits the same usage.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bce61dd4
  9. 07 11月, 2005 1 次提交
    • H
      [PATCH] cpu hoptlug: avoid usage of smp_processor_id() in preemptible code · a4c4af7c
      Heiko Carstens 提交于
      Replace smp_processor_id() with any_online_cpu(cpu_online_map) in order to
      avoid lots of "BUG: using smp_processor_id() in preemptible [00000001]
      code:..." messages in case taking a cpu online fails.
      
      All the traces start at the last notifier_call_chain(...) in kernel/cpu.c.
      Since we hold the cpu_control semaphore it shouldn't be any problem to access
      cpu_online_map.
      
      The reason why cpu_up failed is simply that the cpu that was supposed to be
      taken online wasn't even there.  That is because on s390 we never know when a
      new cpu comes and therefore cpu_possible_map consists of only ones and doesn't
      reflect reality.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a4c4af7c
  10. 31 10月, 2005 1 次提交
  11. 08 9月, 2005 2 次提交
  12. 11 8月, 2005 1 次提交
    • J
      [PATCH] remove name length check in a workqueue · 60686744
      James Bottomley 提交于
      We have a chek in there to make sure that the name won't overflow
      task_struct.comm[], but it's triggering for scsi with lots of HBAs, only
      scsi is using single-threaded workqueues which don't append the "/%d"
      anyway.
      
      All too hard.  Just kill the BUG_ON.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      
      [ kthread_create() uses vsnprintf() and limits the thing, so no
        actual overflow can actually happen regardless ]
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      60686744
  13. 17 4月, 2005 2 次提交
    • J
      [PATCH] re-export cancel_rearming_delayed_workqueue · 81ddef77
      James Bottomley 提交于
      This was unexported by Arjan because we have no current users.
      
      However, during a conversion from tasklets to workqueues of the parisc led
      functions, we ran across a case where this was needed.  In particular, the
      open coded equivalent of cancel_rearming_delayed_workqueue was implemented
      incorrectly, which is, I think, all the evidence necessary that this is a
      useful API.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      81ddef77
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4