Skip to content

Commit

Permalink
[PATCH] s390: merge cmb into dasdc
Browse files Browse the repository at this point in the history
dasd_cmd just implements three ioctls which are wrappers around functionality
in the core kernel or other modules.  When merging those into dasd_mod they
just add 22 lines of code which is far less than the amount of code removed in
the last two patches, and which doesn't spill into another 4k pages when build
modular, while removing a 128lines module.

Signed-off-by: Christoph Hellwig <hch@lst.de>
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>
  • Loading branch information
Christoph Hellwig authored and Linus Torvalds committed Mar 24, 2006
1 parent 1107ccf commit 8b2eb66
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 139 deletions.
10 changes: 0 additions & 10 deletions drivers/s390/block/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,4 @@ config DASD_DIAG
Disks under VM. If you are not running under VM or unsure what it is,
say "N".

config DASD_CMB
tristate "Compatibility interface for DASD channel measurement blocks"
depends on DASD
help
This driver provides an additional interface to the channel measurement
facility, which is normally accessed though sysfs, with a set of
ioctl functions specific to the dasd driver.
This is only needed if you want to use applications written for
linux-2.4 dasd channel measurement facility interface.

endif
1 change: 0 additions & 1 deletion drivers/s390/block/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@ obj-$(CONFIG_DASD) += dasd_mod.o
obj-$(CONFIG_DASD_DIAG) += dasd_diag_mod.o
obj-$(CONFIG_DASD_ECKD) += dasd_eckd_mod.o
obj-$(CONFIG_DASD_FBA) += dasd_fba_mod.o
obj-$(CONFIG_DASD_CMB) += dasd_cmb.o
obj-$(CONFIG_BLK_DEV_XPRAM) += xpram.o
obj-$(CONFIG_DCSSBLK) += dcssblk.o
128 changes: 0 additions & 128 deletions drivers/s390/block/dasd_cmb.c

This file was deleted.

22 changes: 22 additions & 0 deletions drivers/s390/block/dasd_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <linux/blkpg.h>

#include <asm/ccwdev.h>
#include <asm/cmb.h>
#include <asm/uaccess.h>

/* This is ugly... */
Expand Down Expand Up @@ -406,6 +407,21 @@ dasd_ioctl_set_ro(struct block_device *bdev, void __user *argp)
return dasd_set_feature(device->cdev, DASD_FEATURE_READONLY, intval);
}

static int
dasd_ioctl_readall_cmb(struct dasd_device *device, unsigned int cmd,
unsigned long arg)
{
struct cmbdata __user *argp = (void __user *) arg;
size_t size = _IOC_SIZE(cmd);
struct cmbdata data;
int ret;

ret = cmf_readall(device->cdev, &data);
if (!ret && copy_to_user(argp, &data, min(size, sizeof(*argp))))
return -EFAULT;
return ret;
}

int
dasd_ioctl(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg)
Expand Down Expand Up @@ -447,6 +463,12 @@ dasd_ioctl(struct inode *inode, struct file *file,
return dasd_ioctl_set_ro(bdev, argp);
case DASDAPIVER:
return dasd_ioctl_api_version(argp);
case BIODASDCMFENABLE:
return enable_cmf(device->cdev);
case BIODASDCMFDISABLE:
return disable_cmf(device->cdev);
case BIODASDREADALLCMB:
return dasd_ioctl_readall_cmb(device, cmd, arg);
default:
/* if the discipline has an ioctl method try it. */
if (device->discipline->ioctl) {
Expand Down

0 comments on commit 8b2eb66

Please sign in to comment.