Martin Dalecki [Mon, 18 Mar 2002 02:57:21 +0000 (18:57 -0800)]
[PATCH] 2.5.7-pre2 IDE 22a
- Apply more patches from Vojtech Pavlik for the handling of host chip setup.
Hopefully they are settled now.
- Kill unused CONFIG_BLK_DEV_MODES
- Push register addressing down in to task_vlb_sync.
- Make the taskfile parsing stuff actually readable. This is compressing the
code by an incredible amount. We use just one function doing the whole
scanning right now. This should make sure that the IRQ handler used by a
particular command is always right. I didn't introduce typos hopefully
here.
- Don't call ide_handler_parser as argument for do_taskfile() any longer. We
have killed this function by coalescing it's functionality with
ide_cmd_type_parser() anyway.
- Kill unused SLC90E66 code, which Vojtech apparently missed in his patch.
- sync up with 2.5.7-pre2
Once again the actual patch is rather big mostly due to the removal of
some default configuration variables which are not used anylonger. So time for
the next patch stage.
David Brownell [Mon, 18 Mar 2002 02:37:33 +0000 (18:37 -0800)]
[PATCH] PATCH -- pci_pool and CONFIG_DEBUG_SLAB
I got burnt one too many time by mismatches between
the pci_pool and "real" slabs... something changed in
mm/slab.c and broke a driver, so I'm going for the real
fix this time. Having poisoning that _works_ is a huge
help in the innards of the USB host controller drivers.
This patch gets rid of some #ifdefs and makes the pci_pool
code poison memory if CONFIG_DEBUG_SLAB is set.
The functionality has always been there, but this makes
it simpler to get at.
Several functions in the serial drivers can be called from bottom
half or interrupt context. They must use the GFP_ATOMIC flag for
calls to kmalloc() and usb_submit_urb().
Functions which must use GFP_ATOMIC:
1. All *_callback() functions.
2. Any code which is inside a spinlock.
3. write(), throttle(), unthrottle(), which may be called by
the line discipline in bottom half context.
Functions which can use GFP_KERNEL:
1. open(), close(), startup(), shutdown(), set_termios().
Simon Evans [Sun, 17 Mar 2002 02:29:11 +0000 (18:29 -0800)]
USB catc driver
Here is a patch to add support for F5U011 to catc.c driver. The
patch has been compile tested against 2.5.6 and 2.5.7pre1
(and tested against 2.5.5-dj1) and should apply cleanly.
Paul Stewart [Sun, 17 Mar 2002 02:14:24 +0000 (18:14 -0800)]
USB Urefs for hid-core/hiddev
I've written a patch Vojtech and I discussed for enhancing the
hiddev code to optionally provide more detailed output on read().
The old functionality is still supported by default, and in
situations where HID usage codes are unique across reports, the
old method is still preferable due to its terseness.
The new method provides the ability to determine exactly which
value has changed, in cases where the HID usage codes are not
unique. It also provides a means to optionally receive notification
when input reports are received from the device, whether or not
any of the values in the report have changed.
The details of the changes are as follows:
- All current code behaves identically
- A new ioctl pair HIDIOCGFLAG/HIDIOCSFLAG gets and clears
flags on the hiddev device.
- If you set the flag HIDDEV_FLAG_UREF, the read() call switches
from reading hiddev_event structures to hiddev_usage_ref
structures. The change takes effect immediately, even to
already queued events that haven't been read() yet. Here's
an example of enabling FLAG_UREF:
{
int flag = HIDDEV_FLAG_UREF;
if (ioctl(fd, HIDIOCSFLAG, &flag) != 0) {
perror("ioctl");
exit(1);
}
}
- With the HIDDEV_FLAG_REPORT set (which is only allowed if
HIDDEV_FLAG_UREF is also set), there is a special uref that
will be read() in addition to the ones corresponding to
changes in the device state: when uref.field_index is set to
HID_FIELD_INDEX_NONE, this uref is a notification that the
report referred to by report_type and report_id has been
received from the device. This can be useful in situations
when the notification of the arrival of a report is useful
even if there is no change in state.
David Paschal [Sun, 17 Mar 2002 02:07:21 +0000 (18:07 -0800)]
USB printer update
- bind to 7/1/2 alternate setting by default, to fix printing with HP
LaserJet 1200 and 2200
- ioctls needed by the GPL user-mode IEEE 1284.4 driver which is part of
the HP OfficeJet Linux driver (http://hpoj.sourceforge.net):
- dynamic switching between 7/1/[123] alternate settings
- sending HP vendor-specific channel-change-request to support
memory card readers on HP PhotoSmart printers
- inquire more information about the peripheral, including
/proc/bus/usb/xx/yy linkage to get even more information
- fix apparent array overflow (by 1 entry) in usblp_probe when more than
the maximum number of USB printers are connected
- for the 2.2 version, added MODULE_{INC,DEC}_USE_COUNT to prevent rmmoding
of printer.o (and subsequent OOPSes) while a USB printer device is open
- cleaned up the code in a few places by consolidating duplicated code
Linus Torvalds [Sat, 16 Mar 2002 07:58:39 +0000 (23:58 -0800)]
Fix up ACPI so that it seems to work in the new world order:
make driverfs initialize early, so that ACPI can come alive
in a world where you can register devices.
The appended patch brings the fixes applied in 2.4 to shmem.c to 2.5.
In Detail:
- Add needed checks for shmem_file_write and shmem_symlink
- Add Documentation/filesystems/tmpfs.txt and adjust Config.help
- Add uid and gid mount options
- Make the error messages more user friendly
Andy Grover [Fri, 15 Mar 2002 07:28:59 +0000 (23:28 -0800)]
[PATCH] ACPI patch 9/9
If you could only review one of the 9 patches, this would be the one.
- removes acpitable.c vestiges
- adds ACPI IRQ routing support to PCI (disableable via pci=noacpi option)
- adds code to get a <1MB page for sleep, and ACPI boot to setup.c
- allocates another page in the fixmap for ACPI
- changes driverfs a little to work better with ACPI.
Andy Grover [Fri, 15 Mar 2002 07:28:46 +0000 (23:28 -0800)]
[PATCH] ACPI patch 6/9
This removes the old OSPM code. It lived under drivers/acpi/ospm/*, but
the new code just lives in drivers/acpi, and removes some unnecessary
abstraction that this old code had.
Andy Grover [Fri, 15 Mar 2002 07:28:27 +0000 (23:28 -0800)]
[PATCH] ACPI patch 3/9
This patch updates the acpi IA32 arch-specific files. Part of this is
taking what was acpitable.c and implementing it with better integration
with the rest of the ACPI code.
Andy Grover [Fri, 15 Mar 2002 07:28:19 +0000 (23:28 -0800)]
[PATCH] ACPI patch 1/9
This is the first of 9 patches. We did a complete rewrite of the
Linux-specific code, so we wait for things to stabilize before submitting.
There will be more updates, but *much* smaller.
The patch below eliminates a case of boot_cpu_data corruption
on SMP x86 machines. This was first observed on SMP Athlons,
but it also affects SMP Intel boxes in a less serious way.
When the secondary processors boot and execute head.S:checkCPUtype,
the code performs a 32-bit write of a small constant to the
byte-sized variable boot_cpu_data.x86 (X86 in head.S). Since the
write is 32-bit, it also writes zeros to the following 3 bytes,
which clobbers the x86_vendor, x86_model, and x86_mask fields
previously set up by check_bugs()'s call to identify_cpu().
Thus, after smp_init(), boot_cpu_data will _always_ identify
the CPU as an Intel (X86_VENDOR_INTEL == 0 in processor.h) with
model 0 and stepping 0.
The effect in standard kernels is not catastrophic, since:
(a) most SMP x86 boxes are Intel
(b) most uses of x86_vendor occur before smp_init() or reference
the SMP cpu_data[] array
(c) most post-boot references to boot_cpu_data occur in the
cpu_has_XXX macros which only read the x86_capability[] array
However, third-party extensions (like my x86 performance-monitoring
conters driver) can get seriously confused by this mis-identification.
Brian Gerst [Fri, 15 Mar 2002 07:15:55 +0000 (23:15 -0800)]
[PATCH] Fix NR_IRQS when no IO apic
NR_IRQS should be 16 when the IO apic is not configured, as the 8259 PIC
cannot generate any more interrupts. It also fixes a bug where the IDT
gets populated with random addresses, since only 16 entry stubs are
created.
Brian Gerst [Fri, 15 Mar 2002 07:15:51 +0000 (23:15 -0800)]
[PATCH] Cleanup F00F bug code
This changes the F00F bug workaround code to use the fixmap facilities
instead of touching the page tables directly. It also removes the
assumption that only 686's don't have the bug. I have confirmation that
the patch works on buggy pentiums.
Alexander Viro [Fri, 15 Mar 2002 07:06:10 +0000 (23:06 -0800)]
[PATCH] proc_pid_make_inode() fix
In case if proc_pid_make_inode() steps on exiting task we do
iput() and return NULL. Unfortunately, in that case inode->i_ino
doesn't look like inumber of a per-process inode and we take the
wrong path in proc_delete_inode(). I.e. do dput(PDE(inode)). Which
is left uninitialized...
We used to get out with that almost by accident - that code
worked only because we had zeroed out one field of union and that
guaranteed that another field would be NULL. It worked, but broke
at the first occasion.
Alexander Viro [Fri, 15 Mar 2002 07:06:06 +0000 (23:06 -0800)]
[PATCH] nfsd as filesystem
* introduces a new filesystem - nfsd. No, it's not a typo. It's a small
tree with fixed topology defined by nfsd and IO on its files does what
we used to do by hand in nfsctl.c.
* turns sys_nfsservctl() into a sequence of open()/write()/read()/close()
It works as it used to - we don't need nfsd to be mounted anywhere, etc.
* nfsd_linkage ugliness is gone.
* getfs and getfh demonstrate (rather trivial) example of "descriptor as
transaction descriptor" behaviour.
* we are fairly close to the situation when driver-defined filesystems can
be done with practically zero code overhead. We are still not there, but
it's a matter of adding a couple of helpers for populating the tree.
One thing we get immediately is a cleanup of sys_nfsservctl() -
it got _much_ better. Moreover, we get an alternative interface that
uses normal file IO and can be used without magic syscalls.
Alexander Viro [Fri, 15 Mar 2002 07:05:58 +0000 (23:05 -0800)]
[PATCH] fs/libfs.c
Linus, I've taken a bunch of common methods into fs/libfs.c and
killed the (duplicated) instances in filesystems. There will be more -
ideally I'd like to get a library that would make writing small filesystems
trivial.
Russell King [Fri, 15 Mar 2002 06:44:22 +0000 (22:44 -0800)]
[PATCH] 2.4 and 2.5: remove Alt-Sysrq-L
The following patch removes Alt-Sysrq-L and its associated hack to kill
of PID1, the init process. This is a mis-feature.
If PID1 is killed, the kernel immediately enters an infinite loop in the
depths of do_exit() with interrupts disabled, completely locking the
machine. Obviously you can only reach for the reset button or power
switch after this, leaving you with dirty filesystems.
Russell King [Fri, 15 Mar 2002 06:44:18 +0000 (22:44 -0800)]
[PATCH] 2.5 and 2.4: fix PCI IO BAR flags
There is a problem where the resource flags sometimes contain bits from
the address part of the PCI BAR, especially when you have the low address
bit set for an IO BAR.
(bit 3 of a PCI IO BAR is an address bit, and (bar & 0xf) propagates this
to res->flags).
This exists in Ivan Kokshaysky PCI patches, and so far hasn't made it into
the kernel. It's required for IDE on certain ARM machines to even work.