Greg Ungerer [Mon, 13 Jan 2003 13:02:14 +0000 (05:02 -0800)]
[PATCH] common m68knommu arch entry.S
This patch is the first in a series that groups the common
m68knommu entry.S code into a common entry.S file (this is
instead of having several similar files in lower sub-architecture
directories). The whole idea is to reduce code duplication.
Clustered APIC setup patch. Needed to support generic systems with more
than 8 CPUs.
Motivation:
The current APIC destination mode ("Flat Logical") used in linux kernel
has an upper limit of 8 CPUs. For more than 8 CPUs, either "Clustered
Logical" or "Physical" mode has to be used.
The attached patch adds support such systems by organizing them into
logical clusters, with each cluster having 4 CPUs. This is activated by
a new config option "Support for other sub-arch SMP systems with more
than 8 CPUs", under Processor feature->Sub architecture.
The patch is made very simple and isolated, thanks to Martin J.
Bligh's patchsets, which has moved all APIC related functions into
sub-arch macros. Has zero impact on standard systems.
This patch enables all 16 logical processors on a generic, non-quad
based, system that we have here. Also, by looking at SuSE source, I
have also added a special switch, to specifically support Unisys
(ES7000). Just replacing #define SEQUENTIAL_APICID by CLUSTERED_APICID
in the patch should make it work on ES7000(not tested).
Greg Ungerer [Mon, 13 Jan 2003 12:23:26 +0000 (04:23 -0800)]
[PATCH] combine all m68knommu arch linker scripts into one
This pulls all of the m68knommu arch linker scripts into a single new
style linker script. This patch specifically turns
arch/m68knommu/vmlinux.lds.S into a generic linker script that works
with all m68knommu targets.
Greg Ungerer [Mon, 13 Jan 2003 12:22:53 +0000 (04:22 -0800)]
[PATCH] use _etext in 68VZ328 ucdimm target start code
This patch switches to using the _etext linker symbol instead of
__data_rom_start for the ucdimm 68VZ328 platform. I intend to
deprecate the __data_rom_start linker symbol in the future.
Greg Ungerer [Mon, 13 Jan 2003 12:22:48 +0000 (04:22 -0800)]
[PATCH] use _etext in 68VZ328 de2 target start code
This patch switches to using the _etext linker symbol instead of
__data_rom_start for the ce2 68VZ328 platform. I intend to
deprecate the __data_rom_start linker symbol in the future.
Greg Ungerer [Mon, 13 Jan 2003 12:22:42 +0000 (04:22 -0800)]
[PATCH] use _etext in 68EZ328 ucsimm target start code
This patch switches to using the _etext linker symbol instead of
__data_rom_start for the ucsimm 68EZ328 platform. I intend to
deprecate the __data_rom_start linker symbol in the future.
Rusty Russell [Mon, 13 Jan 2003 12:13:08 +0000 (04:13 -0800)]
[PATCH] driver_char_Kconfig bug (fwd)
From: Rusty Lynch <rusty@stinkycat.com>
VT support requires drivers/char/keyboard.c which makes function
calls implemented in drivers/input/, so that attempting to set
CONFIG_INPUT=m or just not setting CONFIG_INPUT will result in a
compile error if CONFIG_VT is on.
Rusty Russell [Mon, 13 Jan 2003 12:12:57 +0000 (04:12 -0800)]
[PATCH] namespace pollution in OSS_pas2 driver
From: Arnd Bergmann <arnd@bergmann-dalldorf.de>
The pas2 driver has a global variable named 'lock', which
pollutes the global namespace. This patch adds a pas_
prefix. The same is done for 'translate_code'.
Rusty Russell [Mon, 13 Jan 2003 12:12:38 +0000 (04:12 -0800)]
[PATCH] cli_sti in drivers_net_hamradio_bpqether.c
From: Chris Wilson <chris@qwirx.com>
As part of the Linux Kernel Janitors project, I would like to submit my
patch for bpqether.c.
The document Documentation/cli-sti-removal.txt says that cli() should no
longer be used to disable interrupts. This patch removes all references to
cli() and {save,restore}_flags.
- added a static spinlock to protect bpq_devices
- changed cli/sti and {save,restore}_flags to taking the spinlock and
disabling interrupts with spin_lock_irqsave
- included my previous patch for proc_net_create, but as a separate hunk,
so if you've already applied then just ignore the rejected hunk.
I have verified that the patched driver compiles without warnings, but
since I don't have the hardware I can't test it. Please treat with
caution.
The below does two things:
(i) do not try to spin up a CF reader without media
(ii) be careful when asking for the cache parameters mode page
[do not ask for this page when no media are present:
it is meaningless, and some devices react badly if we do;
check the reply so that we do not read past the end of the reply;
first give a small transport length - some USB devices are unhappy
if we ask for more than they provide]
John Stultz [Mon, 13 Jan 2003 07:44:53 +0000 (23:44 -0800)]
[PATCH] linux-2.5.57_timer-none_A0.patch
This creates an empty timer_opt structure (timer_none) which is then
used as a default initializer to the timer pointer. This lets us avoid
having to check before dereferencing the timer in future code.
Tom Rini [Mon, 13 Jan 2003 07:23:46 +0000 (23:23 -0800)]
[PATCH] Don't ask about "Enhanced Real Time Clock Support" on some archs
The following patch adds an explicit no list of arches who do not want
to have the "Enhanced Real Time Clock Support" RTC driver asked. This
adds PPC32 (who for a long time had their own 'generic' RTC driver, and
then have adopted the genrtc driver) and PARISC (who have always used
the genrtc driver). Per request of Peter Chubb, IA64 is on this list as
well.
The problem is that on some archs there is no hope of this driver
working, and having it compiled into the kernel can cause many different
problems. On the other hand, there are some arches for whom that driver
does work, on some platforms. So having an explicit yes list would
result in some rather ugly statements.
Allow for per-CPU initialization of CPUfreq. Therefore, it's not
necessary any longer to kmalloc the per-CPU policy struct. To use
this, cpufreq_driver->policy has to be set to NULL. Of course,
cpufreq_driver->init is needed then, which is the appropriate function
for CPU initialization. cpufreq_driver->exit is available for cleanup.
All existing drivers continue to work without any changes, just for
clarity ->init and ->exit are set to NULL, and the names accordingly.
Kevin Brosius [Mon, 13 Jan 2003 05:53:41 +0000 (21:53 -0800)]
[PATCH] ohci/ehci debug updates for 2.5.56
These two files needed to be touched after the recent changes to
DRIVER_ATTR/driver_attribute structure members in 2.5.56. Personally,
it doesn't look to me like the size parameter should be removed, as now
users will need to hardcode PAGE_SIZE into their functions, rather than
it being passed from the place of allocation. But I'm not familiar with
the driverfs changes, so can't really say.
These changes, or something similar, are needed to make ohci-dbg and
ehci-dbg work at all in 2.5.56. ehci is untested, but compiles here.
I've tested the ohci changes and they appear to work.
Trond Myklebust [Mon, 13 Jan 2003 05:41:57 +0000 (21:41 -0800)]
[PATCH] minimal Kerberos V5 client support [6/6]
The following patch provides minimal client support for the
(mandatory) Kerberos V5 authentication mechanism under RPCSEC_GSS.
See RFC2623 and RFC3010 for protocol details.
Only authentication is supported for the moment. Data integrity and/or
data privacy (encryption) will be implemented at a later stage.
Trond Myklebust [Mon, 13 Jan 2003 05:41:44 +0000 (21:41 -0800)]
[PATCH] RPCSEC_GSS client upcall user [5/6]
This patches the RPCSEC_GSS client to make use of the upcall mechanism
that was provided by patch [3/6].
If an RPC task presents a non-uptodate credential to call_refresh(),
a user daemon is contacted by means of a dedicated rpc_pipefs pipe.
The daemon is then fed the uid for which it must establish a new RPCSEC
security context.
While the daemon goes about its business, the RPC task is put to sleep
on a wait queue in order to allow the 'rpciod' process to service other
requests. If another task wants to use the same credential, it too will
be put to sleep once it reaches call_refresh(). A timeout mechanism
ensures that requests are retried (or that 'soft' mounts fail) if the
daemon crashes / is killed.
Once the daemon has established the RPCSEC context, it writes the result
back to the pipe, causing the credential to be updated. Those RPC tasks
that were sleeping on the context are automatically woken up, and
their execution can proceed.
Trond Myklebust [Mon, 13 Jan 2003 05:41:33 +0000 (21:41 -0800)]
[PATCH] RPCSEC_GSS authentication framework [4/6]
This patch provides the basic framework for RPCSEC_GSS authentication
in the RPC client. The protocol is fully described in RFC-2203.
Sun has supported it in their commercial NFSv3 and v2 implementations
for quite some time, and it has been specified in RFC3010 as being
mandatory for NFSv4.
- Update the mount_data struct for NFSv2 and v3 in order to allow them
to pass an RPCSEC_GSS security flavour. Compatibility with existing
versions of the 'mount' program is ensured by requiring that RPCSEC
support be enabled using the new flag NFS_MOUNT_SECFLAVOUR.
- Provide secure authentication, and later data encryption on
a per-user basis. A later patch will an provide an implementation
of the Kerberos 5 security mechanism. SPKM and LIPKEY are still
being planned.
- Security context negotiation and initialization are all assumed
to be done in userland. A later patch will provide the actual upcall
mechanisms to allow for this.
Trond Myklebust [Mon, 13 Jan 2003 05:41:19 +0000 (21:41 -0800)]
[PATCH] RPCSEC upcall mechanism [3/6]
This patch provides the upcall mechanism that will be used for communicating
with the RPCSEC client user daemons.
It sets up a 'ramfs' style filesystem (rpc_pipefs) that is populated with
named pipes. Each time the kernel initializes a new NFS, lockd, statd or
portmapper client, a directory automatically gets set up in this fs.
The directory is initially only populated with a single file "info"
that provides information such as the server IP address, the port number
and the RPC service for the benefit of the user daemon.
When an RPCSEC_GSS mechanism needs to communicate with the daemon, it
is provided with a toolkit for setting up a named pipe in the same
directory. It can then perform upcalls/downcalls in order to talk to the
daemon in much the same way as is done by CODA.
The NFSv4 client will also need to use this same filesystem to communicate
with its user daemon in order to do name-to-uid/name-from-uid and
name-to-gid/name-from-gid translation.
Trond Myklebust [Mon, 13 Jan 2003 05:41:07 +0000 (21:41 -0800)]
[PATCH] XDR 'encode' phase move [2/6]
The RPCSEC_GSS user context defines a 'sequence number' in the AUTH header
fields in order to provide protection against replay attacks. This
number needs to lie within a given 'window', and is required to be updated
even when retransmitting dropped requests.
In order to allow this update to occur, move the XDR 'encode' phase
so that it is done immediately before writing the data to the socket.
Trond Myklebust [Mon, 13 Jan 2003 05:40:55 +0000 (21:40 -0800)]
[PATCH] Clean up RPC client credcache lookups [1/6]
Clean up RPC client credcache lookups.
- Remove the limitation whereby the RPC client may only look up
credentials for the current task.
The ability to lookup arbitrary credentials is needed in order to allow
a user daemon to set the RPCSEC_GSS private information once it
has finished negotiating the RPCSEC user context with the server.
Jens Axboe [Mon, 13 Jan 2003 05:32:38 +0000 (21:32 -0800)]
[PATCH] rbtree core for io scheduler
This patch has a bunch of io scheduler goodies that are, by now, well
tested in -mm and by self and Nick Piggin. In order of interest:
- Use rbtree data structure for sorting of requests. Even with the
default queue lengths that are fairly short, this cuts a lot of run
time for io scheduler intensive work loads. If we go to longer queue
lengths, it very quickly becomes a necessity.
- Add sysfs interface for the tunables. At the same time, finally kill
the BLKELVGET/BLKELVSET completely. I made these return -ENOTTY in
2.5.1, but there are left-overs around the kernel. This old interface
was never any good, it was centered around just one io scheduler.
The io scheduler core itself has received count less hours of tuning by
myself and Nick, should be in pretty good shape. Please apply.
Andrew, I made some sysfs changes to the version from 2.5.56-mm1. It
didn't even compile without warnings (or work, for that matter), as the
sysfs store/show procedures needed updating. Hmm?
Matthew Wilcox [Mon, 13 Jan 2003 05:24:33 +0000 (21:24 -0800)]
[PATCH] parisc updates for 2.5.56
Updates for 2.5.56:
- Integrate Stephen Rothwell's compat code
- OProfile support for Randolph Chung
- Makefile updates from Sam Ravnborg
- Regenerated defconfig as requested by Rusty
- Generic device model updates (James Bottomley)
- And lots of general updating bugfixing, etc.
[PATCH] cpufreq: add driver for NatSemi Geode / Cyrix MediaGX
This patch by Hiroshi Miura adds a cpufreq driver for Cyrix MediaGX and
National Semiconductor Geode processors using "Suspend Modulation". It's
partly based on Zwane Mwaikambo's work.
This patch adds a sysfs interface to the cpufreq core, and marks the
previous /proc/cpufreq interface as deprecated.
As in drivers/base/cpu.c a "CPU driver" is registered, cpufreq acts as
"interface" to this, offering the following files for each CPU
(in /system/devices/sys/cpu.../) where CPUfreq support is present
cpuinfo_min_freq (ro) - minimum frequency (in kHz) the CPU supports
cpuinfo_max_freq (ro) - maximum frequency (in kHz) the CPU supports
scaling_min_freq (rw) - minimum frequency (in kHz) cpufreq may scale
the CPU core to
scaling_max_freq (rw) - maximum frequency (in kHz) cpufreq may scale
the CPU core to
scaling_governor (rw) - governor == "A feedback device on a machine
or engine that is used to provide
automatic control, as of speed,
pressure, or temperature" [1, as noted
by David Kimdon]. Decides what frequency
is used. Currently, only "performance"
and "powersave" are supported, more may
be added later.
(In future, a file scaling_driver (ro) which shows what CPUfreq driver
is used (arm-sa1100, gx-suspmod, speedstep, longrun, powernow-k6,
...) might be added, and this driver will be allowed to add files
scaling_driver_* for driver-specific settings like "prefer fast FSB".
And scaling_governor_* files might offer settings for the governor.)
To implement this sysfs interface, the driver model "interface" code
is used. Unfortunately, it has a non-trivial locking bug in
drivers/base/intf.c: there's a down_write call for
cls->subsys.rwsem in add_intf(), which then calls add(), which may call
intf->add_device(), which may call interface_add_data(), which calls
kobject_register(), which calls kobject_add(), which then tries to
down_write cls->subsys.rwsem. Remember, that was already locked writable
in add_intf().
Because of that, interface_add_data() is commented out; this means
that no link in /system/class/cpu/cpufreq is added, and that the
dev-removal code isn't called. This shouldn't be a problem yet,
though; as no cpufreq driver I know of is capable of CPU hotplugging.
Jochen Friedrich [Mon, 13 Jan 2003 04:41:49 +0000 (20:41 -0800)]
[PATCH] NFSv2 READDIR encoding fix
When mounting a Linux partition with NFSv2, READDIR fills in the last
cookie without properly byte-swapping it. The following READDIR will
fail, so the NFS client sees a truncated directory.
Patrick Mochel [Mon, 13 Jan 2003 05:52:11 +0000 (23:52 -0600)]
sysfs: Fixup MCA sysfs files.
- Remove count and off parameters from show() methods.
- Remove manual handling of reading from an offset, since the sysfs core
handles that now.
- Remove temp. buffer.
Patrick Mochel [Mon, 13 Jan 2003 05:44:42 +0000 (23:44 -0600)]
sysfs: Fixup s390 sysfs files.
- Remove count and off parameters from show() methods.
- Remove off parameter from store() methods.
Note 1: These have not been tested, but should be obviously correct.
Note 2: snprintf() was replaced with sprintf() where the filled buffer
would obviously be < PAGE_SIZE. (like when printing single integer values).
In places where strings were printed, PAGE_SIZE is used as the max string
size.
Patrick Mochel [Mon, 13 Jan 2003 05:38:44 +0000 (23:38 -0600)]
sysfs: fixup SCSI sysfs files
- Reinstate count parameter for store() methods.
- Remove off parameter from st.c and osst.c sysfs methods.
- Remove count parameter from st.c and osst.c show() methods.