solo6x10: use designated initializers

Message ID 20161217010536.GA140725@beast (mailing list archive)
State Accepted, archived
Delegated to: Hans Verkuil
Headers

Commit Message

Kees Cook Dec. 17, 2016, 1:05 a.m. UTC
  Prepare to mark sensitive kernel structures for randomization by making
sure they're using designated initializers. These were identified during
allyesconfig builds of x86, arm, and arm64, with most initializer fixes
extracted from grsecurity.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 drivers/media/pci/solo6x10/solo6x10-g723.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Andrey Utkin Dec. 19, 2016, 7:56 p.m. UTC | #1
On Fri, Dec 16, 2016 at 05:05:36PM -0800, Kees Cook wrote:
> Prepare to mark sensitive kernel structures for randomization by making
> sure they're using designated initializers. These were identified during
> allyesconfig builds of x86, arm, and arm64, with most initializer fixes
> extracted from grsecurity.

Ok I've reviewed all the patchset, googled a bit and now I see what's
going on.

> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
>  drivers/media/pci/solo6x10/solo6x10-g723.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
> index 6a35107aca25..36e93540bb49 100644
> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>  
>  int solo_g723_init(struct solo_dev *solo_dev)
>  {
> -	static struct snd_device_ops ops = { NULL };
> +	static struct snd_device_ops ops = { };

I'm not that keen on syntax subtleties, but...
 * Empty initializer is not quite "designated" as I can judge.
 * From brief googling I see that empty initializer is not valid in
   some C standards.

Since `ops` is static, what about this?
For the variant given below, you have my signoff.

> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>  
>  int solo_g723_init(struct solo_dev *solo_dev)
>  {
> -	static struct snd_device_ops ops = { NULL };
> +	static struct snd_device_ops ops;
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Kees Cook Jan. 6, 2017, 9:21 p.m. UTC | #2
On Mon, Dec 19, 2016 at 11:56 AM, Andrey Utkin
<andrey.utkin@corp.bluecherry.net> wrote:
> On Fri, Dec 16, 2016 at 05:05:36PM -0800, Kees Cook wrote:
>> Prepare to mark sensitive kernel structures for randomization by making
>> sure they're using designated initializers. These were identified during
>> allyesconfig builds of x86, arm, and arm64, with most initializer fixes
>> extracted from grsecurity.
>
> Ok I've reviewed all the patchset, googled a bit and now I see what's
> going on.
>
>>
>> Signed-off-by: Kees Cook <keescook@chromium.org>
>> ---
>>  drivers/media/pci/solo6x10/solo6x10-g723.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> index 6a35107aca25..36e93540bb49 100644
>> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
>> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>>
>>  int solo_g723_init(struct solo_dev *solo_dev)
>>  {
>> -     static struct snd_device_ops ops = { NULL };
>> +     static struct snd_device_ops ops = { };
>
> I'm not that keen on syntax subtleties, but...
>  * Empty initializer is not quite "designated" as I can judge.
>  * From brief googling I see that empty initializer is not valid in
>    some C standards.
>
> Since `ops` is static, what about this?
> For the variant given below, you have my signoff.
>
>> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
>> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
>> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
>>
>>  int solo_g723_init(struct solo_dev *solo_dev)
>>  {
>> -     static struct snd_device_ops ops = { NULL };
>> +     static struct snd_device_ops ops;

Ah! Yes, thanks. That works fine too. :) Can this be const as well?

-Kees
  
Andrey Utkin Jan. 8, 2017, 5:38 p.m. UTC | #3
On Fri, Jan 06, 2017 at 01:21:10PM -0800, Kees Cook wrote:
> > Since `ops` is static, what about this?
> > For the variant given below, you have my signoff.
> >
> >> --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
> >> +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
> >> @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
> >>
> >>  int solo_g723_init(struct solo_dev *solo_dev)
> >>  {
> >> -     static struct snd_device_ops ops = { NULL };
> >> +     static struct snd_device_ops ops;
> 
> Ah! Yes, thanks. That works fine too. :) Can this be const as well?

No, it can't be const, it's used as parameter for snd_device_new() which
takes "struct snd_device_ops *".
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
index 6a35107aca25..36e93540bb49 100644
--- a/drivers/media/pci/solo6x10/solo6x10-g723.c
+++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
@@ -350,7 +350,7 @@  static int solo_snd_pcm_init(struct solo_dev *solo_dev)
 
 int solo_g723_init(struct solo_dev *solo_dev)
 {
-	static struct snd_device_ops ops = { NULL };
+	static struct snd_device_ops ops = { };
 	struct snd_card *card;
 	struct snd_kcontrol_new kctl;
 	char name[32];