s390/cio: make use of newly added format 1 channel-path data
Make use of the stored copy of format 1 channel-path data instead of querying the information every time the corresponding function is called. Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
cce0eacc22
commit
040495d110
1 changed files with 14 additions and 8 deletions
|
@ -704,9 +704,9 @@ EXPORT_SYMBOL(ccw_device_tm_start_timeout);
|
||||||
int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask)
|
int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask)
|
||||||
{
|
{
|
||||||
struct subchannel *sch = to_subchannel(cdev->dev.parent);
|
struct subchannel *sch = to_subchannel(cdev->dev.parent);
|
||||||
struct channel_path_desc_fmt1 desc;
|
struct channel_path *chp;
|
||||||
struct chp_id chpid;
|
struct chp_id chpid;
|
||||||
int mdc = 0, ret, i;
|
int mdc = 0, i;
|
||||||
|
|
||||||
/* Adjust requested path mask to excluded varied off paths. */
|
/* Adjust requested path mask to excluded varied off paths. */
|
||||||
if (mask)
|
if (mask)
|
||||||
|
@ -719,14 +719,20 @@ int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask)
|
||||||
if (!(mask & (0x80 >> i)))
|
if (!(mask & (0x80 >> i)))
|
||||||
continue;
|
continue;
|
||||||
chpid.id = sch->schib.pmcw.chpid[i];
|
chpid.id = sch->schib.pmcw.chpid[i];
|
||||||
ret = chsc_determine_fmt1_channel_path_desc(chpid, &desc);
|
chp = chpid_to_chp(chpid);
|
||||||
if (ret)
|
if (!chp)
|
||||||
return ret;
|
continue;
|
||||||
if (!desc.f)
|
|
||||||
|
mutex_lock(&chp->lock);
|
||||||
|
if (!chp->desc_fmt1.f) {
|
||||||
|
mutex_unlock(&chp->lock);
|
||||||
return 0;
|
return 0;
|
||||||
if (!desc.r)
|
}
|
||||||
|
if (!chp->desc_fmt1.r)
|
||||||
mdc = 1;
|
mdc = 1;
|
||||||
mdc = mdc ? min(mdc, (int)desc.mdc) : desc.mdc;
|
mdc = mdc ? min_t(int, mdc, chp->desc_fmt1.mdc) :
|
||||||
|
chp->desc_fmt1.mdc;
|
||||||
|
mutex_unlock(&chp->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mdc;
|
return mdc;
|
||||||
|
|
Loading…
Reference in a new issue