Commit 9a92fe48 authored by Cornelia Huck's avatar Cornelia Huck Committed by Martin Schwidefsky

[S390] cio: Get rid of _ccw_device_get_device_number().

The function shouldn't have existed in the first place (not MSS-aware).
Introduce a new function ccw_device_get_id() that extracts the
ccw_dev_id structure of a ccw device and convert all users of
_ccw_device_get_device_number to ccw_device_get_id.
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 0b0bb3c6
...@@ -50,6 +50,7 @@ struct dasd_diag_private { ...@@ -50,6 +50,7 @@ struct dasd_diag_private {
struct dasd_diag_rw_io iob; struct dasd_diag_rw_io iob;
struct dasd_diag_init_io iib; struct dasd_diag_init_io iib;
blocknum_t pt_block; blocknum_t pt_block;
struct ccw_dev_id dev_id;
}; };
struct dasd_diag_req { struct dasd_diag_req {
...@@ -102,7 +103,7 @@ mdsk_init_io(struct dasd_device *device, unsigned int blocksize, ...@@ -102,7 +103,7 @@ mdsk_init_io(struct dasd_device *device, unsigned int blocksize,
iib = &private->iib; iib = &private->iib;
memset(iib, 0, sizeof (struct dasd_diag_init_io)); memset(iib, 0, sizeof (struct dasd_diag_init_io));
iib->dev_nr = _ccw_device_get_device_number(device->cdev); iib->dev_nr = private->dev_id.devno;
iib->block_size = blocksize; iib->block_size = blocksize;
iib->offset = offset; iib->offset = offset;
iib->flaga = DASD_DIAG_FLAGA_DEFAULT; iib->flaga = DASD_DIAG_FLAGA_DEFAULT;
...@@ -127,7 +128,7 @@ mdsk_term_io(struct dasd_device * device) ...@@ -127,7 +128,7 @@ mdsk_term_io(struct dasd_device * device)
private = (struct dasd_diag_private *) device->private; private = (struct dasd_diag_private *) device->private;
iib = &private->iib; iib = &private->iib;
memset(iib, 0, sizeof (struct dasd_diag_init_io)); memset(iib, 0, sizeof (struct dasd_diag_init_io));
iib->dev_nr = _ccw_device_get_device_number(device->cdev); iib->dev_nr = private->dev_id.devno;
rc = dia250(iib, TERM_BIO); rc = dia250(iib, TERM_BIO);
return rc; return rc;
} }
...@@ -166,7 +167,7 @@ dasd_start_diag(struct dasd_ccw_req * cqr) ...@@ -166,7 +167,7 @@ dasd_start_diag(struct dasd_ccw_req * cqr)
private = (struct dasd_diag_private *) device->private; private = (struct dasd_diag_private *) device->private;
dreq = (struct dasd_diag_req *) cqr->data; dreq = (struct dasd_diag_req *) cqr->data;
private->iob.dev_nr = _ccw_device_get_device_number(device->cdev); private->iob.dev_nr = private->dev_id.devno;
private->iob.key = 0; private->iob.key = 0;
private->iob.flags = DASD_DIAG_RWFLAG_ASYNC; private->iob.flags = DASD_DIAG_RWFLAG_ASYNC;
private->iob.block_count = dreq->block_count; private->iob.block_count = dreq->block_count;
...@@ -323,11 +324,12 @@ dasd_diag_check_device(struct dasd_device *device) ...@@ -323,11 +324,12 @@ dasd_diag_check_device(struct dasd_device *device)
"memory allocation failed for private data"); "memory allocation failed for private data");
return -ENOMEM; return -ENOMEM;
} }
ccw_device_get_id(device->cdev, &private->dev_id);
device->private = (void *) private; device->private = (void *) private;
} }
/* Read Device Characteristics */ /* Read Device Characteristics */
rdc_data = (void *) &(private->rdc_data); rdc_data = (void *) &(private->rdc_data);
rdc_data->dev_nr = _ccw_device_get_device_number(device->cdev); rdc_data->dev_nr = private->dev_id.devno;
rdc_data->rdc_len = sizeof (struct dasd_diag_characteristics); rdc_data->rdc_len = sizeof (struct dasd_diag_characteristics);
rc = diag210((struct diag210 *) rdc_data); rc = diag210((struct diag210 *) rdc_data);
......
...@@ -255,6 +255,7 @@ dasd_ioctl_information(struct dasd_device *device, ...@@ -255,6 +255,7 @@ dasd_ioctl_information(struct dasd_device *device,
unsigned long flags; unsigned long flags;
int rc; int rc;
struct ccw_device *cdev; struct ccw_device *cdev;
struct ccw_dev_id dev_id;
if (!device->discipline->fill_info) if (!device->discipline->fill_info)
return -EINVAL; return -EINVAL;
...@@ -270,8 +271,9 @@ dasd_ioctl_information(struct dasd_device *device, ...@@ -270,8 +271,9 @@ dasd_ioctl_information(struct dasd_device *device,
} }
cdev = device->cdev; cdev = device->cdev;
ccw_device_get_id(cdev, &dev_id);
dasd_info->devno = _ccw_device_get_device_number(device->cdev); dasd_info->devno = dev_id.devno;
dasd_info->schid = _ccw_device_get_subchannel_number(device->cdev); dasd_info->schid = _ccw_device_get_subchannel_number(device->cdev);
dasd_info->cu_type = cdev->id.cu_type; dasd_info->cu_type = cdev->id.cu_type;
dasd_info->cu_model = cdev->id.cu_model; dasd_info->cu_model = cdev->id.cu_model;
......
...@@ -589,9 +589,10 @@ static int ...@@ -589,9 +589,10 @@ static int
__raw3270_size_device_vm(struct raw3270 *rp) __raw3270_size_device_vm(struct raw3270 *rp)
{ {
int rc, model; int rc, model;
struct ccw_dev_id dev_id;
raw3270_init_diag210.vrdcdvno = ccw_device_get_id(rp->cdev, &dev_id);
_ccw_device_get_device_number(rp->cdev); raw3270_init_diag210.vrdcdvno = dev_id.devno;
raw3270_init_diag210.vrdclen = sizeof(struct diag210); raw3270_init_diag210.vrdclen = sizeof(struct diag210);
rc = diag210(&raw3270_init_diag210); rc = diag210(&raw3270_init_diag210);
if (rc) if (rc)
......
...@@ -616,6 +616,17 @@ ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_no) ...@@ -616,6 +616,17 @@ ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_no)
return chp_get_chp_desc(chpid); return chp_get_chp_desc(chpid);
} }
/**
* ccw_device_get_id - obtain a ccw device id
* @cdev: device to obtain the id for
* @dev_id: where to fill in the values
*/
void ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id)
{
*dev_id = cdev->private->dev_id;
}
EXPORT_SYMBOL(ccw_device_get_id);
// FIXME: these have to go: // FIXME: these have to go:
int int
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
/* structs from asm/cio.h */ /* structs from asm/cio.h */
struct irb; struct irb;
struct ccw1; struct ccw1;
struct ccw_dev_id;
/* simplified initializers for struct ccw_device: /* simplified initializers for struct ccw_device:
* CCW_DEVICE and CCW_DEVICE_DEVTYPE initialize one * CCW_DEVICE and CCW_DEVICE_DEVTYPE initialize one
...@@ -175,6 +176,7 @@ extern int ccw_device_set_offline(struct ccw_device *cdev); ...@@ -175,6 +176,7 @@ extern int ccw_device_set_offline(struct ccw_device *cdev);
extern struct ciw *ccw_device_get_ciw(struct ccw_device *, __u32 cmd); extern struct ciw *ccw_device_get_ciw(struct ccw_device *, __u32 cmd);
extern __u8 ccw_device_get_path_mask(struct ccw_device *); extern __u8 ccw_device_get_path_mask(struct ccw_device *);
extern void ccw_device_get_id(struct ccw_device *, struct ccw_dev_id *);
#define get_ccwdev_lock(x) (x)->ccwlock #define get_ccwdev_lock(x) (x)->ccwlock
...@@ -184,7 +186,6 @@ extern __u8 ccw_device_get_path_mask(struct ccw_device *); ...@@ -184,7 +186,6 @@ extern __u8 ccw_device_get_path_mask(struct ccw_device *);
extern struct ccw_device *ccw_device_probe_console(void); extern struct ccw_device *ccw_device_probe_console(void);
// FIXME: these have to go // FIXME: these have to go
extern int _ccw_device_get_device_number(struct ccw_device *);
extern int _ccw_device_get_subchannel_number(struct ccw_device *); extern int _ccw_device_get_subchannel_number(struct ccw_device *);
extern void *ccw_device_get_chp_desc(struct ccw_device *, int); extern void *ccw_device_get_chp_desc(struct ccw_device *, int);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment