diff options
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_fw.h | 6 | ||||
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_isr.c | 30 |
2 files changed, 33 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_fw.h b/drivers/scsi/qla4xxx/ql4_fw.h index a94593ab0067..209853ce0bbc 100644 --- a/drivers/scsi/qla4xxx/ql4_fw.h +++ b/drivers/scsi/qla4xxx/ql4_fw.h | |||
@@ -506,9 +506,9 @@ struct qla_flt_region { | |||
506 | #define MBOX_ASTS_RESPONSE_QUEUE_FULL 0x8028 | 506 | #define MBOX_ASTS_RESPONSE_QUEUE_FULL 0x8028 |
507 | #define MBOX_ASTS_IP_ADDR_STATE_CHANGED 0x8029 | 507 | #define MBOX_ASTS_IP_ADDR_STATE_CHANGED 0x8029 |
508 | #define MBOX_ASTS_IPV6_DEFAULT_ROUTER_CHANGED 0x802A | 508 | #define MBOX_ASTS_IPV6_DEFAULT_ROUTER_CHANGED 0x802A |
509 | #define MBOX_ASTS_IPV6_PREFIX_EXPIRED 0x802B | 509 | #define MBOX_ASTS_IPV6_LINK_MTU_CHANGE 0x802B |
510 | #define MBOX_ASTS_IPV6_ND_PREFIX_IGNORED 0x802C | 510 | #define MBOX_ASTS_IPV6_AUTO_PREFIX_IGNORED 0x802C |
511 | #define MBOX_ASTS_IPV6_LCL_PREFIX_IGNORED 0x802D | 511 | #define MBOX_ASTS_IPV6_ND_LOCAL_PREFIX_IGNORED 0x802D |
512 | #define MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD 0x802E | 512 | #define MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD 0x802E |
513 | #define MBOX_ASTS_INITIALIZATION_FAILED 0x8031 | 513 | #define MBOX_ASTS_INITIALIZATION_FAILED 0x8031 |
514 | #define MBOX_ASTS_SYSTEM_WARNING_EVENT 0x8036 | 514 | #define MBOX_ASTS_SYSTEM_WARNING_EVENT 0x8036 |
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index df3fd9b4561e..bb34ef82b1d4 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c | |||
@@ -635,6 +635,18 @@ static void qla4xxx_update_ipaddr_state(struct scsi_qla_host *ha, | |||
635 | } | 635 | } |
636 | } | 636 | } |
637 | 637 | ||
638 | static void qla4xxx_default_router_changed(struct scsi_qla_host *ha, | ||
639 | uint32_t *mbox_sts) | ||
640 | { | ||
641 | memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[0], | ||
642 | &mbox_sts[2], sizeof(uint32_t)); | ||
643 | memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[1], | ||
644 | &mbox_sts[3], sizeof(uint32_t)); | ||
645 | memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[2], | ||
646 | &mbox_sts[4], sizeof(uint32_t)); | ||
647 | memcpy(&ha->ip_config.ipv6_default_router_addr.s6_addr32[3], | ||
648 | &mbox_sts[5], sizeof(uint32_t)); | ||
649 | } | ||
638 | 650 | ||
639 | /** | 651 | /** |
640 | * qla4xxx_isr_decode_mailbox - decodes mailbox status | 652 | * qla4xxx_isr_decode_mailbox - decodes mailbox status |
@@ -802,6 +814,23 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha, | |||
802 | } | 814 | } |
803 | break; | 815 | break; |
804 | 816 | ||
817 | case MBOX_ASTS_IPV6_LINK_MTU_CHANGE: | ||
818 | case MBOX_ASTS_IPV6_AUTO_PREFIX_IGNORED: | ||
819 | case MBOX_ASTS_IPV6_ND_LOCAL_PREFIX_IGNORED: | ||
820 | /* No action */ | ||
821 | DEBUG2(ql4_printk(KERN_INFO, ha, "scsi%ld: AEN %04x\n", | ||
822 | ha->host_no, mbox_status)); | ||
823 | break; | ||
824 | |||
825 | case MBOX_ASTS_ICMPV6_ERROR_MSG_RCVD: | ||
826 | DEBUG2(ql4_printk(KERN_INFO, ha, | ||
827 | "scsi%ld: AEN %04x, IPv6 ERROR, " | ||
828 | "mbox_sts[1]=%08x, mbox_sts[2]=%08x, mbox_sts[3}=%08x, mbox_sts[4]=%08x mbox_sts[5]=%08x\n", | ||
829 | ha->host_no, mbox_sts[0], mbox_sts[1], | ||
830 | mbox_sts[2], mbox_sts[3], mbox_sts[4], | ||
831 | mbox_sts[5])); | ||
832 | break; | ||
833 | |||
805 | case MBOX_ASTS_MAC_ADDRESS_CHANGED: | 834 | case MBOX_ASTS_MAC_ADDRESS_CHANGED: |
806 | case MBOX_ASTS_DNS: | 835 | case MBOX_ASTS_DNS: |
807 | /* No action */ | 836 | /* No action */ |
@@ -939,6 +968,7 @@ static void qla4xxx_isr_decode_mailbox(struct scsi_qla_host * ha, | |||
939 | DEBUG2(ql4_printk(KERN_INFO, ha, | 968 | DEBUG2(ql4_printk(KERN_INFO, ha, |
940 | "scsi%ld: AEN %04x Received IPv6 default router changed notification\n", | 969 | "scsi%ld: AEN %04x Received IPv6 default router changed notification\n", |
941 | ha->host_no, mbox_sts[0])); | 970 | ha->host_no, mbox_sts[0])); |
971 | qla4xxx_default_router_changed(ha, mbox_sts); | ||
942 | break; | 972 | break; |
943 | 973 | ||
944 | case MBOX_ASTS_IDC_TIME_EXTEND_NOTIFICATION: | 974 | case MBOX_ASTS_IDC_TIME_EXTEND_NOTIFICATION: |