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.
Eli Kupermann [Thu, 14 Mar 2002 21:39:16 +0000 (16:39 -0500)]
e100 net driver update 4/4:
- switch to yield function as suggested by you, Arjan and Andrew.
- fixed broken logic in the use of time_before/time_after - possible
bug cause in previous design - in most of the places we were going to sleep
and than check if time expires before checking if condition is satisfied.
If, for example, we needed to wait up to 3 jiffies we could do
schedule_timeout(1) and get up after 4 ticks check that time expired and go
away crying about failure without checking that condition is OK.(in fact I
saw it happen on one SMP platform here).
Eli Kupermann [Thu, 14 Mar 2002 21:38:16 +0000 (16:38 -0500)]
e100 net driver update 3/4:
- added pci flushing in the e100_set_intr_mask function (pci posting bug)
- better logic in the prepare_xmit_buff function moving some tx
buffer initialization code to the start of the function.
Eli Kupermann [Thu, 14 Mar 2002 21:37:00 +0000 (16:37 -0500)]
e100 net driver update 2/4:
- remove dummy defines and also ia64 specific [Arjan's notes [:-)] ]
- fixed problem in e100_check_options function reported by our Q/A
Benjamin LaHaise [Thu, 14 Mar 2002 21:20:01 +0000 (16:20 -0500)]
Updates to ns83820 gige net driver:
* Use likely() and unlikely() for better branch prediction
* Various small cleanups
* Much improved interrupt mitigation
* Much improved throughput
David S. Miller [Thu, 14 Mar 2002 18:14:21 +0000 (10:14 -0800)]
Netfilter updates from Harald Welte and myself:
1) implement missing ip_conntrack_protocol_unregister function
2) export ip_conntrack_unexpect_related symbol
3) add support for destination nat on locally initiated connections
4) add hooks for the filtering of ARP packets
Jeff Garzik [Wed, 13 Mar 2002 18:31:55 +0000 (13:31 -0500)]
Small cleanups for the PCI MWI feature:
* Generic helper function name change, s/pdev_set_mwi/pci_generic_prep_mwi/
* Fix: Generic helper function ifdef'd out if arch function present
* PCI MWI arch handler name change, s/pcibios_set_mwi/pcibios_prep_mwi/
* Fix typos and speling errors in comments.
* Cleanup printk message a bit.
David Mosberger [Wed, 13 Mar 2002 16:28:41 +0000 (08:28 -0800)]
Make main-title more concise.
Rename "General setup" to "Processor type and features".
Move ACPI types after the point where HP_SIM gets defined.
Pick up HP Ski configuration options from arch/ia64/hp/Config.in.
David S. Miller [Wed, 13 Mar 2002 09:04:16 +0000 (01:04 -0800)]
Integrate NAPI work done by Jamal Hadi Salim,
Robert Olsson, and Alexey Kuznetsov. This changeset adds
the framework and implementation, but drivers need to be
ported to NAPI in order to take advantage of the new
facilities. NAPI is fully backwards compatible, current
drivers will continue to work as they always have.
NAPI is a way for dealing with high packet load. It allows
the driver to disable the RX interrupts on the card and enter
a polling mode. Another way to describe NAPI would be as
implicit mitigation. Once the device enters this polling
mode, it will exit back to interrupt based processing when
the receive packet queue is purged.
A full porting and description document is found at:
Documentation/networking/NAPI_HOWTO.txt
and this also makes reference to Usenix papers on the
web and other such resources available on NAPI.
NAPI has been found to not only increase packet processing
rates, it also gives greater fairness to the other interfaces
in the system which are not experiencing high packet load.
David S. Miller [Wed, 13 Mar 2002 06:50:48 +0000 (22:50 -0800)]
Sparc64 updates:
1) Fix EBUS register probing
2) Add some missing ioctl32 translations
3) Add sys_futex entries for sparc/sparc64
4) Add platform-specific pcibios_set_mwi implementation
for sparc64
5) Fix set_brkpkt implementation so it works on UltraSPARC-III
Tapio Laxström [Wed, 13 Mar 2002 06:34:39 +0000 (22:34 -0800)]
USB Emagic EMI 2I6 support to kernel
Here is patch against linuxusb.bkbits.net LINUX_2.4.19-pre2 export, which
adds Emagic EMI 2|6 usb audio interface firmware loader support to linux
kernel.
I also have other kernel patches and emi26 cvs export available at:
http://www.vtoy.fi/~tapio/emi26.html