s390/cio: add function chsc_sgib()
This patch implements the Set Guest Information Block operation to request association or disassociation of a Guest Information Block (GIB) with the Adapter Interruption Facility. The operation is required to receive GIB alert interrupts for guest adapters in conjunction with AIV and GISA. Signed-off-by: Michael Mueller <mimu@linux.ibm.com> Reviewed-by: Sebastian Ott <sebott@linux.ibm.com> Reviewed-by: Pierre Morel <pmorel@linux.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Halil Pasic <pasic@linux.ibm.com> Acked-by: Janosch Frank <frankja@linux.ibm.com> Acked-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <20190131085247.13826-9-mimu@linux.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
这个提交包含在:
@@ -1382,3 +1382,40 @@ int chsc_pnso_brinfo(struct subchannel_id schid,
|
||||
return chsc_error_from_response(brinfo_area->response.code);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(chsc_pnso_brinfo);
|
||||
|
||||
int chsc_sgib(u32 origin)
|
||||
{
|
||||
struct {
|
||||
struct chsc_header request;
|
||||
u16 op;
|
||||
u8 reserved01[2];
|
||||
u8 reserved02:4;
|
||||
u8 fmt:4;
|
||||
u8 reserved03[7];
|
||||
/* operation data area begin */
|
||||
u8 reserved04[4];
|
||||
u32 gib_origin;
|
||||
u8 reserved05[10];
|
||||
u8 aix;
|
||||
u8 reserved06[4029];
|
||||
struct chsc_header response;
|
||||
u8 reserved07[4];
|
||||
} *sgib_area;
|
||||
int ret;
|
||||
|
||||
spin_lock_irq(&chsc_page_lock);
|
||||
memset(chsc_page, 0, PAGE_SIZE);
|
||||
sgib_area = chsc_page;
|
||||
sgib_area->request.length = 0x0fe0;
|
||||
sgib_area->request.code = 0x0021;
|
||||
sgib_area->op = 0x1;
|
||||
sgib_area->gib_origin = origin;
|
||||
|
||||
ret = chsc(sgib_area);
|
||||
if (ret == 0)
|
||||
ret = chsc_error_from_response(sgib_area->response.code);
|
||||
spin_unlock_irq(&chsc_page_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(chsc_sgib);
|
||||
|
在新工单中引用
屏蔽一个用户