]> pilppa.com Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
19 years ago[PATCH] I2C: i2c-algo-pca -- gracefully handle a busy bus
Ian Campbell [Wed, 10 Aug 2005 07:51:16 +0000 (08:51 +0100)]
[PATCH] I2C: i2c-algo-pca -- gracefully handle a busy bus

I've been running with this patch for a while now, and while I've never
seen it trigger except with buggy hardware I think it is a cleaner way
to handle a busy bus. I had -EBUSY until about 10 minutes ago but -EIO
seems to be what most of the existing algo drivers will return in the
same circumstances.

Signed-off-by: Ian Campbell <icampbell@arcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: inline i2c_adapter_id
Jean Delvare [Thu, 28 Jul 2005 21:09:40 +0000 (23:09 +0200)]
[PATCH] I2C: inline i2c_adapter_id

We could inline i2c_adapter_id, as it is really, really short. Doing
so saves a few bytes both in i2c-core and in the drivers using this
function.

                                            before     after      diff
drivers/hwmon/adm1026.ko                     41344     41305       -39
drivers/hwmon/asb100.ko                      27325     27246       -79
drivers/hwmon/gl518sm.ko                     20824     20785       -39
drivers/hwmon/it87.ko                        26419     26380       -39
drivers/hwmon/lm78.ko                        21424     21385       -39
drivers/hwmon/lm85.ko                        41034     40939       -95
drivers/hwmon/w83781d.ko                     39561     39514       -47
drivers/hwmon/w83792d.ko                     32979     32932       -47
drivers/i2c/i2c-core.ko                      24708     24531      -177

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] hwmon: tag super-i/o find functions __init
Jean Delvare [Wed, 27 Jul 2005 19:32:02 +0000 (21:32 +0200)]
[PATCH] hwmon: tag super-i/o find functions __init

Super-I/O find functions in hardware monitoring drivers can be tagged
__init as they are only called from functions themselves tagged __init.
Two of them (smsc47b397 and w83627ehf) already do, but the other four
of them (it87, pc87360, smsc47m1 and w83627hf) did not.

This saves a few bytes of memory after the drivers are loaded, 192 in
the case of the it87 driver.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: refactor message in i2c_detach_client
Jean Delvare [Wed, 27 Jul 2005 20:14:49 +0000 (22:14 +0200)]
[PATCH] I2C: refactor message in i2c_detach_client

We could refactor the error message 34 different i2c drivers print if
i2c_detach_client() fails in this function itself. Saves quite a few
lines of code. Documentation is updated to reflect that change.

Note that this patch should be applied after Rudolf Marek's w83792d
patches.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: W83792D documentation 3/3
R.Marek@sh.cvut.cz [Wed, 27 Jul 2005 09:25:28 +0000 (09:25 +0000)]
[PATCH] I2C: W83792D documentation 3/3

This patch adds documentation entry for W83792D chip.

Signed-off-by: Rudolf Marek <r.marek@sh.cvut.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: W83792D add hwmon class register 2/3
R.Marek@sh.cvut.cz [Wed, 27 Jul 2005 11:50:18 +0000 (11:50 +0000)]
[PATCH] I2C: W83792D add hwmon class register 2/3

This patch adds registration of hwmon class. Tested with help of i2c-stub.

Signed-off-by: Rudolf Marek <r.marek@sh.cvut.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: W83792D driver 1/3
R.Marek@sh.cvut.cz [Wed, 27 Jul 2005 11:43:47 +0000 (11:43 +0000)]
[PATCH] I2C: W83792D driver 1/3

I would like to announce support for W83792D chip. This driver was developed
by Winbond Electronics Corp. I added sysfs attributes callbacks infrastructure
plus various code fixes and codingstyle cleanups. I would like to thank Winbond
for supporting free software.

This patch is against 2.6.13rc3 plus hwmon-class and hwmon-split.
Separate patch for documantation and hwmon class register will follow.

Signed-off-by: Rudolf Marek <r.marek@sh.cvut.cz>
Signed-off-by: Chunhao Huang <DZShen@Winbond.com.tw>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (9/9)
Jean Delvare [Tue, 19 Jul 2005 22:09:03 +0000 (00:09 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (9/9)

Move the definitions of i2c_is_isa_client and i2c_is_isa_adapter from
i2c.h to i2c-isa.h. Only hybrid drivers still need them.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (8/9)
Jean Delvare [Tue, 19 Jul 2005 22:05:33 +0000 (00:05 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (8/9)

Kill all uses of i2c_is_isa_adapter except for the hybrid drivers (it87,
lm78, w83781d). The i2c-isa adapter not being registered with the i2c
core anymore, drivers don't have to fear being erroneously attached to
it.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (7/9)
Jean Delvare [Tue, 19 Jul 2005 22:02:32 +0000 (00:02 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (7/9)

Kill normal_isa in header files, documentation and all chip drivers, as
it is no more used.

normal_i2c could be renamed to normal, but I decided not to do so at the
moment, so as to limit the number of changes. This might be done later
as part of the i2c_probe/i2c_detect merge.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (6/9)
Jean Delvare [Tue, 19 Jul 2005 21:57:54 +0000 (23:57 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (6/9)

Kill all isa-related stuff from i2c_detect, it's not used anymore.

This is one major step in the directiom of merging i2c_probe and
i2c_detect. The last obstacle I can think of is the different way forced
addresses work between sensors and non-sensors i2c drivers. I'll deal
with that in a later patchset.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (5/9)
Jean Delvare [Tue, 19 Jul 2005 21:56:35 +0000 (23:56 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (5/9)

Call the ISA chip drivers detection function directly instead of relying
on i2c_detect. The net effect is that address lists won't be handled
anymore, but they were mostly useless in the ISA case anyway (pc87360,
smsc47m1, smsc47b397 had already dropped them).

We don't need to handle multiple devices, all we may need is a way to
force a given address instead of the original one (some drivers already
do: sis5595, via686a, w83627hf), and, for drivers supporting multiple
chips, a way to force one given kind. All this may be added later on
demand, but I actually don't think there will be much demand.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (4/9)
Jean Delvare [Tue, 19 Jul 2005 21:53:07 +0000 (23:53 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (4/9)

All ISA hardware monitoring drivers (including hybrid drivers) now have
a hard dependency on i2c-isa, so they must select I2C_ISA. As a result,
CONFIG_I2C_ISA doesn't need to be left visible to the user. The good
thing here is that users will stop complaining that some driver doesn't
work just because they forgot to compile or load i2c-isa.

At this point, all drivers are working again and the cleanup phase can
begin.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (3/9)
Jean Delvare [Tue, 19 Jul 2005 21:51:07 +0000 (23:51 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (3/9)

Convert the 10 ISA hardware monitoring drivers (it87, lm78, pc87360,
sis5595, smsc47b397, smsc47m1, via686a, w83627hf, w83627ehf, w83781d) to
explicitely register with i2c-isa. For hybrid drivers (it87, lm78,
w83781d), we now have two separate instances of i2c_driver, one for the
I2C interface of the chip, and one for ISA interface. In the long run,
the one for ISA will be replaced with a different driver type.

At this point, all drivers are working again, except for missing
dependencies in Kconfig.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (2/9)
Jean Delvare [Tue, 19 Jul 2005 21:48:43 +0000 (23:48 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (2/9)

Convert i2c-isa from a dumb i2c_adapter into a pseudo i2c-core for ISA
hardware monitoring drivers. The isa i2c_adapter is no more registered
with i2c-core, drivers have to explicitely connect to it using the new
i2c_isa_{add,del}_driver interface.

At this point, all ISA chip drivers are useless, because they still
register with i2c-core in the hope i2c-isa is registered there as well,
but it isn't anymore.

The fake bus will be named i2c-9191 in sysfs. This is the number it
already had internally in various places, so it's not exactly new,
except that now the number is seen in userspace as well. This shouldn't
be a problem until someone really has 9192 I2C busses in a given system
;)

The fake bus will no more show in "i2cdetect -l", as it won't be seen by
i2c-dev anymore (not being registered with i2c-core), which is a good
thing, as i2cdetect/i2cdump/i2cset cannot operate on this fake bus
anyway.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (1/9)
Jean Delvare [Wed, 20 Jul 2005 21:03:50 +0000 (23:03 +0200)]
[PATCH] I2C: Separate non-i2c hwmon drivers from i2c-core (1/9)

Temporarily export a few structures and functions from i2c-core, because we
will soon need them in i2c-isa.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C hwmon: add hwmon sysfs class to drivers
Mark M. Hoffman [Sat, 16 Jul 2005 01:39:18 +0000 (21:39 -0400)]
[PATCH] I2C hwmon: add hwmon sysfs class to drivers

This patch modifies sensors chip drivers to make use of the new
sysfs class "hwmon".

Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C hwmon: hwmon sysfs class
Mark M. Hoffman [Sat, 16 Jul 2005 01:38:08 +0000 (21:38 -0400)]
[PATCH] I2C hwmon: hwmon sysfs class

This patch adds the sysfs class "hwmon" for use by hardware monitoring
(sensors) chip drivers.  It also fixes up the related Kconfig/Makefile
bits.

Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] hwmon: Document on the W83627EHG chip
Jean Delvare [Wed, 27 Jul 2005 19:33:15 +0000 (21:33 +0200)]
[PATCH] hwmon: Document on the W83627EHG chip

Document the fact that the W83627EHG is compatible with the W83627EHF.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] hwmon: kill client name lm78-j
Jean Delvare [Wed, 27 Jul 2005 19:30:16 +0000 (21:30 +0200)]
[PATCH] hwmon: kill client name lm78-j

Drop the separate client name for the LM78-J chip. This is really
only a later revision of the LM78, with almost no difference and
no difference the driver handles in any case.

This was the only client name that had a dash in it, and special care
had to be taken in libsensors because of it. As we plan to write a new
library soon, I'd like to get rid of this exception before we do.

As a nice side effect, it saves 876 bytes in lm78.ko.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] hwmon: soften lm75 initialization
Jean Delvare [Wed, 27 Jul 2005 19:28:28 +0000 (21:28 +0200)]
[PATCH] hwmon: soften lm75 initialization

The LM75 initialization is a bit agressive, it arbitrarily reconfigures
the chip. Make it only change the bit it needs. This is a port from
the 2.4 kernel version of the driver (lm_sensors).

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: max6875 code cleanup
bgardner@wabtec.com [Wed, 27 Jul 2005 17:43:14 +0000 (12:43 -0500)]
[PATCH] I2C: max6875 code cleanup

Remove an unused local variable and change the subclient name.

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: max6875 documentation cleanup
bgardner@wabtec.com [Wed, 27 Jul 2005 17:43:21 +0000 (12:43 -0500)]
[PATCH] I2C: max6875 documentation cleanup

Fix a spelling error and change a sysfs name.

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: add kobj_to_i2c_client
bgardner@wabtec.com [Wed, 27 Jul 2005 17:43:03 +0000 (12:43 -0500)]
[PATCH] I2C: add kobj_to_i2c_client

Move the inline function kobj_to_i2c_client() from max6875.c to i2c.h.

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: cleanup of i2c-nforce2
Hans-Frieder Vogt [Sat, 23 Jul 2005 13:33:39 +0000 (15:33 +0200)]
[PATCH] I2C: cleanup of i2c-nforce2

attached is a small patch that removes unused code from i2c-nforce2 and
adds a single debug message. The patch is against 2.6.13-rc3-mm1.
I have tested the patch with 2.6.13-rc3: compiles cleanly and works as
without the patch (as expected).

Signed-off-by: Hans-Frieder Vogt <hfvogt@arcor.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: fix max6875 build error
Greg Kroah-Hartman [Wed, 27 Jul 2005 17:43:03 +0000 (12:43 -0500)]
[PATCH] I2C: fix max6875 build error

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: update max6875 documentation
bgardner@wabtec.com [Tue, 12 Jul 2005 18:21:50 +0000 (13:21 -0500)]
[PATCH] I2C: update max6875 documentation

Updates to the max6875 driver documentation.
This brings the documentation in sync with the code, which was recently
simplified.

This patch is based off 2.6.13-rc2-mm2.

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] I2C: simplify max6875 driver
bgardner@wabtec.com [Tue, 12 Jul 2005 18:21:11 +0000 (13:21 -0500)]
[PATCH] I2C: simplify max6875 driver

This is an update to the max6875 driver.
It no longer does any detection, so the address must be forced on module load.
It only makes available the user EEPROM (read-only).

This patch is based off 2.6.13-rc2-mm2.

Signed-off-by: Ben Gardner <bgardner@wabtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds [Mon, 5 Sep 2005 07:18:09 +0000 (00:18 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-mmc

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 5 Sep 2005 07:17:25 +0000 (00:17 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Mon, 5 Sep 2005 07:14:47 +0000 (00:14 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-serial

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Mon, 5 Sep 2005 07:12:58 +0000 (00:12 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Mon, 5 Sep 2005 07:11:50 +0000 (00:11 -0700)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

19 years ago[PATCH] s390: disconnected 3270 console
Martin Schwidefsky [Sat, 3 Sep 2005 22:58:06 +0000 (15:58 -0700)]
[PATCH] s390: disconnected 3270 console

Fix reboot with a disconnected 3270 console.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: spinlock corner case
Heiko Carstens [Sat, 3 Sep 2005 22:58:05 +0000 (15:58 -0700)]
[PATCH] s390: spinlock corner case

On s390 the lock value used for spinlocks consists of the lower 32 bits of the
PSW that holds the lock.  If this address happens to be on a four gigabyte
boundary the lock is left unlocked.  This allows other cpus to grab the same
lock and enter a lock protected code path concurrently.  In theory this can
happen if the vmalloc area for the code of a module crosses a 4 GB boundary.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: compat system calls
Heiko Carstens [Sat, 3 Sep 2005 22:58:04 +0000 (15:58 -0700)]
[PATCH] s390: compat system calls

Use TIF bit to tell if a process is running in 31 bit mode instead of checking
the addressing mode bits of the PSW.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: crypto driver update
Eric Rossman [Sat, 3 Sep 2005 22:58:03 +0000 (15:58 -0700)]
[PATCH] s390: crypto driver update

crypto device driver update:

 - Suppress syslog messages for some return codes.

 - Fix incorrect bounds checking in /proc interface.

 - Remove hotplug calls.

 - Remove linux version checks.

 - Remove device workqueue on module unload.

Signed-off-by: Eric Rossman <edrossma@us.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: pfault interrupt race
Martin Schwidefsky [Sat, 3 Sep 2005 22:58:02 +0000 (15:58 -0700)]
[PATCH] s390: pfault interrupt race

There is a race in pfault_interrupt.  That function gets called two times for
each pfault notification.  Once with a subcode of 0 to indicate that a real
page is not available and once with a subcode of 0x80 to indicate that the
page is present again.

Since the two external interrupts can be delivered on two different cpus the
order in which the two calls are made is unpredictable.  It is possible that
the subcode 0x80 interrupt is completed before the subcode 0x00 interrupt has
done the wake_up() call.

To avoid calling wake_up() on an already removed task structure proper task
structure reference counting is needed.  Increase the reference counter in the
subcode 0x00 interrupt before setting pfault_wait to zero and return the
reference after the wake_up call.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: reIPL fix and extern/static inline
Cornelia Huck [Sat, 3 Sep 2005 22:58:01 +0000 (15:58 -0700)]
[PATCH] s390: reIPL fix and extern/static inline

Common i/o layer changes:

- Collect the irb at the correct subchannel when waiting for the clear
  interrupt during subchannel cleaning befor reIPL - don't stop at the first
  interrupt that comes in.

- Change "extern __inline__" to "static inline".

- Remove unneeded qdio includes.

Signed-off-by: Cornelia Huck <cohuck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: 64 bit diag250 support
Horst Hummel [Sat, 3 Sep 2005 22:58:00 +0000 (15:58 -0700)]
[PATCH] s390: 64 bit diag250 support

Add support for diag 250 access to dasd devices for 64 bit kernels.  In
addition fix detach/attach for diag disks.  The VM control block needs to get
recreated by a call to mdsk_init_io.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: deadlock in dasd_devmap
Horst Hummel [Sat, 3 Sep 2005 22:57:58 +0000 (15:57 -0700)]
[PATCH] s390: deadlock in dasd_devmap

Reintroduce a read-only copy of the devmap features in the device struct.
This is necessary to solve a deadlock on the dasd_devmap_lock which is
acquired by dasd_get_features called from the dasd tasklet.  The current
implementation of devmap doesn't allow to call any devmap function from
interrupt or softirq context.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: debug feature changes
Michael Holzheu [Sat, 3 Sep 2005 22:57:58 +0000 (15:57 -0700)]
[PATCH] s390: debug feature changes

debug feature changes/bug fixes:

- Use get_clock() function instead of private inline assembly.

- Use 'struct timeval' instead of 'struct timespec' for call to
  tod_to_timeval().  Now the microsecond part of the timestamp is correct
  again.

- Fix a locking problem: when creating a snapshot of the current content
  of the debug areas, lock the entire debug_info object.

Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] s390: machine check handler bugs
Martin Schwidefsky [Sat, 3 Sep 2005 22:57:56 +0000 (15:57 -0700)]
[PATCH] s390: machine check handler bugs

The new machine check handler still has a few bugs.

1) The system entry time has to be stored in the machine check handler,

2) the machine check return psw may not be stored at the usual place
   because it might overwrite the return psw of the interrupted context,

3) the return address for the call to s390_handle_mcck in the i/o interrupt
   handler is not correct,

4) the system call cleanup has to take the different save area of the
   machine check handler into account,

5) the machine check handler may not call UPDATE_VTIME before
   CREATE_STACK_FRAME, and

6) the io leave path needs a critical section cleanup to make sure that the
   TIF_MCCK_PENDING bit is really checked before switching back to user space.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] xtensa: delete accidental file
Adrian Bunk [Sat, 3 Sep 2005 22:57:55 +0000 (15:57 -0700)]
[PATCH] xtensa: delete accidental file

This file seems to be an accident.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] xtensa: replace 'extern inline' with 'static inline'
Adrian Bunk [Sat, 3 Sep 2005 22:57:53 +0000 (15:57 -0700)]
[PATCH] xtensa: replace 'extern inline' with 'static inline'

"extern inline" doesn't make sense.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fix x86_64 page leak
Jeff Dike [Sat, 3 Sep 2005 22:57:52 +0000 (15:57 -0700)]
[PATCH] uml: fix x86_64 page leak

We were leaking pmd pages when 3_LEVEL_PGTABLES was enabled.  This fixes that.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fix advanced sysemu check
Bodo Stroesser [Sat, 3 Sep 2005 22:57:51 +0000 (15:57 -0700)]
[PATCH] uml: fix advanced sysemu check

cleanup and fix the check for advanced sysemu (PTRACE_SYSEMU_SINGLESTEP
option)

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: allow host capability usage to be disabled
Bodo Stroesser [Sat, 3 Sep 2005 22:57:51 +0000 (15:57 -0700)]
[PATCH] uml: allow host capability usage to be disabled

Add new cmdline setups:
  - noprocmm
  - noptracefaultinfo
In case of testing, they can be used to switch off usage of
/proc/mm and PTRACE_FAULTINFO independently.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: skas0 stubs now check system call return values
Bodo Stroesser [Sat, 3 Sep 2005 22:57:50 +0000 (15:57 -0700)]
[PATCH] uml: skas0 stubs now check system call return values

Change syscall-stub's data to include a "expected retval".

Stub now checks syscalls retval and aborts execution of syscall list, if
retval != expected retval.

run_syscall_stub prints the data of the failed syscall, using the data pointer
and retval written by the stub to the beginning of the stack.

one_syscall_stub is removed, to simplify code, because only some instructions
are saved by one_syscall_stub, no host-syscall.

Using the stub with additional data (modify_ldt via stub)
is prepared also.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: increase granularity of host capability checking
Bodo Stroesser [Sat, 3 Sep 2005 22:57:49 +0000 (15:57 -0700)]
[PATCH] uml: increase granularity of host capability checking

This change enables SKAS0/SKAS3 to work with all combinations of /proc/mm and
PTRACE_FAULTINFO being available or not.

Also it changes the initialization of proc_mm and ptrace_faultinfo slightly,
to ease forcing SKAS0 on a patched host.  Forcing UML to run without /proc/mm
or PTRACE_FAULTINFO by cmdline parameter can be implemented with a setup
resetting the related variable.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: move libc-dependent startup and signal code
Gennady Sharapov [Sat, 3 Sep 2005 22:57:47 +0000 (15:57 -0700)]
[PATCH] uml: move libc-dependent startup and signal code

The serial UML OS-abstraction layer patch (um/kernel dir).

This moves all systemcalls from process.c file under os-Linux dir and join
process.c and process_kern.c files.

Signed-off-by: Gennady Sharapov <gennady.v.sharapov@intel.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: add host AIO support to block driver
Jeff Dike [Sat, 3 Sep 2005 22:57:46 +0000 (15:57 -0700)]
[PATCH] uml: add host AIO support to block driver

This adds AIO support to the ubd driver.

The driver breaks a struct request into IO requests to the host, based on the
hardware segments in the request and on any COW blocks covered by the request.

The ubd IO thread is gone, since there is now an equivalent thread in the AIO
module.

There is provision for multiple outstanding requests now.  Requests aren't
retired until all pieces of it have been completed.  The AIO requests have a
shared count, which is decremented as IO operations come in until it reaches
0.  This can be possibly moved to the request struct - haven't looked at this
yet.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: use host AIO support
Jeff Dike [Sat, 3 Sep 2005 22:57:45 +0000 (15:57 -0700)]
[PATCH] uml: use host AIO support

This patch makes UML use host AIO support when it (and
/usr/include/linux/aio_abi.h) are present.  This is only the support, with no
consumers - a consumer is coming in the next patch.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: build cleanups
Al Viro [Sat, 3 Sep 2005 22:57:43 +0000 (15:57 -0700)]
[PATCH] uml: build cleanups

Added missing include list to uml AFLAGS

Killed magic for stubs.  [So] - it was needed only because of messed AFLAGS
Switched segv_stubs.c to kernel CFLAGS sans profile, instead of user ones
Killed STUBS_CFLAGS - it's not needed and the only remaining use had been
gratitious - it only polluted CFLAGS

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: system call path cleanup
Jeff Dike [Sat, 3 Sep 2005 22:57:42 +0000 (15:57 -0700)]
[PATCH] uml: system call path cleanup

This merges two sets of files which had no business being split apart in the
first place.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: merge duplicated page table code
Jeff Dike [Sat, 3 Sep 2005 22:57:41 +0000 (15:57 -0700)]
[PATCH] uml: merge duplicated page table code

There is a lot of code which is duplicated between the 2 and 3 level
implementation, with the only difference that the 3-level implementation is a
bit more generalized (instead of accessing directly pte_t.pte, it uses the
appropriate access macros).

So this code is joined together.

As obvious, a "core code nice cleanup" is not a "stability-friendly patch" so
usual care applies.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: TLB operation batching
Jeff Dike [Sat, 3 Sep 2005 22:57:36 +0000 (15:57 -0700)]
[PATCH] uml: TLB operation batching

This adds VM op batching to skas0.  Rather than having a context switch to and
from the userspace stub for each address space change, we write a number of
operations to the stub data page and invoke a different stub which loops over
them and executes them all in one go.

The operations are stored as [ system call number, arg1, arg2, ... ] tuples.

The set is terminated by a system call number of 0.  Single operations, i.e.
page faults, are handled in the old way, since that is slightly more
efficient.

For a kernel build, a minority (~1/4) of the operations are part of a set.
These sets averaged ~100 in length, so for this quarter, the context switching
overhead is greatly reduced.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: remove duplicated exports
Jeff Dike [Sat, 3 Sep 2005 22:57:34 +0000 (15:57 -0700)]
[PATCH] uml: remove duplicated exports

Al Viro <viro@parcelfarce.linux.theplanet.co.uk> spotted a bunch of duplicated
exports - this removes them.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: mark SMP on UML/x86_64 as broken
Jeff Dike [Sat, 3 Sep 2005 22:57:33 +0000 (15:57 -0700)]
[PATCH] uml: mark SMP on UML/x86_64 as broken

Noticed by Al Viro <viro@parcelfarce.linux.theplanet.co.uk> - SMP on x86_64 is
fundamentally broken due to UML's reuse of the host arch's percpu stuff.  This
is OK on x86, but the x86_64 pda stuff just won't work for UML.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: remove libc reference in build
Al Viro [Sat, 3 Sep 2005 22:57:31 +0000 (15:57 -0700)]
[PATCH] uml: remove libc reference in build

Remove an unneeded reference to libc.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: build cleanup
Al Viro [Sat, 3 Sep 2005 22:57:30 +0000 (15:57 -0700)]
[PATCH] uml: build cleanup

Build cleanups

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: error path cleanup
Jeff Dike [Sat, 3 Sep 2005 22:57:29 +0000 (15:57 -0700)]
[PATCH] uml: error path cleanup

This cleans up the error path in ubd_open, causing it now to call ubd_close
appropriately when something fails.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fix a macro typo
Al Viro [Sat, 3 Sep 2005 22:57:28 +0000 (15:57 -0700)]
[PATCH] uml: fix a macro typo

Fix a macro typo which could break if the macro is passed arguments with
side-effects.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fix signal frame copy_user
Al Viro [Sat, 3 Sep 2005 22:57:27 +0000 (15:57 -0700)]
[PATCH] uml: fix signal frame copy_user

The copy_user stuff in the signal frame code was broke.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fault handler micro-cleanups
Paolo 'Blaisorblade' Giarrusso [Sat, 3 Sep 2005 22:57:26 +0000 (15:57 -0700)]
[PATCH] uml: fault handler micro-cleanups

Avoid chomping low bits of address for functions doing it by themselves,
fix whitespace, add a correctness checking.

I did this for remap-file-pages protection support, it was useful on its
own too.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fixes performance regression in activate_mm and thus exec()
Paolo 'Blaisorblade' Giarrusso [Sat, 3 Sep 2005 22:57:25 +0000 (15:57 -0700)]
[PATCH] uml: fixes performance regression in activate_mm and thus exec()

Normally, activate_mm() is called from exec(), and thus it used to be a
no-op because we use a completely new "MM context" on the host (for
instance, a new process), and so we didn't need to flush any "TLB entries"
(which for us are the set of memory mappings for the host process from the
virtual "RAM" file).

Kernel threads, instead, are usually handled in a different way.  So, when
for AIO we call use_mm(), things used to break and so Benjamin implemented
activate_mm().  However, that is only needed for AIO, and could slow down
exec() inside UML, so be smart: detect being called for AIO (via
PF_BORROWED_MM) and do the full flush only in that situation.

Comment also the caller so that people won't go breaking UML without
noticing.  I also rely on the caller's locks for testing current->flags.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: fix SIGWINCH handler race while waiting for signals.
Bodo Stroesser [Sat, 3 Sep 2005 22:57:24 +0000 (15:57 -0700)]
[PATCH] uml: fix SIGWINCH handler race while waiting for signals.

If a SIGWINCH comes in, while winch_thread() isn't waiting in wait(),
winch_thread could miss signals.  It isn't very probable, that anyone will
see this causing trouble, as it would need a very special timing, that a
missed SIGWINCH results in a wrong window size.

So, this is a minor problem.  But why not fix, as it can be done so easy?

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: workaround GDB problems on debugging
Paolo 'Blaisorblade' Giarrusso [Sat, 3 Sep 2005 22:57:23 +0000 (15:57 -0700)]
[PATCH] uml: workaround GDB problems on debugging

Apparently, GDB gets confused when we do an execvp() on ourselves.

Since it's simply done to allocate further space for command line arguments
(which we'll use to allow gathering the startup command line for guest
processes through the host), allow the user to disable that to get a
debuggable UML binary.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: SYSEMU: slight cleanup and speedup
Paolo 'Blaisorblade' Giarrusso [Sat, 3 Sep 2005 22:57:22 +0000 (15:57 -0700)]
[PATCH] uml: SYSEMU: slight cleanup and speedup

As a follow-up to "UML Support - Ptrace: adds the host SYSEMU support, for
UML and general usage" (i.e.  uml-support-* in current mm).

Avoid unconditionally jumping to work_pending and code copying, just reuse
the already existing resume_userspace path.

One interesting note, from Charles P.  Wright, suggested that the API is
improvable with no downsides for UML (except that it will have to support
yet another host API, since dropping support for the current API, for UML,
is not reasonable from users' point of view).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Charles P. Wright <cwright@cs.sunysb.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] SYSEMU: fix sysaudit / singlestep interaction
Bodo Stroesser [Sat, 3 Sep 2005 22:57:21 +0000 (15:57 -0700)]
[PATCH] SYSEMU: fix sysaudit / singlestep interaction

      Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

This is simply an adjustment for "Ptrace - i386: fix Syscall Audit interaction
with singlestep" to work on top of SYSEMU patches, too.  On this patch, I have
some doubts: I wonder why we need to alter that way ptrace_disable().

I left the patch this way because it has been extensively tested, but I don't
understand the reason.

The current PTRACE_DETACH handling simply clears child->ptrace; actually this
is not enough because entry.S just looks at the thread_flags; actually,
do_syscall_trace checks current->ptrace but I don't think depending on that is
good, at least for performance, so I think the clearing is done elsewhere.
For instance, on PTRACE_CONT it's done, but doing PTRACE_DETACH without
PTRACE_CONT is possible (and happens when gdb crashes and one kills it
manually).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Roland McGrath <roland@redhat.com>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Uml support: add PTRACE_SYSEMU_SINGLESTEP option to i386
Bodo Stroesser [Sat, 3 Sep 2005 22:57:20 +0000 (15:57 -0700)]
[PATCH] Uml support: add PTRACE_SYSEMU_SINGLESTEP option to i386

This patch implements the new ptrace option PTRACE_SYSEMU_SINGLESTEP, which
can be used by UML to singlestep a process: it will receive SINGLESTEP
interceptions for normal instructions and syscalls, but syscall execution will
be skipped just like with PTRACE_SYSEMU.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Uml support: reorganize PTRACE_SYSEMU support
Bodo Stroesser [Sat, 3 Sep 2005 22:57:19 +0000 (15:57 -0700)]
[PATCH] Uml support: reorganize PTRACE_SYSEMU support

With this patch, we change the way we handle switching from PTRACE_SYSEMU to
PTRACE_{SINGLESTEP,SYSCALL}, to free TIF_SYSCALL_EMU from double use as a
preparation for PTRACE_SYSEMU_SINGLESTEP extension, without changing the
behavior of the host kernel.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] UML Support - Ptrace: adds the host SYSEMU support, for UML and general usage
Laurent Vivier [Sat, 3 Sep 2005 22:57:18 +0000 (15:57 -0700)]
[PATCH] UML Support - Ptrace: adds the host SYSEMU support, for UML and general usage

      Jeff Dike <jdike@addtoit.com>,
      Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>,
      Bodo Stroesser <bstroesser@fujitsu-siemens.com>

Adds a new ptrace(2) mode, called PTRACE_SYSEMU, resembling PTRACE_SYSCALL
except that the kernel does not execute the requested syscall; this is useful
to improve performance for virtual environments, like UML, which want to run
the syscall on their own.

In fact, using PTRACE_SYSCALL means stopping child execution twice, on entry
and on exit, and each time you also have two context switches; with SYSEMU you
avoid the 2nd stop and so save two context switches per syscall.

Also, some architectures don't have support in the host for changing the
syscall number via ptrace(), which is currently needed to skip syscall
execution (UML turns any syscall into getpid() to avoid it being executed on
the host).  Fixing that is hard, while SYSEMU is easier to implement.

* This version of the patch includes some suggestions of Jeff Dike to avoid
  adding any instructions to the syscall fast path, plus some other little
  changes, by myself, to make it work even when the syscall is executed with
  SYSENTER (but I'm unsure about them). It has been widely tested for quite a
  lot of time.

* Various fixed were included to handle the various switches between
  various states, i.e. when for instance a syscall entry is traced with one of
  PT_SYSCALL / _SYSEMU / _SINGLESTEP and another one is used on exit.
  Basically, this is done by remembering which one of them was used even after
  the call to ptrace_notify().

* We're combining TIF_SYSCALL_EMU with TIF_SYSCALL_TRACE or TIF_SINGLESTEP
  to make do_syscall_trace() notice that the current syscall was started with
  SYSEMU on entry, so that no notification ought to be done in the exit path;
  this is a bit of a hack, so this problem is solved in another way in next
  patches.

* Also, the effects of the patch:
"Ptrace - i386: fix Syscall Audit interaction with singlestep"
are cancelled; they are restored back in the last patch of this series.

Detailed descriptions of the patches doing this kind of processing follow (but
I've already summed everything up).

* Fix behaviour when changing interception kind #1.

  In do_syscall_trace(), we check the status of the TIF_SYSCALL_EMU flag
  only after doing the debugger notification; but the debugger might have
  changed the status of this flag because he continued execution with
  PTRACE_SYSCALL, so this is wrong.  This patch fixes it by saving the flag
  status before calling ptrace_notify().

* Fix behaviour when changing interception kind #2:
  avoid intercepting syscall on return when using SYSCALL again.

  A guest process switching from using PTRACE_SYSEMU to PTRACE_SYSCALL
  crashes.

  The problem is in arch/i386/kernel/entry.S.  The current SYSEMU patch
  inhibits the syscall-handler to be called, but does not prevent
  do_syscall_trace() to be called after this for syscall completion
  interception.

  The appended patch fixes this.  It reuses the flag TIF_SYSCALL_EMU to
  remember "we come from PTRACE_SYSEMU and now are in PTRACE_SYSCALL", since
  the flag is unused in the depicted situation.

* Fix behaviour when changing interception kind #3:
  avoid intercepting syscall on return when using SINGLESTEP.

  When testing 2.6.9 and the skas3.v6 patch, with my latest patch and had
  problems with singlestepping on UML in SKAS with SYSEMU.  It looped
  receiving SIGTRAPs without moving forward.  EIP of the traced process was
  the same for all SIGTRAPs.

What's missing is to handle switching from PTRACE_SYSCALL_EMU to
PTRACE_SINGLESTEP in a way very similar to what is done for the change from
PTRACE_SYSCALL_EMU to PTRACE_SYSCALL_TRACE.

I.e., after calling ptrace(PTRACE_SYSEMU), on the return path, the debugger is
notified and then wake ups the process; the syscall is executed (or skipped,
when do_syscall_trace() returns 0, i.e.  when using PTRACE_SYSEMU), and
do_syscall_trace() is called again.  Since we are on the return path of a
SYSEMU'd syscall, if the wake up is performed through ptrace(PTRACE_SYSCALL),
we must still avoid notifying the parent of the syscall exit.  Now, this
behaviour is extended even to resuming with PTRACE_SINGLESTEP.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Ptrace/i386: fix "syscall audit" interaction with singlestep
Bodo Stroesser [Sat, 3 Sep 2005 22:57:13 +0000 (15:57 -0700)]
[PATCH] Ptrace/i386: fix "syscall audit" interaction with singlestep

      Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

Avoid giving two traps for singlestep instead of one, when syscall auditing is
enabled.

In fact no singlestep trap is sent on syscall entry, only on syscall exit, as
can be seen in entry.S:

# Note that in this mask _TIF_SINGLESTEP is not tested !!! <<<<<<<<<<<<<<
        testb $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),TI_flags(%ebp)
        jnz syscall_trace_entry
...
syscall_trace_entry:
...
call do_syscall_trace

But auditing a SINGLESTEP'ed process causes do_syscall_trace to be called, so
the tracer will get one more trap on the syscall entry path, which it
shouldn't.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Roland McGrath <roland@redhat.com>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: Rename Kconfig files to be like the other arches
Jeff Dike [Sat, 3 Sep 2005 22:57:12 +0000 (15:57 -0700)]
[PATCH] uml: Rename Kconfig files to be like the other arches

To the extent that sub-Kconfig files exist elsewhere in the tree, they are
named Kconfig.foo, rather than the Kconfig_foo that UML has.  This patch
brings the names in line with the rest of the tree.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] uml: remove debugging code from page fault path
Jeff Dike [Sat, 3 Sep 2005 22:57:12 +0000 (15:57 -0700)]
[PATCH] uml: remove debugging code from page fault path

This eliminates the segfault info ring buffer, which added a system call to
each page fault, and which hadn't been useful for debugging in ages.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] arch/cris/Kconfig.debug: use lib/Kconfig.debug
Adrian Bunk [Sat, 3 Sep 2005 22:57:10 +0000 (15:57 -0700)]
[PATCH] arch/cris/Kconfig.debug: use lib/Kconfig.debug

This patch converts arch/cris/Kconfig.debug to using lib/Kconfig.debug.

This should fix a compile error in 2.6.13-rc4 caused by a missing
CONFIG_LOG_BUF_SHIFT definition.

While I was editing this file, I also converted some spaces to tabs.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Mikael Starvik <starvik@axis.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] m68k: cleanup inline mem functions
Roman Zippel [Sat, 3 Sep 2005 22:57:10 +0000 (15:57 -0700)]
[PATCH] m68k: cleanup inline mem functions

Use the builtin functions for memset/memclr/memcpy, special optimizations for
page operations have dedicated functions now.  Uninline memmove/memchr and
move all functions into a single file and clean it up a little.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] m68k: move cache functions into separate file
Roman Zippel [Sat, 3 Sep 2005 22:57:09 +0000 (15:57 -0700)]
[PATCH] m68k: move cache functions into separate file

Move a few cache functions into its own file and fix flush_icache_range() so
it can handle both kernel and user addresses correctly (assuming context is
set correctly).

Turn copy_to_user_page/copy_from_user_page into inline functions and add a
missing cache flush.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] m68k: sys_ptrace cleanup
Roman Zippel [Sat, 3 Sep 2005 22:57:08 +0000 (15:57 -0700)]
[PATCH] m68k: sys_ptrace cleanup

- create helper function singlestep_disable()
- move variable definitions to the top of the function
- use "out_eio" label as common error destination
- don't clear failure value for PTRACE_SETREGS/PTRACE_GETREGS

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] m68k: indent sys_ptrace
Roman Zippel [Sat, 3 Sep 2005 22:57:07 +0000 (15:57 -0700)]
[PATCH] m68k: indent sys_ptrace

This reformats and properly indents sys_ptrace (only whitespace changes).

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] add suspend/resume for timer
Shaohua Li [Sat, 3 Sep 2005 22:57:07 +0000 (15:57 -0700)]
[PATCH] add suspend/resume for timer

The timers lack .suspend/.resume methods.  Because of this, jiffies got a
big compensation after a S3 resume.  And then softlockup watchdog reports
an oops.  This occured with HPET enabled, but it's also possible for other
timers.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] pm: clean up /sys/power/disk
Pavel Machek [Sat, 3 Sep 2005 22:57:06 +0000 (15:57 -0700)]
[PATCH] pm: clean up /sys/power/disk

Clean code up a bit, and only show suspend to disk as available when
it is configured in.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] pm: fix process freezing
Pavel Machek [Sat, 3 Sep 2005 22:57:05 +0000 (15:57 -0700)]
[PATCH] pm: fix process freezing

If process freezing fails, some processes are frozen, and rest are left in
"were asked to be frozen" state.  Thats wrong, we should leave it in some
consistent state.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: fix error handling and cleanups
Pavel Machek [Sat, 3 Sep 2005 22:57:05 +0000 (15:57 -0700)]
[PATCH] swsusp: fix error handling and cleanups

Drop printing during normal boot (when no image exists in swap), print
message when drivers fail, fix error paths and consolidate near-identical
functions in disk.c (and functions with just one statement).

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: add locking to software_resume
Shaohua Li [Sat, 3 Sep 2005 22:57:04 +0000 (15:57 -0700)]
[PATCH] swsusp: add locking to software_resume

It is trying to protect swsusp_resume_device and software_resume() from two
users banging it from userspace at the same time.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusup with dm-crypt mini howto
Andreas Steinmetz [Sat, 3 Sep 2005 22:57:03 +0000 (15:57 -0700)]
[PATCH] swsusup with dm-crypt mini howto

The attached patch contains a mini howto for using dm-crypt together with
swsusp.

Signed-off-by: Andreas Steinmetz <ast@domdv.de>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: simpler calculation of number of pages in PBE list
Michal Schmidt [Sat, 3 Sep 2005 22:57:02 +0000 (15:57 -0700)]
[PATCH] swsusp: simpler calculation of number of pages in PBE list

The function calc_nr uses an iterative algorithm to calculate the number of
pages needed for the image and the pagedir.  Exactly the same result can be
obtained with a one-line expression.

Note that this was even proved correct ;-).

Signed-off-by: Michal Schmidt <xschmi00@stud.feec.vutbr.cz>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: prevent disks from spinning down and up
Michal Schmidt [Sat, 3 Sep 2005 22:57:01 +0000 (15:57 -0700)]
[PATCH] swsusp: prevent disks from spinning down and up

Stop the disks from spinning down and up on suspend.

Signed-off-by: Michal Schmidt <xschmi00@stud.feec.vutbr.cz>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] encrypt suspend data for easy wiping
Andreas Steinmetz [Sat, 3 Sep 2005 22:56:59 +0000 (15:56 -0700)]
[PATCH] encrypt suspend data for easy wiping

The patch protects from leaking sensitive data after resume from suspend.
During suspend a temporary key is created and this key is used to encrypt the
data written to disk.  When, during resume, the data was read back into memory
the temporary key is destroyed which simply means that all data written to
disk during suspend are then inaccessible so they can't be stolen lateron.

Think of the following: you suspend while an application is running that keeps
sensitive data in memory.  The application itself prevents the data from being
swapped out.  Suspend, however, must write these data to swap to be able to
resume lateron.  Without suspend encryption your sensitive data are then
stored in plaintext on disk.  This means that after resume your sensitive data
are accessible to all applications having direct access to the swap device
which was used for suspend.  If you don't need swap after resume these data
can remain on disk virtually forever.  Thus it can happen that your system
gets broken in weeks later and sensitive data which you thought were encrypted
and protected are retrieved and stolen from the swap device.

Signed-off-by: Andreas Steinmetz <ast@domdv.de>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix pm_message_t stuff in -mm tree
Pavel Machek [Sat, 3 Sep 2005 22:56:58 +0000 (15:56 -0700)]
[PATCH] fix pm_message_t stuff in -mm tree

This should bits from -mm tree that are affected by pm_message_t
conversion.  [I'm not 100% sure I got all of them, but I certainly got all
the errors on make allyesconfig build, and most of warnings, too.  I'll go
through the buildlog tommorow and fix any remaining bits].

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: switch pm_message_t to struct
Pavel Machek [Sat, 3 Sep 2005 22:56:57 +0000 (15:56 -0700)]
[PATCH] swsusp: switch pm_message_t to struct

This adds type-checking to pm_message_t, so that people can't confuse it
with int or u32.  It also allows us to fix "disk yoyo" during suspend (disk
spinning down/up/down).

[We've tried that before; since that cpufreq problems were fixed and I've
tried make allyes config and fixed resulting damage.]

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Alexander Nyberg <alexn@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] swsusp: fix remaining u32 vs. pm_message_t confusion
Pavel Machek [Sat, 3 Sep 2005 22:56:56 +0000 (15:56 -0700)]
[PATCH] swsusp: fix remaining u32 vs. pm_message_t confusion

Fix remaining bits of u32 vs.  pm_message confusion.  Should not break
anything.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] suspend: update documentation
Pavel Machek [Sat, 3 Sep 2005 22:56:56 +0000 (15:56 -0700)]
[PATCH] suspend: update documentation

Update suspend documentation.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ISA DMA suspend for x86_64
Pierre Ossman [Sat, 3 Sep 2005 22:56:55 +0000 (15:56 -0700)]
[PATCH] ISA DMA suspend for x86_64

Reset the ISA DMA controller into a known state after a suspend.  Primary
concern was reenabling the cascading DMA channel (4).

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ISA DMA suspend for i386
Pierre Ossman [Sat, 3 Sep 2005 22:56:54 +0000 (15:56 -0700)]
[PATCH] ISA DMA suspend for i386

Reset the ISA DMA controller into a known state after a suspend.  Primary
concern was reenabling the cascading DMA channel (4).

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] remove busywait in refrigerator
Pavel Machek [Sat, 3 Sep 2005 22:56:53 +0000 (15:56 -0700)]
[PATCH] remove busywait in refrigerator

This should make refrigerator sleep properly, not busywait after the first
schedule() returns.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] unify x86/x86-64 semaphore code
Benjamin LaHaise [Sat, 3 Sep 2005 22:56:52 +0000 (15:56 -0700)]
[PATCH] unify x86/x86-64 semaphore code

This patch moves the common code in x86 and x86-64's semaphore.c into a
single file in lib/semaphore-sleepers.c.  The arch specific asm stubs are
left in the arch tree (in semaphore.c for i386 and in the asm for x86-64).
There should be no changes in code/functionality with this patch.

Signed-off-by: Benjamin LaHaise <benjamin.c.lahaise@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] i386 boottime for_each_cpu broken
Zwane Mwaikambo [Sat, 3 Sep 2005 22:56:51 +0000 (15:56 -0700)]
[PATCH] i386 boottime for_each_cpu broken

for_each_cpu walks through all processors in cpu_possible_map, which is
defined as cpu_callout_map on i386 and isn't initialised until all
processors have been booted. This breaks things which do for_each_cpu
iterations early during boot. So, define cpu_possible_map as a bitmap with
NR_CPUS bits populated. This was triggered by a patch i'm working on which
does alloc_percpu before bringing up secondary processors.

From: Alexander Nyberg <alexn@telia.com>

i386-boottime-for_each_cpu-broken.patch
i386-boottime-for_each_cpu-broken-fix.patch

The SMP version of __alloc_percpu checks the cpu_possible_map before
allocating memory for a certain cpu.  With the above patches the BSP cpuid
is never set in cpu_possible_map which breaks CONFIG_SMP on uniprocessor
machines (as soon as someone tries to dereference something allocated via
__alloc_percpu, which in fact is never allocated since the cpu is not set
in cpu_possible_map).

Signed-off-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Signed-off-by: Alexander Nyberg <alexn@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] i386: encapsulate copying of pgd entries
Zachary Amsden [Sat, 3 Sep 2005 22:56:50 +0000 (15:56 -0700)]
[PATCH] i386: encapsulate copying of pgd entries

Add a clone operation for pgd updates.

This helps complete the encapsulation of updates to page tables (or pages
about to become page tables) into accessor functions rather than using
memcpy() to duplicate them.  This is both generally good for consistency
and also necessary for running in a hypervisor which requires explicit
updates to page table entries.

The new function is:

clone_pgd_range(pgd_t *dst, pgd_t *src, int count);

   dst - pointer to pgd range anwhere on a pgd page
   src - ""
   count - the number of pgds to copy.

   dst and src can be on the same page, but the range must not overlap
   and must not cross a page boundary.

Note that I ommitted using this call to copy pgd entries into the
software suspend page root, since this is not technically a live paging
structure, rather it is used on resume from suspend.  CC'ing Pavel in case
he has any feedback on this.

Thanks to Chris Wright for noticing that this could be more optimal in
PAE compiles by eliminating the memset.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>