2006-01-12 14:14:10

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] sem2mutex bdev->bd_sem

On Thu, Jan 12 2006, Kedar Sovani wrote:
> Here is an obvious sem2mutex patch for the bd_sem relative to 2.6.15.
>
>
> Kedar.
>
>
> Use mutex instead of semaphore.
>
> Signed-Off-by: Kedar Sovani <[email protected]>

Please compile the patches you submit, there are far too many "sem to
mutex" conversion patches being sent that aren't properly tested. And my
eye spots that this is one of them.

--
Jens Axboe


2006-01-12 14:18:52

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [PATCH] sem2mutex bdev->bd_sem

On Thu, 2006-01-12 at 15:16 +0100, Jens Axboe wrote:
> On Thu, Jan 12 2006, Kedar Sovani wrote:
> > Here is an obvious sem2mutex patch for the bd_sem relative to 2.6.15.
> >
> >
> > Kedar.
> >
> >
> > Use mutex instead of semaphore.
> >
> > Signed-Off-by: Kedar Sovani <[email protected]>
>
> Please compile the patches you submit, there are far too many "sem to
> mutex" conversion patches being sent that aren't properly tested. And my
> eye spots that this is one of them.

yup

a more complete one in our queue is this one

block/ioctl.c | 22 +++++++++++-----------
drivers/block/rd.c | 4 ++--
drivers/s390/block/dasd_ioctl.c | 8 ++++----
fs/block_dev.c | 28 ++++++++++++++--------------
fs/buffer.c | 6 +++---
fs/super.c | 4 ++--
include/linux/fs.h | 4 ++--
7 files changed, 38 insertions(+), 38 deletions(-)

Index: linux-2.6.15/block/ioctl.c
===================================================================
--- linux-2.6.15.orig/block/ioctl.c
+++ linux-2.6.15/block/ioctl.c
@@ -42,9 +42,9 @@ static int blkpg_ioctl(struct block_devi
return -EINVAL;
}
/* partition number in use? */
- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
if (disk->part[part - 1]) {
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return -EBUSY;
}
/* overlap? */
@@ -55,13 +55,13 @@ static int blkpg_ioctl(struct block_devi
continue;
if (!(start+length <= s->start_sect ||
start >= s->start_sect + s->nr_sects)) {
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return -EBUSY;
}
}
/* all seems OK */
add_partition(disk, part, start, length);
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return 0;
case BLKPG_DEL_PARTITION:
if (!disk->part[part-1])
@@ -71,9 +71,9 @@ static int blkpg_ioctl(struct block_devi
bdevp = bdget_disk(disk, part);
if (!bdevp)
return -ENOMEM;
- down(&bdevp->bd_sem);
+ mutex_lock(&bdevp->bd_mutex);
if (bdevp->bd_openers) {
- up(&bdevp->bd_sem);
+ mutex_unlock(&bdevp->bd_mutex);
bdput(bdevp);
return -EBUSY;
}
@@ -81,10 +81,10 @@ static int blkpg_ioctl(struct block_devi
fsync_bdev(bdevp);
invalidate_bdev(bdevp, 0);

- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
delete_partition(disk, part);
- up(&bdev->bd_sem);
- up(&bdevp->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
+ mutex_unlock(&bdevp->bd_mutex);
bdput(bdevp);

return 0;
@@ -102,10 +102,10 @@ static int blkdev_reread_part(struct blo
return -EINVAL;
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
- if (down_trylock(&bdev->bd_sem))
+ if (!mutex_trylock(&bdev->bd_mutex))
return -EBUSY;
res = rescan_partitions(disk, bdev);
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return res;
}

Index: linux-2.6.15/drivers/block/rd.c
===================================================================
--- linux-2.6.15.orig/drivers/block/rd.c
+++ linux-2.6.15/drivers/block/rd.c
@@ -310,12 +310,12 @@ static int rd_ioctl(struct inode *inode,
* cache
*/
error = -EBUSY;
- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
if (bdev->bd_openers <= 2) {
truncate_inode_pages(bdev->bd_inode->i_mapping, 0);
error = 0;
}
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return error;
}

Index: linux-2.6.15/drivers/s390/block/dasd_ioctl.c
===================================================================
--- linux-2.6.15.orig/drivers/s390/block/dasd_ioctl.c
+++ linux-2.6.15/drivers/s390/block/dasd_ioctl.c
@@ -153,9 +153,9 @@ dasd_ioctl_enable(struct block_device *b
return -ENODEV;
dasd_enable_device(device);
/* Formatting the dasd device can change the capacity. */
- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
i_size_write(bdev->bd_inode, (loff_t)get_capacity(device->gdp) << 9);
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return 0;
}

@@ -186,9 +186,9 @@ dasd_ioctl_disable(struct block_device *
* Set i_size to zero, since read, write, etc. check against this
* value.
*/
- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
i_size_write(bdev->bd_inode, 0);
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
return 0;
}

Index: linux-2.6.15/fs/block_dev.c
===================================================================
--- linux-2.6.15.orig/fs/block_dev.c
+++ linux-2.6.15/fs/block_dev.c
@@ -265,8 +265,8 @@ static void init_once(void * foo, kmem_c
SLAB_CTOR_CONSTRUCTOR)
{
memset(bdev, 0, sizeof(*bdev));
- sema_init(&bdev->bd_sem, 1);
- sema_init(&bdev->bd_mount_sem, 1);
+ mutex_init(&bdev->bd_mutex);
+ mutex_init(&bdev->bd_mount_mutex);
INIT_LIST_HEAD(&bdev->bd_inodes);
INIT_LIST_HEAD(&bdev->bd_list);
inode_init_once(&ei->vfs_inode);
@@ -574,7 +574,7 @@ static int do_open(struct block_device *
}
owner = disk->fops->owner;

- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
if (!bdev->bd_openers) {
bdev->bd_disk = disk;
bdev->bd_contains = bdev;
@@ -605,21 +605,21 @@ static int do_open(struct block_device *
if (ret)
goto out_first;
bdev->bd_contains = whole;
- down(&whole->bd_sem);
+ mutex_lock(&whole->bd_mutex);
whole->bd_part_count++;
p = disk->part[part - 1];
bdev->bd_inode->i_data.backing_dev_info =
whole->bd_inode->i_data.backing_dev_info;
if (!(disk->flags & GENHD_FL_UP) || !p || !p->nr_sects) {
whole->bd_part_count--;
- up(&whole->bd_sem);
+ mutex_unlock(&whole->bd_mutex);
ret = -ENXIO;
goto out_first;
}
kobject_get(&p->kobj);
bdev->bd_part = p;
bd_set_size(bdev, (loff_t) p->nr_sects << 9);
- up(&whole->bd_sem);
+ mutex_unlock(&whole->bd_mutex);
}
} else {
put_disk(disk);
@@ -633,13 +633,13 @@ static int do_open(struct block_device *
if (bdev->bd_invalidated)
rescan_partitions(bdev->bd_disk, bdev);
} else {
- down(&bdev->bd_contains->bd_sem);
+ mutex_lock(&bdev->bd_contains->bd_mutex);
bdev->bd_contains->bd_part_count++;
- up(&bdev->bd_contains->bd_sem);
+ mutex_unlock(&bdev->bd_contains->bd_mutex);
}
}
bdev->bd_openers++;
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
unlock_kernel();
return 0;

@@ -652,7 +652,7 @@ out_first:
put_disk(disk);
module_put(owner);
out:
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
unlock_kernel();
if (ret)
bdput(bdev);
@@ -714,7 +714,7 @@ int blkdev_put(struct block_device *bdev
struct inode *bd_inode = bdev->bd_inode;
struct gendisk *disk = bdev->bd_disk;

- down(&bdev->bd_sem);
+ mutex_lock(&bdev->bd_mutex);
lock_kernel();
if (!--bdev->bd_openers) {
sync_blockdev(bdev);
@@ -724,9 +724,9 @@ int blkdev_put(struct block_device *bdev
if (disk->fops->release)
ret = disk->fops->release(bd_inode, NULL);
} else {
- down(&bdev->bd_contains->bd_sem);
+ mutex_lock(&bdev->bd_contains->bd_mutex);
bdev->bd_contains->bd_part_count--;
- up(&bdev->bd_contains->bd_sem);
+ mutex_unlock(&bdev->bd_contains->bd_mutex);
}
if (!bdev->bd_openers) {
struct module *owner = disk->fops->owner;
@@ -746,7 +746,7 @@ int blkdev_put(struct block_device *bdev
bdev->bd_contains = NULL;
}
unlock_kernel();
- up(&bdev->bd_sem);
+ mutex_unlock(&bdev->bd_mutex);
bdput(bdev);
return ret;
}
Index: linux-2.6.15/fs/buffer.c
===================================================================
--- linux-2.6.15.orig/fs/buffer.c
+++ linux-2.6.15/fs/buffer.c
@@ -201,7 +201,7 @@ int fsync_bdev(struct block_device *bdev
* freeze_bdev -- lock a filesystem and force it into a consistent state
* @bdev: blockdevice to lock
*
- * This takes the block device bd_mount_sem to make sure no new mounts
+ * This takes the block device bd_mount_mutex to make sure no new mounts
* happen on bdev until thaw_bdev() is called.
* If a superblock is found on this device, we take the s_umount semaphore
* on it to make sure nobody unmounts until the snapshot creation is done.
@@ -210,7 +210,7 @@ struct super_block *freeze_bdev(struct b
{
struct super_block *sb;

- down(&bdev->bd_mount_sem);
+ mutex_lock(&bdev->bd_mount_mutex);
sb = get_super(bdev);
if (sb && !(sb->s_flags & MS_RDONLY)) {
sb->s_frozen = SB_FREEZE_WRITE;
@@ -264,7 +264,7 @@ void thaw_bdev(struct block_device *bdev
drop_super(sb);
}

- up(&bdev->bd_mount_sem);
+ mutex_unlock(&bdev->bd_mount_mutex);
}
EXPORT_SYMBOL(thaw_bdev);

Index: linux-2.6.15/fs/super.c
===================================================================
--- linux-2.6.15.orig/fs/super.c
+++ linux-2.6.15/fs/super.c
@@ -683,9 +683,9 @@ struct super_block *get_sb_bdev(struct f
* will protect the lockfs code from trying to start a snapshot
* while we are mounting
*/
- down(&bdev->bd_mount_sem);
+ mutex_lock(&bdev->bd_mount_mutex);
s = sget(fs_type, test_bdev_super, set_bdev_super, bdev);
- up(&bdev->bd_mount_sem);
+ mutex_unlock(&bdev->bd_mount_mutex);
if (IS_ERR(s))
goto out;

Index: linux-2.6.15/include/linux/fs.h
===================================================================
--- linux-2.6.15.orig/include/linux/fs.h
+++ linux-2.6.15/include/linux/fs.h
@@ -394,8 +394,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_mutex; /* open/close mutex */
+ struct mutex bd_mount_mutex; /* mount mutex */
struct list_head bd_inodes;
void * bd_holder;
int bd_holders;


2006-01-12 14:19:15

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] sem2mutex bdev->bd_sem


* Jens Axboe <[email protected]> wrote:

> On Thu, Jan 12 2006, Kedar Sovani wrote:
> > Here is an obvious sem2mutex patch for the bd_sem relative to 2.6.15.
> >
> >
> > Kedar.
> >
> >
> > Use mutex instead of semaphore.
> >
> > Signed-Off-by: Kedar Sovani <[email protected]>
>
> Please compile the patches you submit, there are far too many "sem to
> mutex" conversion patches being sent that aren't properly tested. And
> my eye spots that this is one of them.

FYI, Arjan, Jes and me are doing automated conversions to mutexes, with
build testing and automatic validation of the result as well. Arjan has
done the bd_sem one today, and sent it to aviro. Below is a (fast
growing) list of code we've already converted and validated.

Ingo

Documentation/synchro-test.txt | 59 ++
Makefile | 2
arch/arm/common/rtctime.c | 15
arch/arm/kernel/ecard.c | 7
arch/arm/mach-aaec2000/clock.c | 15
arch/arm/mach-integrator/clock.c | 15
arch/arm/mach-pxa/ssp.c | 17
arch/arm/mach-realview/clock.c | 15
arch/arm/mach-s3c2410/clock.c | 11
arch/arm/mach-versatile/clock.c | 15
arch/arm/plat-omap/clock.c | 15
arch/arm26/kernel/traps.c | 13
arch/i386/Kconfig | 4
arch/i386/kernel/apic.c | 2
arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 9
arch/i386/kernel/cpu/mtrr/main.c | 11
arch/i386/kernel/microcode.c | 7
arch/i386/kernel/nmi.c | 69 ++-
arch/ia64/Kconfig | 4
arch/ia64/hp/sim/simserial.c | 1
arch/ia64/ia32/sys_ia32.c | 28 -
arch/ia64/kernel/perfmon.c | 11
arch/ia64/kernel/salinfo.c | 2
arch/ia64/kernel/semaphore.c | 8
arch/mips/lasat/sysctl.c | 63 +-
arch/powerpc/mm/imalloc.c | 19
arch/powerpc/platforms/cell/spu_base.c | 23 -
arch/powerpc/platforms/powermac/cpufreq_64.c | 7
arch/ppc/4xx_io/serial_sicc.c | 3
arch/x86_64/Kconfig | 4
block/genhd.c | 25 -
drivers/acpi/osl.c | 12
drivers/acpi/processor_perflib.c | 23 -
drivers/acpi/scan.c | 3
drivers/base/attribute_container.c | 27 -
drivers/base/bus.c | 16
drivers/base/class.c | 22 -
drivers/base/core.c | 2
drivers/base/dd.c | 36 -
drivers/base/dmapool.c | 15
drivers/base/firmware_class.c | 21
drivers/base/map.c | 20
drivers/base/memory.c | 6
drivers/base/power/resume.c | 4
drivers/base/power/suspend.c | 4
drivers/base/sys.c | 23 -
drivers/block/floppy.c | 17
drivers/block/pktcdvd.c | 27 -
drivers/cdrom/cdu31a.c | 51 +-
drivers/char/agp/frontend.c | 28 -
drivers/char/amiserial.c | 3
drivers/char/esp.c | 3
drivers/char/generic_serial.c | 5
drivers/char/istallion.c | 3
drivers/char/nwflash.c | 11
drivers/char/raw.c | 23 -
drivers/char/riscom8.c | 3
drivers/char/specialix.c | 5
drivers/char/stallion.c | 3
drivers/char/synclink.c | 3
drivers/char/sysrq.c | 17
drivers/char/watchdog/pcwd_usb.c | 7
drivers/connector/connector.c | 15
drivers/cpufreq/cpufreq.c | 19
drivers/cpufreq/cpufreq_conservative.c | 52 +-
drivers/cpufreq/cpufreq_ondemand.c | 41 -
drivers/cpufreq/cpufreq_userspace.c | 25 -
drivers/firmware/dcdbas.c | 23 -
drivers/hwmon/adm1021.c | 13
drivers/hwmon/adm1025.c | 25 -
drivers/hwmon/adm1026.c | 87 ++--
drivers/hwmon/adm1031.c | 49 +-
drivers/hwmon/adm9240.c | 29 -
drivers/hwmon/asb100.c | 45 +-
drivers/hwmon/atxp1.c | 9
drivers/hwmon/ds1621.c | 13
drivers/hwmon/fscher.c | 41 -
drivers/hwmon/fscpos.c | 29 -
drivers/hwmon/gl518sm.c | 25 -
drivers/hwmon/gl520sm.c | 45 +-
drivers/hwmon/hdaps.c | 37 -
drivers/hwmon/it87.c | 61 +-
drivers/hwmon/lm63.c | 29 -
drivers/hwmon/lm75.c | 13
drivers/hwmon/lm77.c | 21
drivers/hwmon/lm78.c | 47 +-
drivers/hwmon/lm80.c | 27 -
drivers/hwmon/lm83.c | 13
drivers/hwmon/lm85.c | 67 +--
drivers/hwmon/lm87.c | 39 -
drivers/hwmon/lm90.c | 21
drivers/hwmon/lm92.c | 17
drivers/hwmon/max1619.c | 13
drivers/hwmon/pc87360.c | 61 +-
drivers/hwmon/sis5595.c | 47 +-
drivers/hwmon/smsc47b397.c | 17
drivers/hwmon/smsc47m1.c | 41 -
drivers/hwmon/via686a.c | 33 -
drivers/hwmon/vt8231.c | 51 +-
drivers/hwmon/w83627ehf.c | 33 -
drivers/hwmon/w83627hf.c | 57 +-
drivers/hwmon/w83781d.c | 55 +-
drivers/hwmon/w83792d.c | 9
drivers/hwmon/w83l785ts.c | 9
drivers/i2c/busses/i2c-ali1535.c | 7
drivers/i2c/chips/ds1374.c | 11
drivers/i2c/chips/m41t00.c | 11
drivers/i2c/i2c-core.c | 23 -
drivers/ide/ide-cd.c | 11
drivers/ide/ide-disk.c | 11
drivers/ide/ide-floppy.c | 11
drivers/ide/ide-tape.c | 19
drivers/ieee1394/hosts.c | 7
drivers/ieee1394/ieee1394_types.h | 2
drivers/ieee1394/nodemgr.c | 2
drivers/ieee1394/raw1394-private.h | 2
drivers/infiniband/core/device.c | 22 -
drivers/infiniband/core/ucm.c | 23 -
drivers/infiniband/ulp/ipoib/ipoib.h | 7
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 19
drivers/infiniband/ulp/ipoib/ipoib_main.c | 12
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 27 -
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 8
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 10
drivers/input/gameport/gameport.c | 21
drivers/input/input.c | 15
drivers/input/joystick/amijoy.c | 11
drivers/input/serio/serio.c | 31 -
drivers/input/serio/serio_raw.c | 23 -
drivers/isdn/capi/kcapi.c | 17
drivers/macintosh/smu.c | 9
drivers/md/dm-table.c | 11
drivers/md/dm.c | 19
drivers/md/kcopyd.c | 28 -
drivers/md/md.c | 11
drivers/media/dvb/dvb-core/dvb_frontend.c | 2
drivers/media/dvb/dvb-core/dvb_frontend.h | 2
drivers/media/dvb/dvb-core/dvbdev.c | 21
drivers/media/video/bttv-driver.c | 60 +-
drivers/media/video/bttvp.h | 5
drivers/media/video/cx88/cx88-core.c | 15
drivers/media/video/em28xx/em28xx-video.c | 7
drivers/media/video/saa7134/saa7134-core.c | 19
drivers/media/video/videodev.c | 27 -
drivers/media/video/zoran.h | 2
drivers/media/video/zoran_card.c | 11
drivers/media/video/zoran_driver.c | 227 +++++-----
drivers/mfd/ucb1x00-core.c | 27 -
drivers/mmc/mmc_block.c | 11
drivers/mtd/devices/doc2000.c | 7
drivers/net/3c527.c | 2
drivers/net/8139too.c | 2
drivers/net/cassini.c | 40 -
drivers/net/cassini.h | 2
drivers/net/hamradio/6pack.c | 2
drivers/net/hamradio/mkiss.c | 2
drivers/net/irda/irtty-sir.c | 19
drivers/net/irda/sir_dongle.c | 19
drivers/net/plip.c | 5
drivers/net/ppp_async.c | 2
drivers/net/ppp_generic.c | 25 -
drivers/net/ppp_synctty.c | 2
drivers/net/sungem.c | 37 -
drivers/net/sungem.h | 6
drivers/net/wan/dscc4.c | 7
drivers/net/wireless/ipw2100.c | 119 ++---
drivers/net/wireless/ipw2100.h | 4
drivers/net/wireless/ipw2200.c | 294 ++++++-------
drivers/net/wireless/ipw2200.h | 3
drivers/parport/share.c | 19
drivers/pci/hotplug/cpci_hotplug_core.c | 4
drivers/pci/hotplug/cpqphp_ctrl.c | 4
drivers/pci/hotplug/ibmphp_hpc.c | 2
drivers/pci/hotplug/pciehp_ctrl.c | 4
drivers/pci/hotplug/rpadlpar_core.c | 13
drivers/pci/hotplug/sgi_hotplug.c | 19
drivers/pci/hotplug/shpchp_ctrl.c | 4
drivers/pcmcia/cs.c | 40 -
drivers/pcmcia/ds.c | 15
drivers/pcmcia/pcmcia_ioctl.c | 12
drivers/pcmcia/rsrc_nonstatic.c | 41 -
drivers/pcmcia/socket_sysfs.c | 8
drivers/pnp/isapnp/core.c | 7
drivers/s390/char/raw3270.c | 39 -
drivers/sbus/char/aurora.c | 3
drivers/scsi/3w-9xxx.c | 7
drivers/scsi/3w-9xxx.h | 2
drivers/scsi/3w-xxxx.c | 7
drivers/scsi/3w-xxxx.h | 2
drivers/scsi/aacraid/aacraid.h | 4
drivers/scsi/aic7xxx/aic79xx_osm.h | 2
drivers/scsi/aic7xxx/aic7xxx_osm.h | 2
drivers/scsi/ch.c | 33 -
drivers/scsi/dpt_i2o.c | 35 -
drivers/scsi/hosts.c | 8
drivers/scsi/ide-scsi.c | 11
drivers/scsi/iscsi_tcp.c | 37 -
drivers/scsi/iscsi_tcp.h | 2
drivers/scsi/megaraid.c | 6
drivers/scsi/megaraid.h | 4
drivers/scsi/megaraid/megaraid_sas.c | 7
drivers/scsi/qla2xxx/qla_def.h | 2
drivers/scsi/scsi.c | 13
drivers/scsi/scsi_proc.c | 11
drivers/scsi/scsi_scan.c | 16
drivers/scsi/scsi_sysfs.c | 4
drivers/scsi/scsi_transport_iscsi.c | 17
drivers/scsi/scsi_transport_spi.c | 10
drivers/scsi/sd.c | 21
drivers/scsi/sr.c | 17
drivers/scsi/st.c | 17
drivers/serial/8250.c | 11
drivers/serial/crisv10.c | 11
drivers/serial/pmac_zilog.c | 23 -
drivers/serial/serial_core.c | 15
drivers/serial/serial_txx9.c | 11
drivers/telephony/phonedev.c | 21
drivers/usb/atm/cxacru.c | 4
drivers/usb/atm/ueagle-atm.c | 27 -
drivers/usb/atm/usbatm.c | 24 -
drivers/usb/atm/usbatm.h | 3
drivers/usb/class/cdc-acm.c | 19
drivers/usb/class/usblp.c | 15
drivers/usb/core/devices.c | 7
drivers/usb/core/devio.c | 4
drivers/usb/core/hcd.c | 25 -
drivers/usb/core/hcd.h | 2
drivers/usb/core/hub.c | 11
drivers/usb/core/notify.c | 15
drivers/usb/core/usb.c | 5
drivers/usb/image/mdc800.c | 63 +-
drivers/usb/input/ati_remote.c | 2
drivers/usb/media/dabusb.c | 31 -
drivers/usb/media/dabusb.h | 2
drivers/usb/media/ov511.c | 91 ++--
drivers/usb/media/ov511.h | 11
drivers/usb/media/se401.c | 12
drivers/usb/media/se401.h | 3
drivers/usb/media/sn9c102.h | 5
drivers/usb/media/sn9c102_core.c | 158 +++----
drivers/usb/media/stv680.c | 13
drivers/usb/media/stv680.h | 2
drivers/usb/media/usbvideo.c | 28 -
drivers/usb/media/usbvideo.h | 5
drivers/usb/media/vicam.c | 21
drivers/usb/media/w9968cf.c | 94 ++--
drivers/usb/media/w9968cf.h | 10
drivers/usb/misc/idmouse.c | 25 -
drivers/usb/misc/ldusb.c | 11
drivers/usb/misc/legousbtower.c | 11
drivers/usb/mon/mon_main.c | 19
drivers/usb/mon/mon_text.c | 21
drivers/usb/mon/usb_mon.h | 2
drivers/usb/serial/pl2303.c | 2
drivers/usb/storage/scsiglue.c | 9
drivers/usb/storage/usb.c | 25 -
drivers/usb/storage/usb.h | 7
fs/9p/mux.c | 11
fs/char_dev.c | 17
fs/cramfs/inode.c | 31 -
fs/dcookies.c | 19
fs/dquot.c | 120 ++---
fs/ext3/super.c | 4
fs/inode.c | 2
fs/inotify.c | 110 ++---
fs/jffs2/compr_zlib.c | 19
fs/jfs/jfs_logmgr.c | 27 -
fs/lockd/host.c | 19
fs/lockd/svc.c | 17
fs/lockd/svcsubs.c | 17
fs/nfs/callback.c | 11
fs/nfsd/nfs4state.c | 9
fs/partitions/devfs.c | 13
fs/quota.c | 6
fs/quota_v2.c | 2
fs/super.c | 11
fs/xfs/linux-2.6/sema.h | 2
fs/xfs/linux-2.6/xfs_buf.h | 4
include/asm-i386/semaphore.h | 52 +-
include/asm-ia64/semaphore.h | 58 +-
include/asm-x86_64/semaphore.h | 61 +-
include/linux/agpgart.h | 3
include/linux/cpufreq.h | 2
include/linux/device.h | 5
include/linux/fs.h | 2
include/linux/input.h | 2
include/linux/jffs2_fs_i.h | 10
include/linux/jffs2_fs_sb.h | 6
include/linux/kobj_map.h | 4
include/linux/memory.h | 5
include/linux/mutex.h | 147 ++++++
include/linux/parport.h | 2
include/linux/quota.h | 7
include/linux/rtnetlink.h | 13
include/linux/semaphore.h | 30 +
include/linux/usb.h | 6
include/net/xfrm.h | 3
include/pcmcia/ss.h | 3
include/scsi/scsi_host.h | 3
include/scsi/scsi_transport_spi.h | 2
kernel/Makefile | 4
kernel/cpu.c | 10
kernel/cpuset.c | 192 ++++-----
kernel/kthread.c | 7
kernel/module.c | 56 +-
kernel/mutex.c | 68 +++
kernel/posix-timers.c | 1
kernel/power/pm.c | 21
kernel/printk.c | 7
kernel/profile.c | 11
kernel/rcupdate.c | 10
kernel/synchro-test.c | 527 +++++++++++++++++++++++++
kernel/sysctl.c | 2
kernel/time.c | 79 +++
lib/Kconfig.debug | 60 ++
lib/kernel_lock.c | 2
lib/reed_solomon/reed_solomon.c | 11
lib/semaphore-sleepers.c | 16
mm/slab.c | 46 +-
mm/swapfile.c | 17
net/atm/ioctl.c | 15
net/bluetooth/rfcomm/core.c | 8
net/core/dev.c | 7
net/core/flow.c | 7
net/core/pktgen.c | 7
net/core/rtnetlink.c | 8
net/ipv4/ipcomp.c | 17
net/ipv4/ipvs/ip_vs_ctl.c | 11
net/ipv4/netfilter/ip_queue.c | 11
net/ipv4/netfilter/ipt_hashlimit.c | 9
net/ipv4/xfrm4_tunnel.c | 11
net/ipv6/ipcomp6.c | 15
net/ipv6/netfilter/ip6_queue.c | 11
net/ipv6/xfrm6_tunnel.c | 11
net/key/af_key.c | 4
net/netfilter/nf_sockopt.c | 25 -
net/netlink/genetlink.c | 9
net/socket.c | 32 -
net/sunrpc/cache.c | 17
net/sunrpc/sched.c | 11
net/unix/garbage.c | 7
net/xfrm/xfrm_policy.c | 4
net/xfrm/xfrm_user.c | 4
security/keys/process_keys.c | 7
security/selinux/selinuxfs.c | 19
security/selinux/ss/services.c | 7
sound/arm/pxa2xx-ac97.c | 13
sound/core/hwdep.c | 29 -
sound/core/info.c | 21
sound/core/info_oss.c | 13
sound/core/memalloc.c | 23 -
sound/core/pcm.c | 35 -
sound/core/rawmidi.c | 34 -
sound/core/seq/oss/seq_oss.c | 27 -
sound/core/seq/seq_device.c | 33 -
sound/core/seq/seq_midi.c | 21
sound/core/sound.c | 23 -
sound/core/sound_oss.c | 23 -
sound/core/timer.c | 61 +-
sound/oss/ac97_codec.c | 25 -
sound/oss/dmasound/dmasound_awacs.c | 11
sound/usb/usbaudio.c | 15
362 files changed, 4691 insertions(+), 3342 deletions(-)