s390/qdio: pass ISC as parameter to chsc_sadc()
When issuing a SADC for a QDIO device, don't hardcode the ISC but use whatever is specified in qdio's handler for Adapter Interrupts. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Родитель
086b2d7837
Коммит
9289224040
|
@ -180,11 +180,12 @@ EXPORT_SYMBOL_GPL(chsc_ssqd);
|
|||
* @scssc: request and response block for SADC
|
||||
* @summary_indicator_addr: summary indicator address
|
||||
* @subchannel_indicator_addr: subchannel indicator address
|
||||
* @isc: Interruption Subclass for this subchannel
|
||||
*
|
||||
* Returns 0 on success.
|
||||
*/
|
||||
int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc,
|
||||
u64 summary_indicator_addr, u64 subchannel_indicator_addr)
|
||||
u64 summary_indicator_addr, u64 subchannel_indicator_addr, u8 isc)
|
||||
{
|
||||
memset(scssc, 0, sizeof(*scssc));
|
||||
scssc->request.length = 0x0fe0;
|
||||
|
@ -196,7 +197,7 @@ int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc,
|
|||
|
||||
scssc->ks = PAGE_DEFAULT_KEY >> 4;
|
||||
scssc->kc = PAGE_DEFAULT_KEY >> 4;
|
||||
scssc->isc = QDIO_AIRQ_ISC;
|
||||
scssc->isc = isc;
|
||||
scssc->schid = schid;
|
||||
|
||||
/* enable the time delay disablement facility */
|
||||
|
|
|
@ -163,7 +163,8 @@ void chsc_chp_offline(struct chp_id chpid);
|
|||
int chsc_get_channel_measurement_chars(struct channel_path *chp);
|
||||
int chsc_ssqd(struct subchannel_id schid, struct chsc_ssqd_area *ssqd);
|
||||
int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc,
|
||||
u64 summary_indicator_addr, u64 subchannel_indicator_addr);
|
||||
u64 summary_indicator_addr, u64 subchannel_indicator_addr,
|
||||
u8 isc);
|
||||
int chsc_sgib(u32 origin);
|
||||
int chsc_error_from_response(int response);
|
||||
|
||||
|
|
|
@ -211,7 +211,7 @@ static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset)
|
|||
}
|
||||
|
||||
rc = chsc_sadc(irq_ptr->schid, scssc, summary_indicator_addr,
|
||||
subchannel_indicator_addr);
|
||||
subchannel_indicator_addr, tiqdio_airq.isc);
|
||||
if (rc) {
|
||||
DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no,
|
||||
scssc->response.code);
|
||||
|
|
Загрузка…
Ссылка в новой задаче