[PATCH 14/19] MUTEX: First set of include changes

From: David Howells
Date: Mon Dec 12 2005 - 18:49:15 EST


The attached patch modifies the first half of the include files to use the new
mutex functions.

Signed-Off-By: David Howells <dhowells@xxxxxxxxxx>
---
warthog>diffstat -p1 mutex-include-1-2615rc5.diff
include/linux/agpgart.h | 2 +-
include/linux/audit.h | 2 +-
include/linux/backlight.h | 2 +-
include/linux/cpu.h | 2 +-
include/linux/cpufreq.h | 2 +-
include/linux/devfs_fs_kernel.h | 2 +-
include/linux/device.h | 6 +++---
include/linux/ext3_fs_i.h | 2 +-
include/linux/fs.h | 17 +++++++++--------
include/linux/gameport.h | 2 +-
include/linux/generic_serial.h | 2 +-
include/linux/hil_mlc.h | 8 ++++----
include/linux/hp_sdc.h | 2 +-
include/linux/i2c.h | 6 +++---
include/linux/i2o.h | 8 ++++----
include/linux/ide.h | 10 +++++-----
include/linux/if_pppox.h | 2 +-
include/linux/input.h | 2 +-
include/linux/isdn.h | 4 ++--
include/linux/jbd.h | 6 +++---
include/linux/jffs2_fs_i.h | 4 ++--
include/linux/jffs2_fs_sb.h | 6 +++---
include/linux/kernelcapi.h | 2 +-
include/linux/kobj_map.h | 4 ++--
include/linux/kthread.h | 5 +++--
include/linux/lcd.h | 2 +-
include/linux/libps2.h | 2 +-
include/linux/lockd/lockd.h | 4 ++--
include/linux/loop.h | 6 +++---
include/linux/lp.h | 4 ++--
include/linux/memory.h | 5 ++---
include/linux/msdos_fs.h | 2 +-
include/linux/mtd/blktrans.h | 4 ++--
include/linux/mtd/doc2000.h | 4 ++--
include/linux/nbd.h | 2 +-
include/linux/ncp_fs_i.h | 2 +-
include/linux/ncp_fs_sb.h | 4 ++--
include/linux/netfilter/nfnetlink.h | 2 +-
include/linux/parport.h | 4 ++--
include/linux/quota.h | 7 ++++---
include/linux/raid/md.h | 2 +-
include/linux/raid/md_k.h | 2 +-
include/linux/reiserfs_fs_sb.h | 6 +++---
include/linux/rtnetlink.h | 2 +-
44 files changed, 89 insertions(+), 87 deletions(-)

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/agpgart.h linux-2.6.15-rc5-mutex/include/linux/agpgart.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/agpgart.h 2005-03-02 12:08:56.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/agpgart.h 2005-12-12 19:30:17.000000000 +0000
@@ -201,7 +201,7 @@ struct agp_file_private {
};

struct agp_front_data {
- struct semaphore agp_mutex;
+ struct mutex agp_mutex;
struct agp_controller *current_controller;
struct agp_controller *controllers;
struct agp_file_private *file_priv_list;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/audit.h linux-2.6.15-rc5-mutex/include/linux/audit.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/audit.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/audit.h 2005-12-12 19:39:56.000000000 +0000
@@ -283,7 +283,7 @@ extern void audit_send_reply(int pi
int done, int multi,
void *payload, int size);
extern void audit_log_lost(const char *message);
-extern struct semaphore audit_netlink_sem;
+extern struct mutex audit_netlink_sem;
#else
#define audit_log(c,g,t,f,...) do { ; } while (0)
#define audit_log_start(c,g,t) ({ NULL; })
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/backlight.h linux-2.6.15-rc5-mutex/include/linux/backlight.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/backlight.h 2005-03-02 12:08:56.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/backlight.h 2005-12-12 19:44:11.000000000 +0000
@@ -39,7 +39,7 @@ struct backlight_device {
/* This protects the 'props' field. If 'props' is NULL, the driver that
registered this device has been unloaded, and if class_get_devdata()
points to something in the body of that driver, it is also invalid. */
- struct semaphore sem;
+ struct mutex sem;
/* If this is NULL, the backing module is unloaded */
struct backlight_properties *props;
/* The framebuffer notifier block */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/cpufreq.h linux-2.6.15-rc5-mutex/include/linux/cpufreq.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/cpufreq.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/cpufreq.h 2005-12-12 19:30:49.000000000 +0000
@@ -82,7 +82,7 @@ struct cpufreq_policy {
unsigned int policy; /* see above */
struct cpufreq_governor *governor; /* see below */

- struct semaphore lock; /* CPU ->setpolicy or ->target may
+ struct mutex lock; /* CPU ->setpolicy or ->target may
only be called once a time */

struct work_struct update; /* if update_policy() needs to be
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/cpu.h linux-2.6.15-rc5-mutex/include/linux/cpu.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/cpu.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/cpu.h 2005-12-12 22:12:49.000000000 +0000
@@ -23,7 +23,7 @@
#include <linux/node.h>
#include <linux/compiler.h>
#include <linux/cpumask.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

struct cpu {
int node_id; /* The node which contains the CPU */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/devfs_fs_kernel.h linux-2.6.15-rc5-mutex/include/linux/devfs_fs_kernel.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/devfs_fs_kernel.h 2004-06-18 13:42:16.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/devfs_fs_kernel.h 2005-12-12 22:12:49.000000000 +0000
@@ -6,7 +6,7 @@
#include <linux/spinlock.h>
#include <linux/types.h>

-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

#define DEVFS_SUPER_MAGIC 0x1373

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/device.h linux-2.6.15-rc5-mutex/include/linux/device.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/device.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/device.h 2005-12-12 22:12:49.000000000 +0000
@@ -19,7 +19,7 @@
#include <linux/types.h>
#include <linux/module.h>
#include <linux/pm.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <asm/atomic.h>

#define DEVICE_NAME_SIZE 50
@@ -146,7 +146,7 @@ struct class {
struct subsystem subsys;
struct list_head children;
struct list_head interfaces;
- struct semaphore sem; /* locks both the children and interfaces lists */
+ struct mutex sem; /* locks both the children and interfaces lists */

struct class_attribute * class_attrs;
struct class_device_attribute * class_dev_attrs;
@@ -310,7 +310,7 @@ struct device {
char bus_id[BUS_ID_SIZE]; /* position on parent bus */
struct device_attribute uevent_attr;

- struct semaphore sem; /* semaphore to synchronize calls to
+ struct mutex sem; /* semaphore to synchronize calls to
* its driver.
*/

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/ext3_fs_i.h linux-2.6.15-rc5-mutex/include/linux/ext3_fs_i.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/ext3_fs_i.h 2005-06-22 13:52:32.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/ext3_fs_i.h 2005-12-12 17:34:02.000000000 +0000
@@ -131,7 +131,7 @@ struct ext3_inode_info {
* during recovery. Hence we must fix the get_block-vs-truncate race
* by other means, so we have truncate_sem.
*/
- struct semaphore truncate_sem;
+ struct mutex truncate_sem;
struct inode vfs_inode;
};

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/fs.h linux-2.6.15-rc5-mutex/include/linux/fs.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/fs.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/fs.h 2005-12-12 22:12:49.000000000 +0000
@@ -10,6 +10,7 @@
#include <linux/limits.h>
#include <linux/ioctl.h>
#include <linux/rcuref.h>
+#include <linux/semaphore.h>

/*
* It's silly to have NR_OPEN bigger than NR_FILE, but you can change
@@ -220,9 +221,9 @@ extern int dir_notify_enable;
#include <linux/prio_tree.h>
#include <linux/init.h>
#include <linux/sched.h>
+#include <linux/semaphore.h>

#include <asm/atomic.h>
-#include <asm/semaphore.h>
#include <asm/byteorder.h>

struct iovec;
@@ -368,8 +369,8 @@ struct block_device {
dev_t bd_dev; /* not a kdev_t - it's a search key */
struct inode * bd_inode; /* will die */
int bd_openers;
- struct semaphore bd_sem; /* open/close mutex */
- struct semaphore bd_mount_sem; /* mount mutex */
+ struct mutex bd_sem; /* open/close mutex */
+ struct mutex bd_mount_sem; /* mount mutex */
struct list_head bd_inodes;
void * bd_holder;
int bd_holders;
@@ -453,7 +454,7 @@ struct inode {
unsigned long i_blocks;
unsigned short i_bytes;
spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
- struct semaphore i_sem;
+ struct mutex i_sem;
struct rw_semaphore i_alloc_sem;
struct inode_operations *i_op;
struct file_operations *i_fop; /* former ->i_op->default_file_ops */
@@ -480,7 +481,7 @@ struct inode {

#ifdef CONFIG_INOTIFY
struct list_head inotify_watches; /* watches on this inode */
- struct semaphore inotify_sem; /* protects the watches list */
+ struct mutex inotify_sem; /* protects the watches list */
#endif

unsigned long i_state;
@@ -790,7 +791,7 @@ struct super_block {
unsigned long s_magic;
struct dentry *s_root;
struct rw_semaphore s_umount;
- struct semaphore s_lock;
+ struct mutex s_lock;
int s_count;
int s_syncing;
int s_need_sync_fs;
@@ -819,7 +820,7 @@ struct super_block {
* The next field is for VFS *only*. No filesystems have any business
* even looking at it. You had been warned.
*/
- struct semaphore s_vfs_rename_sem; /* Kludge */
+ struct mutex s_vfs_rename_sem; /* Kludge */

/* Granuality of c/m/atime in ns.
Cannot be worse than a second */
@@ -1496,7 +1497,7 @@ extern void destroy_inode(struct inode *
extern struct inode *new_inode(struct super_block *);
extern int remove_suid(struct dentry *);
extern void remove_dquot_ref(struct super_block *, int, struct list_head *);
-extern struct semaphore iprune_sem;
+extern struct mutex iprune_sem;

extern void __insert_inode_hash(struct inode *, unsigned long hashval);
extern void remove_inode_hash(struct inode *);
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/gameport.h linux-2.6.15-rc5-mutex/include/linux/gameport.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/gameport.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/gameport.h 2005-12-12 19:31:08.000000000 +0000
@@ -40,7 +40,7 @@ struct gameport {
struct gameport *parent, *child;

struct gameport_driver *drv;
- struct semaphore drv_sem; /* protects serio->drv so attributes can pin driver */
+ struct mutex drv_sem; /* protects serio->drv so attributes can pin driver */

struct device dev;
unsigned int registered; /* port has been fully registered with driver core */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/generic_serial.h linux-2.6.15-rc5-mutex/include/linux/generic_serial.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/generic_serial.h 2005-06-22 13:52:32.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/generic_serial.h 2005-12-12 19:31:20.000000000 +0000
@@ -34,7 +34,7 @@ struct gs_port {
int xmit_head;
int xmit_tail;
int xmit_cnt;
- struct semaphore port_write_sem;
+ struct mutex port_write_sem;
int flags;
wait_queue_head_t open_wait;
wait_queue_head_t close_wait;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/hil_mlc.h linux-2.6.15-rc5-mutex/include/linux/hil_mlc.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/hil_mlc.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/hil_mlc.h 2005-12-12 22:12:49.000000000 +0000
@@ -34,7 +34,7 @@
#include <linux/hil.h>
#include <linux/time.h>
#include <linux/interrupt.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <linux/serio.h>
#include <linux/list.h>

@@ -133,14 +133,14 @@ struct hil_mlc {
int istarted, ostarted;

hil_mlc_cts *cts;
- struct semaphore csem; /* Raised when loop idle */
+ struct mutex csem; /* Raised when loop idle */

hil_mlc_out *out;
- struct semaphore osem; /* Raised when outpacket dispatched */
+ struct mutex osem; /* Raised when outpacket dispatched */
hil_packet opacket;

hil_mlc_in *in;
- struct semaphore isem; /* Raised when a packet arrives */
+ struct mutex isem; /* Raised when a packet arrives */
hil_packet ipacket[16];
hil_packet imatch;
int icount;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/hp_sdc.h linux-2.6.15-rc5-mutex/include/linux/hp_sdc.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/hp_sdc.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/hp_sdc.h 2005-12-12 19:43:52.000000000 +0000
@@ -68,7 +68,7 @@ typedef struct {
uint8_t *seq; /* commands/data for the transaction */
union {
hp_sdc_irqhook *irqhook; /* Callback, isr or tasklet context */
- struct semaphore *semaphore; /* Semaphore to sleep on. */
+ struct mutex *semaphore; /* Semaphore to sleep on. */
} act;
} hp_sdc_transaction;
int hp_sdc_enqueue_transaction(hp_sdc_transaction *this);
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/i2c.h linux-2.6.15-rc5-mutex/include/linux/i2c.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/i2c.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/i2c.h 2005-12-12 22:12:49.000000000 +0000
@@ -32,7 +32,7 @@
#include <linux/mod_devicetable.h>
#include <linux/device.h> /* for struct device */
#include <linux/sched.h> /* for completion */
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

/* --- For i2c-isa ---------------------------------------------------- */

@@ -222,8 +222,8 @@ struct i2c_adapter {
int (*client_unregister)(struct i2c_client *);

/* data fields that are valid for all devices */
- struct semaphore bus_lock;
- struct semaphore clist_lock;
+ struct mutex bus_lock;
+ struct mutex clist_lock;

int timeout;
int retries;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/i2o.h linux-2.6.15-rc5-mutex/include/linux/i2o.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/i2o.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/i2o.h 2005-12-12 22:12:49.000000000 +0000
@@ -30,9 +30,9 @@
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/workqueue.h> /* work_struct */
+#include <linux/semaphore.h>

#include <asm/io.h>
-#include <asm/semaphore.h> /* Needed for MUTEX init macros */

/* message queue empty */
#define I2O_QUEUE_EMPTY 0xffffffff
@@ -69,7 +69,7 @@ struct i2o_device {

struct device device;

- struct semaphore lock; /* device lock */
+ struct mutex lock; /* device lock */
};

/*
@@ -117,7 +117,7 @@ struct i2o_driver {
void (*notify_device_add) (struct i2o_device *);
void (*notify_device_remove) (struct i2o_device *);

- struct semaphore lock;
+ struct mutex lock;
};

/*
@@ -181,7 +181,7 @@ struct i2o_controller {
struct i2o_dma hrt; /* HW Resource Table */
i2o_lct *lct; /* Logical Config Table */
struct i2o_dma dlct; /* Temp LCT */
- struct semaphore lct_lock; /* Lock for LCT updates */
+ struct mutex lct_lock; /* Lock for LCT updates */
struct i2o_dma status_block; /* IOP status block */

struct i2o_io base; /* controller messaging unit */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/ide.h linux-2.6.15-rc5-mutex/include/linux/ide.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/ide.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/ide.h 2005-12-12 22:12:49.000000000 +0000
@@ -18,10 +18,10 @@
#include <linux/bio.h>
#include <linux/device.h>
#include <linux/pci.h>
+#include <linux/semaphore.h>
#include <asm/byteorder.h>
#include <asm/system.h>
#include <asm/io.h>
-#include <asm/semaphore.h>

/*
* This is the multiple IDE interface driver, as evolved from hd.c.
@@ -759,7 +759,7 @@ typedef struct ide_drive_s {
int crc_count; /* crc counter to reduce drive speed */
struct list_head list;
struct device gendev;
- struct semaphore gendev_rel_sem; /* to deal with device release() */
+ struct mutex gendev_rel_sem; /* to deal with device release() */
} ide_drive_t;

#define to_ide_device(dev)container_of(dev, ide_drive_t, gendev)
@@ -915,7 +915,7 @@ typedef struct hwif_s {
unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */

struct device gendev;
- struct semaphore gendev_rel_sem; /* To deal with device release() */
+ struct mutex gendev_rel_sem; /* To deal with device release() */

void *hwif_data; /* extra hwif data */

@@ -1000,7 +1000,7 @@ typedef struct ide_settings_s {
struct ide_settings_s *next;
} ide_settings_t;

-extern struct semaphore ide_setting_sem;
+extern struct mutex ide_setting_sem;
extern int ide_add_setting(ide_drive_t *drive, const char *name, int rw, int read_ioctl, int write_ioctl, int data_type, int min, int max, int mul_factor, int div_factor, void *data, ide_procset_t *set);
extern ide_settings_t *ide_find_setting_by_name(ide_drive_t *drive, char *name);
extern int ide_read_setting(ide_drive_t *t, ide_settings_t *setting);
@@ -1458,7 +1458,7 @@ extern const ide_pio_timings_t ide_pio_t


extern spinlock_t ide_lock;
-extern struct semaphore ide_cfg_sem;
+extern struct mutex ide_cfg_sem;
/*
* Structure locking:
*
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/if_pppox.h linux-2.6.15-rc5-mutex/include/linux/if_pppox.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/if_pppox.h 2005-06-22 13:52:32.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/if_pppox.h 2005-12-12 22:12:49.000000000 +0000
@@ -24,7 +24,7 @@
#include <linux/if_ether.h>
#include <linux/if.h>
#include <linux/netdevice.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <linux/ppp_channel.h>
#endif /* __KERNEL__ */

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/input.h linux-2.6.15-rc5-mutex/include/linux/input.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/input.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/input.h 2005-12-12 17:51:08.000000000 +0000
@@ -888,7 +888,7 @@ struct input_dev {

struct input_handle *grab;

- struct semaphore sem; /* serializes open and close operations */
+ struct mutex sem; /* serializes open and close operations */
unsigned int users;

struct class_device cdev;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/isdn.h linux-2.6.15-rc5-mutex/include/linux/isdn.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/isdn.h 2005-11-01 13:19:20.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/isdn.h 2005-12-12 19:32:14.000000000 +0000
@@ -515,7 +515,7 @@ typedef struct modem_info {
struct termios normal_termios; /* For saving termios structs */
struct termios callout_termios;
wait_queue_head_t open_wait, close_wait;
- struct semaphore write_sem;
+ struct mutex write_sem;
spinlock_t readlock;
} modem_info;

@@ -625,7 +625,7 @@ typedef struct isdn_devt {
int v110emu[ISDN_MAX_CHANNELS]; /* V.110 emulator-mode 0=none */
atomic_t v110use[ISDN_MAX_CHANNELS]; /* Usage-Semaphore for stream */
isdn_v110_stream *v110[ISDN_MAX_CHANNELS]; /* V.110 private data */
- struct semaphore sem; /* serialize list access*/
+ struct mutex sem; /* serialize list access*/
unsigned long global_features;
} isdn_dev;

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/jbd.h linux-2.6.15-rc5-mutex/include/linux/jbd.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/jbd.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/jbd.h 2005-12-12 22:12:49.000000000 +0000
@@ -27,7 +27,7 @@
#include <linux/journal-head.h>
#include <linux/stddef.h>
#include <linux/bit_spinlock.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#endif

#define journal_oom_retry 1
@@ -644,7 +644,7 @@ struct journal_s
int j_barrier_count;

/* The barrier lock itself */
- struct semaphore j_barrier;
+ struct mutex j_barrier;

/*
* Transactions: The current running transaction...
@@ -686,7 +686,7 @@ struct journal_s
wait_queue_head_t j_wait_updates;

/* Semaphore for locking against concurrent checkpoints */
- struct semaphore j_checkpoint_sem;
+ struct mutex j_checkpoint_sem;

/*
* Journal head: identifies the first unused block in the journal.
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/jffs2_fs_i.h linux-2.6.15-rc5-mutex/include/linux/jffs2_fs_i.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/jffs2_fs_i.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/jffs2_fs_i.h 2005-12-12 22:12:49.000000000 +0000
@@ -5,7 +5,7 @@

#include <linux/version.h>
#include <linux/rbtree.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

struct jffs2_inode_info {
/* We need an internal semaphore similar to inode->i_sem.
@@ -14,7 +14,7 @@ struct jffs2_inode_info {
before letting GC proceed. Or we'd have to put ugliness
into the GC code so it didn't attempt to obtain the i_sem
for the inode(s) which are already locked */
- struct semaphore sem;
+ struct mutex sem;

/* The highest (datanode) version number used for this ino */
uint32_t highest_version;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/jffs2_fs_sb.h linux-2.6.15-rc5-mutex/include/linux/jffs2_fs_sb.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/jffs2_fs_sb.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/jffs2_fs_sb.h 2005-12-12 22:12:49.000000000 +0000
@@ -7,7 +7,7 @@
#include <linux/spinlock.h>
#include <linux/workqueue.h>
#include <linux/completion.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <linux/timer.h>
#include <linux/wait.h>
#include <linux/list.h>
@@ -35,7 +35,7 @@ struct jffs2_sb_info {
struct completion gc_thread_start; /* GC thread start completion */
struct completion gc_thread_exit; /* GC thread exit completion port */

- struct semaphore alloc_sem; /* Used to protect all the following
+ struct mutex alloc_sem; /* Used to protect all the following
fields, and also to protect against
out-of-order writing of nodes. And GC. */
uint32_t cleanmarker_size; /* Size of an _inline_ CLEANMARKER
@@ -93,7 +93,7 @@ struct jffs2_sb_info {
/* Sem to allow jffs2_garbage_collect_deletion_dirent to
drop the erase_completion_lock while it's holding a pointer
to an obsoleted node. I don't like this. Alternatives welcomed. */
- struct semaphore erase_free_sem;
+ struct mutex erase_free_sem;

uint32_t wbuf_pagesize; /* 0 for NOR and other flashes with no wbuf */

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/kernelcapi.h linux-2.6.15-rc5-mutex/include/linux/kernelcapi.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/kernelcapi.h 2004-09-16 12:06:22.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/kernelcapi.h 2005-12-12 19:32:42.000000000 +0000
@@ -62,7 +62,7 @@ struct capi20_appl {
unsigned long nrecvdatapkt;
unsigned long nsentctlpkt;
unsigned long nsentdatapkt;
- struct semaphore recv_sem;
+ struct mutex recv_sem;
struct sk_buff_head recv_queue;
struct work_struct recv_work;
int release_in_progress;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/kobj_map.h linux-2.6.15-rc5-mutex/include/linux/kobj_map.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/kobj_map.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/kobj_map.h 2005-12-12 22:12:49.000000000 +0000
@@ -1,6 +1,6 @@
#ifdef __KERNEL__

-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
struct kobj_map;
@@ -9,6 +9,6 @@ int kobj_map(struct kobj_map *, dev_t, u
kobj_probe_t *, int (*)(dev_t, void *), void *);
void kobj_unmap(struct kobj_map *, dev_t, unsigned long);
struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *);
-struct kobj_map *kobj_map_init(kobj_probe_t *, struct semaphore *);
+struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *);

#endif
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/kthread.h linux-2.6.15-rc5-mutex/include/linux/kthread.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/kthread.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/kthread.h 2005-12-12 22:12:49.000000000 +0000
@@ -3,6 +3,7 @@
/* Simple interface for creating and stopping kernel threads without mess. */
#include <linux/err.h>
#include <linux/sched.h>
+#include <linux/semaphore.h>

/**
* kthread_create: create a kthread.
@@ -72,14 +73,14 @@ int kthread_stop(struct task_struct *k);
/**
* kthread_stop_sem: stop a thread created by kthread_create().
* @k: thread created by kthread_create().
- * @s: semaphore that @k waits on while idle.
+ * @s: mutex that @k waits on while idle.
*
* Does essentially the same thing as kthread_stop() above, but wakes
* @k by calling up(@s).
*
* Returns the result of threadfn(), or -EINTR if wake_up_process()
* was never called. */
-int kthread_stop_sem(struct task_struct *k, struct semaphore *s);
+int kthread_stop_sem(struct task_struct *k, struct mutex *s);

/**
* kthread_should_stop: should this kthread return now?
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/lcd.h linux-2.6.15-rc5-mutex/include/linux/lcd.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/lcd.h 2005-03-02 12:08:57.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/lcd.h 2005-12-12 19:32:48.000000000 +0000
@@ -38,7 +38,7 @@ struct lcd_device {
/* This protects the 'props' field. If 'props' is NULL, the driver that
registered this device has been unloaded, and if class_get_devdata()
points to something in the body of that driver, it is also invalid. */
- struct semaphore sem;
+ struct mutex sem;
/* If this is NULL, the backing module is unloaded */
struct lcd_properties *props;
/* The framebuffer notifier block */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/libps2.h linux-2.6.15-rc5-mutex/include/linux/libps2.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/libps2.h 2005-08-30 13:56:36.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/libps2.h 2005-12-12 18:02:54.000000000 +0000
@@ -28,7 +28,7 @@ struct ps2dev {
struct serio *serio;

/* Ensures that only one command is executing at a time */
- struct semaphore cmd_sem;
+ struct mutex cmd_sem;

/* Used to signal completion from interrupt handler */
wait_queue_head_t wait;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/lockd/lockd.h linux-2.6.15-rc5-mutex/include/linux/lockd/lockd.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/lockd/lockd.h 2005-08-30 13:56:36.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/lockd/lockd.h 2005-12-12 17:38:48.000000000 +0000
@@ -53,7 +53,7 @@ struct nlm_host {
u32 h_nsmstate; /* true remote NSM state */
u32 h_pidcount; /* Pseudopids */
atomic_t h_count; /* reference count */
- struct semaphore h_sema; /* mutex for pmap binding */
+ struct mutex h_sema; /* mutex for pmap binding */
unsigned long h_nextrebind; /* next portmap call */
unsigned long h_expires; /* eligible for GC */
struct list_head h_lockowners; /* Lockowners for the client */
@@ -99,7 +99,7 @@ struct nlm_file {
struct nlm_block * f_blocks; /* blocked locks */
unsigned int f_locks; /* guesstimate # of locks */
unsigned int f_count; /* reference count */
- struct semaphore f_sema; /* avoid concurrent access */
+ struct mutex f_sema; /* avoid concurrent access */
int f_hash; /* hash of f_handle */
};

diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/loop.h linux-2.6.15-rc5-mutex/include/linux/loop.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/loop.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/loop.h 2005-12-12 17:45:34.000000000 +0000
@@ -58,9 +58,9 @@ struct loop_device {
struct bio *lo_bio;
struct bio *lo_biotail;
int lo_state;
- struct semaphore lo_sem;
- struct semaphore lo_ctl_mutex;
- struct semaphore lo_bh_mutex;
+ struct mutex lo_sem;
+ struct mutex lo_ctl_mutex;
+ struct mutex lo_bh_mutex;
int lo_pending;

request_queue_t *lo_queue;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/lp.h linux-2.6.15-rc5-mutex/include/linux/lp.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/lp.h 2005-03-02 12:08:57.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/lp.h 2005-12-12 22:12:49.000000000 +0000
@@ -99,7 +99,7 @@
#ifdef __KERNEL__

#include <linux/wait.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

/* Magic numbers for defining port-device mappings */
#define LP_PARPORT_UNSPEC -4
@@ -145,7 +145,7 @@ struct lp_struct {
#endif
wait_queue_head_t waitq;
unsigned int last_error;
- struct semaphore port_mutex;
+ struct mutex port_mutex;
wait_queue_head_t dataq;
long timeout;
unsigned int best_mode;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/memory.h linux-2.6.15-rc5-mutex/include/linux/memory.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/memory.h 2005-12-08 16:23:54.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/memory.h 2005-12-12 22:12:49.000000000 +0000
@@ -18,8 +18,7 @@
#include <linux/sysdev.h>
#include <linux/node.h>
#include <linux/compiler.h>
-
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

struct memory_block {
unsigned long phys_index;
@@ -30,7 +29,7 @@ struct memory_block {
* created long after the critical areas during
* initialization.
*/
- struct semaphore state_sem;
+ struct mutex state_sem;
int phys_device; /* to which fru does this belong? */
void *hw; /* optional pointer to fw/hw data */
int (*phys_callback)(struct memory_block *);
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/msdos_fs.h linux-2.6.15-rc5-mutex/include/linux/msdos_fs.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/msdos_fs.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/msdos_fs.h 2005-12-12 17:34:19.000000000 +0000
@@ -226,7 +226,7 @@ struct msdos_sb_info {
unsigned long max_cluster; /* maximum cluster number */
unsigned long root_cluster; /* first cluster of the root directory */
unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */
- struct semaphore fat_lock;
+ struct mutex fat_lock;
unsigned int prev_free; /* previously allocated cluster number */
unsigned int free_clusters; /* -1 if undefined */
struct fat_mount_options options;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/mtd/blktrans.h linux-2.6.15-rc5-mutex/include/linux/mtd/blktrans.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/mtd/blktrans.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/mtd/blktrans.h 2005-12-12 22:12:49.000000000 +0000
@@ -10,7 +10,7 @@
#ifndef __MTD_TRANS_H__
#define __MTD_TRANS_H__

-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

struct hd_geometry;
struct mtd_info;
@@ -22,7 +22,7 @@ struct mtd_blktrans_dev {
struct mtd_blktrans_ops *tr;
struct list_head list;
struct mtd_info *mtd;
- struct semaphore sem;
+ struct mutex sem;
int devnum;
int blksize;
unsigned long size;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/mtd/doc2000.h linux-2.6.15-rc5-mutex/include/linux/mtd/doc2000.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/mtd/doc2000.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/mtd/doc2000.h 2005-12-12 22:12:49.000000000 +0000
@@ -15,7 +15,7 @@
#define __MTD_DOC2000_H__

#include <linux/mtd/mtd.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>

#define DoC_Sig1 0
#define DoC_Sig2 1
@@ -187,7 +187,7 @@ struct DiskOnChip {
int numchips;
struct Nand *chips;
struct mtd_info *nextdoc;
- struct semaphore lock;
+ struct mutex lock;
};

int doc_decode_ecc(unsigned char sector[512], unsigned char ecc1[6]);
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/nbd.h linux-2.6.15-rc5-mutex/include/linux/nbd.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/nbd.h 2004-06-18 13:42:16.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/nbd.h 2005-12-12 19:33:00.000000000 +0000
@@ -49,7 +49,7 @@ struct nbd_device {
int magic;
spinlock_t queue_lock;
struct list_head queue_head;/* Requests are added here... */
- struct semaphore tx_lock;
+ struct mutex tx_lock;
struct gendisk *disk;
int blksize;
u64 bytesize;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/ncp_fs_i.h linux-2.6.15-rc5-mutex/include/linux/ncp_fs_i.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/ncp_fs_i.h 2004-10-19 10:42:17.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/ncp_fs_i.h 2005-12-12 19:33:05.000000000 +0000
@@ -19,7 +19,7 @@ struct ncp_inode_info {
__le32 DosDirNum;
__u8 volNumber;
__le32 nwattr;
- struct semaphore open_sem;
+ struct mutex open_sem;
atomic_t opened;
int access;
int flags;
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/ncp_fs_sb.h linux-2.6.15-rc5-mutex/include/linux/ncp_fs_sb.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/ncp_fs_sb.h 2004-06-18 13:42:15.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/ncp_fs_sb.h 2005-12-12 19:33:16.000000000 +0000
@@ -51,7 +51,7 @@ struct ncp_server {
receive replies */

int lock; /* To prevent mismatch in protocols. */
- struct semaphore sem;
+ struct mutex sem;

int current_size; /* for packet preparation */
int has_subfunction;
@@ -96,7 +96,7 @@ struct ncp_server {
struct {
struct work_struct tq; /* STREAM/DGRAM: data/error ready */
struct ncp_request_reply* creq; /* STREAM/DGRAM: awaiting reply from this request */
- struct semaphore creq_sem; /* DGRAM only: lock accesses to rcv.creq */
+ struct mutex creq_sem; /* DGRAM only: lock accesses to rcv.creq */

unsigned int state; /* STREAM only: receiver state */
struct {
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/netfilter/nfnetlink.h linux-2.6.15-rc5-mutex/include/linux/netfilter/nfnetlink.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/netfilter/nfnetlink.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/netfilter/nfnetlink.h 2005-12-12 19:41:44.000000000 +0000
@@ -129,7 +129,7 @@ extern void __nfa_fill(struct sk_buff *s
({ if (skb_tailroom(skb) < (int)NFA_SPACE(attrlen)) goto nfattr_failure; \
__nfa_fill(skb, attrtype, attrlen, data); })

-extern struct semaphore nfnl_sem;
+extern struct mutex nfnl_sem;

#define nfnl_shlock() down(&nfnl_sem)
#define nfnl_shlock_nowait() down_trylock(&nfnl_sem)
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/parport.h linux-2.6.15-rc5-mutex/include/linux/parport.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/parport.h 2005-06-22 13:52:33.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/parport.h 2005-12-12 22:12:49.000000000 +0000
@@ -101,9 +101,9 @@ typedef enum {
#include <linux/proc_fs.h>
#include <linux/spinlock.h>
#include <linux/wait.h>
+#include <linux/semaphore.h>
#include <asm/system.h>
#include <asm/ptrace.h>
-#include <asm/semaphore.h>

/* Define this later. */
struct parport;
@@ -254,7 +254,7 @@ enum ieee1284_phase {
struct ieee1284_info {
int mode;
volatile enum ieee1284_phase phase;
- struct semaphore irq;
+ struct mutex irq;
};

/* A parallel port */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/quota.h linux-2.6.15-rc5-mutex/include/linux/quota.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/quota.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/quota.h 2005-12-12 22:12:49.000000000 +0000
@@ -38,6 +38,7 @@
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/spinlock.h>
+#include <linux/semaphore.h>

#define __DQUOT_VERSION__ "dquot_6.5.1"
#define __DQUOT_NUM_VERSION__ 6*10000+5*100+1
@@ -215,7 +216,7 @@ struct dquot {
struct list_head dq_inuse; /* List of all quotas */
struct list_head dq_free; /* Free list element */
struct list_head dq_dirty; /* List of dirty dquots */
- struct semaphore dq_lock; /* dquot IO lock */
+ struct mutex dq_lock; /* dquot IO lock */
atomic_t dq_count; /* Use count */
wait_queue_head_t dq_wait_unused; /* Wait queue for dquot to become unused */
struct super_block *dq_sb; /* superblock this applies to */
@@ -285,8 +286,8 @@ struct quota_format_type {

struct quota_info {
unsigned int flags; /* Flags for diskquotas on this device */
- struct semaphore dqio_sem; /* lock device while I/O in progress */
- struct semaphore dqonoff_sem; /* Serialize quotaon & quotaoff */
+ struct mutex dqio_sem; /* lock device while I/O in progress */
+ struct mutex dqonoff_sem; /* Serialize quotaon & quotaoff */
struct rw_semaphore dqptr_sem; /* serialize ops using quota_info struct, pointers from inode to dquots */
struct inode *files[MAXQUOTAS]; /* inodes of quotafiles */
struct mem_dqinfo info[MAXQUOTAS]; /* Information for each quota type */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/raid/md.h linux-2.6.15-rc5-mutex/include/linux/raid/md.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/raid/md.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/raid/md.h 2005-12-12 22:12:49.000000000 +0000
@@ -19,7 +19,7 @@
#define _MD_H

#include <linux/blkdev.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <linux/major.h>
#include <linux/ioctl.h>
#include <linux/types.h>
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/raid/md_k.h linux-2.6.15-rc5-mutex/include/linux/raid/md_k.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/raid/md_k.h 2005-12-08 16:23:55.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/raid/md_k.h 2005-12-12 19:40:30.000000000 +0000
@@ -204,7 +204,7 @@ struct mddev_s
unsigned long recovery;

int in_sync; /* know to not need resync */
- struct semaphore reconfig_sem;
+ struct mutex reconfig_sem;
atomic_t active;

int changed; /* true if we might need to reread partition info */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/reiserfs_fs_sb.h linux-2.6.15-rc5-mutex/include/linux/reiserfs_fs_sb.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/reiserfs_fs_sb.h 2005-08-30 13:56:37.000000000 +0100
+++ linux-2.6.15-rc5-mutex/include/linux/reiserfs_fs_sb.h 2005-12-12 19:44:40.000000000 +0000
@@ -152,7 +152,7 @@ struct reiserfs_journal_list {
atomic_t j_nonzerolen;
atomic_t j_commit_left;
atomic_t j_older_commits_done; /* all commits older than this on disk */
- struct semaphore j_commit_lock;
+ struct mutex j_commit_lock;
unsigned long j_trans_id;
time_t j_timestamp;
struct reiserfs_list_bitmap *j_list_bitmap;
@@ -194,8 +194,8 @@ struct reiserfs_journal {
struct buffer_head *j_header_bh;

time_t j_trans_start_time; /* time this transaction started */
- struct semaphore j_lock;
- struct semaphore j_flush_sem;
+ struct mutex j_lock;
+ struct mutex j_flush_sem;
wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */
atomic_t j_jlock; /* lock for j_join_wait */
int j_list_bitmap_index; /* number of next list bitmap to use */
diff -uNrp /warthog/kernels/linux-2.6.15-rc5/include/linux/rtnetlink.h linux-2.6.15-rc5-mutex/include/linux/rtnetlink.h
--- /warthog/kernels/linux-2.6.15-rc5/include/linux/rtnetlink.h 2005-11-01 13:19:21.000000000 +0000
+++ linux-2.6.15-rc5-mutex/include/linux/rtnetlink.h 2005-12-12 17:55:26.000000000 +0000
@@ -1032,7 +1032,7 @@ __rta_reserve(struct sk_buff *skb, int a

extern void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change);

-extern struct semaphore rtnl_sem;
+extern struct mutex rtnl_sem;

#define rtnl_shlock() down(&rtnl_sem)
#define rtnl_shlock_nowait() down_trylock(&rtnl_sem)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/