Russell King [Wed, 17 Sep 2003 13:47:14 +0000 (14:47 +0100)]
[ARM] Clean up PCI error reporting.
Don't try to clear PCI status on devices which are no longer present.
Only clear PCI status bits which we're interested in.
Use pci_name to report the device name.
Russell King [Tue, 16 Sep 2003 23:31:42 +0000 (00:31 +0100)]
[ARM] Detect and fix up CPUs with non-coherent write buffers.
Jamie Lokier's cache testing program discovered a problem which seems
to be present in some CPU write buffers. This cset allows the kernel
to detect the flaw and activate a workaround to restore the user
space expectations.
Russell King [Tue, 16 Sep 2003 20:46:00 +0000 (21:46 +0100)]
[ARM] Update ARM CPU support.
Move ARM CPU configuration to arch/arm/mm. Seperate out the selection
of the abort, cache handling, optimised page copying and TLB handling
from the Makefile, and move it into the configuration system. This
allows us to select the correct files in arch/arm/mm and pick the
appropriate definitions in include/asm-arm/* based upon a config
symbol rather than a bunch of configuration symbols.
Also add ARM1020E, ARM1022 and ARM1026 CPU support.
Monotonic clock code uses reader/writer lock which is prone to same
starvation problems as we saw with xtime. This patch changes it to seq_lock
which is faster and won't starve writers in face of lots of readers.
Jan Harkes [Tue, 16 Sep 2003 10:33:57 +0000 (03:33 -0700)]
[PATCH] Coda updates [5/5]
Introduce a new kernel-userspace interface that uses 128-bit file
identifiers instead of the previously used 96-bit fileids. We also
replacing the coda_creds structure with only the fsuid.
This new API has been used by for a couple of months now, people had to
patch their kernels whenever they want to run a current Coda release.
A new Kconfig option is added to fall back on the old API for older Coda
clients and other userspace filesystems that might use our protocol.
Jan Harkes [Tue, 16 Sep 2003 10:33:45 +0000 (03:33 -0700)]
[PATCH] Coda updates [4/5]
The ViceFid structure is really a Coda server datatype and the kernel
really shouldn't have to know its internal structure. Replace all
instances with struct CodaFid with opaque members.
Jan Harkes [Tue, 16 Sep 2003 10:33:32 +0000 (03:33 -0700)]
[PATCH] Coda updates [3/5]
Both userspace and the kernel are testing only the fsuid part of the
coda_creds credentials structure. Nothing else is really used, so we now
match the code with the actual usage by only passing fsuid around. The
kernel-userspace API is kept compatible (for now).
Jan Harkes [Tue, 16 Sep 2003 10:32:51 +0000 (03:32 -0700)]
[PATCH] Coda updates [1/5]
- Remove unused functions and variables.
- Be a bit more strict with the definition of various types that are
shared between kernel and userspace.
- Included a couple of cleanups from Maximilian Attems and Stephen
Hemminger.
Dave Kleikamp [Tue, 16 Sep 2003 02:24:02 +0000 (21:24 -0500)]
JFS: Fix rampant data corruption
A recent change causes pervasive data corruption by over-writing inode
metadata with a word of garbage. The field, di_rdev, should only be set
for a device inode.
Russell Cattelan [Mon, 15 Sep 2003 08:03:45 +0000 (03:03 -0500)]
[XFS] IRIX sets KM_SLEEP to 0 but the support routines sets KM_SLEEP to 1.
So somebodys shortcut on irix is incorrect on linux and results in the sleep
behaviour not being set.
Rusty Russell [Thu, 11 Sep 2003 11:33:11 +0000 (04:33 -0700)]
[NETFILTER]: MASQUERADE target for mostly-static IP addresses.
Herve Eychenne noted that many ADSL connections get the same
address when the interface comes back up, so some users use SNAT
instead of masquerade. The answer is that MASQUERADE should only
drop connections when the interface comes up, and then only if the
interface address has actually changed.
Chas Williams [Thu, 11 Sep 2003 11:22:34 +0000 (04:22 -0700)]
[ATM]: seq_file conversion of /proc/net/atm [8/8] (from romieu@fr.zoreil.com)
- introduction of the struct array 'atm_proc_ents':
- removal of code duplication in atm_proc_cleanup();
- removal of code duplication in atm_proc_init();
- removal of the macros CREATE_SEQ_ENTRY() and CREATE_ENTRY();
- /proc/net/atm/vcc returns to /proc/net/atm/vc;
- credits at the top of the file;
- replaced proc_dev_atm_operations by proc_atm_dev_ops;
- atm_proc_dev_register: removal of tasteless "fail0/fail1" labels.
Chas Williams [Thu, 11 Sep 2003 11:21:53 +0000 (04:21 -0700)]
[ATM]: seq_file conversion of /proc/net/atm [7/8]
seq_file support for /proc/net/atm/lec:
- lec_info(): seq_printf/seq_putc replaces sprintf;
- traversal of the lec structure needs to walk:
-> the lec interfaces
-> the tables of arp tables(lec_arp_tables);
-> the arp tables themselves
-> the misc tables (lec_arp_empty_ones/lec_no_forward/mcast_fwds)
Sum up of the call tree:
atm_lec_seq_start()/atm_lec_seq_next()
-> atm_lec_get_idx()
-> atm_lec_itf_walk() (responsible for dev_lec/dev_put handling)
-> atm_lec_priv_walk() (responsible for lec_priv locking)
-> atm_lec_arp_walk()
-> atm_lec_tbl_walk()
-> atm_lec_misc_walk()
-> atm_lec_tbl_walk()
Each of the dedicated functions follows the same convention: return NULL
as long as the seq_file cursor hasn't been digested (i.e. until < 0).
Locking is only done when an entry (i.e. a lec_arp_table) is referenced.
atm_lec_seq_stop()/atm_lec_itf_walk()/atm_lec_priv_walk() are responsible
for getting this point right.
- module refcounting is done in atm_lec_seq_open()/atm_lec_seq_release();
- atm_lec_info() is removed.
Chas's suggestions applied since last version:
- atm_seq_lec_fops renamed to lec_seq_fops;
- change in state handling: it wasn't correctly set to its reset value
after a complete interface walk;
- lec_arp_get_status_string() bugfix.
Chas Williams [Thu, 11 Sep 2003 11:21:05 +0000 (04:21 -0700)]
[ATM]: seq_file for /proc/net/atm (arp) [6/8] (from romieu@fr.zoreil.com)
seq_file support for /proc/net/atm/arp:
- svc_addr/atmarp_info(): seq_printf/seq_putc replace sprintf and friends;
- arp_getidx/arp_vcc_walk() take care of the usual seq_file cursor
positionning: they both return NULL until the cursor has reached its
position. struct atm_arp_state is updated accordingly;
- arp_seq_{stop/start} are responsible for clip_tbl_hook (un)locking;
- module refcounting is done in arp_seq_open()/arp_seq_release();
- atm_lec_info() is removed.
Chas's suggestions applied since last version:
- atm_arp_xxx renamed to arp_xxx;
- atm_seq_arp_fops renamed to arp_seq_fops.
Chas didn't ask for it but I renamed arp_vc_walk to arp_vcc_walk.
Chas Williams [Thu, 11 Sep 2003 11:18:48 +0000 (04:18 -0700)]
[ATM]: seq_file for /proc/net/atm (pvc) [3/8] (from romieu@fr.zoreil.com)
seq_file support for /proc/net/atm/pvc:
- pvc_info(): seq_printf/seq_putc replaces sprintf;
- atm_pvc_info() removal;
- the vc helpers (vcc__seq_xxx) do the remaining work.
Chas's suggestions applied since last version:
- atm_pvc_xxx renamed to pvc_xxx
- atm_seq_pvc_fops renamed to pvc_seq_fops
Chas Williams [Thu, 11 Sep 2003 11:17:56 +0000 (04:17 -0700)]
[ATM]: seq_file for /proc/net/atm (vc utils) [2/8] (from romieu@fr.zoreil.com)
Helpers for seq_file conversion of proc/atm/{pvc/svc/vc}:
- struct vcc_state keeps
1) the struct sock from which the current struct atm_vcc is deduced
2) the family to which must belong the vcc (PF_ATM{SVC/PVC/any})
3) the availability of clip module
- vcc_seq{start/stop} are responsible for vcc_sklist locking
- __vcc_seq_open and vcc_seq_release take care of get/put for the clip module.
Chas's suggestions applied since last version:
- atm_vc_xxx renamed to vcc_xxx
- atm_vc_common_seq_open renamed __vcc_seq_open (future name clashes
avoidance)
Chas Williams [Thu, 11 Sep 2003 11:16:57 +0000 (04:16 -0700)]
[ATM]: seq_file for /proc/net/atm (devices) [1/8] (from romieu@fr.zoreil.com)
seq_file conversion for proc/atm/devices:
- code inspired from seq_file use in net/core/dev.c;
- atm_dev_lock taken/released in atm_dev_seq_{start/stop};
- add a helper CREATE_SEQ_ENTRY() similar to CREATE_ENTRY() (both are removed
once conversion is done).
- atm_dev_seq_{start/stop/next} done in net/atm/resource.[ch] to ease
future handling of atm_devs and locking structure (per Chas suggestion)
[PATCH] (3/4) dlci locking and registration changes
Change the locking for the dlci device list and registration.
- use RTNL instead of a private lock (needed for net notifier in next patch).
- reorder the checks in the dlci_add to avoid complicated unwinds
- use dev->destructor to free
- hold RTNL around deassoc to protect callback from races
The sdla and dlci drivers have a callback interface which only stores a name
in a table, but doesn't do anything useful. Looks like an interface which has
lost it's usefulness and can be safely removed.
Tested on 2.6.0-test5 by exercising the higher layer (dlci) without real hardware.
Patch against 2.60-test5 to move sdla driver out of Space.c for initialization
in non-module case. Since this driver doesn't come up until the device has
been configured with an ioctl (set_config); there is no way it can have
startup order problems.