1. 03 Dec, 2002 2 commits
  2. 02 Dec, 2002 18 commits
    • Greg Kroah-Hartman's avatar
    • David S. Miller's avatar
      [PATCH] kbd_pt_regs · 4a7e8594
      David S. Miller authored
      Hey guys, I really want to kill this thing.
      
      The only way to do that is to actually pass the pt_regs
      all the way down from the interrupt source.  It would be
      a three step process:
      
      1) Add pt_regs arg to serio_interrupt and serio->dev->interrupt()
         Update all serio->dev drivers and serio_interrupt() invokers.
      
         I've done this in the patch below.  We must handle pt_regs being
         NULL, f.e. when the event is via a tty ldisc or a timer for which
         there is no "pt_regs" context to obtain.
      
      2) At the input layer, push 'regs' down via input_event() into the
         handlers.
      
         Patch below does this as well.
      
      3) Final step to complete this, convert USB to pass the pt_regs that
         the host controller interrupt receives down to the URB callbacks.
      
         This itself was also a multistep process:
      
      	a) pass regs down from generic host controller
      	   layer to hcd driver
      
      	b) pass regs from hcd driver into urb handler
      
      	   EHCI is problematic here, as it does the URB
      	   work in a tasklet :(  we need to decide whether
      	   we can move the normal URB completion back into
      	   the hw interrupt handler or not
      
      	   I think it should be done, I'd basically have my
      	   thumbs up my butt if I didn't have Alt-SYSRQ-p
      	   register dumps available and that is what EHCI+usbkbd
      	   is currently.
      
      	   UHCI and OHCI both complete urbs in hw IRQ context
      	   so they are just fine.
      
      	c) update urb handlers to take the regs arg, make hcd
      	   drivers pass it on in
      
         I was really bored, so this was also done in the patch below :)
      
         We get a USB cleanup for free because of this, a lot of people
         were defining their own ugly typedefs for what should be
         usb_complete_t so I fixed that up :-)
      
         I also caught a lot of usb_fill_*() call sites casting the
         completion function pointer to usb_complete_t so the compiler
         wouldn't help us find necessary fixup if we changed the
         args again :-(  I think I got them all, someone bored should
         grep the tree for usb_complete_t and fixup any remaining spots
         where it is used in a cast.
      
         I tried to enable as many drivers as possible in a test build
         but it is possible I did miss a few obscure USB configs.
      
      So why do I want to kill kbd_pt_regs so badly?  Well, first of all I
      have to walk through all kinds of hoops on sparc64 to update
      kbd_pt_regs properly on the USB controller interrupt and I've had
      a few cases where I had trouble tracking down some kernel bug
      because kbd_pt_regs could easily be inaccurate if another interrupt
      came in right after the keyboard USB one.
      
      Right now, kbd_pt_regs is not updated at all for USB keyboards on x86
      rendering SYSRQ register dumps non-existent in such configurations.
      This forces it to happen, and because the regs are passed in the
      context in which the URB completes, it will always be accurate (it
      will even work properly if I have 5 USB keyboards :-)
      
      While doing this, I also noticed a bunch of ancient keyboard drivers
      in 2.5.x under drivers/char that need to be converted or deleted.
      They were still calling handle_scancode() !!! :-)  drivers/tc
      has few as well.  There is also a stray handle_scancode() reference
      in a include/asm-parisc/keyboard.h comment
      
      I tested this on sparc64 with an OHCI attached USB keyboard,
      and register dumping works fine etc.
      
      Here is just the USB bits.
      4a7e8594
    • Andries E. Brouwer's avatar
      [PATCH] kill probe_cmos_for_drives · 467578b9
      Andries E. Brouwer authored
      467578b9
    • Matthew Wilcox's avatar
      [PATCH] PS/2 support for PARISC · c98d5e01
      Matthew Wilcox authored
      This converts the PA-RISC PS/2 keyboard & mouse driver to the input
      layer.  New driver written by Laurent Canet & Thibaut Varene.
      c98d5e01
    • Jochen Hein's avatar
      [PATCH] vfat umas doc update · e80f40a9
      Jochen Hein authored
      Fix the documentation to match the code fix.
      e80f40a9
    • Petr Vandrovec's avatar
      [PATCH] too few spaces in struct definition · c6538c30
      Petr Vandrovec authored
          "static structi2c_clientclient_template" works much better
      when spaces are added at appropriate places.
      c6538c30
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/davem/BK/sparc-2.5 · 306cf7f1
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      306cf7f1
    • David S. Miller's avatar
    • David S. Miller's avatar
    • Pavel Machek's avatar
      [PATCH] devicefs support for system timer · 2aceefe4
      Pavel Machek authored
      Without this, time runs 50x too slow after resume, since nothing
      knows to tell the timer to re-initialize.
      2aceefe4
    • Anton Blanchard's avatar
      [PATCH] fixes for oprofile on ppc64 · f5b162fe
      Anton Blanchard authored
      Here are a few fixes I needed when porting oprofile to ppc64:
      
       - __PAGE_OFFSET isnt defined for all architectures, use PAGE_OFFSET
         instead
       - include linux/cache.h everywhere we use ____cacheline_aligned etc.
         Otherwise we end up with a structure called ____cacheline_aligned
         and no alignment :(
      f5b162fe
    • Ingo Molnar's avatar
      [PATCH] getppid-2.5.50-A3 · d86f4ccd
      Ingo Molnar authored
      This changes sys_getppid() to be more POSIX-threading conformant.
      
      sys_getppid() needs to return the PID of the "process' parent" (ie.  the
      tgid of the parent thread), not the thread parent's PID.  The patch has
      no effect on non-CLONE_THREAD users, for them current->group_leader ==
      current.  The effect on CLONE_THREAD threads is that getppid() does not
      return any PID within the thread group anymore.  Plus if a threaded
      application starts up a (non-thread) child then the child sees the
      process PID of the parent process, not the thread PID of the parent
      thread.
      
      in theory we could introduce the getttid() variant to get to the TID of
      the parent thread, but i doubt it would be of any use.  (and we can add
      it if the need arises.)
      
      The lockless algorithm is still safe because the ->group_leader pointer
      never changes asynchronously.  (the ->real_parent pointer might still
      change asynchronously so the SMP checks are still needed.)
      
      I've also updated the comments (they referenced the nonexistent p_ooptr
      field.), plus i've changed the mb() to rmb() - we need to order the
      reads, we dont do any global writes that need some predictable ordering.
      d86f4ccd
    • Linus Torvalds's avatar
      Merge bk://linuxusb.bkbits.net/pci_hp-2.5 · 79cd7c1c
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      79cd7c1c
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/hch/BK/xfs/linux-2.5 · ab78bec6
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      ab78bec6
    • Matthew Wilcox's avatar
      [PATCH] Neaten up mm/Makefile · 55ff56e3
      Matthew Wilcox authored
      This removes the include of (the now empty) Rules.make, gets rid of the
      ifndef clause and fixes the indentation.
      55ff56e3
    • Ingo Molnar's avatar
      [PATCH] tcore-fixes-2.5.50-E6 · 8a061159
      Ingo Molnar authored
      This fixes threaded coredumps and streamlines the code.  The old code
      caused crashes and hung coredumps.  The new code has been tested for
      some time already and appears to be robust.  Changes:
      
       - the code now uses completions instead of a semaphore and a waitqueue,
         attached to mm_struct:
      
              /* coredumping support */
              int core_waiters;
              struct completion *core_startup_done, core_done;
      
       - extended the completion concept with a 'complete all' call - all pending
         threads are woken up in that case.
      
       - core_waiters is a plain integer now - it's always accessed from under
         the mmap_sem. It's also used as the fastpath-check in the sys_exit()
         path, instead of ->dumpable (which was incorrect).
      
       - got rid of the ->core_waiter task flag - it's not needed anymore.
      8a061159
    • Stelian Pop's avatar
      [PATCH] CREDITS update · fe43697e
      Stelian Pop authored
      Update Stelian Pop's contact information in CREDITS and MAINTAINERS.
      fe43697e
    • Stelian Pop's avatar
      [PATCH] sonypi driver update · c9bf8f64
      Stelian Pop authored
      This corrects a small typo in the previous patch (in the ZOOM button
      definition) and adds events generated by the Memory Stick reader on VAIO
      U3 laptops (thanks to Kunihiko IMAI).
      c9bf8f64
  3. 01 Dec, 2002 20 commits