git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelv...
[pandora-kernel.git]
/
drivers
/
block
/
z2ram.c
diff --git
a/drivers/block/z2ram.c
b/drivers/block/z2ram.c
index
d75b2bb
..
a22e3f8
100644
(file)
--- a/
drivers/block/z2ram.c
+++ b/
drivers/block/z2ram.c
@@
-33,7
+33,7
@@
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/bitops.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/bitops.h>
-#include <linux/
smp_lock
.h>
+#include <linux/
mutex
.h>
#include <linux/slab.h>
#include <asm/setup.h>
#include <linux/slab.h>
#include <asm/setup.h>
@@
-57,6
+57,7
@@
extern struct mem_info m68k_memory[NUM_MEMINFO];
#define Z2RAM_CHUNK1024 ( Z2RAM_CHUNKSIZE >> 10 )
#define Z2RAM_CHUNK1024 ( Z2RAM_CHUNKSIZE >> 10 )
+static DEFINE_MUTEX(z2ram_mutex);
static u_long *z2ram_map = NULL;
static u_long z2ram_size = 0;
static int z2_count = 0;
static u_long *z2ram_map = NULL;
static u_long z2ram_size = 0;
static int z2_count = 0;
@@
-79,8
+80,10
@@
static void do_z2_request(struct request_queue *q)
int err = 0;
if (start + len > z2ram_size) {
int err = 0;
if (start + len > z2ram_size) {
- printk( KERN_ERR DEVICE_NAME ": bad access: block=%lu, count=%u\n",
- blk_rq_pos(req), blk_rq_cur_sectors(req));
+ pr_err(DEVICE_NAME ": bad access: block=%llu, "
+ "count=%u\n",
+ (unsigned long long)blk_rq_pos(req),
+ blk_rq_cur_sectors(req));
err = -EIO;
goto done;
}
err = -EIO;
goto done;
}
@@
-154,7
+157,7
@@
static int z2_open(struct block_device *bdev, fmode_t mode)
device = MINOR(bdev->bd_dev);
device = MINOR(bdev->bd_dev);
-
lock_kernel(
);
+
mutex_lock(&z2ram_mutex
);
if ( current_device != -1 && current_device != device )
{
rc = -EBUSY;
if ( current_device != -1 && current_device != device )
{
rc = -EBUSY;
@@
-296,25
+299,25
@@
static int z2_open(struct block_device *bdev, fmode_t mode)
set_capacity(z2ram_gendisk, z2ram_size >> 9);
}
set_capacity(z2ram_gendisk, z2ram_size >> 9);
}
-
unlock_kernel(
);
+
mutex_unlock(&z2ram_mutex
);
return 0;
err_out_kfree:
kfree(z2ram_map);
err_out:
return 0;
err_out_kfree:
kfree(z2ram_map);
err_out:
-
unlock_kernel(
);
+
mutex_unlock(&z2ram_mutex
);
return rc;
}
static int
z2_release(struct gendisk *disk, fmode_t mode)
{
return rc;
}
static int
z2_release(struct gendisk *disk, fmode_t mode)
{
-
lock_kernel(
);
+
mutex_lock(&z2ram_mutex
);
if ( current_device == -1 ) {
if ( current_device == -1 ) {
-
unlock_kernel(
);
+
mutex_unlock(&z2ram_mutex
);
return 0;
}
return 0;
}
-
unlock_kernel(
);
+
mutex_unlock(&z2ram_mutex
);
/*
* FIXME: unmap memory
*/
/*
* FIXME: unmap memory
*/