The irda tty line discipline does not handle the new module
paradigm well. This patch fixes that:
- initialize line discipline as data, not with code
- set module owner
- make prototype for irtty_ioctl match expected
arguments from tty discipline
- get rid of explicit MOD_INC/MOD_DEC
Working on converting IRDA to new netdevice semantics, this is the first
of some of the small things I found.
The irtty hashbin is created, maintained and never used.
Motivation for removing is that the hashbin locking has problems with
the locking assumptions in on network device removal.
Now that unregister_sysfs got smaller, just eliminate it and call
class_device_unregister directly. netdev_finish_unregister is called
one place, therefore it is easier to understand if we just put those
few lines into wait_allrefs state machine.
[NET]: net-sysfs - use attribute group instead of kobject for statistics.
Net statistics were in a kobject only because there was no better way
to create a directory. Latest 2.6.0-test3 bk tree, has merged in
Pat's change to provide 'attribute groups'.
This patch converts netdevice's from a statistic's kobject to attribute
group. This is cleaner and fixes some shutdown unload issues as well.
- define format strings once rather than N times
- add GNU license that I forgot in original code
- move read_lock out from format_address to show_address so
device is alive test is inside of lock.
Kyle McMartin [Sat, 16 Aug 2003 00:36:53 +0000 (17:36 -0700)]
[IPSEC]: Add support for Twofish and Serpent.
This patch adds support for the use of twofish and serpent as
ESP algorithms. The ESP index numbers given are in accordance
with RFC2407, draft-ietf-ipsec-ciph-aes-cbc-00 (before Rijndael
was selected), and KAME which assigns 253 to twofishcbc.
Support for using twofish was requested on linux-kernel, and
since I noticed serpent was missing too, included that as well.
Driver Core: add warnings if .release functions are not set for objects.
This has been in the -mm tree for a while and has helped a lot in finding
lots of improper users of the driver core. It also moves the driver core
code up quite a few levels on the "Rusty's guide to kernel APIs".
David Brownell [Fri, 15 Aug 2003 03:01:55 +0000 (20:01 -0700)]
[PATCH] USB: usb_start_wait_urb() rewrite
The code that manges the synchronous control/bulk calls has
been a mess for ages. This patch rewrites it using:
- "struct completion" instead of a usb-internal clone therof,
- prepare_to_wait()/finish_wait() instead of the tangled
mess it now uses (or a new wait_event_timeout call, as in
previous versions of this patch).
Dave Jones [Fri, 15 Aug 2003 15:31:32 +0000 (16:31 +0100)]
[AGPGART] Move ATI PCI IDs to pci_ids.h
- sort some of the ATI entries. (note, there are dupes in there
that could be fixed up at some point).
- Rename PCI_DEVICE_ID_RADEON_IGP to ATI_RS100.
RadeonIGP is the family, not the specific chip.
Andrew Morton [Thu, 14 Aug 2003 18:31:12 +0000 (11:31 -0700)]
[PATCH] AS: update as_requeue_request()
- Ensure that arq->state is always set (ie. even if io context
allocation failed).
- Call as_antic_stop() unconditionally - which checks for the same
condition. There are other callers which make the same check and should
be changed too...
Ingo Molnar [Thu, 14 Aug 2003 18:26:03 +0000 (11:26 -0700)]
[PATCH] More timer race fixes
Patch from Julie DeWandel.
This patch has solved the crashes observed during TPC-C runs on the
16-way box. (I'm confident it will fix the other reported cases as
well.)
The race is the setting of timer->base to NULL, by del_timer() or
__run_timers(). If new_base == old_base in __mod_timer() then we do not
re-check timer->base after getting the lock. (the only case where we do
not have to re-check the base is in the !old_base case, but the else
branch also includes the old_base==new_base case.)
The __run_timers() case made the lock_timer() patch not work fully - we
cannot use lock_timer() in __run_timers() due to lock ordering.
Andrew Morton [Thu, 14 Aug 2003 17:25:29 +0000 (10:25 -0700)]
[PATCH] SELinux inode security init
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch reworks the SELinux module code that handles inodes initialized
before the policy is initially loaded to also cover the case where a pseudo
filesystem such as selinuxfs or nfsd directly populate themselves.
The list of inode security structures is split into per-superblock lists
associated with each superblock security structure, and the initialization
is performed by superblock_doinit.
Andrew Morton [Thu, 14 Aug 2003 17:25:14 +0000 (10:25 -0700)]
[PATCH] Docbook: Make mandocs output more terse
From: Michael Still <mikal@stillhq.com>
This patch takes into account requests from various LKML members for the
mandocs output to be more terse. Information about the copyright, and
formatting of the man page is moved into a comment at the start of the
groff output.
Sample output can be found at:
http://www.stillhq.com/linux/mandocs/2.6.0-test3-bk1/
Andrew Morton [Thu, 14 Aug 2003 17:24:59 +0000 (10:24 -0700)]
[PATCH] Use mark_page_accessed() in follow_page()
Touching a page via follow_page() counts as a reference so we should be
either setting the referenced bit in the pte or running mark_page_accessed().
Altering the pte is tricky because we haven't implemented an atomic
pte_mkyoung(). And mark_page_accessed() is better anyway because it has more
aging state: it can move the page onto the active list.
Andrew Morton [Thu, 14 Aug 2003 17:24:35 +0000 (10:24 -0700)]
[PATCH] bugfix for initialization bug in adm1021 driver
From: Rusty Lynch <rusty@linux.co.intel.com>
While initializing the adm1021 device, the driver is performing a conversion
from fixed point to Celcius on values that were declaired as Celcius. On my
Dell Precision 220 this results in a shutdown after a couple of minutes
running.
Andrew Morton [Thu, 14 Aug 2003 17:24:28 +0000 (10:24 -0700)]
[PATCH] Better argument size tracking in fs/exec.c
From: Matthew Wilcox <willy@debian.org>
Introduce a new variable "arg_size" and set it appropriately in each arm of
the CONFIG_STACK_GROWSUP. This patch fixes a bug for PA-RISC and makes the
code cleaner for everyone.
Andrew Morton [Thu, 14 Aug 2003 17:23:58 +0000 (10:23 -0700)]
[PATCH] Make 16-way x440's boot
From: Matthew Dobson <colpatch@us.ibm.com>
16 proc x440 boxen aren't booting mainline kernels right now for many valid
configs. This patch makes sure NUMA codepaths aren't executed for SMP
configs. It also adds some sane error messages to the code, and cleans up
some #ifdefs.
Andrew Morton [Thu, 14 Aug 2003 17:23:22 +0000 (10:23 -0700)]
[PATCH] ipmi_kcs_intf.c compile warning
From: Zwane Mwaikambo <zwane@linuxpower.ca>
drivers/char/ipmi/ipmi_kcs_intf.c: In function `acpi_find_bmc':
drivers/char/ipmi/ipmi_kcs_intf.c:1088: warning: long unsigned int format, different type arg (arg 2)
drivers/char/ipmi/ipmi_kcs_intf.c:1088: warning: long unsigned int format, different type arg (arg 2)
Andrew Morton [Thu, 14 Aug 2003 17:23:06 +0000 (10:23 -0700)]
[PATCH] keyboard.c warning fix
drivers/char/keyboard.c: In function `k_fn':
drivers/char/keyboard.c:665: warning: comparison is always true due
to limited range of data type
I didn't want to just delete the code because one day the size of func_table
may get smaller, or the type of `value' may get larger. When that happens,
the test becomes valid again.
Andrew Morton [Thu, 14 Aug 2003 17:22:44 +0000 (10:22 -0700)]
[PATCH] request_firmware fix
From: Manuel Estrada Sainz <ranty@debian.org>
- undo recent change, made in the believe that "buffer" was the size of
the whole file, it is just PAGE_SIZE in size. This was causing kernel
memory corruption.
- Since files are allowed to have unknown sizes, by setting their
size to 0, we can't preallocate a buffer of their size on open.
- Adapt request_firmware() to the sysfs change.
- Adapt drivers/pci/pci-sysfs.c to the sysfs change.
Andrew Morton [Thu, 14 Aug 2003 17:22:37 +0000 (10:22 -0700)]
[PATCH] loop oops fix
loop-on-file oopses during unmount. This is because lo_queue is now freed
during lo_ioctl(LOOP_CLR_FD). I think the scenario is:
1: umount(8) opens /dev/loop0
2: umount(8) runs lo_ioctl(LOOP_CLR_FD) (this frees the queue)
3: umount(8) closes the /dev/loop0 handle. The blockdev layer syncs the
blockdev, but its mapping->backing_dev_info now points into la-la-land.
We shouldn't be freeing the queue until all refs to it have gone away. This
patch gives the queue the same lifetime as the controlling loop_device
itself. It also makes the loop driver's queue appear in sysfs again.
It would be better to free the queue when the device is not in use, but I'm
not sure how we can hook into the blockdev layer to do that.
Andrew Morton [Thu, 14 Aug 2003 17:22:18 +0000 (10:22 -0700)]
[PATCH] fix hugetlbfs slab corruption on umount
From: Zwane Mwaikambo <zwane@linuxpower.ca>
hugetlbfs was accessing super_block->s_fs_info after free'ing it. This was
because it was being free'd prematurely. I have deferred free until
->put_super(). I have also removed hugetlbfs_kill_super since it now is
simply a kill_litter_super.
Andrew Morton [Thu, 14 Aug 2003 17:21:45 +0000 (10:21 -0700)]
[PATCH] Make MTRR init conform with recommended procedure
From: Zwane Mwaikambo <zwane@linuxpower.ca>
This is a patch to make the MTRR initialisation more conformant with what
is stated in volume 3 of (10-36 Memory Cache Control). The most notable
change is entering the no-fill cache mode before clearing the PGE bit in
cr4. Intel also states that we should do the cache flush via the cr3
register shuffle. If there is a problem with the patch please don't
hesitate to beat me vigorously with a clue-by-four.
It has been tested on a 3x Pentium 133, 8x PIII Xeon 700, 1x Celeron 550 and 32x
PIII 500 NUMAQ (hardware courtesy of OSDL)
Andrew Morton [Thu, 14 Aug 2003 17:21:10 +0000 (10:21 -0700)]
[PATCH] _devfs_walk_path fix
From: Andrey Borzenkov <arvidjaar@mail.ru>
_devfs_walk_path does not check if de it is about to scan is a directory.
Next step is spinlock on non-spinlock memory. It requires either artificial
setup or really broken driver but fairly easy to reproduce once you know how.