1. 30 Mar, 2004 2 commits
    • Andrew Morton's avatar
      [PATCH] catch errors when completing bio pairs · ca6530ab
      Andrew Morton authored
      From: Mike Christie <michaelc@cs.wisc.edu>
      
      A couple of drivers can sometimes fail the first segments in a bio then
      requeue the rest of the request.  In this situation, if the last part of
      the bio completes successfully bio_pair_end_* will miss that the beginging
      of the bio had failed becuase they just return one when bi_size is not yet
      zero.  The attached patch moves the error value test before the bi_size to
      catch the above case.
      ca6530ab
    • Andrew Morton's avatar
      [PATCH] Fix BLKPREP_KILL · 2cba47a2
      Andrew Morton authored
      From: Jens Axboe <axboe@suse.de>
      
      Samuel Rydh wrote:
      
      If a MODE_SENSE(6) command is sent to an IDE cd using the CDROM_SEND_PACKET
      ioctl, then the kernel freezes solidly. To reproduce this, one can take the
      SCSI cmd [1a 08 31 00 10 00] and a 16 byte data buffer.
      
      After some bug hunting, I found out that the following is what happens:
      
      - ide-cd recognizes that MODE_SENSE(6) isn't supported and tries
        to abort the request from ide_cdrom_prep_pc by returning BLKPREP_KILL.
      
      - in elv_next_request(), the kill request is handled by
        the following code:
      
      	while (end_that_request_first(rq, 0, rq->nr_sectors))
      		;
      	end_that_request_last(rq);
      
      The while loop never exits. The end_that_request_first() doesn't do anything
      since rq->nr_sectors is 0; it just returns "not-done" after handling those 0
      bytes (rq->bio->bi_size is 16).
      2cba47a2
  2. 29 Mar, 2004 7 commits
  3. 30 Mar, 2004 1 commit
  4. 29 Mar, 2004 22 commits
    • Russell King's avatar
      [ARM] Clean up coherent DMA allocator from previous changes. · b9ed68e3
      Russell King authored
      - Since the coherent DMA allocator is not currently compatible with
        HUGETLB, ensure that we fail at compile time should this option be
        selected.
      - Move struct device/dma mask handling into consistent_alloc().
      - Complain if someone tries to allocate coherent memory larger than
        their DMA mask will permit.
      - Rename consistent_alloc() to __dma_alloc() to ensure that there
        is no confusion that consistent_alloc() has gone.
      - Ensure warnings and errors report the correct function name.
      b9ed68e3
    • Russell King's avatar
      [ARM] Remove consistent_alloc/consistent_free · b23bbf74
      Russell King authored
      Since we've eliminated users of these functions, we can unexport
      them.  Instead, drivers should use the DMA API interfaces.
      b23bbf74
    • Russell King's avatar
    • Russell King's avatar
      [ARM] Extend DMA API on ARM for DMA-able writecombining memory. · 9bacd63e
      Russell King authored
      This is mainly for ARM framebuffer drivers, some of which are
      presently either open-coding this functionality, or using some
      internal ARM architecture function to get what they want.
      9bacd63e
    • Russell King's avatar
      2ccb567a
    • Russell King's avatar
      [ARM] Remove vm_region_dump() debugging. · 8e645822
      Russell King authored
      8e645822
    • Andrew Morton's avatar
      [PATCH] inode dirtying timestamp fix · 18ccf569
      Andrew Morton authored
      It's a bit late in 2.6.5-rc for this, but it does fix a significant bug: for
      the first five minutes after boot, prior to the jiffy wrap, /bin/sync doesn't
      write all of the dirty data.
      
      We currently record an inode's time-of-first-dirtying in the address_space.
      This causes a few problems with dirty block special inodes: when the device
      node for /dev/hda1 needs to be written back we bogusly inspect the timestamp
      for the address_space, which belongs to a different inode.
      
      So move the inode's dirtying time up into the inode itself.
      
      This means that for block-special inodes, inode->dirtied_when represents the
      time at which the inode itself was dirtied.
      
      For regular files it represents the time at which the inode or its pages were
      dirtied.
      
      For blockdevs, the time-of-first-dirtying is recorded in the kernel-internal
      blockdev inode.  Only I_DIRTY_PAGES makes sense on these inodes.
      
      The reason all this works is that when dirtying a page we always run
      
      	__mark_inode_dirty(page->mapping->host);
      
      which refers to the kernel-internal blockdev inode.
      18ccf569
    • Andrew Morton's avatar
      [PATCH] Disable debugging in parport daisy · 2684a91b
      Andrew Morton authored
      From: Andi Kleen <ak@muc.de>
      
      We are in production now. No more debugging needed.
      2684a91b
    • Andrew Morton's avatar
      [PATCH] don't display viocd partitions in /proc/paritions · fd8fbf61
      Andrew Morton authored
      From: Olaf Hering <olh@suse.de>
      
      Further to the recent removal of CDROMs from /proc/partitions.
      fd8fbf61
    • Andrew Morton's avatar
      [PATCH] Fix /proc/swaps output alignment · 4ab0808d
      Andrew Morton authored
      From: Hugh Dickins <hugh@veritas.com>
      
      There's an irritating extra space upsetting alignment in the 2.6
      /proc/swaps, which already arranges a space to separate the fields.
      4ab0808d
    • Andrew Morton's avatar
      [PATCH] update i386 defconfig · 835e3b7d
      Andrew Morton authored
      From: Jeff Garzik <jgarzik@pobox.com>
      
      I pretty much said 'no' to everything "(NEW)", so any "=y" you see are the
      result of Kconfig rules, not me.
      835e3b7d
    • Andrew Morton's avatar
      [PATCH] Kill IDE debug messages during suspend · fa0a65d4
      Andrew Morton authored
      From: Pavel Machek <pavel@ucw.cz>
      
      Suspend/resume support in ide seems to work okay these days, so this should
      be applied.
      fa0a65d4
    • Andrew Morton's avatar
      [PATCH] cciss: return -ENXIO on no-device-present · 2635120e
      Andrew Morton authored
      From: mike.miller@hp.com
      
      If no device is attached we now return -ENXIO instead of some bogus
      numbers.  Prevents applications from trying to access non-existent disks.
      Also adds HDIO_GETGEO_BIG IOCTL that fdisk uses.
      2635120e
    • Andrew Morton's avatar
      [PATCH] cciss: support MSA30 storage enclosures · bcb10ca8
      Andrew Morton authored
      From: <mike.miller@hp.com>
      
      This change is required to support the new MSA30 storage enclosure.  If you
      do a SCSI inquiry to a SATA disk bad things happen.  This patch prevents
      the inquiry from going to SATA disks.
      bcb10ca8
    • Andrew Morton's avatar
      [PATCH] fix a warning in sound/oss/opl3sa2.c. · 359e3bc6
      Andrew Morton authored
      From: Luiz Fernando Capitulino <lcapitulino@prefeitura.sp.gov.br>
      
      sound/oss/opl3sa2.c:163: warning: `opl3sa2_lock' defined but not used
      359e3bc6
    • Andrew Morton's avatar
      [PATCH] Pass correct task to get_user_pages in ptrace · 0cfc4052
      Andrew Morton authored
      From: Andi Kleen <ak@suse.de>
      
      ptrace/access_process_vm was passing current to get_user_pages as task, but
      it should have been clearly the child task instead.
      
      This fixes the fault accounting in ptrace and the vsyscall debugging on
      x86-64 (it needs the correct task_struct to map the vsyscall pages)
      0cfc4052
    • Andrew Morton's avatar
      [PATCH] cmpci warning fixes · ff98143b
      Andrew Morton authored
      From: Luiz Fernando Capitulino <lcapitulino@prefeitura.sp.gov.br>
      
      sound/oss/cmpci.c: In function `cm_release_mixdev':
      sound/oss/cmpci.c:1465: warning: unused variable `s'
      ff98143b
    • Andrew Morton's avatar
      [PATCH] Fix slab creation/destruction vs. CPU Hotplug · 52930067
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      From: Srivatsa Vaddagiri <vatsa@in.ibm.com>
      
      Hit a couple of (cpu hotplug) races in slab allocator during my tests.
      Mostly it was because of continuous loading/unloading fs/minix/minix.ko
      while simultaneously doing offline/online of CPUs.  As part of its init and
      exit routines, minix.ko create/destroys caches, which lead to several
      oopses.
      
      1. kmem_cache_create
      	In brief, kmem_cache_create does:
      		a) calls enable_cpucache to create per-cpu cache for all
      		   online CPUs. 
      		b) adds the cache to the global list of caches
      
      	These two are not done atomically and thats what causes problems.
      
      	For ex: lets say that at the time of step a) CPU1 is not online.
      	Hence no per-cpu cache is created for CPU1 (cachep->array[1] is NULL). 
      	However CPU1 is not completely dead in the sense that CPU_DEAD
      	processing for it is not yet over.  By the time CPU_DEAD processing 
      	starts for CPU1, step b) is complete. So cpuup_callback finds this
      	cache and tries freeing it's per-cpu cache associated with CPU1.
      	In the process it dereferences a NULL pointer and dies.
      
      2. kmem_cache_destroy
      	In brief, kmem_cache_destroy does:
      		a) deletes the cache from the global list of caches
      		b) Drain per-cpu cache (drain_cpu_caches), which
      		   basically uses smp_call_function to run do_drain
      		   on all online CPUs.
      
      	One possible race is let's say that CPU1 is coming up.
      	By the time CPU_UP_PREPARE is processed for CPU1, step a) is
      	complete. Hence cpuup_callback does not allocate any per-cpu cache
      	for the cache that is being destroyed.
      
      	However by the time step b) is run, CPU1 is completely online
      	(taking interrupts). It receives the IPI and tries draining
      	it per-cpu cache (which is NULL) and dies there.
      
      I think we need to serialize kmem_cache_create/destroy against CPU hotplug
      to prevent these problems.  Patch below does that by taking CPU Hotplug sem
      (which is OK since kmem_cache_create/destroy are not very frequently
      used?).
      52930067
    • Andrew Morton's avatar
      [PATCH] Fix posix scheduling violation for !SCHED_OTHER · 7d7dac02
      Andrew Morton authored
      From: Joe Korty <joe.korty@ccur.com>
      
      The following fixes a problem where a SCHED_FIFO task would on occasion be
      moved to the end of its runqueue when returned to from a preemption.  Cause
      was due to some SCHED_OTHER code in schedule() which was being run for tasks
      of every policy.
      7d7dac02
    • Andrew Morton's avatar
      [PATCH] md: Convert a number or "unsigned long"s to "sector_t"s · ac84aba2
      Andrew Morton authored
      From: NeilBrown <neilb@cse.unsw.edu.au>
      
      This helps raid5 work on at least 1 very large array..
      
      Thanks to Evan Felix <evan.felix@pnl.gov>
      ac84aba2
    • Andrew Morton's avatar
      454104ff
    • Linus Torvalds's avatar
      Merge http://linux-watchdog.bkbits.net/linux-2.6-watchdog · 28fc9efb
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      28fc9efb
  5. 28 Mar, 2004 8 commits
    • Alain Knaff's avatar
      [PATCH] email address update · 8e764e0d
      Alain Knaff authored
      8e764e0d
    • Benjamin Herrenschmidt's avatar
      [PATCH] fix oops at pmac_zilog rmmod'ing · b5afcdb2
      Benjamin Herrenschmidt authored
      From: Colin Leroy <colin@colino.net>
      
      rmmod'ing pmac_zilog currently oopses because uart_unregister_driver(),
      which nullifies drv->tty_driver, is called before uart_remove_one_port(),
      which uses said drv->tty_driver.
      
      The comment at top of uart_unregister_driver() specifically says we have
      to have removed all our ports via uart_remove_one_port() before.
      b5afcdb2
    • Armin Schindler's avatar
      [PATCH] ISDN CAPI: fix capiminor_alloc() to assign lowest free minor · 62150145
      Armin Schindler authored
      From: Frank A. Uepping
      
         This fixes capiminor_alloc() to assign the lowest free minor for a
         new capi_tty. Thanks to Frank A. Uepping and Tim Woods.
      62150145
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc64: syscall error test incorrect for 64 bits results · 6c90fb7d
      Benjamin Herrenschmidt authored
      The syscall return path on ppc64 checks if the error is between
      -LAST_ERRNO and 0, if it is, does the usual inversion along with
      setting a CR bit indicating to glibc that an error occured.
      
      However, we had an interesting bug where we used a 32 bits logica
      (unsigned) comparison, thus possibly doing false positives for
      valid 64 bits unsigned values whose low 32 bits happen to be in
      the error range.
      
      Fix that.
      6c90fb7d
    • Felipe Alfaro Solana's avatar
      [PATCH] Add BINFMT_MISC docs for Mono .NET-based binaries · 5f746471
      Felipe Alfaro Solana authored
      Just as there is documentation for BINFMT_MISC and Java bytecodes
      support, I thought it could be interesting to add documentation on how
      to add BINFMT_MISC support for directly running .NET ".exe" binaries
      using the Mono CLR.
      5f746471
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc32: More preempt fixes · 379092d2
      Benjamin Herrenschmidt authored
      This patch fixes more cases of possible preempt issue when testing
      MSR for FP or VEC bits and then doing giveup_fpu or giveup_altivec
      that I missed in my previous round of fixes (bk get helps before
      grepping ;)
      
      I also change the single step and program check exceptions to not
      re-enable interrupts right away on C code entry, it was useless and
      would cause interesting issues with preempt & xmon
      379092d2
    • Roman Zippel's avatar
      [PATCH] add missing <linux/config.h> · 1a336f5d
      Roman Zippel authored
      A few asm/types.h test a config variable without including
      <linux/config.h> first, which can e.g. cause different sector_t
      definitions. HFS fell victim to that and broke on ppc with CONFIG_LBD
      enabled. I scanned all asm/types.h and added <linux/config.h> as
      necessary.
      1a336f5d
    • Neil Brown's avatar
      [PATCH] Fix bugs introduced by recent improvements to readdir_plus · a9b095e4
      Neil Brown authored
       - make sure cd->buffer is always inside a page - previously if an
         entry fit perfectly in the remainder of a page, cd->buffer would
         end up pointing past the end of that page.
      
       - make sure num_entry_words is always correct, even on the error
         path.
      a9b095e4