1. 18 Feb, 2004 40 commits
    • Greg Ungerer's avatar
      [PATCH] allow configuration for shared flat binary support · 85bf4b02
      Greg Ungerer authored
      This adds the configuration option to enable the uClinux shared flat
      binary support.  The code support is already in the binfmt_load code,
      just the config option is missing.
      85bf4b02
    • Greg Ungerer's avatar
      [PATCH] fix memory leaks in binfmt_flat loader · a6c1bb84
      Greg Ungerer authored
      Fix a number of memory leaks in the uClinux binfmt_flat loader.  All are
      related to not cleaning up properly on failure conditions.
      a6c1bb84
    • Andrew Morton's avatar
      [PATCH] aio sysctl parms · 98fabcaa
      Andrew Morton authored
      From: Janet Morgan <janetmor@us.ibm.com>
      
      It looks like aio_nr and aio_max_nr were intended to be sysctl parameters.
      98fabcaa
    • Andrew Morton's avatar
      [PATCH] mark ftape un-removable · 9c27c441
      Andrew Morton authored
      From: Christoph Hellwig <hch@lst.de>
      
      I've just grepped over the tree for reamining MOD_INC_USE_COUNT users, and
      ftape is a really horrible one, it relies on MOD_{INC,DEV}_USE_COUNT in the
      most horrible places + it's own bookkepping and the <= 2.4 may unload
      hooks.  And although I don't have the hardware I can guarantee it doesn't
      work as expected.
      
      So let's just remove the module_exit handler and mark it unremovable, if
      someone wants to fix up ftape later it's fine with me, but it's a really
      scary driver..
      9c27c441
    • Andrew Morton's avatar
      [PATCH] Add C99 initializers to arch/i386/pci/fixup.c · c5ec4950
      Andrew Morton authored
      From: "Art Haas" <ahaas@airmail.net>
      
      Here's a small patch that adds C99 initializers to the file.
      c5ec4950
    • Andrew Morton's avatar
      [PATCH] crc32.c copyright fix · 1295f337
      Andrew Morton authored
      From: Matt Domsch <Matt_Domsch@dell.com>
      
      Patch below applies to both 2.4.25 and 2.6.3, and replaces the public
      domain statement and non-warranty with the GPL, as is permitted by the code
      being in the public domain, and is done with legal advice.
      1295f337
    • Andrew Morton's avatar
      [PATCH] tuner driver fixes · 7541c77e
      Andrew Morton authored
      From: Gerd Knorr <kraxel@bytesex.org>
      
      "options tuner type=2" is just there for historical reasons and should
      only be used/needed if the main driver doesn't allow to configure the
      tuner type.  I'm not sure whenever I can remove that altogether without
      breaking anything.  There are several users of the tuner module, some
      outside the standard kernel tree ...
      
      > >         if (type < TUNERS) {
      > > +               t->type = type;
      > >                 printk("tuner: type forced to %d (%s) [insmod]\n",
      > >                        t->type,tuners[t->type].name);
      > >                 set_type(client,type);
      
      That is wrong, it will break in other corner cases, it may cause the
      set_type() function not doing the initializations.
      
      The prink can also be dropped because set_type does that too.  The patch
      below removes that.  It also makes the kernel messages a bit more verbose
      and adds support for two new tuners.
      7541c77e
    • Andrew Morton's avatar
      [PATCH] wireless/Kconfig enable/select complete replacement · 61ac12a0
      Andrew Morton authored
      From: mcgrof@studorgs.rutgers.edu (Luis R. Rodriguez)
      
      Complete the migration from Kconfig's undocumented "enable" to "select".
      61ac12a0
    • Andrew Morton's avatar
      [PATCH] Fix sprintf modifiers in usr/gen_init_cpio.c for cygwin · 499104b6
      Andrew Morton authored
      From: Pragnesh Sampat <pragnesh.sampat@timesys.com>
      
      The file initramfs_data.cpio is slightly different when generated on
      cygwin, compared to linux, which causes the kernel to panic with the
      message "no cpio magic" (See Documentation/early-userspace/README).
      
      The problem in cpio generation is due to the difference in sprintf
      modifiers on cygwin.  The code uses "%08ZX" for strlen of a device node.
      printf man pages discourages "Z" and has 'z' instead.  Both of these are
      not available on cygwin sprintf (at least some versions of cygwin).  The
      net result of all of this is that the generated file literally contains
      "ZX" and then the strlen after that and messes up that 110 offset etc.  The
      file is 516 bytes long on the system that I tested and on linux it is 512
      bytes.
      
      The fix below just uses "%08X" for that field.
      499104b6
    • Andrew Morton's avatar
      [PATCH] smbfs: support the loop driver · aa81900e
      Andrew Morton authored
      From: Urban Widmark <urban@teststation.com>
      
      Add the necessary bits for loop-over-smbfs.
      aa81900e
    • Andrew Morton's avatar
      [PATCH] Codingstyle update · 560362da
      Andrew Morton authored
      From: Michael Frank <mhf@linuxmail.org>
      560362da
    • Andrew Morton's avatar
      [PATCH] Remove overenthusiastic BUG in smp_boot_cpus · f6dfc265
      Andrew Morton authored
      From: "Martin J. Bligh" <mbligh@aracnet.com>
      
      There's no real need to BUG and stop the system from booting if the BIOS
      spec'ed apicid for the boot CPU isn't correct - we can continue perfectly
      well with the real one.
      f6dfc265
    • Andrew Morton's avatar
      [PATCH] sf16fmr2 radio card driver · 8c357c02
      Andrew Morton authored
      From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio@vodafone.com>
      
      Add a new driver for the SF16FMR2 Radio card.
      8c357c02
    • Andrew Morton's avatar
      [PATCH] Inefficient TLB flush fix · 68d01416
      Andrew Morton authored
      From: Martin Hicks <mort@wildopensource.com>
      
      This is a patch based on one that Jack Steiner sent to the ia64 list in
      November.  The original thread can be found at:
      
      http://marc.theaimsgroup.com/?l=linux-ia64&m=106869606922555&w=2
      
      I created the little wrapper function that was requested.  I think the only
      other arch, other than ia64, that doesn't at least include asm-generic/tlb.h
      is arm.
      
      
      Something appears broken in TLB flushing on IA64 (& possibly other
      architectures).  Functionally, it works but performance is bad on systems
      with large cpu counts.
      
      The result is that TLB flushing in exit_mmap() is frequently being done via
      IPIs to all cpus rather than with a "ptc" instruction or with a new
      context..
      68d01416
    • Andrew Morton's avatar
      [PATCH] menuconfig: fix the check for ncurses-devel · 9d02772a
      Andrew Morton authored
      From: Sam Ravnborg <sam@ravnborg.org>
      
      Corrected check for missing ncurses-devel when executing "make menuconfig".
      Now tell user to install 'ncurses-devel' if check fails.
      9d02772a
    • Andrew Morton's avatar
      [PATCH] Fix make rpm when using RH9 or Fedora.. · 4550fd73
      Andrew Morton authored
      From: Thomas Davis <tadavis@lbl.gov>
      
      Doing a 'make rpm' will fail with the current RH9/Fedora RPM macros.
      
      The failure message is this:
      
      Processing files: kernel-debuginfo-2.6.3rc1mm1-12
      error: Could not open %files file /usr/src/redhat/BUILD/kernel-2.6.3rc1mm1/debugfiles.list: No such file or directory
      
      The fix is this patch:
      4550fd73
    • Andrew Morton's avatar
      [PATCH] dm-crypt · 542c3b0a
      Andrew Morton authored
      From: Christophe Saout <christophe@saout.de>
      
      Adds a crypto module for device-mapper.  The intent here is to remove
      cryptoloop ASAP, to pull the remapping gunk out of the loops driver and to
      migrate people onto dm-crypt.  It is on-disk compatible with existing
      cryptolop installations.
      
      See http://www.saout.de/misc/dm-crypt/ for usage details.
      542c3b0a
    • Andrew Morton's avatar
      [PATCH] Disable bootmem warning · 7ee4ef58
      Andrew Morton authored
      From: Andi Kleen <ak@suse.de>
      
      Make the "hm, page reserved twice" message dependent on CONFIG_DEBUG_BOOTMEM.
      7ee4ef58
    • Andrew Morton's avatar
      [PATCH] ide-tape: remove obsolete onstream support · 725fb82e
      Andrew Morton authored
      From: Willem Riede <wrlk@riede.org>
      
      
      The onstream drives, be they scsi, atapi, ieee1394 or usb, are supported by the
      osst driver.  When the drives were new, code was introduced in ide-tape
      independently, but never really maintained since.  There are issues with the
      drives I found and dealt with in osst, that ide-tape doesn't address.
      
      So this code in ide-tape is both redundant and imperfect.  I assumed from
      http://marc.theaimsgroup.com/?l=linux-kernel&m=107550547613846&w=2 that there
      was buy in for removing it.
      
      When this patch is applied, ide-tape will refuse to attach to an onstream DI
      drive, and will write to syslog to use ide-scsi + osst instead.
      725fb82e
    • Andrew Morton's avatar
      [PATCH] do_swap_page() return value fix · fc5b4cfe
      Andrew Morton authored
      From: BlaisorBlade <blaisorblade_spam@yahoo.it>
      
      An exhausted do_swap_page() should return VM_FAULT_OOM rather than -ENOMEM.
      fc5b4cfe
    • Andrew Morton's avatar
      [PATCH] slab: remove extraneous printk · 851c937d
      Andrew Morton authored
      From: "David S. Miller" <davem@redhat.com>
      
      From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      
      If I create some kmem cache on 64-bit with like 3 u32's in it, it should
      silently just work and not warn.
      851c937d
    • Andrew Morton's avatar
      [PATCH] Fix race in epoll_ctl(EPOLL_CTL_MOD) · 2328d92a
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      A potential race can happen in epoll_ctl(EPOLL_CTL_MOD) where an event can
      happen in between f_op->poll() and the lock on ep->lock (we cannot call
      f_op->poll() inside a lock, and the f_op->poll() callback does not carry
      any info at the current time - missing wake_up_info() already ;).  In that
      case the event would be removed.  We can easily leave the event inside the
      ready list and have the ep_send_events() logic do the job for us at later
      time.  (Thanks to david.lee@teracruz.com for reporting the thing, since it
      shouldn't have been a nice one ;)
      2328d92a
    • Andrew Morton's avatar
      [PATCH] add clock_was_set() to all architectures · 2268bb30
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Add clock_was_set to all architectures.  I'm disappointed this wasnt done by
      whoever wrote the code.
      
      (It is a callback which the arch-specific RTC-updating code must make when
      someone sets the time).
      2268bb30
    • Andrew Morton's avatar
      [PATCH] Module headers cleanup · 580c4c3b
      Andrew Morton authored
      From: Brian Gerst <bgerst@didntduck.org>
      
      Cleans up some leftovers from the old module loader:
      
      - Remove unused defines from modules.h
      
      - Remove unused file modsetver.h
      580c4c3b
    • Andrew Morton's avatar
      [PATCH] Documentation on how to debug modules · e954d910
      Andrew Morton authored
      From: Alex Goddard <agoddard@purdue.edu>
      
      How to debug module loading problems.  The wording is a slightly changed
      version of what Rusty said.
      e954d910
    • Andrew Morton's avatar
      [PATCH] Fix __release_region() race · 43630c2c
      Andrew Morton authored
      From: MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
      
      I am testing PCI hot-plug in 2.6.2 kernel, but sometimes a struct resource
      tree in kernel/resource.c was broken if multiple hot-plug requests are
      issued at the same time.
      
      The reason is lots of drivers call release_region() on hot removal, and
      __release_region(), which is invoked by release_region() macro, changes the
      tree without holding a writer lock for resource_lock.
      
      I think __release_region() must hold a writer lock as well as
      __request_region() does.
      
      A following patch fixes the issue in my environment.
      43630c2c
    • Andrew Morton's avatar
      [PATCH] remove max_anon limit · b75add94
      Andrew Morton authored
      From: Tim Hockin <thockin@sun.com>
      
      Remove the max_anon via dynamically allocation.  We also change the
      idr_pre_get() interface to take a gfp mask, which should have always been
      there.
      b75add94
    • Andrew Morton's avatar
      [PATCH] oprofile: add Pentium Mobile support · 7de09205
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      From: Will Cohen <wcohen@redhat.com>
      
      Add oprofile support for Pentium Mobile (P6 core).  Pentium Mobile needs to
      unmask LVPTC vector, since it doesn't hurt other P6 core based cpus we do
      it unconditionally for all these.
      
      This patch require userspace tools >= 0.8 (only in sourceforge cvs currently)
      7de09205
    • Andrew Morton's avatar
      [PATCH] oprofile: ARM infrastructure · 3a67d0c3
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
      
      This patch adds infrastructure code and enables ARM to utilise the timer
      int oprofile driver.  There is PMU code under development for the XScale
      but that is still forthcoming.  In the meantime you can use the timer int
      driver with an updated Oprofile-CVS userspace (SF is a bit slow, please
      allow 24hrs).
      3a67d0c3
    • Andrew Morton's avatar
      [PATCH] Oprofile: fix nmi_timer_int detection · 01d5c986
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
      
      The nmi_timer_int oprofile driver was enabling itself unconditionally if an
      SMP kernel was being used on a UP system without an IOAPIC.
      
      Tested on a P5 using NMI timer int driver and UP system using timer int
      driver both running an SMP kernel.
      
      2004-02-11  Zwane Mwaikambo <zwane@arm.linux.org.uk>
      
      	* arch/i386/kernel/nmi.c: export nmi_active
      	* arch/i386/oprofile/nmi_timer_int.c: use it to check if owe can use
      	  an nmi interrupt
      01d5c986
    • Andrew Morton's avatar
      [PATCH] 3c59x: bring back the `enable_wol' option · 9d6f9be1
      Andrew Morton authored
      Some machines appear to have BIOS problems which are causing 3c59x adapters
      to come up in a powered-off state when WOL and PM are enabled.
      
      So bring back the 2.4 `enable_wol' module option which disables wake-on-lan
      unless the user specifically asked for it.
      9d6f9be1
    • Andrew Morton's avatar
      [PATCH] cleanup patch that prepares for 4Kb stacks · f96489a2
      Andrew Morton authored
      From: Arjan van de Ven <arjanv@redhat.com>
      
      I have 4Kb stacks + IRQ stacks working in my tree.  The biggest part of the
      4K-stacks work is changing hardcoded 8Kb assumptions to the proper,
      pre-existing define for this.  That part of the patch is appropriate in
      general, even when 4Kb stacks might not be.
      f96489a2
    • Andrew Morton's avatar
      [PATCH] fix display of NBD in /proc/partitions · 0c39a2fa
      Andrew Morton authored
      The recent change to /proc/partitions which prevents it from displaying
      removeable media accidentally caused 128 NBD and 16 ramdisk partitions to
      appear in /proc/partitions instead.
      
      So add a specific gendisk flag which says "don't show me in /proc/partitions"
      and use that.
      0c39a2fa
    • Andrew Morton's avatar
      [PATCH] skip offline CPUs in show_free_areas · 0b9ce3ae
      Andrew Morton authored
      From: Christoph Hellwig <hch@lst.de>
      
      Don't try to display the per-cpu information for CPUs which aren't there.
      0b9ce3ae
    • Andrew Morton's avatar
      [PATCH] off_t in nfsd_commit needs to be loff_t · 6a69bfee
      Andrew Morton authored
      From: Neil Brown <neilb@cse.unsw.edu.au>,
      
      From: Miquel van Smoorenburg <miquels@cistron.nl>
      
      While I was stress-testing NFS/XFS on 2.6.1/2.6.2-rc, I found that
      sometimes my "dd" would exit with:
      
      	#  dd if=/dev/zero bs=4096 > /mnt/file
      	dd: writing `standard output': Invalid argument
      	1100753+0 records in
      	1100752+0 records out
      
      After adding some debug printk's to the server and client code and some
      tcpdump-ing, I found that the NFSERR_INVAL was returned by nfsd_commit on
      the server.
      
      Turns out that the "offset" argument is off_t instead of loff_t.  It isn't
      used at all (unfortunately), but it _is_ checked for sanity, so that's
      where the error came from.
      6a69bfee
    • Andrew Morton's avatar
      [PATCH] drivers/char/vt possible race · ce8b13c9
      Andrew Morton authored
      From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      
      I falled again on the crash in con_do_write() with driver->data beeing
      NULL.  It happens during boot, when userland is playing open/close games
      with tty's, I was intentionally typing keys like mad during boot trying to
      trigger another problem when this one poped up.
      
      Looking at the code, I'm not sure how protected we are by the above (tty)
      layer, paulus told me to not rely on anything like locking coming from
      there, so I decided to extend the scope of the console semaphore one more
      bit to cover races between calls to con_open, con_close and con_write.
      Note that in con_do_write, I intentionally drop the semaphore to avoid
      keeping it held when waiting on the local buffer, and I added some sanity
      checks on tty->driver_data with some printk's in case we still have an open
      race by the tty layer.  At least, now, the couple vc_allocated &
      tty->driver_data should be protected though.
      ce8b13c9
    • Andrew Morton's avatar
      [PATCH] /proc thread visibility fixes · 9b6722ed
      Andrew Morton authored
      From: Kingsley Cheung <kingsley@aurema.com>
      
      Is is possible to examine the data of tasks currently existing in the system
      which are not threads of the same thread group.
      
      For example, the only task in the group where init is group leader is itself:
      
      gen2 02:50:44 ~: ls /proc/1/task
      1
      
      However, I can then read the contents of 'stat' for any other task in the
      system:
      
      gen2 02:49:45 ~: cat /proc/1/task/$$/stat
      1669 (bash) S 1668 1669 1669 34816 1730 256 1480 6479 12 4 8 5 5 17 15 0 1 0
      +8065 3252224 451 4294967295 134512640 134955932 3221225104 3221222840
      +4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0
      
      I had a look at fs/proc/base.c and found that the 'lookup' functions for
      these directories were checking that the task in question existed, but
      overlooked the following:
      
      1.  In the function proc_pid_lookup, a check is required to ensure that
          the task in question is a thread group leader.  Without the check, any
          task can have its data retrieved accordingly.  Consider the following.
          There is a multithreaded process 1777.
      
      gen2 23:22:47 /proc/1777: ls task
      1777  1778  1779  1780  1781  1782  1783  1784  1785  1786  1787  1788
      
      However, I can read the stat file for its thread 1778 as follows:
      
      gen2 23:22:50 /proc/1777: cat /proc/1778/stat
      1778 (multithreadtest) T 1777 1777 1672 34816 1672 64 0 0 0 0 14 17 0 0 15 0 12 0 8871 24727552 104 4294967295 134512640 134515104 3221222496 1077365276 4294960144 0 0 0 0 3222479248 0 0 -1 1 0 0
      
      But 1778 is not meant to show up in /proc/, as intended right?:
      
      gen2 23:22:56 /proc/1777: ls /proc/
      1     1365  1661  1793  881        dma          kcore       scsi
      10    1371  1662  18    9          driver       kmsg        self
      1014  1372  1663  2     909        execdomains  loadavg     slabinfo
      1032  14    1664  3     963        fb           locks       stat
      1062  15    1665  4     966        filesystems  mdstat      swaps
      1066  16    1666  5     buddyinfo  fs           meminfo     sys
      1067  1605  1669  6     bus        ide          misc        sysrq-trigger
      1087  1610  1670  7     cmdline    interrupts   modules     sysvipc
      1095  1611  1671  736   cpuinfo    iomem        mounts      tty
      11    1641  1672  8     crypto     ioports      mtrr        uptime
      12    1658  17    807   devices    irq          net         version
      13    1660  1777  810   diskstats  kallsyms     partitions  vmstat
      
      2.  The other part of the bug is in the function proc_task_lookup.  Here
          there needs to be a check that the task X is indeed a thread of the
          thread group Y when we read /proc/<Y>/task/<X>.
      
      Right now, this check does not exist, which allows for any existing
      task to have its data read from another thread group directory.  The
      following reads the stat directory of my bash shell from the thread
      group 1.
      
      gen2 23:28:07 ~: cd /proc/1
      gen2 23:28:10 /proc/1: ls
      auxv     cwd      exe  maps  mounts  stat   status  wchan
      cmdline  environ  fd   mem   root    statm  task
      gen2 23:28:11 /proc/1: ls task
      1
      gen2 23:28:27 /proc/1: cat task/$$/stat
      1671 (bash) S 1670 1671 1671 34817 1802 256 1953 8101 12 4 10 6 9 26 15 0 1 0 5789 3252224 454 4294967295 134512640 134955932 3221225104 3221222840 4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0
      9b6722ed
    • Andrew Morton's avatar
      [PATCH] Minor cross-compile issues · 8bbb25c3
      Andrew Morton authored
      From: Pratik Solanki <pratik.solanki@timesys.com>
      
      - Fix include path for build.c so that it finds asm/boot.h.
        /usr/include/asm/boot.h may not be present when cross-compiling on a
        non-Linux machine.
      
      - $(CONFIG_SHELL) instead of sh.
      8bbb25c3
    • Andrew Morton's avatar
      [PATCH] cpufreq_scale() fixes · 2da050c4
      Andrew Morton authored
      From: Dominik Brodowski <linux@dominikbrodowski.de>
      
      Use do_div on 32-bit archs in cpufreq_scale, and native "/" on 64-bit
      archs.
      2da050c4
    • Andrew Morton's avatar
      [PATCH] defer panic for too many items in boot parameter line · f9d4cdfc
      Andrew Morton authored
      From: Werner Almesberger <werner@almesberger.net>
      
      When passing too many unrecognized boot command line options (which become
      arguments or environment variables), the 2.6 kernel panics (unlike 2.4,
      which just ignores the extra items).  Unfortunately, this happens before
      the console is initialized, so all you get is a kernel that dies quickly,
      for no apparent reason.
      
      This is particularly irritating if using UML with
      init=something wi th a lot of ar gu men t s
      
      The patch below delays the panic until after console_init.
      
      (akpm: I mainly added this in because we have other places where the
      panic-later-on machinery is needed).
      f9d4cdfc