diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_dbf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_dbf.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index fff1537335c7..64d9b90373fe 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -279,9 +279,18 @@ zfcp_hba_dbf_event_fsf_unsol(const char *tag, struct zfcp_adapter *adapter, | |||
279 | break; | 279 | break; |
280 | 280 | ||
281 | case FSF_STATUS_READ_LINK_DOWN: | 281 | case FSF_STATUS_READ_LINK_DOWN: |
282 | rec->type.status.payload_size = sizeof(u64); | 282 | switch (status_buffer->status_subtype) { |
283 | case FSF_STATUS_READ_SUB_NO_PHYSICAL_LINK: | ||
284 | case FSF_STATUS_READ_SUB_FDISC_FAILED: | ||
285 | rec->type.status.payload_size = | ||
286 | sizeof(struct fsf_link_down_info); | ||
287 | } | ||
283 | break; | 288 | break; |
284 | 289 | ||
290 | case FSF_STATUS_READ_FEATURE_UPDATE_ALERT: | ||
291 | rec->type.status.payload_size = | ||
292 | ZFCP_DBF_UNSOL_PAYLOAD_FEATURE_UPDATE_ALERT; | ||
293 | break; | ||
285 | } | 294 | } |
286 | memcpy(&rec->type.status.payload, | 295 | memcpy(&rec->type.status.payload, |
287 | &status_buffer->payload, rec->type.status.payload_size); | 296 | &status_buffer->payload, rec->type.status.payload_size); |