Skip to contentSkip to conversation

drm/amd/powerplay: rv: Use designated initializers

PATCH In review Kees Cook 4 participants 6 messages Jul 25, 2017 – Jul 28, 2017

Subsystems (2)
lore
Share & tools
lore

Kees Cook

author
#0 lore raw

PATCH 1/1 drm/amd/powerplay: rv: Use designated initializers

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless you think this is worth landing for v4.13, in which case, please take it now. :)

Thanks!

---
 drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c +4 -4
index 4c7f430b36eb..8e6cfd89c7e0 100644
@@ -308,8 +308,8 @@ static int rv_tf_set_num_active_display(struct pp_hwmgr *hwmgr, void *input,
 }
 
 static const struct phm_master_table_item rv_set_power_state_list[] = {
-	{ NULL, rv_tf_set_clock_limit },
-	{ NULL, rv_tf_set_num_active_display },
+	{ .tableFunction = rv_tf_set_clock_limit },
+	{ .tableFunction = rv_tf_set_num_active_display },
 	{ }
 };
 
@@ -382,7 +382,7 @@ static int rv_tf_disable_gfx_off(struct pp_hwmgr *hwmgr,
 }
 
 static const struct phm_master_table_item rv_disable_dpm_list[] = {
-	{NULL, rv_tf_disable_gfx_off},
+	{ .tableFunction = rv_tf_disable_gfx_off },
 	{ },
 };
 
@@ -407,7 +407,7 @@ static int rv_tf_enable_gfx_off(struct pp_hwmgr *hwmgr,
 }
 
 static const struct phm_master_table_item rv_enable_dpm_list[] = {
-	{NULL, rv_tf_enable_gfx_off},
+	{ .tableFunction = rv_tf_enable_gfx_off },
 	{ },
 };
 
Signature · 6 lines
2.7.4


-- 
Kees Cook
Pixel Security
Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · Kees Cook

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Quoted 9 lines
Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless you think this is worth landing for v4.13, in which case, please take it now. :)

I'm happy to take this through my tree if that is ok with you.

Alex

Quoted 42 lines

Thanks!

---
 drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c +4 -5
index 4c7f430b36eb..8e6cfd89c7e0 100644
@@ -308,8 +308,8 @@ static int rv_tf_set_num_active_display(struct pp_hwmgr *hwmgr, void *input,
 }
 
 static const struct phm_master_table_item rv_set_power_state_list[] = {
-       { NULL, rv_tf_set_clock_limit },
-       { NULL, rv_tf_set_num_active_display },
+       { .tableFunction = rv_tf_set_clock_limit },
+       { .tableFunction = rv_tf_set_num_active_display },
        { }
 };
 
@@ -382,7 +382,7 @@ static int rv_tf_disable_gfx_off(struct pp_hwmgr *hwmgr,
 }
 
 static const struct phm_master_table_item rv_disable_dpm_list[] = {
-       {NULL, rv_tf_disable_gfx_off},
+       { .tableFunction = rv_tf_disable_gfx_off },
        { },
 };
 
@@ -407,7 +407,7 @@ static int rv_tf_enable_gfx_off(struct pp_hwmgr *hwmgr,
 }
 
 static const struct phm_master_table_item rv_enable_dpm_list[] = {
-       {NULL, rv_tf_enable_gfx_off},
+       { .tableFunction = rv_tf_enable_gfx_off },
        { },
 };
 
--

2.7.4

Quoted 7 lines

--
Kees Cook
Pixel Security
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

maintainer
#2 lore raw

Am 28.07.2017 um 03:43 schrieb Alex Deucher:

Quoted 15 lines · Kees Cook
Quoted 5 lines

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Quoted 9 lines
Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless you think this is worth landing for v4.13, in which case, please take it now. :)

Quoted 3 lines

I'm happy to take this through my tree if that is ok with you.

I'm wondering a bit how the plugin detects that it can randomize a structure layout?

We have a couple of structs where this would be fatal.

Christian.

Quoted 45 lines

Alex

Quoted 42 lines

Thanks!

---
  drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c +4 -5
index 4c7f430b36eb..8e6cfd89c7e0 100644
@@ -308,8 +308,8 @@ static int rv_tf_set_num_active_display(struct pp_hwmgr *hwmgr, void *input,
  }
 
  static const struct phm_master_table_item rv_set_power_state_list[] = {
-       { NULL, rv_tf_set_clock_limit },
-       { NULL, rv_tf_set_num_active_display },
+       { .tableFunction = rv_tf_set_clock_limit },
+       { .tableFunction = rv_tf_set_num_active_display },
         { }
  };
 
@@ -382,7 +382,7 @@ static int rv_tf_disable_gfx_off(struct pp_hwmgr *hwmgr,
  }
 
  static const struct phm_master_table_item rv_disable_dpm_list[] = {
-       {NULL, rv_tf_disable_gfx_off},
+       { .tableFunction = rv_tf_disable_gfx_off },
         { },
  };
 
@@ -407,7 +407,7 @@ static int rv_tf_enable_gfx_off(struct pp_hwmgr *hwmgr,
  }
 
  static const struct phm_master_table_item rv_enable_dpm_list[] = {
-       {NULL, rv_tf_enable_gfx_off},
+       { .tableFunction = rv_tf_enable_gfx_off },
         { },
  };
 
--

2.7.4

Quoted 11 lines
Quoted 7 lines

--
Kees Cook
Pixel Security
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

author
#3 lore raw
Quoted 22 lines · Christian König

Am 28.07.2017 um 03:43 schrieb Alex Deucher:

Quoted 21 lines · Kees Cook
Quoted 11 lines

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated
initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>
Quoted 6 lines

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless
you think this is worth landing for v4.13, in which case, please take it now. :)

Quoted 7 lines
Quoted 1 line

I'm happy to take this through my tree if that is ok with you.

I'm wondering a bit how the plugin detects that it can randomize a structure layout?

We have a couple of structs where this would be fatal.

Automatic randomization only happen on struct that are entirely function pointers.

See:
https://git.kernel.org/linus/313dd1b629219db50cad532dba6a3b3b22ffe622

And:
https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?id=914e2dfc61195a95868ae5c750690a7f1c87bc66

If you have any structures that are shared externally from the kernel, I can mark them with __no_randomize_layout.

-Kees

Signature · 2 lines
Kees Cook
Pixel Security
author
#4 lore raw
In reply to Alex Deucher
Quoted 16 lines · Alex Deucher
Quoted 5 lines · Kees Cook

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Quoted 9 lines
Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless you think this is worth landing for v4.13, in which case, please take it now. :)

Quoted 3 lines

I'm happy to take this through my tree if that is ok with you.

Since the randstruct patch depends on this fix, it's likely best to go through my tree unless you can get this into v4.13. (Since then when the randstruct patch lands in v4.14, it'll already be there.) I'm fine either way.

Thanks!

-Kees

Signature · 2 lines
Kees Cook
Pixel Security
#5 lore raw
Quoted 28 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Kees Cook
Sent: Friday, July 28, 2017 1:16 PM
To: Alex Deucher
Cc: LKML; David Airlie; amd-gfx list; Maling list - DRI developers; Deucher, Alexander; Zhu, Rex; Koenig, Christian; Zhang, Hawking
Subject: Re: [PATCH] drm/amd/powerplay: rv: Use designated initializers

Quoted 1 line · Alex Deucher

On Tue, Jul 25, 2017 at 5:47 PM, Kees Cook <[email protected]>

Quoted 15 lines · wrote:
Quoted 14 lines

As done for vega10 in commit 3ddd396f6b57 ("drm/amd/powerplay: Use designated initializers") mark other tableFunction entries with designated initializers. The randstruct plugin requires designated initializers for structures that are entirely function pointers.

Cc Rex Zhu <[email protected]>
Cc Hawking Zhang <[email protected]>
Cc Alex Deucher <[email protected]>

---
If I can get an Ack for this, I'll carry it in the gcc-plugins tree, unless you think this is worth landing for v4.13, in which case, please take it now. :)

Quoted 8 lines
Quoted 3 lines

I'm happy to take this through my tree if that is ok with you.

Since the randstruct patch depends on this fix, it's likely best to go through my tree unless you can get this into v4.13. (Since then when the randstruct patch lands in v4.14, it'll already be there.) I'm fine either way.

Go ahead and take it through your tree. Thanks!

Alex

Quoted 8 lines

Thanks!

-Kees

--
Kees Cook
Pixel Security

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx