1. 05 Jun, 2009 4 commits
    • James Bottomley's avatar
      pata_legacy: wait for async probing · 45bc955b
      James Bottomley authored
      The basic problem here that pata_legacy attaches the host, sees if it found
      any devices and detaches it if none were found.  With async probing, it's not
      waiting until discovery is finished before deciding it has no devices and
      trying the detach leading to this warning:
      
      ata1: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
      ------------[ cut here ]------------
      WARNING: at drivers/ata/libata-core.c:6222 ata_host_detach+0x75/0x90()
      Modules linked in:
      Pid: 1, comm: swapper Not tainted 2.6.30-rc7 #1
      Call Trace:
       [<c01fbb05>] ? ata_host_detach+0x75/0x90
       [<c01fbb05>] ? ata_host_detach+0x75/0x90
       [<c01139b5>] ? warn_slowpath_common+0x45/0x80
       [<c01139fa>] ? warn_slowpath_null+0xa/0x10
       [<c01fbb05>] ? ata_host_detach+0x75/0x90
       [<c02f40e0>] ? legacy_init+0x44e/0x87f
       [<c02f3c92>] ? legacy_init+0x0/0x87f
       [<c0101021>] ? _stext+0x21/0x140
       [<c01890ff>] ? proc_register+0x2f/0x190
       [<c018938c>] ? create_proc_entry+0x5c/0xc0
       [<c0135ebe>] ? register_irq_proc+0x6e/0x90
       [<c02e6484>] ? kernel_init+0x6e/0xbf
       [<c02e6416>] ? kernel_init+0x0/0xbf
       [<c01031d7>] ? kernel_thread_helper+0x7/0x10
      ---[ end trace ef1ee36e873ae3a0 ]---
      
      Because it detaches before the probe is complete.
      
      One way to fix it would be to put an async_synchronize_full() before looking
      for devices, which this patch does.  A better way might be to separate libata
      into its own domain and only wait for that.
      Reported-by: default avatarMikael Pettersson <mikpe@it.uu.se>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      45bc955b
    • Oleg Nesterov's avatar
      ptrace: revert "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic" · edaba2c5
      Oleg Nesterov authored
      Commit 95a3540d ("ptrace_detach: the wrong
      wakeup breaks the ERESTARTxxx logic") removed the "extra"
      wake_up_process() from ptrace_detach(), but as Jan pointed out this breaks
      the compatibility.
      
      I believe the changelog is right and this wake_up() is wrong in many
      ways, but GDB assumes that ptrace(PTRACE_DETACH, child, 0, 0) always
      wakes up the tracee.
      
      Despite the fact this breaks SIGNAL_STOP_STOPPED/group_stop_count logic,
      and despite the fact this wake_up_process() can break another
      assumption: PTRACE_DETACH with SIGSTOP should leave the tracee in
      TASK_STOPPED case.  Because the untraced child can dequeue SIGSTOP and
      call do_signal_stop() before ptrace_detach() calls wake_up_process().
      
      Revert this change for now.  We need some fixes even if we we want to keep
      the current behaviour, but these fixes are not for 2.6.30.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: Jan Kratochvil <jan.kratochvil@redhat.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      edaba2c5
    • Mike Frysinger's avatar
      kbuild: fix detection of CONFIG_FRAME_WARN=0 · 08f67461
      Mike Frysinger authored
      The checking of CONFIG_FRAME_WARN in the top level Makefile forgot to
      actually derefence the variable thus leading to an always true check.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      08f67461
    • Oleg Nesterov's avatar
      ptrace: tracehook_report_clone: fix false positives · 087eb437
      Oleg Nesterov authored
      The "trace || CLONE_PTRACE" check in tracehook_report_clone() is not right,
      
      - If the untraced task does clone(CLONE_PTRACE) the new child is not traced,
        we must not queue SIGSTOP.
      
      - If we forked the traced task, but the tracer exits and untraces both the
        forking task and the new child (after copy_process() drops tasklist_lock),
        we should not queue SIGSTOP too.
      
      Change the code to check task_ptrace() != 0 instead. This is still racy, but
      the race is harmless.
      
      We can race with another tracer attaching to this child, or the tracer can
      exit and detach in parallel. But giwen that we didn't do wake_up_new_task()
      yet, the child must have the pending SIGSTOP anyway.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      087eb437
  2. 04 Jun, 2009 6 commits
  3. 03 Jun, 2009 9 commits
  4. 02 Jun, 2009 11 commits
  5. 01 Jun, 2009 10 commits