Re: [PATCH v3] scsi/bfa: use designated initializers

2017-04-21 Thread Martin K. Petersen
Kees Cook  writes:

Kees,

> 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.

Applied to 4.12/scsi-queue.

Thanks!

-- 
Martin K. Petersen  Oracle Linux Engineering


Re: [PATCH v3] scsi/bfa: use designated initializers

2017-04-21 Thread Martin K. Petersen
Kees Cook  writes:

Kees,

> 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.

Applied to 4.12/scsi-queue.

Thanks!

-- 
Martin K. Petersen  Oracle Linux Engineering


Re: [PATCH v3] scsi/bfa: use designated initializers

2017-04-20 Thread Christoph Hellwig
Looks good,

Reviewed-by: Christoph Hellwig 


Re: [PATCH v3] scsi/bfa: use designated initializers

2017-04-20 Thread Christoph Hellwig
Looks good,

Reviewed-by: Christoph Hellwig 


[PATCH v3] scsi/bfa: use designated initializers

2017-04-20 Thread Kees Cook
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 
---
v3:
- drop bfa_module_s changes, since that has been removed entirely; hch.
- init array with enum literals; hch.
---
 drivers/scsi/bfa/bfa_fcs_lport.c | 31 +--
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
index 4ddda72f60e6..638c0a2857f7 100644
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -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
-- 
2.7.4


-- 
Kees Cook
Pixel Security


[PATCH v3] scsi/bfa: use designated initializers

2017-04-20 Thread Kees Cook
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 
---
v3:
- drop bfa_module_s changes, since that has been removed entirely; hch.
- init array with enum literals; hch.
---
 drivers/scsi/bfa/bfa_fcs_lport.c | 31 +--
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
index 4ddda72f60e6..638c0a2857f7 100644
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -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
-- 
2.7.4


-- 
Kees Cook
Pixel Security