patch-2.4.0-test2 linux/drivers/block/z2ram.c
Next file: linux/drivers/cdrom/aztcd.c
Previous file: linux/drivers/block/xor.c
Back to the patch index
Back to the overall index
- Lines: 100
- Date:
Tue Jun 20 07:24:52 2000
- Orig file:
v2.4.0-test1/linux/drivers/block/z2ram.c
- Orig date:
Fri Jan 28 15:09:07 2000
diff -u --recursive --new-file v2.4.0-test1/linux/drivers/block/z2ram.c linux/drivers/block/z2ram.c
@@ -165,12 +165,16 @@
sizeof( z2ram_map[0] );
int max_chip_map = ( amiga_chip_size / Z2RAM_CHUNKSIZE ) *
sizeof( z2ram_map[0] );
+ int rc = -ENOMEM;
+
+ MOD_INC_USE_COUNT;
device = DEVICE_NR( inode->i_rdev );
if ( current_device != -1 && current_device != device )
{
- return -EBUSY;
+ rc = -EBUSY;
+ goto err_out;
}
if ( current_device == -1 )
@@ -188,7 +192,7 @@
if (index >= m68k_realnum_memory) {
printk( KERN_ERR DEVICE_NAME
": no such entry in z2ram_map\n" );
- return -ENOMEM;
+ goto err_out;
}
paddr = m68k_memory[index].addr;
@@ -215,7 +219,7 @@
{
printk( KERN_ERR DEVICE_NAME
": cannot get mem for z2ram_map\n" );
- return -ENOMEM;
+ goto err_out;
}
while (size) {
@@ -240,7 +244,7 @@
{
printk( KERN_ERR DEVICE_NAME
": cannot get mem for z2ram_map\n" );
- return -ENOMEM;
+ goto err_out;
}
get_z2ram();
@@ -261,7 +265,7 @@
{
printk( KERN_ERR DEVICE_NAME
": cannot get mem for z2ram_map\n" );
- return -ENOMEM;
+ goto err_out;
}
get_z2ram();
@@ -279,7 +283,7 @@
{
printk( KERN_ERR DEVICE_NAME
": cannot get mem for z2ram_map\n" );
- return -ENOMEM;
+ goto err_out;
}
get_chipram();
@@ -292,15 +296,17 @@
break;
default:
- return -ENODEV;
+ rc = -ENODEV;
+ goto err_out;
+
+ break;
}
if ( z2ram_size == 0 )
{
- kfree( z2ram_map );
printk( KERN_NOTICE DEVICE_NAME
": no unused ZII/Chip RAM found\n" );
- return -ENOMEM;
+ goto err_out_kfree;
}
current_device = device;
@@ -309,9 +315,13 @@
blk_size[ MAJOR_NR ] = z2_sizes;
}
- MOD_INC_USE_COUNT;
-
return 0;
+
+err_out_kfree:
+ kfree( z2ram_map );
+err_out:
+ MOD_DEC_USE_COUNT;
+ return rc;
}
static int
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)