1. 06 Aug, 2004 5 commits
  2. 05 Aug, 2004 23 commits
  3. 04 Aug, 2004 4 commits
  4. 03 Aug, 2004 6 commits
  5. 02 Aug, 2004 2 commits
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc32: Fix problem with spurrious edge interrupts on old · 7588ab97
      Benjamin Herrenschmidt authored
      On old powermacs, it's possible that we get a stale edge interrupt when
      doing request_irq(), that typically happens with the DBDMA controller
      interrupts when the device was used by the firmware for booting.
      
      I just tracked down a nasty memory corruption problem where that was
      causing the bmac driver to try to process packets before the driver
      internal data structures were properly initialized.
      
      While I agree that the driver should (and will) be made more robust to
      such things, Paulus and I decided that it makes little sense to keep
      track of an "old" edge interrupt that happens before a driver does
      request_irq.  (On those powermacs, those are only the DBDMA interrupts
      anyway, and none of the DBDMA users will care). 
      
      This patch implements a "startup" handler for the old Apple PIC that
      will "ack" pending edge interrupts before unmasking, thus preventing
      those stale interrupts to be delivered.
      
      It also "fixes" the ppc32 irq core to call the startup() callback when
      available instead of just calling enable().
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7588ab97
    • Jens Axboe's avatar
      [PATCH] bio_copy_user() cleanups and fixes · 1737ddec
      Jens Axboe authored
      blk_rq_map_user() is a bit of a hack currently, since it drops back to
      kmalloc() if bio_map_user() fails.  This is unfortunate since it means we
      do no real segment or size checking (and the request segment counts contain
      crap, already found one bug in a scsi lld).  It's also pretty nasty for >
      PAGE_SIZE requests, as we attempt to do higher order page allocations.
      Even worse still, ide-cd will drop back to PIO for non-sg/bio requests. 
      All in all, very suboptimal.
      
      This patch adds bio_copy_user() which simply sets up a bio with kernel
      pages and copies data as needed for reads and writes.  It also changes
      bio_map_user() to return an error pointer like bio_copy_user(), so we can
      return something sane to the user instead of always -ENOMEM.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1737ddec