Paul Mackerras [Sat, 27 Sep 2003 09:07:22 +0000 (19:07 +1000)]
PPC32: Adjust ucontext to conform with historical practice and with glibc.
This moves the uc_sigmask field back to where it was before. We now don't
assume the registers are at a fixed offset in the ucontext, but instead
access them through the uc_regs field as in the past. This corresponds with
a recent change in glibc CVS.
James Bottomley [Fri, 26 Sep 2003 14:11:05 +0000 (09:11 -0500)]
[PATCH] scsi_mid_low_api.txt update
From: Douglas Gilbert <dougg@torque.net>
Attached is an update of the scsi_mid_low_api text
document. The first attachment is a gzipped patch against
lk 2.6.0-test4 and the second one is the file gzipped.
Changes:
- add "Calling context:" entry to interface functions
- add "Might block:" entry to mid level functions
- drop scsi_set_device_offline() + command()
- change references to reflect transfer of headers to
include/scsi/scsi_*.h
- try to define what a "scsi host" is
- typos + grammar
Thanks to Randy Dunlap, Alan Stern amd Christoph Hellwig
for their input. Comments welcome.
[PATCH] GCC 3.3.x/3.4 compatiblity fix in include/linux/init.h
GCC 3.4 miscompiles the kernel because it silently optimizes away
data placed in the .init.setup section by the __setup() macro.
__attribute__((unused)) does only avoid the warning, but doesn't
mark the data as being used.
Since GCC 3.3, __attribute__((used)) should be applied to such
variables. The __attribute_used__ macro from linux/compiler.h already
takes care of compiler differences for us.
In this patch, I've gone a step further and proactively fixed that in
all places.
Steven Dake [Fri, 26 Sep 2003 10:55:31 +0000 (03:55 -0700)]
[PATCH] fix kernel BUG using multipath
Thanks Matt and Jens for the debug help on the multipath problem.
This solves the problem and makes multipath work properly.
There are two types of "flags" that are used in a block io request,
bi_flags, and bi_rw. bi_flags is used for flags to the block level
code, and bi_rw is used for flags to the low level device drivers.
The code in the multipath driver used the wrong flag in the wrong field.
In this case, the flag FASTFAIL (value 3) was being set to the bi_flags
field. FASTFAIL is a hint to the low level driver that it should try to
fail out quickly. Unfortunately, the value 3 is also BIO_SEG_VALID,
which is a flag to the block subsystem that the segments shouldn't be
recalculated. The result was that the wrong field was set, telling the
block layer not to recalculate the segments resulting in phys and hw
segments of 0. Not good.
Patrick Mochel [Fri, 26 Sep 2003 07:58:11 +0000 (00:58 -0700)]
[PATCH] sysfs dput crash fix
This is a new patch that includes Martin's, and makes create_dir() return
an int. That matches sysfs_create_file(), and saves a couple of
conversions back and forth between pointer and error.
Same issues as the dma mapping code, but as SN2 interrupt handling is
totally static and all irqs are allocated on bootup an never freed it's
not a speed issue.
I really wonder what someone has to smoke to call a that expensive
dispatcher just to cast the data structure back to the lowlevel one
directly afterwards...
[PATCH] ia64: simplify and speedup SN2 dma mapping
Currently the the SN2 dma mapping code uses a file systen lookup (cat /r/napali/tmp/p10 |diffstat -p1) to
find the operation vector for the underlying dma mapping implementation.
But not only there is exactly one of those implementation, also data
structures from this lowlevel driver are used in the actual Linux dma
mapping routines and quite a few assumption are made about it. So let's
just call directly in the lowlevel code and give up this utter bullshit.
These strange mixups of Linux and IRIX PCI interfaces were used in SGI's
2.4 tree for their port of the IRIX scsi code. They have no business to
stgay in 2.6.
David Mosberger [Fri, 26 Sep 2003 06:43:36 +0000 (23:43 -0700)]
ia64: Patch by Christoph Hellwig: None of the exported symbols is referenced
by a module, even more the file doesn't compile when
CONFIG_IA64_SGI_SN_DEBUG is set.
It checked for the flags beeing 0, which it always was for a long
time. It looks a bit fishy thus, so if someone wants to audit
srb.flags audit please do so.
- Remove obsolete wrong do_magic prototype
- Remove the dependency between ACPI_SLEEP and SOFTWARE_SUSPEND
some people complained about. Works the same as i386 now.
- Fix another gcc 3.3 warning in reboot.c
- Default NMI watchdog to LOCAL_APIC because that works on more
boxes
- Create symlinks between netdev and groupdev.
- Remove initialization of device.name.
- Call qeth_free_card on removal.
- Remove async hsi.
- Remove contig memusage.
- Add check for -EFAULT to copy_from_user/copy_to_user.
- Inlining some functions to save kernel stack space.
- vlan header fixes.
- Replace atomic_return_sub with atomic_add_return.
- Use common drivers/block/Kconfig instead of own config options, move
s390 block device config options to drivers/s390/block/Kconfig and
include it from drivers/block/Kconfig.
- Fix configuration combination CONFIG_IPV6=m and CONFIG_QETH=y.
- New default configuration.
- Fix emulation of sys_sysinfo and sys_clone.
- Add code for -ERESTART_RESTARTBLOCK in signal emulation.
- Fix ptrace peek/poke for 31 bit programs under a 64 bit kernel.
- Fix typos in cp_stat64.
- Remove initialization of device.name.
- Don't do put_device after failed get_device in get_ccwdev_by_busid.
- Fix read_dev_chars and read_conf_data.
- Call interrupt function of ccw device if path verification has been started.
- Replace atomic_return_add by atomic_add_return in qdio.
- Use wait_event instead of homegrown wait loop.
- Fix reestablish queue problem.
- Add ungroup attribute to ccw_group devices and add links from each
ccw device of a group to the group device.
- Use BUS_ID_SIZE instead of DEVICE_ID_SIZE.
- Delay path verification if a basic sense is required.
- Move qdio shutdown code from qdio_free to qdio_shutdown.
- Fix cflags for z990 compiles.
- Rename resume to __switch_to to avoid name clash.
- Fix show_trace and show_stack.
- Add alignments to linker script.
- Add atomic64_t and related funtions.
- Add include/asm-s390/local.h
- Fix 31 bit get_user for 8 byte values.
- Fix show_regs oops.
- Add a couple of might_sleep() calls.
- Fix loading of modules with a BIG symbol table.
- Fix inline asm constraint in __get_user_asm_1
- Fix nested irq_enter bug on shutdown.
- Add sched_clock function.
Nick Piggin [Fri, 26 Sep 2003 00:55:16 +0000 (17:55 -0700)]
[PATCH] fix AS crappy performance
A while ago some guy complained that his server connections / sec was
way down due to AS. The server would fork a process which would then read
some tiny bit of random data and hang around for a while doing nothing.
This defeated all AS's heuristics, and due to a new process being a good
anticipation candidate by default, his performance went bad.
The fix was just to treat new processes as being unsuitable for
anticipation. Fixed. Unfortunately ls, cat, grep, small programs
starting up, find | xargs, etc only submit a couple of requests, and they
really want anticipation to be on.
This patch keeps a simple goodness value per queue based on how successful
anticipation has been for new processes.
Nick Piggin [Fri, 26 Sep 2003 00:55:08 +0000 (17:55 -0700)]
[PATCH] fix AS hangs
Clears the next_arq cache if a request is repositioned and added as an alias
behind another. Should fix the BUGs which Mary Edie Meredith has been
reporting.
Also, fixes a few random (but harmless) cases where last_merge was being set
and causing warnings.
When 2 requests are merged, and one is thrown away, move its alias list onto
the merged request! This is likely to be the cause of Mary's hangs.
Peter Osterlund [Fri, 26 Sep 2003 10:57:35 +0000 (12:57 +0200)]
input: Fix broken handling of rotated Synaptics touchpads.
The infoRot180 and infoPortrait bits are for information
only. The touchpad uses the same X/Y coordinate system
regardless of the orientation, so the software shouldn't
care about these bits.
input: Change AT keyboard to use hardware autorepeat and move
untranslating to the AT keyboard driver as well. Lower
PS/2 mouse default report rate. Fix repeat rate adjustment
ioctls accordingly, and update other files to reflect the
changes. This should fix most known keyboard problems in 2.6.
This fixes a few x86-64 issues that have crept in and broke bootup.
- Disable -funit-at-a-time. It breaks symbol exports with gcc 3.3.1-hammer.
- Fix sched_clock to not access HPET. The new scheduler uses it more
extensively and it is not mapped early enough. I opted to just
disable the HPET access, because even a slightly non monotonous TSC
should be accurate enough for scheduling purposes.
- Fixes for separate objdirs by Arnd Bergmann
- Fix two warnings that have crept in
Neil Brown [Thu, 25 Sep 2003 14:33:45 +0000 (07:33 -0700)]
[PATCH] Fix up initialisation of md devices
Previously, we called blk_queue_make_request(q,mddev->pers->make_request)
*before* calling mddev->pers->run(), but this left a hole in which the
device could be accessed before it was initialised.
So we moved blk_queue_make_request to *after* ->pers->run(), but now some
of the initialisation done in ->run is over-written by blk_queue_make_request(),
particularly limits like ->max_sectors.
So now, we just open-code the one line of blk_queue_make_request that we
need at this point.
All the rest has been done by a separate called to blk_queue_make_request,
either when the mddev was first allocated, or when a previous incarnation
of the device was stopped.
This fixes "bio too big" error that occured due to max_sectors being too large.
Don't know if the patch I released few days ago was still
applied. This is a minor revision of that patch which converts
saa9730 to spinlocks thus removing save_and_cli() and
restore_flags() calls.