Commit 040495d1 authored by Peter Oberparleiter's avatar Peter Oberparleiter Committed by Martin Schwidefsky

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: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent cce0eacc
...@@ -704,9 +704,9 @@ EXPORT_SYMBOL(ccw_device_tm_start_timeout); ...@@ -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) ...@@ -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;
......
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