1. 25 Feb, 2003 28 commits
    • Jeff Garzik's avatar
      [netdrvr tg3] fix TX race in previous code, and another buglet · 3eda3bd6
      Jeff Garzik authored
      * call netif_tx_disable after netif_poll_disable, fixing TX race,
        in tg3_netif_stop
      * follow the ordering of the tg3_netif_stop change, and enable
        poll after waking TX, in tg3_netif_start
      * after doing those two steps in tg3_netif_start, check for work
        using new helper function tg3_cond_int
      * add helper function tg3_cond_int, which delivers an interrupt
        if and only if the status block was updated (i.e. if work
        is likely to be available)
      3eda3bd6
    • Jeff Garzik's avatar
    • Jeff Garzik's avatar
      [netdrvr tg3] bump version to 1.4c / Feb 18 · d6fbb2b0
      Jeff Garzik authored
      d6fbb2b0
    • Jeff Garzik's avatar
      [netdrvr tg3] fix NAPI deadlock · 70a8c581
      Jeff Garzik authored
      * do not hold driver spinlock during RX processing in tg3_poll
        (this is the deadlock fix)
      * create netif_poll_{en,dis}able to synchronize against dev->poll()
      * create __netif_rx_complete to avoid a third irq-save in tg3_poll
      * create tg3_netif_{start,stop} as driver-specific helper functions
        which disable and enable NAPI polling and TX queueing.  Note that
        the TX queueing enable/disable is purely advisory, and is not
        intended to prevent any races.
      * remove tg3_halt call from tg3_set_power_state, as all callers
        have already called tg3_halt, making it redundant.  Removing this
        function call also eliminates some locking complications.
      * use new helper __netif_rx_complete in tg3_poll
      * create tg3_reset_task, as a function that runs in process context
        which resets the NIC.  This is needed because tg3_netif_stop()
        calls schedule() in the process of disabling dev->poll.
      * schedule tg3_reset_task from tg3_tx_timeout
      * schedule tg3_reset_task from tg3_timer
      * wrap several tg3_halt...tg3_init_hw sequences with
        tg3_netif_stop...tg3_netif_start.  In addition to synchronizing
        with dev->poll, this additionally fixes bugs where we were not
        calling netif_wake_queue, when we should have been.
      * move netif_start_queue call to very bottom of tg3_open
      * add missing tg3_netif_{start,stop} to tg3_{suspend,resume},
        further fixing obvious bugs.
      70a8c581
    • Jeff Garzik's avatar
    • Jeff Garzik's avatar
      Merge redhat.com:/garz/repo/linus-2.5 · 07cc7911
      Jeff Garzik authored
      into redhat.com:/garz/repo/net-drivers-2.5
      07cc7911
    • Andrew Morton's avatar
      [PATCH] fix md /proc oops · 3f27dd28
      Andrew Morton authored
      It it is using a pointer to a ctl_table for its proc_handler function
      pointer.  Goes oops.
      3f27dd28
    • Andrew Morton's avatar
      [PATCH] remove MAX_BLKDEV from genhd.c · 7bc4777d
      Andrew Morton authored
      Patch from Andries.Brouwer@cwi.nl
      
      A patch for genhd.c:
      
      - removed outdated comments
      - removed MAX_BLKDEV
      
      In genhd.c the variable MAX_BLKDEV was only the size of a hash
      table, so I made it MAX_PROBE_HASH. It can be 1, or 23, or 256, or
      whatever one wants.
      
      Note that the current setup requires that every device number
      in a given range is mapped by dev_to_index() to the same index
      in the hash table, so this routine will have to be adapted in
      case one wants to register multimajor ranges.
      
      Discussion is possible about whether struct blk_probe needs
      a dev_t or a kdev_t, but I left things this time.
      
      If a range can end at precisely the end of [k]dev_t space,
      the old code was wrong since (p->dev + p->range) would be 0.
      That is why "p->dev + p->range <= dev" was replaced by
      "p->dev + p->range - 1 < dev".
      7bc4777d
    • Andrew Morton's avatar
      [PATCH] ext3: speed up O_SYNC writes · 51040fa7
      Andrew Morton authored
      This is a forward-port of a 2.4 change from Stephen.  The (old) 2.5 code is
      forcing a commit on every write by artificially dirtying the inode.
      
      But generic_file_aio_write() has called generic_osync_inode() for us, which
      has synced the file data.  There is no need to force the extra commit.
      51040fa7
    • Andrew Morton's avatar
      [PATCH] add some missing gloabl_flush_tlb() calls · b1bd98a3
      Andrew Morton authored
      Patch from Thomas Schlichter <schlicht@uni-mannheim.de>
      
      Adds some missing global_flush_tlb() calls, which are requried after a call
      to change_page_attr().
      b1bd98a3
    • Andrew Morton's avatar
      [PATCH] don't let OOM killer kill same process repeatedly · 38b272f1
      Andrew Morton authored
      Patch from Rik van Riel <riel@imladris.surriel.com>
      
      If a process cannot exit because it's stuck in eg.  a driver, it doesn't make
      sense to have the OOM killer kill it repeatedly; that could lead to a hung
      system.
      
      Instead, kill another process if the first process we tried to kill hasn't
      made any move to exit within 5 seconds.  This way we have a much better
      chance of recovering the system.
      38b272f1
    • Andrew Morton's avatar
      [PATCH] fix IRQ balancing disable controls · d2177b1a
      Andrew Morton authored
      Patch from "Martin J. Bligh" <mbligh@aracnet.com>
      
      Fixes up the logic and code which is used to suppress the IRQ balancing code.
      
      We now just have a single boolean, "irqbalance_disabled".  The initial value
      comes from the per-platform "NO_BALANCE_IRQ" constant.
      
      If the platform defaults to "on", users can override this with the
      "noirqbalance" kernel boot option.
      d2177b1a
    • Andrew Morton's avatar
      [PATCH] ext3: fix htree memory leaks · 9f22d985
      Andrew Morton authored
      Patch from Alex Tomas <bzzz@tmi.comex.ru>
      
      Fixes a couple of memory leaks in the htree code.
      9f22d985
    • Andrew Morton's avatar
      [PATCH] fix bug in slab.c debugging · 1c2c5d12
      Andrew Morton authored
      Patch from John Levon <levon@movementarian.org>
      
      Looked like this condition was previously always false ...
      1c2c5d12
    • Andrew Morton's avatar
      [PATCH] Fix race between umount and inode pruning · 69ce2cbd
      Andrew Morton authored
      Patch from Hugh Dickins <hugh@veritas.com>
      
      When prune_icache coincides with unmounting, invalidate_inodes notices
      the inode it's working on as busy but doesn't wait: Self-destruct in 5
      seconds message, and later iput oopses on freed super_block.
      
      Neither end is a fast path, so the patch just adds iprune_sem for exclusion.
      
      The semaphore is held across dispose_list so that
      dispose_list->clear_inode->destroy_inode cannot reference a destroyed
      superblock.
      69ce2cbd
    • Andrew Morton's avatar
      [PATCH] SARD accounting fix · 1c9bd3e4
      Andrew Morton authored
      Patch from Rick Lindsley <ricklind@us.ibm.com>
      
      Fixes a couple of odd cases in which disk requests were not being accounted
      for.
      1c9bd3e4
    • Andrew Morton's avatar
      [PATCH] Remove redundant check in pte_alloc_map() · 6e501cc8
      Andrew Morton authored
      This check is not needed - the PMD is known to be present.
      6e501cc8
    • Andrew Morton's avatar
      [PATCH] Check for zero d_count in dget() · 3e38f30e
      Andrew Morton authored
      Patch from Maneesh Soni <maneesh@in.ibm.com>
      
      Turns out that sysfs is doing dget() on a zero-ref dentry.  That's a bug, but
      dcache is no longer detecting it.
      
      The check was removed because with lockless d_lookup, there can be cases when
      d_lookup and dput are going on concurrently, If d_lookup happens earlier then
      it may do dget() on a dentry for which dput() has decremented the ref count
      to zero.  This race is handled by taking the per dentry lock and checking the
      DCACHE_UNHASHED flag.
      
      The patch open-codes that part of d_lookup(), and restores the BUG check in
      dget().
      3e38f30e
    • Andrew Morton's avatar
      [PATCH] Make kIrDAd us interruptible sleep · b7013f4c
      Andrew Morton authored
      Use interruptible sleep rather than uninterruptible to avoid perturbing load
      average.
      b7013f4c
    • Andrew Morton's avatar
      [PATCH] use find_get_page() in do_generic_mapping_read() · b446894a
      Andrew Morton authored
      do_generic_mapping_read() has an open-coded version of find_get_page() hidden
      inside it.
      b446894a
    • Andrew Morton's avatar
      [PATCH] x440 SRAT parsing · 4a53ada8
      Andrew Morton authored
      Use the early ioremap code to parse the Static Resource Affinity Table on
      x440 machines.
      4a53ada8
    • Andrew Morton's avatar
      [PATCH] Early ioremap support for ia32 · 68e72499
      Andrew Morton authored
      Patch from Patricia Gaughen <gone@us.ibm.com>,
      		Dave Hansen <haveblue@us.ibm.com>
      
      It provides a very early sort of kmap-by-hand.
      
      The patch is used by the x440 discontigmem to map the srat tables into low
      memory so that the memory can be setup.  This remap function is used very
      early in the boot process...  at the start of setup_arch().
      
      This functionality is only available to Summit and NUMAQ.  It will work on
      other platforms, but they do not need it.
      68e72499
    • Andrew Morton's avatar
      [PATCH] flush_tlb_all preempt safety for voyager · 6520fb02
      Andrew Morton authored
      Patch from Thomas Schlichter <schlicht@uni-mannheim.de>
      
      Make flush_tlb_all() preempt-safe.  Same as the ia32 fix.
      6520fb02
    • Andrew Morton's avatar
      [PATCH] crc32 optimizations · 36303df0
      Andrew Morton authored
      Patch from Joakim Tjernlund <joakim.tjernlund@lumentis.se>
      
      Here is another update(against BK curr) for crc32(). A kind soul pointed out
      the optimizations below.
      
      lib/crc32defs.h:
       - Make it possible to define new values for CRC_LE_BITS/CRC_BE_BITS without
         modifying the source.
      
      lib/crc32.c:
       - Eliminate the need for ENDIAN_SHIFT. Saves a 24 bit shift in the byte
         loops.
      
       - Swap the XOR expression in DO_CRC. gcc for x86 can not do that simple
         optimization itself(gcc 3.2.2 and RH gcc 2.96 tested). Will improve
         performance with 20-25% on x86.
      36303df0
    • Andrew Morton's avatar
      [PATCH] Fix slab batchcount limiting code · 919ba2e9
      Andrew Morton authored
      Spotted by Anton Blanchard: Our attempt to limit the interrupts-off time in
      slab wasn't very effective.  #ifndef DEBUG is never true.
      919ba2e9
    • Andrew Morton's avatar
      [PATCH] hugetlb put_page speedup · 163a3d84
      Andrew Morton authored
      Rework this function so that we only make the indirect call to the
      page-freeing function on the final put_page(), rather than on every
      invokation.
      163a3d84
    • Andrew Morton's avatar
      [PATCH] Fix user time accounting's handling of jiffies wrap · f004b8b3
      Andrew Morton authored
      Patch from Hugh Dickins <hugh@veritas.com>
      
      Userspace shows huge elapsed time across jiffies wrap: with USER_HZ less then
      HZ, sys_times needs jiffies_64 to calculate its retval.
      f004b8b3
    • Andrew Morton's avatar
      [PATCH] make jiffies wrap 5 min after boot · 8542637f
      Andrew Morton authored
      From Tim Schmielau <tim@physik3.uni-rostock.de>
      
      Force jiffies to start out at five-minutes-before-wrap.  To find
      jiffy-wrapping bugs.
      8542637f
  2. 24 Feb, 2003 12 commits