s390/ctcm: don't use intparm for channel IO
ctcm passes an intparm when calling ccw_device_*(), even though ctcm_irq_handler() later makes no use of this. To reduce the confusion, consistently pass 0 as intparm instead. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Sebastian Ott <sebott@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
59b757a9bf
commit
4f6e01f3d6
|
@ -307,8 +307,7 @@ static void chx_txdone(fsm_instance *fi, int event, void *arg)
|
||||||
ch->ccw[1].count = ch->trans_skb->len;
|
ch->ccw[1].count = ch->trans_skb->len;
|
||||||
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
||||||
ch->prof.send_stamp = jiffies;
|
ch->prof.send_stamp = jiffies;
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
ch->prof.doios_multi++;
|
ch->prof.doios_multi++;
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
priv->stats.tx_dropped += i;
|
priv->stats.tx_dropped += i;
|
||||||
|
@ -417,8 +416,7 @@ static void chx_rx(fsm_instance *fi, int event, void *arg)
|
||||||
if (ctcm_checkalloc_buffer(ch))
|
if (ctcm_checkalloc_buffer(ch))
|
||||||
return;
|
return;
|
||||||
ch->ccw[1].count = ch->max_bufsize;
|
ch->ccw[1].count = ch->max_bufsize;
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
ctcm_ccw_check_rc(ch, rc, "normal RX");
|
ctcm_ccw_check_rc(ch, rc, "normal RX");
|
||||||
}
|
}
|
||||||
|
@ -478,8 +476,7 @@ static void chx_firstio(fsm_instance *fi, int event, void *arg)
|
||||||
|
|
||||||
fsm_newstate(fi, (CHANNEL_DIRECTION(ch->flags) == CTCM_READ)
|
fsm_newstate(fi, (CHANNEL_DIRECTION(ch->flags) == CTCM_READ)
|
||||||
? CTC_STATE_RXINIT : CTC_STATE_TXINIT);
|
? CTC_STATE_RXINIT : CTC_STATE_TXINIT);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
fsm_deltimer(&ch->timer);
|
fsm_deltimer(&ch->timer);
|
||||||
fsm_newstate(fi, CTC_STATE_SETUPWAIT);
|
fsm_newstate(fi, CTC_STATE_SETUPWAIT);
|
||||||
|
@ -527,8 +524,7 @@ static void chx_rxidle(fsm_instance *fi, int event, void *arg)
|
||||||
return;
|
return;
|
||||||
ch->ccw[1].count = ch->max_bufsize;
|
ch->ccw[1].count = ch->max_bufsize;
|
||||||
fsm_newstate(fi, CTC_STATE_RXIDLE);
|
fsm_newstate(fi, CTC_STATE_RXIDLE);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
fsm_newstate(fi, CTC_STATE_RXINIT);
|
fsm_newstate(fi, CTC_STATE_RXINIT);
|
||||||
ctcm_ccw_check_rc(ch, rc, "initial RX");
|
ctcm_ccw_check_rc(ch, rc, "initial RX");
|
||||||
|
@ -571,8 +567,7 @@ static void ctcm_chx_setmode(fsm_instance *fi, int event, void *arg)
|
||||||
/* Such conditional locking is undeterministic in
|
/* Such conditional locking is undeterministic in
|
||||||
* static view. => ignore sparse warnings here. */
|
* static view. => ignore sparse warnings here. */
|
||||||
|
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[6],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[6], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (event == CTC_EVENT_TIMER) /* see above comments */
|
if (event == CTC_EVENT_TIMER) /* see above comments */
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
|
@ -637,7 +632,7 @@ static void ctcm_chx_start(fsm_instance *fi, int event, void *arg)
|
||||||
fsm_newstate(fi, CTC_STATE_STARTWAIT);
|
fsm_newstate(fi, CTC_STATE_STARTWAIT);
|
||||||
fsm_addtimer(&ch->timer, 1000, CTC_EVENT_TIMER, ch);
|
fsm_addtimer(&ch->timer, 1000, CTC_EVENT_TIMER, ch);
|
||||||
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
rc = ccw_device_halt(ch->cdev, (unsigned long)ch);
|
rc = ccw_device_halt(ch->cdev, 0);
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
if (rc != -EBUSY)
|
if (rc != -EBUSY)
|
||||||
|
@ -672,7 +667,7 @@ static void ctcm_chx_haltio(fsm_instance *fi, int event, void *arg)
|
||||||
* static view. => ignore sparse warnings here. */
|
* static view. => ignore sparse warnings here. */
|
||||||
oldstate = fsm_getstate(fi);
|
oldstate = fsm_getstate(fi);
|
||||||
fsm_newstate(fi, CTC_STATE_TERM);
|
fsm_newstate(fi, CTC_STATE_TERM);
|
||||||
rc = ccw_device_halt(ch->cdev, (unsigned long)ch);
|
rc = ccw_device_halt(ch->cdev, 0);
|
||||||
|
|
||||||
if (event == CTC_EVENT_STOP)
|
if (event == CTC_EVENT_STOP)
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
|
@ -799,7 +794,7 @@ static void ctcm_chx_setuperr(fsm_instance *fi, int event, void *arg)
|
||||||
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
||||||
if (!IS_MPC(ch) &&
|
if (!IS_MPC(ch) &&
|
||||||
(CHANNEL_DIRECTION(ch->flags) == CTCM_READ)) {
|
(CHANNEL_DIRECTION(ch->flags) == CTCM_READ)) {
|
||||||
int rc = ccw_device_halt(ch->cdev, (unsigned long)ch);
|
int rc = ccw_device_halt(ch->cdev, 0);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
ctcm_ccw_check_rc(ch, rc,
|
ctcm_ccw_check_rc(ch, rc,
|
||||||
"HaltIO in chx_setuperr");
|
"HaltIO in chx_setuperr");
|
||||||
|
@ -851,7 +846,7 @@ static void ctcm_chx_restart(fsm_instance *fi, int event, void *arg)
|
||||||
/* Such conditional locking is a known problem for
|
/* Such conditional locking is a known problem for
|
||||||
* sparse because its undeterministic in static view.
|
* sparse because its undeterministic in static view.
|
||||||
* Warnings should be ignored here. */
|
* Warnings should be ignored here. */
|
||||||
rc = ccw_device_halt(ch->cdev, (unsigned long)ch);
|
rc = ccw_device_halt(ch->cdev, 0);
|
||||||
if (event == CTC_EVENT_TIMER)
|
if (event == CTC_EVENT_TIMER)
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
|
@ -947,8 +942,8 @@ static void ctcm_chx_rxdisc(fsm_instance *fi, int event, void *arg)
|
||||||
ch2 = priv->channel[CTCM_WRITE];
|
ch2 = priv->channel[CTCM_WRITE];
|
||||||
fsm_newstate(ch2->fsm, CTC_STATE_DTERM);
|
fsm_newstate(ch2->fsm, CTC_STATE_DTERM);
|
||||||
|
|
||||||
ccw_device_halt(ch->cdev, (unsigned long)ch);
|
ccw_device_halt(ch->cdev, 0);
|
||||||
ccw_device_halt(ch2->cdev, (unsigned long)ch2);
|
ccw_device_halt(ch2->cdev, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1041,8 +1036,7 @@ static void ctcm_chx_txretry(fsm_instance *fi, int event, void *arg)
|
||||||
ctcmpc_dumpit((char *)&ch->ccw[3],
|
ctcmpc_dumpit((char *)&ch->ccw[3],
|
||||||
sizeof(struct ccw1) * 3);
|
sizeof(struct ccw1) * 3);
|
||||||
|
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[3],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[3], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (event == CTC_EVENT_TIMER)
|
if (event == CTC_EVENT_TIMER)
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev),
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev),
|
||||||
saveflags);
|
saveflags);
|
||||||
|
@ -1361,8 +1355,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg)
|
||||||
ch->prof.send_stamp = jiffies;
|
ch->prof.send_stamp = jiffies;
|
||||||
if (do_debug_ccw)
|
if (do_debug_ccw)
|
||||||
ctcmpc_dumpit((char *)&ch->ccw[0], sizeof(struct ccw1) * 3);
|
ctcmpc_dumpit((char *)&ch->ccw[0], sizeof(struct ccw1) * 3);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
ch->prof.doios_multi++;
|
ch->prof.doios_multi++;
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
priv->stats.tx_dropped += i;
|
priv->stats.tx_dropped += i;
|
||||||
|
@ -1462,8 +1455,7 @@ again:
|
||||||
if (dolock)
|
if (dolock)
|
||||||
spin_lock_irqsave(
|
spin_lock_irqsave(
|
||||||
get_ccwdev_lock(ch->cdev), saveflags);
|
get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (dolock) /* see remark about conditional locking */
|
if (dolock) /* see remark about conditional locking */
|
||||||
spin_unlock_irqrestore(
|
spin_unlock_irqrestore(
|
||||||
get_ccwdev_lock(ch->cdev), saveflags);
|
get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
|
@ -1569,8 +1561,7 @@ void ctcmpc_chx_rxidle(fsm_instance *fi, int event, void *arg)
|
||||||
if (event == CTC_EVENT_START)
|
if (event == CTC_EVENT_START)
|
||||||
/* see remark about conditional locking */
|
/* see remark about conditional locking */
|
||||||
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[0],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[0], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
if (event == CTC_EVENT_START)
|
if (event == CTC_EVENT_START)
|
||||||
spin_unlock_irqrestore(
|
spin_unlock_irqrestore(
|
||||||
get_ccwdev_lock(ch->cdev), saveflags);
|
get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
|
@ -1825,8 +1816,7 @@ static void ctcmpc_chx_send_sweep(fsm_instance *fsm, int event, void *arg)
|
||||||
|
|
||||||
spin_lock_irqsave(get_ccwdev_lock(wch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(wch->cdev), saveflags);
|
||||||
wch->prof.send_stamp = jiffies;
|
wch->prof.send_stamp = jiffies;
|
||||||
rc = ccw_device_start(wch->cdev, &wch->ccw[3],
|
rc = ccw_device_start(wch->cdev, &wch->ccw[3], 0, 0xff, 0);
|
||||||
(unsigned long) wch, 0xff, 0);
|
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(wch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(wch->cdev), saveflags);
|
||||||
|
|
||||||
if ((grp->sweep_req_pend_num == 0) &&
|
if ((grp->sweep_req_pend_num == 0) &&
|
||||||
|
|
|
@ -569,8 +569,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
|
||||||
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
fsm_addtimer(&ch->timer, CTCM_TIME_5_SEC, CTC_EVENT_TIMER, ch);
|
||||||
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
ch->prof.send_stamp = jiffies;
|
ch->prof.send_stamp = jiffies;
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
if (ccw_idx == 3)
|
if (ccw_idx == 3)
|
||||||
ch->prof.doios_single++;
|
ch->prof.doios_single++;
|
||||||
|
@ -833,8 +832,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
|
||||||
|
|
||||||
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
ch->prof.send_stamp = jiffies;
|
ch->prof.send_stamp = jiffies;
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[ccw_idx], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
if (ccw_idx == 3)
|
if (ccw_idx == 3)
|
||||||
ch->prof.doios_single++;
|
ch->prof.doios_single++;
|
||||||
|
|
|
@ -1523,8 +1523,7 @@ void mpc_action_send_discontact(unsigned long thischan)
|
||||||
unsigned long saveflags = 0;
|
unsigned long saveflags = 0;
|
||||||
|
|
||||||
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_lock_irqsave(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[15],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[15], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
|
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
|
@ -1797,8 +1796,7 @@ static void mpc_action_side_xid(fsm_instance *fsm, void *arg, int side)
|
||||||
}
|
}
|
||||||
|
|
||||||
fsm_addtimer(&ch->timer, 5000 , CTC_EVENT_TIMER, ch);
|
fsm_addtimer(&ch->timer, 5000 , CTC_EVENT_TIMER, ch);
|
||||||
rc = ccw_device_start(ch->cdev, &ch->ccw[8],
|
rc = ccw_device_start(ch->cdev, &ch->ccw[8], 0, 0xff, 0);
|
||||||
(unsigned long)ch, 0xff, 0);
|
|
||||||
|
|
||||||
if (gotlock) /* see remark above about conditional locking */
|
if (gotlock) /* see remark above about conditional locking */
|
||||||
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
spin_unlock_irqrestore(get_ccwdev_lock(ch->cdev), saveflags);
|
||||||
|
|
Loading…
Reference in New Issue