]> git.neil.brown.name Git - history.git/log
history.git
23 years ago[PATCH] Futex update IV: use a waitqueue.
Rusty Russell [Thu, 6 Jun 2002 02:30:17 +0000 (19:30 -0700)]
[PATCH] Futex update IV: use a waitqueue.

This turns the simple task pointer into a waitqueue, which is
needed for the poll() patch.

23 years ago[PATCH] fs/locks.c: add and use IS_{POSIX, FLOCK, LEASE} macros
Stephen Rothwell [Thu, 6 Jun 2002 02:26:57 +0000 (19:26 -0700)]
[PATCH] fs/locks.c: add and use IS_{POSIX, FLOCK, LEASE} macros

Another trivial part of a Matthew Wilcox patch.  This just
defines macros for distinguishing the differnet types of locks.

23 years ago[PATCH] Futex update III: don't use put_page...
Rusty Russell [Thu, 6 Jun 2002 02:25:51 +0000 (19:25 -0700)]
[PATCH] Futex update III: don't use put_page...

This uses page_cache_release() instead of put_page(), as it might
be a pagecache page.

23 years ago[PATCH] Futex II: Copy-from-user can fail.
Rusty Russell [Thu, 6 Jun 2002 02:25:39 +0000 (19:25 -0700)]
[PATCH] Futex II: Copy-from-user can fail.

This patch handles the case where copy_from_user fails (it could
have been unmapped from this address space by another thread).

23 years ago[PATCH] Futex update I: Trivial comment removal
Rusty Russell [Thu, 6 Jun 2002 02:25:28 +0000 (19:25 -0700)]
[PATCH] Futex update I: Trivial comment removal

This comment refers to the original implementation. Obsolete.

23 years ago[PATCH] Shared zlib include fix for 2.5 and 2.4-ac.
David Woodhouse [Thu, 6 Jun 2002 02:25:16 +0000 (19:25 -0700)]
[PATCH] Shared zlib include fix for 2.5 and 2.4-ac.

This switches linux/zlib.h to include zconf.h as <linux/zconf.h> instead of
just "zconf.h".

23 years agoMerge master.kernel.org:/home/davem/BK/misc-2.5
Linus Torvalds [Thu, 6 Jun 2002 02:21:49 +0000 (19:21 -0700)]
Merge master.kernel.org:/home/davem/BK/misc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years agoMerge master.kernel.org:/home/davem/BK/sparc-2.5
Linus Torvalds [Thu, 6 Jun 2002 02:20:37 +0000 (19:20 -0700)]
Merge master.kernel.org:/home/davem/BK/sparc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years agoMerge master.kernel.org:/home/davem/BK/net-2.5
Linus Torvalds [Thu, 6 Jun 2002 02:19:46 +0000 (19:19 -0700)]
Merge master.kernel.org:/home/davem/BK/net-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years agoIDE: Print 64-bit types more portably.
David S. Miller [Wed, 5 Jun 2002 20:33:10 +0000 (13:33 -0700)]
IDE: Print 64-bit types more portably.

23 years agoIDE: Add missing printf format specifier when
David S. Miller [Wed, 5 Jun 2002 20:32:21 +0000 (13:32 -0700)]
IDE: Add missing printf format specifier when
printing Sparc IRQ.

23 years agoIDE: Print I/O ports more portably.
David S. Miller [Wed, 5 Jun 2002 20:31:17 +0000 (13:31 -0700)]
IDE: Print I/O ports more portably.

23 years agoSparc: Adjust to new {clear,copy}_user_page calling convention.
David S. Miller [Wed, 5 Jun 2002 20:28:55 +0000 (13:28 -0700)]
Sparc: Adjust to new {clear,copy}_user_page calling convention.

23 years agoSparc64: Propagate forget_pte changes to sparc64 ioremap.
David S. Miller [Wed, 5 Jun 2002 20:27:39 +0000 (13:27 -0700)]
Sparc64: Propagate forget_pte changes to sparc64 ioremap.

23 years agoSparc64: Propagate exec MM handling changes to sparc32 emulation layer.
David S. Miller [Wed, 5 Jun 2002 20:26:58 +0000 (13:26 -0700)]
Sparc64: Propagate exec MM handling changes to sparc32 emulation layer.

23 years agosparc64/kernel/Makefile: Remove bogus binfmt_elf32.o dependency target.
David S. Miller [Wed, 5 Jun 2002 20:26:03 +0000 (13:26 -0700)]
sparc64/kernel/Makefile: Remove bogus binfmt_elf32.o dependency target.

23 years agoregister_netdevice: Fix return value handling on success.
David S. Miller [Wed, 5 Jun 2002 20:25:02 +0000 (13:25 -0700)]
register_netdevice: Fix return value handling on success.

23 years agoSunRPC: Fix size_t vs. unsigned int arg descrepancy.
David S. Miller [Wed, 5 Jun 2002 20:23:56 +0000 (13:23 -0700)]
SunRPC: Fix size_t vs. unsigned int arg descrepancy.

23 years agoFix generic device layer init sequence.
David S. Miller [Wed, 5 Jun 2002 20:22:35 +0000 (13:22 -0700)]
Fix generic device layer init sequence.
Generic BUS objects have to be registered before
devices assosciated with them are probed.  Therefore
subsys_initcall is inappropriate for such setups.
It does not work to use core_initcall for this because
the generic device layer bits need to be setup first too.
So we rename unused_initcall to postcore_initcall and use
this new initcall level for generic BUS object init.
This fixes bootup on Alpha, and Sparc64.  X86 was working
by what looks to be luck in link order.

23 years agoinit/main.c: Revert recent GCC requirement change.
David S. Miller [Wed, 5 Jun 2002 20:18:04 +0000 (13:18 -0700)]
init/main.c: Revert recent GCC requirement change.

23 years agoasm-generic.h: Add forward siginfo decl for the sake of
David S. Miller [Wed, 5 Jun 2002 20:17:27 +0000 (13:17 -0700)]
asm-generic.h: Add forward siginfo decl for the sake of
HAVE_ARCH_SIGINFO_T platforms.

23 years agoSparc32 code cleanups from 2.4.x.
Rob Radez [Wed, 5 Jun 2002 16:09:54 +0000 (09:09 -0700)]
Sparc32 code cleanups from 2.4.x.

23 years ago[PATCH] Cleanup i386 <linux/init.h> abuses
Tom Rini [Wed, 5 Jun 2002 02:42:57 +0000 (19:42 -0700)]
[PATCH] Cleanup i386 <linux/init.h> abuses

The following patch cleans up the i386 usage of <linux/init.h>.
This remove <linux/init.h> from <asm-i386/system.h> which did not need
it, <asm-i386/highmem.h> which only had it due to an extern using
__init, which is not needed.

This adds <linux/init.h> to <asm-i386/bugs.h> which actually has
numerous __init functions and adds <linux/init.h> to 9 files inside of
arch/i386 which were indirectly including <linux/init.h> previously.

23 years ago[PATCH] Allow mpage.c to build
Russell King [Wed, 5 Jun 2002 02:42:44 +0000 (19:42 -0700)]
[PATCH] Allow mpage.c to build

When trying to build mpage.c for ARM, I get errors from bio.h since kdev_t
isn't defined.  The following fixes this.

(I fail to see how this can build for anyone as it currently stands; its
probably something x86 specific buried in the asm-i386 includes.)

23 years ago[PATCH] fcntl_[sg]etlk() only need the file *
Stephen Rothwell [Wed, 5 Jun 2002 02:41:32 +0000 (19:41 -0700)]
[PATCH] fcntl_[sg]etlk() only need the file *

Another simple part of a Matthew Wilcox patch.

We do not need to pass the file descriptor to the fcntl_[sg]etlk
functions, only the struct file * which we have already got
from the file descriptor and verified.

23 years ago[PATCH] fs/locks.c use list_del_init
Stephen Rothwell [Wed, 5 Jun 2002 02:41:21 +0000 (19:41 -0700)]
[PATCH] fs/locks.c use list_del_init

Trivial part of a patch by Matthew Wilcox

23 years ago[PATCH] fs/inode.c list_del_init
Brian Gerst [Wed, 5 Jun 2002 02:41:08 +0000 (19:41 -0700)]
[PATCH] fs/inode.c list_del_init

A few cases of list_del(x) + INIT_LIST_HEAD(x) crept in recently which
can be replaced with list_del_init(x).

23 years ago[PATCH] 2.5.20 IDE 85
Martin Dalecki [Wed, 5 Jun 2002 02:39:20 +0000 (19:39 -0700)]
[PATCH] 2.5.20 IDE 85

 - Work a bit on the automatic CRC error recovery handling. System still hangs.
   But one thing for sure - we don't have to use any specialized irq handler for
   it.

 - Since ioctl don't any longer submit requests to the queue without
   rq->special set, we can safely remove args_error handling from
   start_request.

 - Make REQ_SPECIAL usage in ide-floppy obvious.

 - Use REQ_SPECIAL everywhere instead of REQ_DRIVE_ACB. This is actually a bit
   dangerous but should work as far as I can see.

 - Unfold the now not REQ_SPECIAL specific dequeing part of ide_end_drive_cmd().
   Turns out that we can thereafter remove the calls to ide_end_drice_cmd() at
   places where the request type isn't REQ_SPECIAL all any longer. (tcq.c)

 - After the above operation it turns out that there are just two places where
   ide_end_drive_cmd remains, namely: ata_error, task_no_data_intr
   drive_cmd_intr.

   We can avoid it by changing the logics in ata_error a slightly.

   So now just to cases remain where ide_end_drive_cmd remains used:
   drive_cmd_intr and task_no_data_intr.

 - Now looking  a bit closer we can realize that drive_cmd_intr and
   task_no_data_intr can be easly merged together, since the usage of
   task_no_data_intr implied taskfile.sector_number == 0.

 - Use one single ata_special_intr function for the handling of interrupts
   submitted through ide_raw_cmd.

 - Move the remaining artefacts of ide_end_drive_cmd directly to
   ata_special_intr. Oh we don't need to check for REQ_SPECIAL any longer there,
   since the context is already known.

 - Set the ata_special_intr handler and command type directly inside
   ide_raw_taskfile to save code.

23 years agoMerge bk://bk.arm.linux.org.uk
Linus Torvalds [Tue, 4 Jun 2002 10:30:42 +0000 (03:30 -0700)]
Merge bk://bk.arm.linux.org.uk
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years ago[ARM PATCH] 1166/1: further cleanup of SA1110 suspend/resume code (2.5)
Nicolas Pitre [Wed, 5 Jun 2002 01:40:56 +0000 (02:40 +0100)]
[ARM PATCH] 1166/1: further cleanup of SA1110 suspend/resume code (2.5)
Same thing as patch #1165/1 but for 2.5.x

23 years ago[ARM] Cast thread_saved_{pc,fp} to unsigned long.
Russell King [Wed, 5 Jun 2002 01:25:51 +0000 (02:25 +0100)]
[ARM] Cast thread_saved_{pc,fp} to unsigned long.
The kernel expects these to return values in unsigned long types.

23 years ago[ARM] Clean up map_desc structure
Russell King [Wed, 5 Jun 2002 01:19:28 +0000 (02:19 +0100)]
[ARM] Clean up map_desc structure
- remove LAST_DESC in favour of passing the array size to iotable_init
- replace domain and permission bits/cache attributes with a generic
  "type", which can be easily converted to the required domain and
  permission bits/cache attributes at run time.  It also removes the
  possibility for getting such things wrong and (accidentally)
  allowing all user space to fiddle with devices directly.

23 years ago[ARM] Makefile and page.h ARM updates for 2.5.20
Russell King [Wed, 5 Jun 2002 00:51:30 +0000 (01:51 +0100)]
[ARM] Makefile and page.h ARM updates for 2.5.20

23 years ago[PATCH] remove fsuser()
Robert Love [Tue, 4 Jun 2002 07:39:16 +0000 (00:39 -0700)]
[PATCH] remove fsuser()

This patch removes fsuser().  Now both suser() and fsuser() are gone and
all permission checks use an appropriate capable() call.

23 years ago[PATCH] remove suser()
Robert Love [Tue, 4 Jun 2002 07:31:55 +0000 (00:31 -0700)]
[PATCH] remove suser()

Attached patch replaces the lone remaining suser() call with capable()
and then removes suser() itself in a triumphant celebration of the glory
of capable().  Or something. ;-)

Small cleanup of capable() and some comments, too.

23 years agoBonding driver: Merge 2.4.x driver updates into 2.5.
David S. Miller [Tue, 4 Jun 2002 06:44:18 +0000 (23:44 -0700)]
Bonding driver: Merge 2.4.x driver updates into 2.5.

23 years ago[PATCH] 2.5.20 IDE 84
Martin Dalecki [Tue, 4 Jun 2002 02:34:23 +0000 (19:34 -0700)]
[PATCH] 2.5.20 IDE 84

 - Simplify ide_cmd_type_parse by removing the handling of commands which we
   never use.

 - Realize that pre_task_out_intr and pre_task_mulout_intr are semanticaly
   identical. Use only pre_task_out_intr(). This allowed us to
   eliminate the prehandler altogether.

 - Updated fix for misconfigured host chips by Vojtech Pavlik.

 - Be more permissive about ioctl handling to allow device type drivers to do
   they own checks.

 - ali14xx cleanups by Andrej Panin.

 - Unfold usage ide_cmd_type_parser in tcq.c code. This makes this operation
   local to ide-disk.c. Move it as well as the interrupt handlers used only for
   the handling of disk requests there too.

 - Guard against calling handler before the drive is ready for it in
   ata_taskfile()! Well this bug was there before, but right now we inform
   about it.

 - Unfold ide_cmd_type_praser in ide-disk.c. Merge the remaining bits of it with
   get_command. Well it's no more.

 - Move recal_intr to ide.c - the only place where it's used.

This doesn't change the "mechanics" of the code but it makes it a lot more
"obvious" what's going on.

23 years ago[PATCH] fix 2.5.20 ramdisk
Russell King [Tue, 4 Jun 2002 02:28:48 +0000 (19:28 -0700)]
[PATCH] fix 2.5.20 ramdisk

2.5.20 seems to be incapable of executing binaries in a ramdisk-based
root filesystem.  The ramdisk in question is an ext2fs, with a 1K
block size loaded via the compressed ramdisk loader in do_mounts().

It appears that, in the case of a 1K block sized filesystem, we attempt
to read two 512-byte sectors into a BIO vector.  The first one is copied
into the first 512 bytes.  The second sector, however, is copied over
the first 512 bytes.  Obviously not what we really want.

Rev. 2, slightly cleaned up:

23 years agoMerge bk://ldm.bkbits.net/linux-2.5
Linus Torvalds [Tue, 4 Jun 2002 02:23:16 +0000 (19:23 -0700)]
Merge bk://ldm.bkbits.net/linux-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years agoFix extra parenthesis in the constant-address rwlock case.
Linus Torvalds [Tue, 4 Jun 2002 02:19:21 +0000 (19:19 -0700)]
Fix extra parenthesis in the constant-address rwlock case.

Noted by Alexey Vyskubov

23 years agonet/core/dev.c: Make handle_diverter return 0
David S. Miller [Mon, 3 Jun 2002 20:01:04 +0000 (13:01 -0700)]
net/core/dev.c: Make handle_diverter return 0

23 years agoPCI driver mgmt:
Patrick Mochel [Mon, 3 Jun 2002 12:53:50 +0000 (05:53 -0700)]
PCI driver mgmt:
- Make sure proper pci id is passed to probe()
- make sure pci_dev->driver is set and reset on driver registration/unregistration
- call remove_driver to force unload of driver on unregistration

23 years agoDo manual traversing of drivers' devices list when unbinding the driver.
Patrick Mochel [Mon, 3 Jun 2002 12:51:12 +0000 (05:51 -0700)]
Do manual traversing of drivers' devices list when unbinding the driver.

driver_unbind was called when drv->refcount == 0.
It would call driver_for_each_dev to do the unbinding
The first thing that would do was get_device, which...
BUG()'d if drv->refcount == 0.
Duh.

23 years agodevice model udpate:
Patrick Mochel [Mon, 3 Jun 2002 12:48:44 +0000 (05:48 -0700)]
device model udpate:
- make sure drv->devices is initialized on registration (from Peter Osterlund)
- add remove_driver for forcing removal of driver

There was a potential race with the module unload code. When a pci driver was unloaded, it would call pci_unregister_driver, which would simply call put_driver.
If the driver's refcount wasn't 0, it wouldn't unbind it from devices, but the module unload would still continue.
If something tried to access the driver later (since everyone thinks its still there), Bad Things would happen.
This fixes it until there can be tighter integration between the device model and module unload code.

23 years ago[PATCH] Re: Fix suspend-to-RAM in 2.5.20
Pavel Machek [Mon, 3 Jun 2002 07:28:09 +0000 (00:28 -0700)]
[PATCH] Re: Fix suspend-to-RAM in 2.5.20

Here's followup patch that makes it work. Notice freeze_processes() --
if you don't do that you risk data corruption.

23 years ago[PATCH] Cleanup swsusp in 2.5.20
Pavel Machek [Mon, 3 Jun 2002 06:25:54 +0000 (23:25 -0700)]
[PATCH] Cleanup swsusp in 2.5.20

This cleans up swsusp in 2.5.20. Killed sysrq-D support (it is too
much trouble to support suspending from interrupt), kill unused
define, fix compile-time warnings (thanks to Adam).

23 years ago[PATCH] Fix suspend-to-RAM in 2.5.20
Pavel Machek [Mon, 3 Jun 2002 06:25:44 +0000 (23:25 -0700)]
[PATCH] Fix suspend-to-RAM in 2.5.20

I created arch/i386/suspend.c not to clash with ACPI people so much in
future. (More stuff is going to move into it in the future, to clean
up functions that really do not belong to the headers.)

23 years ago[PATCH] bluesmoke merge
Zwane Mwaikambo [Mon, 3 Jun 2002 05:55:16 +0000 (22:55 -0700)]
[PATCH] bluesmoke merge

This patch merges in all the currently outstanding bluesmoke bits from
2.5-dj to 2.5.20, it also has the pleasant side effect of fixing the
compilation. Test compiled with and without MCE.

23 years ago[PATCH] must be __KERNEL__ for byteorder/generic.h
Dan Kegel [Mon, 3 Jun 2002 05:35:05 +0000 (22:35 -0700)]
[PATCH] must be __KERNEL__ for byteorder/generic.h

  Here's that patch again (MIME this time, so tabs don't get
  lost by my silly gui mailer); applies cleanly against against 2.4.19-pre8.
  Nobody commented on it last time I posted it, and it does
  make compiling gcc easier, so I guess that makes it trivial patch
  monkey fodder.  Or am I making a silly mistake?

23 years ago[PATCH] remove space in cache names
Randy Hron [Mon, 3 Jun 2002 05:34:56 +0000 (22:34 -0700)]
[PATCH] remove space in cache names

  Most /proc/slabinfo cache_names are in the format:
  cache_name.  There are a couple with spaces in the
  name, which is inconsistent and requires a special case
  when scripting.

  Changes "fasync cache" and "file lock cache" to have
  the usual underscore.

23 years ago[PATCH] static list init page_alloc.c
William Lee Irwin III [Mon, 3 Jun 2002 05:34:40 +0000 (22:34 -0700)]
[PATCH] static list init page_alloc.c

  inactive_list and active_list are global, yet they are repeatedly
  initialized using INIT_LIST_HEAD() in free_area_init_core(). This
  patch is originally due to Christoph Hellwig, and by some reports
  has been implementated before in 2.4-based trees by Andrea Arcangeli.

23 years ago[PATCH] remove macros from page_alloc.c
William Lee Irwin III [Mon, 3 Jun 2002 05:34:31 +0000 (22:34 -0700)]
[PATCH] remove macros from page_alloc.c

  The memlist_* macros serve as nothing but an insulation layer from the
  Linux-native generic list operations. This patch removes them in favor
  of using generic list operations directly.

23 years ago[PATCH] remove antiquated comment
William Lee Irwin III [Mon, 3 Jun 2002 05:34:23 +0000 (22:34 -0700)]
[PATCH] remove antiquated comment

  This comment, describing how to optimize for gcc-2.2.2, is so outdated
  it should be removed. It's also quite doubtful it should ever have been
  placed in this file at all (perhaps something under Documentation/ ?).
  This patch removes it.

23 years ago[PATCH] make memclass() an inline
William Lee Irwin III [Mon, 3 Jun 2002 05:34:11 +0000 (22:34 -0700)]
[PATCH] make memclass() an inline

  memclass is too large to be a #define; it overflows 80 columns and does
  not make use of facilities available only to macros.

  This patch convert memclass() to be an inline function.

23 years ago[PATCH] duplicate decl in sched_init()
William Lee Irwin III [Mon, 3 Jun 2002 05:33:58 +0000 (22:33 -0700)]
[PATCH] duplicate decl in sched_init()

  I found this one while trying to straighten out bootstrap ordering
  issues elsewhere.

  There appears to be a duplicate declaration of rq in sched_init().
  This removes the nested declaration and otherwise leaves things alone.

23 years ago[PATCH] correct zone_table comment
William Lee Irwin III [Mon, 3 Jun 2002 05:33:43 +0000 (22:33 -0700)]
[PATCH] correct zone_table comment

  The comment describing the usage of zone_table[] assumes the existence
  of an unsigned char page->zone field from the original implementation
  of page->zone size reduction. This patch corrects the comment to
  accurately describe the lookup mechanism used by page_zone() and also
  to mention explicitly the sole user of the table, page_zone().

23 years ago[PATCH] TAGS creation should go into arch dirs
Rusty Russell [Mon, 3 Jun 2002 05:33:34 +0000 (22:33 -0700)]
[PATCH] TAGS creation should go into arch dirs

Playing with arch stuff does this to you.

23 years ago[PATCH] Spelling
Rusty Russell [Mon, 3 Jun 2002 05:33:26 +0000 (22:33 -0700)]
[PATCH] Spelling

Rusty Russell <rusty@rustcorp.com.au>: Oh, I feel so violated...:
  <sniff>

23 years ago[PATCH] bogus casts in ide-cd.c:
Peter Chubb [Mon, 3 Jun 2002 05:33:17 +0000 (22:33 -0700)]
[PATCH] bogus casts in ide-cd.c:

  This patch against 2.5.19 gets rid of some bogus casts in ide-cd.c
  In my opinion the casts as is are bugs waiting to happen.

23 years ago[PATCH] fix for /proc operation:
Kazuto Miyoshi [Mon, 3 Jun 2002 05:33:06 +0000 (22:33 -0700)]
[PATCH] fix for /proc operation:

  I found that 'max' pointer is not updated in proc_dointvec_minmax()
  and proc_doulongvec_minmax(), when I write smaller values than min to
  /proc/sys entry (and val<*min++ check becomes true.)
  This may lead to min/max checking of values with bogus maximum.

23 years ago[PATCH] fix NULL dereferencing in dcache.c
Dan Aloni [Mon, 3 Jun 2002 05:32:58 +0000 (22:32 -0700)]
[PATCH] fix NULL dereferencing in dcache.c

  Unrelated to my first dcache patch, this is something more crucial
  and should be applied first.

  fs/dcache.c:
   - handle d_alloc() returning NULL.

23 years ago[PATCH] update to pci_quirks.c
Ghozlane Toumi [Mon, 3 Jun 2002 05:32:50 +0000 (22:32 -0700)]
[PATCH] update to pci_quirks.c

  Attached is a really trivial patch that changes an "unknown" PCI_DEVICE_ID
  0x3112 to PCI_DEVICE_ID_VIA_8361 in drivers/pci/quirks.c .

  It applies cleanly to 2.5.18 and 2.4.19-pre8.

23 years ago[PATCH] "General options" - begone
Brad Hards [Mon, 3 Jun 2002 05:32:42 +0000 (22:32 -0700)]
[PATCH] "General options" - begone

  There is more of this janitorial work to come (eg General setup). I'm just
  piecemealing it

23 years ago[PATCH] ipchains_core GFP_KERNEL fix
Alexander Atanasov [Mon, 3 Jun 2002 05:32:34 +0000 (22:32 -0700)]
[PATCH] ipchains_core GFP_KERNEL fix

  [ Made applicable with -p1 by Rusty ]

  nlma fixes a call to netlink_broadcast with GFP_KERNEL ( passed to
  skb_clone ) while we are in_interrupt() ( catched by a BUG() in
  slab.c:1109 ).

23 years ago[PATCH] Missing include in mm/bootmem.c
Johan Adolfsson [Mon, 3 Jun 2002 05:32:25 +0000 (22:32 -0700)]
[PATCH] Missing include in mm/bootmem.c

  Missing include of asm_io.h in mm_bootmem.c:
  Submitted this trivial patch on May 14, but nothing has happened yet.
  Perhaps better chance if you took care of it.

  It's needed by phys_to_virt() but it happens to work on i386 etc.
  since dma.h includes io.h for that arch.

23 years ago[PATCH] Fix Oops due to use of incorrect km_type in RPC socket code...
Trond Myklebust [Mon, 3 Jun 2002 05:12:03 +0000 (22:12 -0700)]
[PATCH] Fix Oops due to use of incorrect km_type in RPC socket code...

The following has been vetted with davem w.r.t. the change to
KM_SKB_DATA. Apologies for the bug...

include/asm-*/kmap_types.h:
   Replace the unused km_type slot KM_SKB_DATA with
   KM_SKB_SUNRPC_DATA.

net/sunrpc/xdr.c:
   Replace the use of KM_USER0 with KM_SKB_SUNRPC_DATA for copying
   data from an skb into the page cache when in the sk->data_ready()
   callback.

23 years ago[PATCH] unplugging fix
Jens Axboe [Mon, 3 Jun 2002 04:59:27 +0000 (21:59 -0700)]
[PATCH] unplugging fix

Fix queue plug locking.

23 years ago[PATCH] Fix for recent swap changes on 64 bit archs
Anton Blanchard [Mon, 3 Jun 2002 04:58:18 +0000 (21:58 -0700)]
[PATCH] Fix for recent swap changes on 64 bit archs

This fixes two shift warnings on 64 bit archs.

23 years ago[PATCH] ipchains_core netlink fix
Alexander Atanasov [Mon, 3 Jun 2002 04:57:53 +0000 (21:57 -0700)]
[PATCH] ipchains_core netlink fix

  oom-loop fixes error handling after a netlink failure - it does not do a
  cleanup and it makes every next call to ip_fw_check to detect a
  loop and drop the packet.

23 years agoMerge http://kernel-acme.bkbits.net:8080/copy_to_from_user-2.5
Linus Torvalds [Mon, 3 Jun 2002 03:57:01 +0000 (20:57 -0700)]
Merge http://kernel-acme.bkbits.net:8080/copy_to_from_user-2.5
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux

23 years ago[PATCH] sys_sysinfo cleanup
Robert Love [Mon, 3 Jun 2002 03:56:04 +0000 (20:56 -0700)]
[PATCH] sys_sysinfo cleanup

Looks like sys_sysinfo has not been touched in years.  Among other
things, it uses a global cli() for protection; I switched it to an
existing rwlock.  I also pulled it out of info.c and stuck it in timer.c
(I choose timer.c because it shares dependencies there already).

The details:

        - move sys_sysinfo to kernel/timer.c from kernel/info.c:
          why one small syscall got its own file is beyond me.

        - delete kernel/info.c

        - stop the global cli!  now grab a read_lock on xtime_lock.
          this is safe as we moved the write_unlock on xtime_lock
          down one line to cover the calculating of avenrun.

        - trivial code cleanup

23 years ago[PATCH] make smp.c preempt-safe
Robert Love [Mon, 3 Jun 2002 03:55:55 +0000 (20:55 -0700)]
[PATCH] make smp.c preempt-safe

The attached patch cleans up some per-CPU code in arch/i386/kernel/smp.c
that could be problematic under preemption.

The first I solve with the new get_cpu interface, for the second two I
explicitly disable preemption.  I also changed 1 to 1UL in the shift to
properly match the type.

23 years ago[PATCH] maintainers update
Robert Love [Mon, 3 Jun 2002 03:55:43 +0000 (20:55 -0700)]
[PATCH] maintainers update

Might as well make it explicit...

Patch is against 2.5.20, please apply.

Robert Love

23 years ago[PATCH] trivial misc. scheduler cleanups
Robert Love [Mon, 3 Jun 2002 03:55:35 +0000 (20:55 -0700)]
[PATCH] trivial misc. scheduler cleanups

Resend of trivial bits from my scheduler tree...:

        - shift cpu by 1UL not 1 to match type
        - clarify various comments
        - remove the barrier from preempt_schedule.  This was here
          because I used to check need_resched before returning from
          preempt_schedule but we do not now (although should).  The
          barrier insured need_resched and preempt_count were in sync
          now and after an interrupt that could occur.

23 years ago[PATCH] capability.c cleanup
Robert Love [Mon, 3 Jun 2002 03:55:27 +0000 (20:55 -0700)]
[PATCH] capability.c cleanup

I started looking into a couple FIXMEs in kernel/capability.c and I
ended up with a fairly largish patch (although not quite so many changes
to object code).

First, it is unsafe to touch task->cap_* while not holding
task_capability_lock.  The most notable occurrence of this is sys_access
which saves the current cap_* values, changes them, does its business,
then restores them.  In between all this they can change and then be
restored to old values.  Unfortunately we cannot just grab the lock here
since the function can sleep - I marked this with a FIXME for now.

Second, I formalized the locking rules with task_capability_lock.  I
declared the lock in include/linux/capability.h so other code can grab
it.

Finally, there is a whole boatload of code cleanup:

        - remove conditional locking/unlocking - that is just gross
        - don't pointlessly grab the read_lock twice
        - add/remove/edit comments
        - change some types (int -> pid_t, etc)
        - static inline two small functions that are called only
          once each
        - remove two FIXMEs
        - general code cleanup for readability and performance

TODO:

        - fix sys_access and other cap_* accesses
        - do something about the annoying oddball 5-space indentation
          in kernel/capability.c !!

Patch is against 2.5.20, please apply.

        Robert Love

23 years ago[PATCH] remove wq_lock_t cruft
Robert Love [Mon, 3 Jun 2002 03:55:19 +0000 (20:55 -0700)]
[PATCH] remove wq_lock_t cruft

This patch removes the whole wq_lock_t abstraction, forcing the behavior
to be that of a standard spinlock and changes all the wq_lock code in
the tree appropriately.

Removes lots of code - always a Good Thing to me.  New behavior is same
as previous behavior (USE_RW_WAIT_QUEUE_SPINLOCK unset).

23 years ago[PATCH] ]PATCH] 2.5.20 IDE 83
Martin Dalecki [Mon, 3 Jun 2002 03:52:31 +0000 (20:52 -0700)]
[PATCH] ]PATCH] 2.5.20 IDE 83

 - Remove last parameter from ide_dump_status. This information is now
   permanently present in device->staus field, so there is not need to pass it
   around.

 - Patch for DVD read through ide-scsi. There is the possibility that we can get
   request structures passed down, which don't have the queue field set.
   At lest on the BIO code path this seems to be something worth further
   investigation. Found by Adam J. Richter. (Jens?)

 - Revert my change to the hostdata handling. I did get it wrong about the way
   host structures are allocated by the generic SCSI layer. It plays
   tricks there.

 - piix driver updates by Vojtech Pavlik.

 - We have a ata_out_regfile, so we should have ata_in_regfile too.

23 years ago[PATCH] 2.5.20 airo wireless - "I can't get no, compilation..."
Martin Dalecki [Mon, 3 Jun 2002 03:52:22 +0000 (20:52 -0700)]
[PATCH] 2.5.20 airo wireless -  "I can't get no, compilation..."

Fix namespace clash with proc stuff an compilation warnings.

23 years agoSplit up "iput()" and make it more readable.
Linus Torvalds [Mon, 3 Jun 2002 03:17:35 +0000 (20:17 -0700)]
Split up "iput()" and make it more readable.

Add "drop_inode" VFS interface to make FS operations cleaner
and race-free.  Remove old force_delete interface, and update
filesystems that used it to use the new infrastructure.

23 years agoarch/*
Arnaldo Carvalho de Melo [Mon, 3 Jun 2002 00:50:11 +0000 (21:50 -0300)]
arch/*
drivers/cdrom/*
drivers/char/*

Fix some copy_{to,from}_user and {put,get}_user error handling,
        get rid of some verify_area, copy_{to,from}_user already checks for errors.

23 years agoKernel version 2.5.20 v2.5.20
Linus Torvalds [Sun, 2 Jun 2002 11:34:52 +0000 (04:34 -0700)]
Kernel version 2.5.20

23 years agoProper usage of isupper/tolower for build scripts.
Linus Torvalds [Sun, 2 Jun 2002 11:34:26 +0000 (04:34 -0700)]
Proper usage of isupper/tolower for build scripts.

23 years agoMerge http://linux-isdn.bkbits.net/linux-2.5.make
Linus Torvalds [Sun, 2 Jun 2002 11:24:30 +0000 (04:24 -0700)]
Merge http://linux-isdn.bkbits.net/linux-2.5.make
into home.transmeta.com:/home/torvalds/v2.5/linux

23 years ago[PATCH] AUDIT 2.5.19: Continuing copy_to/from_user & clear_user
Rusty Russell [Sun, 2 Jun 2002 11:11:14 +0000 (04:11 -0700)]
[PATCH] AUDIT 2.5.19: Continuing copy_to/from_user & clear_user

23 years agoAllow <linux/list.h> to be used even without NULL defined yet.
Linus Torvalds [Sun, 2 Jun 2002 10:43:24 +0000 (03:43 -0700)]
Allow <linux/list.h> to be used even without NULL defined yet.

23 years agoidescsi initialization is done with module_init(), not
Linus Torvalds [Sun, 2 Jun 2002 10:42:44 +0000 (03:42 -0700)]
idescsi initialization is done with module_init(), not
explicitly.

23 years ago[PATCH] 2.5.19 blk.h and more about the ugly kids.
Martin Dalecki [Sun, 2 Jun 2002 10:28:08 +0000 (03:28 -0700)]
[PATCH] 2.5.19 blk.h and more about the ugly kids.

 - Remove DEVICE_INTR and associated code from floppy driver.

 - Savlage s390 xpram code from kernel version dependant compilation disease.

 - Eliminate SET_INTR code from the places where it was used.

 - Eliminate bogous support for multiple sbpcd controllers. The driver didn't
   even compile right now before we could think about further supporting it at
   all we have to get rid of this hack first.
   Don't call invalidate_buffers in the release method there.
   Why should it be necessary?

 - Resurrect sonycd535 compilation.

 - Let CURRENT request macro use the same primitive at the remaining QUEUE macro
   in blk.h, which is still not quite right, but first things first :-).

23 years ago[PATCH] dirsync support for minixfs, sysvfs and ufs
Andrew Morton [Sun, 2 Jun 2002 10:24:41 +0000 (03:24 -0700)]
[PATCH] dirsync support for minixfs, sysvfs and ufs

Makes minixfs, sysvfs and ufs understand `mount -o dirsync'.

23 years ago[PATCH] rename flushpage to invalidatepage
Andrew Morton [Sun, 2 Jun 2002 10:24:28 +0000 (03:24 -0700)]
[PATCH] rename flushpage to invalidatepage

Fixes a pet peeve: the identifier "flushpage" implies "flush the page
to disk".  Which is very much not what the flushpage functions actually
do.

The patch renames block_flushpage and the flushpage
address_space_operation to "invalidatepage".

It also fixes a buglet in invalidate_this_page2(), which was calling
block_flushpage() directly - it needs to call do_flushpage() (now
do_invalidatepage()) so that the filesystem's ->flushpage (now
->invalidatepage) a_op gets a chance to relinquish any interest which
it has in the page's buffers.

23 years ago[PATCH] tmpfs bugfixes
Andrew Morton [Sun, 2 Jun 2002 10:24:15 +0000 (03:24 -0700)]
[PATCH] tmpfs bugfixes

A patch from Hugh Dickins which fixes a couple of error-path leaks
related to tmpfs (I think).

Also fixes a yield()-inside-spinlock bug.

It also includes code to clear the final page outside i_size on
truncate.  tmpfs should be returning zeroes when a truncated file is
later expanded and it currently is not.

Hugh is taking care of the 2.4 fix for this.

23 years ago[PATCH] put in-memory filesystem dirty pages on the correct list
Andrew Morton [Sun, 2 Jun 2002 10:24:04 +0000 (03:24 -0700)]
[PATCH] put in-memory filesystem dirty pages on the correct list

Replaces SetPageDirty() with set_page_dirty() in several places related
to in-memory filesystems.

SetPageDirty() is basically always the wrong thing to do.  Pages should
be moved to the ->dirty_pages list when dirtied so that writeback can
see them.

Without this change, dirty pages against in-memory filesystems would
churn around on the inactive list all the time, rather than getting
pushed away onto the active list.  A minor efficiency thing.

23 years ago[PATCH] fix race between writeback and unlink
Andrew Morton [Sun, 2 Jun 2002 10:23:54 +0000 (03:23 -0700)]
[PATCH] fix race between writeback and unlink

Fixes a race between unlink and writeback: on the sys_sync() and
pdflush paths the caller does not have a reference against the inode.

So run __iget prior to dropping inode_lock.

Oleg Drokin reported this and seems to believe that it fixes the
crashes he was observing.  But I was never able to reproduce them..

23 years ago[PATCH] swapcache bugfixes
Andrew Morton [Sun, 2 Jun 2002 10:23:42 +0000 (03:23 -0700)]
[PATCH] swapcache bugfixes

Fixes a few lock ranking bugs (and deadlocks) related to
swap_list_lock(), swap_device_lock(), mapping->page_lock and
mapping->private_lock.

- Cannot call block_flushpage->try_to_free_buffers() inside
  mapping->page_lock.  Because __set_page_dirty_buffers() takes
  ->page_lock inside ->private-lock.

- Cannot call swap_free->swap_list_lock/swap_device_lock inside
  mapping->page_lock because exclusive_swap_page() takes ->page_lock
  inside swap_info_get().

The patch also removes all the block_flushpage() calls from the swap
code in favour of a direct call to try_to_free_buffers().

The theory is that the page is locked, there is no I/O underway, nobody
else has access to the buffers so they MUST be freeable.  A bunch of
BUG() checks have been added, and unless someone manages to trigger
one, the "block_flushpage() inside spinlock" problem is fixed.

23 years ago[PATCH] give swapper_space a set_page_dirty a_op
Andrew Morton [Sun, 2 Jun 2002 10:23:30 +0000 (03:23 -0700)]
[PATCH] give swapper_space a set_page_dirty a_op

Give swapper_space a ->set_page_dirty() address_space_operation.

So swapcache pages do not need special-casing in
set_page_dirty_buffers().

23 years ago[PATCH] direct-to-BIO writeback for writeback-mode ext3
Andrew Morton [Sun, 2 Jun 2002 10:23:19 +0000 (03:23 -0700)]
[PATCH] direct-to-BIO writeback for writeback-mode ext3

Turn on direct-to-BIO writeback for ext3 in data=writeback mode.

23 years ago[PATCH] rename block_symlink() to page_symlink()
Andrew Morton [Sun, 2 Jun 2002 10:23:07 +0000 (03:23 -0700)]
[PATCH] rename block_symlink() to page_symlink()

block_symlink() is not a "block" function at all.  It is a pure
pagecache/address_space function.  Seeing driverfs calling it was
the last straw.

The patch renames it to `page_symlink()' and moves it into fs/namei.c

23 years ago[PATCH] remove inode.i_wait
Andrew Morton [Sun, 2 Jun 2002 10:22:54 +0000 (03:22 -0700)]
[PATCH] remove inode.i_wait

Remove i_wait from struct inode and hash it instead.

This is a pure space-saving exercise - 12 bytes from struct
inode on x86.

NFS was using i_wait for its own purposes.  Add a wait_queue_head_t to
the fs-private inode for that.  This change has been acked by Trond.

23 years ago[PATCH] buffer_boundary() for ext3
Andrew Morton [Sun, 2 Jun 2002 10:22:42 +0000 (03:22 -0700)]
[PATCH] buffer_boundary() for ext3

Implement buffer_boundary() for ext3.

buffer_boundary() is an I/O scheduling hint which the filesystem's
get_block() function passes up to the BIO assembly code.  It is
described in fs/mpage.c

The time to read 1,000 52 kbyte files goes from 8.6 seconds down to 2.9
seconds.  52 kbytes is the worst-case size.

23 years ago[PATCH] speed up writes
Andrew Morton [Sun, 2 Jun 2002 10:22:29 +0000 (03:22 -0700)]
[PATCH] speed up writes

Speeds up generic_file_write() by not calling mark_inode_dirty() when
the mtime and ctime didn't change.

There may be concerns over the fact that this restricts mtime and ctime
updates to one-second resolution.  But the interface doesn't support
that anyway - all the filesystem knows is that its dirty_inode()
superop was called.  It doesn't know why.

So filesystems which support high-resolution timestamps already need to
make their own arrangements.  We need an update_mtime i_op to support
those properly.

time to write a one megabyte file one-byte-at-a-time:

Before:
ext3: 24.8 seconds
ext2:  4.9 seconds
reiserfs: 17.0 seconds
After:
ext3: 22.5 seconds
ext2: 4.8  seconds
reiserfs: 11.6 seconds

Not much improvement because we're also calling expensive
mark_inode_dirty() functions when i_size is expanded.  So compare the
overwrite case:

time dd if=/dev/zero of=foo bs=1 count=1M conv=notrunc

ext3 before: 20.0 seconds
ext3 after: 9.7  seconds

23 years ago[PATCH] fix swapcache packing in the radix tree
Andrew Morton [Sun, 2 Jun 2002 10:22:17 +0000 (03:22 -0700)]
[PATCH] fix swapcache packing in the radix tree

First some terminology: this patch introduces a kernel-wide `pgoff_t'
type.  It is the index of a page into the pagecache.  The thing at
page->index.  For most mappings it is also the offset of the page into
that mapping.  This type has a very distinct function in the kernel and
it needs a name.  I don't have any particular plans to go and migrate
everything so we can support 64-bit pagecache indices on x86, but this
would be the way to do it.

This patch improves the packing density of swapcache pages in the radix
tree.

A swapcache page is identified by the `swap type' (indexes the swap
device) and the `offset' (into that swap device).  These two numbers
are encoded into a `swp_entry_t' machine word in arch-specific code
because the resulting number is placed into pagetables in a form which
will generate a fault.

The kernel also need to generate a pgoff_t for that page to index it
into the swapper_space radix tree.  That pgoff_t is usually
bitwise-identical to the swp_entry_t.  That worked OK when the
pagecache was using a hash.  But with a radix tree, it produces
catastrophically bad results.

x86 (and many other architectures) place the `type' field into the
low-order bits of the swp_entry_t.  So *all* swapcache pages are
basically identical in the eight low-order bits.  This produces a very
sparse radix tree for swapcache.  I'm observing packing densities of 1%
to 2%: so the typical 128-slot radix tree node has only one or two
pages in it.

The end result is that the kernel needs to allocate approximately one
new radix-tree node for each page which is added to the swapcache.  So
no wonder we're having radix-tree node exhaustion during swapout!
(It's actually quite encouraging that the kernel works as well as it
does).

The patch changes the encoding of the swp_entry_t so that its
most-significant bits contain the `type' field and the
least-significant bits contain the `offset' field, right-aligned.

That is: the encoding in swp_entry_t is now arch-independent.  The new
file <linux/swapops.h> has conversion functions which convert the
swp_entry_t to and from its machine pte representation.

Packing density in the swapper_space mapping goes up to around 90%
(observed) and the kernel is tons happier under swap load.

An alternative approach would be to create new conversion functions
which convert an arch-specific swp_entry_t to and from a pgoff_t.  I
tried that.  It worked, but I liked it less.