1. 17 Mar, 2003 6 commits
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/greg/linux/BK/bleed-2.5 · b9b40b69
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/gregkh-2.5
      b9b40b69
    • Roland McGrath's avatar
      [PATCH] signal fix for wedge on multithreaded core dump · 874f2e47
      Roland McGrath authored
      This is a fix made almost a month ago, during the flurry of signal changes.
      I didn't realize until today that this hadn't made it into 2.5.  Sorry
      about the delay.
      
      This fix is necessary to avoid sometimes wedging in uninterruptible sleep
      when doing a multithreaded core dump triggered by a process signal (kill)
      rather than a trap.  You can reproduce the problem by running your favorite
      multithreaded program (NPTL) and then using "kill -SEGV" on it.  It will
      often wedge.  The actual fix could be just a two line diff:
      
      +                       if (current->signal->group_exit)
      +                               goto dequeue;
      
      after the group_exit_task check.  That is the fix that has been used in
      Ingo's backport for weeks and tested heavily (well, as heavily as core
      dumping ever gets tested, but it's been in our production systems).
      
      But I broke the hair out into a separate function.  The patch below has the
      same effect as the two-liner, and no other difference.  I have tested
      2.5.64 with this patch and it works for me, though I haven't beat on it.
      
      The way the wedge happens is that for a core-dump signal group_send_sig_info
      does a group stop of other threads before the one thread handles the fatal
      signal.  If the fatal thread gets into do_coredump and coredump_wait first,
      then other threads see the group stop and suspend with SIGKILL pending.
      All other fatal cases clear group_stop_count, so this is the only way this
      ever happens.  Checking group_exit fixes it.  I didn't make do_coredump
      clear group_stop_count because doing it with the appropriate ordering and
      locking doesn't fit the organization that code.
      874f2e47
    • Andries E. Brouwer's avatar
      [PATCH] fix affs/super.c · e54f721e
      Andries E. Brouwer authored
      Mounting a non-affs filesystem as affs crashes the kernel.
      The reason is the
      	sbi = kmalloc(sizeof(struct affs_sb_info), GFP_KERNEL);
      	memset(sbi, 0, sizeof(*AFFS_SB));
      where the second sizeof is 1, so that sbi is not zeroed at all.
      
      Also, avoid a warning for printk of sector_t in amigaffs.h.
      e54f721e
    • Jens Axboe's avatar
      [PATCH] extra tokens after endif · e22feb18
      Jens Axboe authored
      e22feb18
    • Jens Axboe's avatar
      [PATCH] honor hard barrier in deadline · cae0dc9c
      Jens Axboe authored
      Previously, we only honored barriers wrt merging. Really honor them now,
      move all pending requests to dispatch list and add the hard barrier at
      the back.
      cae0dc9c
    • Kai Germaschewski's avatar
      kbuild: Fix asm/offset.h generation · 20810f64
      Kai Germaschewski authored
      gen-asm-offsets, the most common user of the new filechk function, needs
      to be fed input from $< (the first prerequisite).
      20810f64
  2. 16 Mar, 2003 34 commits
    • Greg Kroah-Hartman's avatar
      Merge bk://linuxusb@bkbits.net/linus-2.5 · 6606cf5e
      Greg Kroah-Hartman authored
      into kroah.com:/home/linux/linux/BK/gregkh-2.5
      6606cf5e
    • Andrew Morton's avatar
      [PATCH] miropcm20-rds.c compile fixes · 5ebe2675
      Andrew Morton authored
      Patch from Adrian Bunk <bunk@fs.tum.de>
      
      It would be nice if everyone would try to compile the patched files
      before submitting patches...
      5ebe2675
    • Andrew Morton's avatar
      [PATCH] fix raid0 oops · c96c506f
      Andrew Morton authored
      raid0 doesn't have a thread, so md_wakeup_thread() derefs NULL.
      
      Neil may end up doing this differently, but meanwhile....
      c96c506f
    • Andrew Morton's avatar
      [PATCH] AFFS fixes · e431dd00
      Andrew Morton authored
      Patch from Roman Zippel <zippel@linux-m68k.org>
      
      - remove lock_kernel() (It was buggy too - there are at present two missing
        unlock_kernel()s)
      
      - fixes a bitmap corruption problem.
      e431dd00
    • Andrew Morton's avatar
      [PATCH] initialise inode->i_rdev · d4d68172
      Andrew Morton authored
      From latest -aa kernels.
      d4d68172
    • Andrew Morton's avatar
      [PATCH] kiocbClear should use clear_bit instead of set_bit · e1e412da
      Andrew Morton authored
      Patch from: Suparna Bhattacharya <suparna@in.ibm.com>
      
      Just an obvious fix.
      The kiocbClearX macros were doing a set_bit !
      They should be calling clear_bit.
      Ran into this now that I'm actually using kiocbClearKicked.
      e1e412da
    • Andrew Morton's avatar
      [PATCH] ext2: block allocation fix · 8262499b
      Andrew Morton authored
      Patch from Alex Tomas <bzzz@tmi.comex.ru>
      
      There is a logic error in ext2_new_block().  If we manage to reserve some
      blocks in the final blockgroup, local variable `bit' will be equal to
      sbi->s_groups_count and we erroneously assume that the allocation failed.
      
      Fix that up by testing local variable `group_alloc' instead.
      8262499b
    • Andrew Morton's avatar
      [PATCH] Ext2/3 noatime and dirsync fixes · 3bdfab20
      Andrew Morton authored
      Patch from "Theodore Ts'o" <tytso@mit.edu>
      
      I recently noticed a bug in ext2/3; newly created inodes which inherit
      the noatime flag from their containing directory do not respect noatime
      until the inode is flushed from the inode cache and then re-read later.
      This is because the code which checks the ext2 no-atime attribute and
      then sets the S_NOATIME in inode->i_flags is present in
      ext2_read_inode(), but not in ext2_new_inode().
      
      I fixed this in 2.4, and then found an even worse bug in the 2.5 code;
      the DIRSYNC flag is completely ignored *except* in the case where a
      directory is newly created using mkdir and its parent directory has the
      DIRSYNC flag.  S_DIRSYNC doesn't get set in the ext2_new_inode() or the
      ext2_ioctl() paths (which is used by chattr).
      
      This patch centralizes the code which translates the ext2 flags in the
      raw ext2 inode to the appropriate flag values in inode->i_flags in a
      single location.  This fixes the bug, makes things cleaner, and also
      removes 30 lines of code and 128 bytes of compiled x86 text in the
      bargain.
      3bdfab20
    • Andrew Morton's avatar
      [PATCH] Fix memleak in e100 driver · 5577ba7d
      Andrew Morton authored
      Patch from Oleg Drokin <green@linuxhacker.ru>
      
          There is a memleak in e100 driver from intel, both in 2.4 and 2.5
          e100_ethtool_gstrings does not free "strings" variable if it cannot
          copy it to userspace.
      5577ba7d
    • Andrew Morton's avatar
      [PATCH] Early writeback initialisation · a35100e0
      Andrew Morton authored
      Patch from Anders Gustafsson <andersg@0x63.nu>
      
      We're getting a division-by-zero in the writeback code during early rootfs
      population, because writeback has not yet been initialised.
      
      Fix that by performing an explicit initialisation rather than relying on
      initcall ordering.
      a35100e0
    • Andrew Morton's avatar
      [PATCH] fix the fix for unmap_vmas & hugepages · 4403ea4b
      Andrew Morton authored
      Patch from Kevin Pedretti <pedretti@ieee.org>
      
      The previous fix for unmapping hugetlb regions could still produce incorrect
      alignments if the munmap request covers multiple VMA's.
      
      Fix it by always unmapped the entire hugepage VMA inside the inner loop.
      4403ea4b
    • Andrew Morton's avatar
      [PATCH] Fix mem= options · 585c3653
      Andrew Morton authored
      Patch from "Randy.Dunlap" <rddunlap@osdl.org>
      
      Reverts the recent alteration of the format of the `mem=' option.  This is
      because `mem=' is interpreted by bootloaders and may not be freely changed.
      
      Instead, the new functionality to set specific memory region usages is
      provided via the new "memmap=" option.
      
      The documentation for memmap= is added, and the documentation for mem= is
      updated.
      585c3653
    • Andrew Morton's avatar
      [PATCH] fix devfs oops · 538316d2
      Andrew Morton authored
      The recent (untested?) "cleanup" removed a null-pointer test.
      538316d2
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · 5054ed20
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      5054ed20
    • Randy Dunlap's avatar
      [PATCH] fsmenu update · 4450913a
      Randy Dunlap authored
      As requested by Andrew, this moves the hugetlbfs config option
      into the Pseudo filesystems section near tmpfs.
      4450913a
    • Greg Ungerer's avatar
      [PATCH] add support to m68knommu linker script for console init section · 3df5d2d1
      Greg Ungerer authored
      Also fix some spelling.
      3df5d2d1
    • Greg Ungerer's avatar
      [PATCH] fix spelling in m68knommu signal.c · 27a5d973
      Greg Ungerer authored
      27a5d973
    • Greg Ungerer's avatar
      19159010
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk:14691/linux-2.5-pci/ · 17ec8d17
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      17ec8d17
    • Russell King's avatar
      [PCI] pci-15: Fix setup-bus.c resource sizing. · 18e35894
      Russell King authored
      Patch from Ivan Kokshaysky
      
      This fixes long standing typo ('size' instead of 'r_size') which causes
      overestimate of the bridge memory ranges calculated in pbus_size_mem().
      For example, if we have a device with one 1Mb and one 2Mb memory ranges
      behind the bridge, calculated size and alignment of the bridge memory
      window will be 4Mb and 2Mb respectively, while the correct values are
      3Mb and 1Mb.
      18e35894
    • Russell King's avatar
    • Russell King's avatar
      [PCI] pci-13: unuse pci_do_scan_bus() · 52e13cc2
      Russell King authored
      In an attempt to "unuse" pci_do_scan_bus() so it can be eventually
      killed, make pci_scan_bus_parented() call the new pci_scan_child_bus()
      and pci_bus_add_devices().  The only remaining callers are the
      hotplug drivers.
      
      Eventually, pci_bus_add_devices() will be removed from this function -
      it is intended that architectures should call this after they have
      done any setups and fixups to the scanned bus.
      
      It is legal to call pci_bus_add_devices() on a bus which has already
      had this function called, so architectures could update today.
      52e13cc2
    • Russell King's avatar
      [PCI] pci-12: Add #defines for cardbus specifics · c907ed24
      Russell King authored
      Pull out the bits of cardbus configuration - the secondary latency
      timer, and the number of bus numbers we reserve.
      c907ed24
    • Russell King's avatar
      [PCI] pci-11: use u32 for bus numbers/latency not unsigned long · b65c581a
      Russell King authored
      pci_read_config_dword() takes a u32 pointer, not unsigned long.
      b65c581a
    • Russell King's avatar
      [PCI] pci-10: Miscellaneous cleanups to probe.c · 8ce306e1
      Russell King authored
      Miscellaneous cleanups to probe.c:
              - make code/comments wrap before column 80.
              - remove extraneous space.
      8ce306e1
    • Russell King's avatar
      [PCI] pci-9: Kill per-architecture pcibios_update_resource() · b64958d9
      Russell King authored
      Kill pcibios_update_resource(), replacing it with pci_update_resource().
      pci_update_resource() uses pcibios_resource_to_bus() to convert a
      resource to a device BAR - the transformation should be exactly the
      same as the transformation used for the PCI bridges.
      
      pci_update_resource "knows" about 64-bit BARs, but doesn't attempt to
      set the high 32-bits to anything non-zero - currently no architecture
      attempts to do something different.  If anyone cares, please fix; I'm
      going to reflect current behaviour for the time being.
      
      Ivan pointed out the following architectures need to examine their
      pcibios_update_resource() implementation - they should make sure that
      this new implementation does the right thing.  #warning's have been
      added where appropriate.
      
      	ia64
      	mips
      	mips64
      
      This cset also includes a fix for the problem reported by AKPM where
      64-bit arch compilers complain about the resource mask being placed
      in a u32.
      b64958d9
    • Russell King's avatar
      [PCI] pci-8: pci_resource_to_bus() · 2ef9c88b
      Russell King authored
      Convert pcibios_fixup_pbus_ranges() into something more generic, namely
      pcibios_resource_to_bus() - we are really trying to convert resources
      to something to program into bus registers for bridge windows, and in
      fact, PCI device BARs.
      
      This is necessary since some architectures, namely Alpha, ARM and PARISC
      have an offset between PCI addressing and host-based addressing, so
      resources need to be adjusted when read or when written back to the bus.
      
      We provide a generic version in asm-generic/pci.h, which most
      architectures use.
      
      This patch finds the following architectures with something to think
      consider:
      
              - ppc, ppc64
                      adjusts resources for devices, but not buses.
      		This is inconsistent, and leads to improperly
      		programmed windows/BARs.
      
      PPC people (Anton) has a replacement PCI resource implementation
      which should do the right thing.
      2ef9c88b
    • Russell King's avatar
      [PCI] pci-7: Remove second argument to pcibios_update_resource() · 032d6c6e
      Russell King authored
      Patch from Ivan Kokshaysky
      
      remove the "parent" or "root" second argument to
      pcibios_update_resource().  This highlights the following
      architectures doing something wrong in their implementation:
      
              - ia64
              - mips it8172
              - mips "generic mips boards"
              - mips64 "generic mips boards"
              - mips64 IP27
      032d6c6e
    • Russell King's avatar
      [PCI] pci-6 - Fix scanning of non-zero functions · a9d96a6e
      Russell King authored
      Fix breakage in pci-3 - we scanned all functions if function 0 was not
      present.  This causes some host bridges to lock up when scanning devfn
      255 on PPC machines.
      a9d96a6e
    • Linus Torvalds's avatar
      Merge http://linux-scsi.bkbits.net/scsi-for-linus-2.5 · a2cf79d1
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      a2cf79d1
    • Ingo Molnar's avatar
      [PATCH] sched-2.5.64-bk10-D0 · 5d6893e6
      Ingo Molnar authored
      This removes/fixes a few whitespaces and removes the MAX_PRIO setting in
      the init task path which is unnecessary and which might even lead to
      bugs - MAX_PRIO is outside the valid range and technically the init
      thread is not an idle thread yet at this point.
      5d6893e6
    • Ingo Molnar's avatar
      [PATCH] sched-2.5.64-bk10-C4 · 51d38a67
      Ingo Molnar authored
      This fixes a fundamental (and long-standing) bug in the sleep-average
      estimator which is the root cause of the "contest process_load" problems
      reported by Mike Galbraith and Andrew Morton, and which problem is
      addressed by Mike's patch.
      
      The bug is the following: the sleep_time code in activate_task()
      over-estimates the true sleep time by 0.5 jiffies on average (0.5 msecs
      on recent 2.5 kernels).  Furthermore, for highly context-switch
      intensive and CPU-intensive workloads it means a constant 1 jiffy
      over-estimation.  This turns the balance of giving and removing ticks
      and nils the effect of the CPU busy-tick, catapulting the task(s) to
      highly interactive status - while in reality they are constantly burning
      CPU time.
      
      The fix is to round down sleep_time, not to round it up.  This slightly
      under-estimates the sleep time, but this is not a real problem, any task
      with a sleep time in the 1 jiffy range will see timekeeping granularity
      artifacts from various parts of the kernel anyway.  We could use rdtsc
      to estimate the sleep time, but i think that's unnecessary overhead.
      
      The fixups in Mike's scheduler patch (which is in -mm8) basically work
      around this bug.  The patch below definitely fixes the contest-load
      starvation bug, but it remains to be seen what other effects it has on
      interactivity.  In any case, this bug in the estimator is real and if
      there's any other interactivity problem around then we need to deal with
      it ontop of this patch.
      
      This bug has been in the O(1) scheduler from day 1 on basically, so i'm
      quite hopeful that a number of interactivity complaints are fixed by
      this patch.
      51d38a67
    • James Bottomley's avatar
      Merge raven.il.steeleye.com:/home/jejb/BK/scsi-misc-2.5 · 384cce6d
      James Bottomley authored
      into raven.il.steeleye.com:/home/jejb/BK/scsi-for-linus-2.5
      384cce6d
    • James Bottomley's avatar