scsi: bfa: use designated initializers
authorKees Cook <keescook@chromium.org>
Thu, 20 Apr 2017 22:00:02 +0000 (15:00 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 21 Apr 2017 14:11:34 +0000 (10:11 -0400)
Prepare to mark sensitive kernel structures for randomization by making
sure they're using designated initializers. This also initializes the
array members using the enum used to look up __port_action entries.

Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/bfa/bfa_fcs_lport.c

index 4ddda72..638c0a2 100644 (file)
@@ -89,16 +89,27 @@ static struct {
        void            (*online) (struct bfa_fcs_lport_s *port);
        void            (*offline) (struct bfa_fcs_lport_s *port);
 } __port_action[] = {
-       {
-       bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
-                       bfa_fcs_lport_unknown_offline}, {
-       bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
-                       bfa_fcs_lport_fab_offline}, {
-       bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
-                       bfa_fcs_lport_n2n_offline}, {
-       bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
-                       bfa_fcs_lport_loop_offline},
-       };
+       [BFA_FCS_FABRIC_UNKNOWN] = {
+               .init = bfa_fcs_lport_unknown_init,
+               .online = bfa_fcs_lport_unknown_online,
+               .offline = bfa_fcs_lport_unknown_offline
+       },
+       [BFA_FCS_FABRIC_SWITCHED] = {
+               .init = bfa_fcs_lport_fab_init,
+               .online = bfa_fcs_lport_fab_online,
+               .offline = bfa_fcs_lport_fab_offline
+       },
+       [BFA_FCS_FABRIC_N2N] = {
+               .init = bfa_fcs_lport_n2n_init,
+               .online = bfa_fcs_lport_n2n_online,
+               .offline = bfa_fcs_lport_n2n_offline
+       },
+       [BFA_FCS_FABRIC_LOOP] = {
+               .init = bfa_fcs_lport_loop_init,
+               .online = bfa_fcs_lport_loop_online,
+               .offline = bfa_fcs_lport_loop_offline
+       },
+};
 
 /*
  *  fcs_port_sm FCS logical port state machine