The arch-determining symbol CONFIG_SH in drivers/mtd/maps/Config.in
should be CONFIG_SUPERH.
[Rusty: this is a resend of 'PATCH 2.5: kconfig wrong arch symbol';
it should apply now that my earlier patch which trod on the context
has been merged into 2.5.24]
Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
for this purpose.
Use of the $ARCH variable is undocumented; the sparc and sparc64 ports
define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively
for this purpose.
Divorces task xid<->request slot mapping from the internals of the
rpc_waitqueue xprt->pending. Instead xprt_lookup_rqst() is made to
search a dedicated list (xprt->recv) on which the request slot is
placed immediately after being allocated to a task. The new queue is
protected using the spinlock xprt->sock_lock rather than the generic
RPC task lock.
Both udp_data_ready() and tcp_data_ready() (well tcp_read_request()
actually) now need to protect against the request being removed from
the xprt->recv list while they copy the RPC reply data from the skb.
On the other hand, they no longer need to worry about the task
disappearing from xprt->pending. This means that rpc_lock_task() hack
can be replaced by the spinlock xprt->sock_lock.
Fixes an obvious bug in __nfs_refresh_inode(): after updating the
attribute cache, if we discover that the data cache is invalid don't
call nfs_zap_caches() as that will also reinvalidate the attribute
cache.
This bug plays havoc with the new lookup/revalidation code in 2.4.19
since it forces a lot of unnecessary extra GETATTR RPC calls.
Douglas Gilbert [Sun, 14 Jul 2002 12:27:21 +0000 (05:27 -0700)]
[PATCH] sg driver against lk 2.5.25
This patch is against lk 2.5.25 . It
- fixes copy_from/to_user() [William Stinson from dj tree]
- disables kiobuf use, so it will compile without kiobufs
The latter change is so Andrew Morton can remove kiobufs
as suggested in his "direct-to-BIO for O_DIRECT" thread.
SuSv3 says: "The mprotect() function shall fail if:
[EACCES]
The prot argument specifies a protection that violates the access
permission the process has to the underlying memory object.
[EAGAIN]
The prot argument specifies PROT_WRITE over a MAP_PRIVATE mapping and
there are insufficient memory resources to reserve for locking the
private page.
[EINVAL]
The addr argument is not a multiple of the page size as returned by
sysconf().
[ENOMEM]
Addresses in the range [addr,addr+len) are invalid for the address
space of a process, or specify one or more pages which are not mapped.
[ENOMEM]
The prot argument specifies PROT_WRITE on a MAP_PRIVATE mapping, and
it would require more space than the system is able to supply for
locking the private pages, if required.
[ENOTSUP]
The implementation does not support the combination of accesses
requested in the prot argument."
This fixes error code of mprotect() of the ENOMEM case.
[EBUSY]
Some or all of the addresses in the range starting at addr and
continuing for len bytes are locked, and MS_INVALIDATE is
specified.
[EINVAL]
The value of flags is invalid.
[EINVAL]
The value of addr is not a multiple of the page size {PAGESIZE}.
[ENOMEM]
The addresses in the range starting at addr and continuing for len
bytes are outside the range allowed for the address space of a process
or specify one or more pages that are not mapped."
This fixes error code of msync() of the EINVAL case.
Anton Blanchard [Sun, 14 Jul 2002 11:08:49 +0000 (04:08 -0700)]
[PATCH] Allow non zero boot cpu
A partitioned ppc64 machine can have a boot cpuid anywhere from 0 to 31.
With the non linear cpu changes in 2.5.24 we must set up the initial task
to start on the boot cpu. (since it isnt always 0 now)
With this patch I am able to boot on cpus other than 0. I also tested
discontiguous cpuids. So the non linear cpu stuff checks out OK.
I'd like Florent credited -- he is maintaining 2.4.X version and
helping with development. Kill warnings by rearranging code / adding
prototypes. Enable using separate console (so user sees progress and X
suspend/resume works properly), forward-port of updates from Florent
and stop using own PRINTK stuff (mostly). Reading now primarily uses
block_device(), this should enable more cleanups. Fixed double free on
error path.
[PATCH] fix iounmap for non page aligned addresses
This fixes a problem introduced by the pageattr ioremap/unmap patches.
iounmap lost the ability to free non page aligned addresses, which
are e.g. used by the bootflag code. This patch fixes this.
This patch for 2.5.25 is a rewrite of how smbfs builds requests. It allows
for more parallellism, better error handling and supporting oplocks with
further patches.
Dave Hansen [Sun, 14 Jul 2002 10:48:06 +0000 (03:48 -0700)]
[PATCH] AFFS fix return without releasing BKL
This was found by Dan Carpenter <error27@email.com>, using an smatch
script. Looks to me like like an error caused during all the BKL
pushing. 1 more coming...
Martin J. Bligh [Sun, 14 Jul 2002 10:45:38 +0000 (03:45 -0700)]
[PATCH] fix timer interrupts on NUMA-Q
Since I turned on the IO-APICs on secondary quads, we are receiving
timer interrupts on *all* quads, not just the first quad, each from their
local timer chip. This causes time to progress far too rapidly ;-)
The simple patch below turns off the timer interrupts for IO-APICs other
than interrupt 0, and has been tested to fix the problem. As it switches
on clustered_apic_mode, it should be safe from hurting anyone else.
This fix is already in 2.4 - I'm playing catchup with 2.5 - the same patch
applies with just a line offset
Andy Grover [Sun, 14 Jul 2002 10:45:23 +0000 (03:45 -0700)]
[PATCH] change Intel cache-detection code to use a table
The current Intel-specific cache detection code is incomplete and hard to
read. This patch puts all the cache descriptors in a table, which then is
examined for matches in a loop.
Bob Miller [Sun, 14 Jul 2002 10:36:55 +0000 (03:36 -0700)]
[PATCH] 2.5.25 remove global semaphore_lock spin lock.
Replace the global semaphore_lock with the spinlock embedded in
the wait_queue_head_t. None of the data protected by semaphore_lock
is global and there is no need to restrict the system to only allow
one semaphore to be dealt with at a time.
This removes 2 lock round trips from __down() and __down_interruptible().
It also reduces the number of cache lines touched by 1 (the cache line
with seamphore_lock).
* moved much code to the generic video-buf.c helper module
(bttv-driver.c, bttv-vbi.c, videobuf.c).
* a number of changes in the card list and the card-specific code
(bttv-cards.c).
* misc small fixes here and there.
This patch fixes/improves the TDA8425 support in tvaudio.c.
It also makes the tvmixer and tvaudio modules look for i2c hardware on
riva cards (the rivatv project needs this).
Robert Love [Sun, 14 Jul 2002 10:28:58 +0000 (03:28 -0700)]
[PATCH] type typo in do_softirq
kernel/softirq.c :: do_softirq() has a typo in the type of the `cpu'
value. I incorrectly set it to `unsigned long' in a previous patch...
this is a CPU value not a bitmask and is thus an `int'.
Robert Love [Sun, 14 Jul 2002 10:28:47 +0000 (03:28 -0700)]
[PATCH] use new list macro in sched.c
The attached patch makes use of the new list_move_tail macro in 2.5 as
needed in sched.c, replacing a list_del and list_add_tail combo with the
optimized list_move_tail.
Andrew Morton [Sun, 14 Jul 2002 10:24:40 +0000 (03:24 -0700)]
[PATCH] direct-to-BIO for O_DIRECT
Here's a patch which converts O_DIRECT to go direct-to-BIO, bypassing
the kiovec layer. It's followed by a patch which converts the raw
driver to use the O_DIRECT engine.
CPU utilisation is about the same as the kiovec-based implementation.
Read and write bandwidth are the same too, for 128k chunks. But with
one megabyte chunks, this implementation is 20% faster at writing.
I assume this is because the kiobuf-based implementation has to stop
and wait for each 128k chunk, whereas this code streams the entire
request, regardless of its size.
This is with a single (oldish) scsi disk on aic7xxx. I'd expect the
margin to widen on higher-end hardware which likes to have more
requests in flight.
Question is: what do we want to do with this sucker? These are the
remaining users of kiovecs:
the video and mtd drivers seems to be fairly easy to de-kiobufize.
I'm aware of one proprietary driver which uses kiobufs. XFS uses
kiobufs a little bit - just to map the pages.
So with a bit of effort and maintainer-irritation, we can extract
the kiobuf layer from the kernel.
Martin Dalecki [Sun, 14 Jul 2002 10:20:46 +0000 (03:20 -0700)]
[PATCH] IDE 98
Synchronize with 2.5.25.
Incorporate IDE-94, as well as 95, 96, 97 and 98-pre as announced by Bartek and
unfortunately still not included in 2.5.25, which makes admittedly things
still fall appart:
Missing changelog for 98-pre by Bartlomiej Zolnierkiewicz (BTW. Handling
Unicode should be essential at least to make proper crediting of many many
peoples possible!) follows here:
- add missing channel->lock unlocking/locking and fix some comments
in ide_timer_expiry()
- allow PCI drivers to disable autodma in ->init_dma()
(bug introduced in IDE 97, affects sl82c105.c only)
noticed by Russell King
- alim15x3.c, if revision is <= 0x20 disable autodma
- remove unneeded checks (drive.dn > 3) from pdc202xx.c and sis5513.c
- use block layer wrappers
And my additions follow:
- Fix TCQ code. Patch based on work by Alexander Atanasov.
- Use the FreeBSD derived request handler return values:
ATA_OP_FINISHED
ATA_OP_CONTINUES
ATA_OP_RELEASED
ATA_OP_READY /* for status ready reporting during poll */
- PMAC compilation fix by Paul Mackerras.
- Simplify the ata_status_poll function significantly.
- Fix logic used to prevent drive IRQ assertion from drive on channels sharing
our interrupt.
NOTE: We will move it later to the time where a request is really finished
soon.
- Don't use ata_busy_poll() use ata_status_poll() instead. This increases code
unification.
NOTE: We should maybe invent some way to prevent the error recovery path to be
taken at all. In esp to prevent ata_error from trying to reissue commands.
Ben Collins [Sun, 14 Jul 2002 10:03:02 +0000 (03:03 -0700)]
[PATCH] IEEE1394 updates
This is against 2.5.25. Lots of fixes. Brings things inline with 2.5.25.
Probably makes the subsystem actually work now (well, it will work, but
I bet without it, it doesn't). Merged in changes from the current 2.5.x
source.
NTFS: 2.0.20 - Support non-resident directory index bitmaps, fix page leak in readdir.
- Move the directory index bitmap to use an attribute inode instead of
having special fields for it inside the ntfs inode structure. This
means that the index bitmaps now use the page cache for i/o, too,
and also as a side effect we get support for non-resident index
bitmaps for free.
- Simplify/cleanup error handling in fs/ntfs/dir.c::ntfs_readdir() and
fix a page leak that manifested itself in some cases.
- Add fs/ntfs/inode.c::ntfs_put_inode(), which we need to release the
index bitmap inode on the final iput().
NTFS: 2.0.19 - Fix race condition, improvements, and optimizations in i/o interface.
- Apply block optimization added to fs/ntfs/aops.c::ntfs_read_block()
to fs/ntfs/compress.c::ntfs_file_read_compressed_block() as well.
- Drop the "file" from ntfs_file_read_compressed_block().
- Rename fs/ntfs/aops.c::ntfs_enb_buffer_read_async() to
ntfs_end_buffer_async_read() (more like the fs/buffer.c counterpart).
- Update ntfs_end_buffer_async_read() with the improved logic from
its updated counterpart fs/buffer.c::end_buffer_async_read(). Apply
further logic improvements to better determine when we set PageError.
- Update submission of buffers in fs/ntfs/aops.c::ntfs_read_block() to
check for the buffers being uptodate first in line with the updated
fs/buffer.c::block_read_full_page(). This plugs a small race
condition.
Add a driver for X-Box gamepads. While they have quite normal
data format, they cannot be handled by HID, because they lack
the descriptors and have completely nonstandard interface class.
> Hm, in building this, it looks like pid.c wants to be a separate module,
> yet the Makefile tries to build it into the hid.o module. The linker
> complains horribly when this happens :)
This cset is update of the HID drivers to the latest version, as a part
of the Input merge. It finally includes ForceFeedback support by Johann
Deneux, enabling ForceFeedback on new Logitech and Microsoft devices.
NTFS: 2.0.18 - Fix race condition in reading of compressed files.
- There was a narrow window between checking a buffer head for being
uptodate and locking it in ntfs_file_read_compressed_block(). We now
lock the buffer and then check whether it is uptodate or not.
NTFS: 2.0.17 - Cleanups and optimizations - shrinking the ToDo list.
- Modify fs/ntfs/inode.c::ntfs_read_locked_inode() to return an error
code and update callers, i.e. ntfs_iget(), to pass that error code
up instead of just using -EIO.
- Modifications to super.c to ensure that both mount and remount
cannot set any write related options when the driver is compiled
read-only.
- Optimize block resolution in fs/ntfs/aops.c::ntfs_read_block() to
cache the current run list element. This should improve performance
when reading very large and/or very fragmented data.
This cset implements automatic detection of PS/2 mice and AT keyboards
even when they were not connected at boot time. This is done by
polling the i8042 chip when its interrupts are not enabled.