All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Tejun Heo" <tj@kernel.org>, "Guenter Roeck" <linux@roeck-us.net>,
	IDE-ML <linux-ide@vger.kernel.org>,
	"Linux Media Mailing List" <linux-media@vger.kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Robert Jarzmik" <robert.jarzmik@free.fr>,
	"Daeseok Youn" <daeseok.youn@gmail.com>,
	"Alan Cox" <alan@linux.intel.com>,
	adi-buildroot-devel@lists.sourceforge.net,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool
Date: Mon, 17 Jul 2017 16:26:23 +0200	[thread overview]
Message-ID: <CAK8P3a1zBW_QuPtRFNwuVyE_ziySoV9_ebz4sD7Bya3eRoo8SA@mail.gmail.com> (raw)
In-Reply-To: <f57e08d9-0984-b67c-c64b-c7e0542d0361@xs4all.nl>

On Mon, Jul 17, 2017 at 3:45 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 14/07/17 11:36, Arnd Bergmann wrote:
>> @@ -201,8 +202,9 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh,
>>        * digitizer/slicer.  Note, cx18_av_vbi() wipes the passed in
>>        * fmt->fmt.sliced under valid calling conditions
>>        */
>> -     if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced))
>> -             return -EINVAL;
>> +     ret = v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced);
>> +     if (ret)
>> +             return ret;
>
> Please keep the -EINVAL here. I can't be 100% certain that returning 'ret' wouldn't
> break something.

I think Dan was recommending the opposite here, if I understood you
both correctly:
he said we should propagate the error code unless we know it's wrong, while you
want to keep the current behavior to avoid introducing changes ;-)

I guess in either case, looking at the callers more carefully would be
a good idea.

>> -     return 0;
>> +     return ret;
>>  }
>>
>>  int atomisp_flash_enable(struct atomisp_sub_device *asd, int num_frames)
>>
>
> This is all very hackish, though. I'm not terribly keen on this patch. It's not
> clear to me *why* these warnings appear in your setup.

it's possible that this only happened with 'ccache', which first preprocesses
the source and the passes it with v4l2_subdev_call expanded into the
compiler. This means the line looks like

        if ((!(cx->sd_av) ? -ENODEV :
            (((cx->sd_av)->ops->vbi && (cx->sd_av)->ops->vbi->g_sliced_fmt) ?
               (cx->sd_av)->ops->vbi->g_sliced_fmt(cx->sd_av)),
&fmt->fmt.sliced) :
               -ENOIOCTLCMD))

The compiler now complains about the sub-expression that it sees for
cx->sd_av==NULL:

   if (-ENODEV)

which it considers nonsense because it is always true and the value gets
ignored.

Let me try again without ccache for now and see what warnings remain.
We can find a solution for those first, and then decide how to deal with
ccache.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Tejun Heo" <tj@kernel.org>, "Guenter Roeck" <linux@roeck-us.net>,
	IDE-ML <linux-ide@vger.kernel.org>,
	"Linux Media Mailing List" <linux-media@vger.kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
	"Robert Jarzmik" <robert.jarzmik@free.fr>,
	"Daeseok Youn" <daeseok.youn@gmail.com>,
	"Alan Cox" <alan@linux.intel.com>,
	adi-buildroot-devel@lists.sourceforge.net,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	"Linux ARM" <linux-arm-kernel@lists.infradead.org>,
	devel@driverdev.osuosl.org
Subject: Re: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool
Date: Mon, 17 Jul 2017 16:26:23 +0200	[thread overview]
Message-ID: <CAK8P3a1zBW_QuPtRFNwuVyE_ziySoV9_ebz4sD7Bya3eRoo8SA@mail.gmail.com> (raw)
In-Reply-To: <f57e08d9-0984-b67c-c64b-c7e0542d0361@xs4all.nl>

On Mon, Jul 17, 2017 at 3:45 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 14/07/17 11:36, Arnd Bergmann wrote:
>> @@ -201,8 +202,9 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh,
>>        * digitizer/slicer.  Note, cx18_av_vbi() wipes the passed in
>>        * fmt->fmt.sliced under valid calling conditions
>>        */
>> -     if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced))
>> -             return -EINVAL;
>> +     ret = v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced);
>> +     if (ret)
>> +             return ret;
>
> Please keep the -EINVAL here. I can't be 100% certain that returning 'ret' wouldn't
> break something.

I think Dan was recommending the opposite here, if I understood you
both correctly:
he said we should propagate the error code unless we know it's wrong, while you
want to keep the current behavior to avoid introducing changes ;-)

I guess in either case, looking at the callers more carefully would be
a good idea.

>> -     return 0;
>> +     return ret;
>>  }
>>
>>  int atomisp_flash_enable(struct atomisp_sub_device *asd, int num_frames)
>>
>
> This is all very hackish, though. I'm not terribly keen on this patch. It's not
> clear to me *why* these warnings appear in your setup.

it's possible that this only happened with 'ccache', which first preprocesses
the source and the passes it with v4l2_subdev_call expanded into the
compiler. This means the line looks like

        if ((!(cx->sd_av) ? -ENODEV :
            (((cx->sd_av)->ops->vbi && (cx->sd_av)->ops->vbi->g_sliced_fmt) ?
               (cx->sd_av)->ops->vbi->g_sliced_fmt(cx->sd_av)),
&fmt->fmt.sliced) :
               -ENOIOCTLCMD))

The compiler now complains about the sub-expression that it sees for
cx->sd_av==NULL:

   if (-ENODEV)

which it considers nonsense because it is always true and the value gets
ignored.

Let me try again without ccache for now and see what warnings remain.
We can find a solution for those first, and then decide how to deal with
ccache.

        Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool
Date: Mon, 17 Jul 2017 16:26:23 +0200	[thread overview]
Message-ID: <CAK8P3a1zBW_QuPtRFNwuVyE_ziySoV9_ebz4sD7Bya3eRoo8SA@mail.gmail.com> (raw)
In-Reply-To: <f57e08d9-0984-b67c-c64b-c7e0542d0361@xs4all.nl>

On Mon, Jul 17, 2017 at 3:45 PM, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 14/07/17 11:36, Arnd Bergmann wrote:
>> @@ -201,8 +202,9 @@ static int cx18_g_fmt_sliced_vbi_cap(struct file *file, void *fh,
>>        * digitizer/slicer.  Note, cx18_av_vbi() wipes the passed in
>>        * fmt->fmt.sliced under valid calling conditions
>>        */
>> -     if (v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced))
>> -             return -EINVAL;
>> +     ret = v4l2_subdev_call(cx->sd_av, vbi, g_sliced_fmt, &fmt->fmt.sliced);
>> +     if (ret)
>> +             return ret;
>
> Please keep the -EINVAL here. I can't be 100% certain that returning 'ret' wouldn't
> break something.

I think Dan was recommending the opposite here, if I understood you
both correctly:
he said we should propagate the error code unless we know it's wrong, while you
want to keep the current behavior to avoid introducing changes ;-)

I guess in either case, looking at the callers more carefully would be
a good idea.

>> -     return 0;
>> +     return ret;
>>  }
>>
>>  int atomisp_flash_enable(struct atomisp_sub_device *asd, int num_frames)
>>
>
> This is all very hackish, though. I'm not terribly keen on this patch. It's not
> clear to me *why* these warnings appear in your setup.

it's possible that this only happened with 'ccache', which first preprocesses
the source and the passes it with v4l2_subdev_call expanded into the
compiler. This means the line looks like

        if ((!(cx->sd_av) ? -ENODEV :
            (((cx->sd_av)->ops->vbi && (cx->sd_av)->ops->vbi->g_sliced_fmt) ?
               (cx->sd_av)->ops->vbi->g_sliced_fmt(cx->sd_av)),
&fmt->fmt.sliced) :
               -ENOIOCTLCMD))

The compiler now complains about the sub-expression that it sees for
cx->sd_av==NULL:

   if (-ENODEV)

which it considers nonsense because it is always true and the value gets
ignored.

Let me try again without ccache for now and see what warnings remain.
We can find a solution for those first, and then decide how to deal with
ccache.

        Arnd

  reply	other threads:[~2017-07-17 14:26 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-14  9:25 [PATCH 00/14] gcc-7 warnings Arnd Bergmann
2017-07-14  9:25 ` Arnd Bergmann
2017-07-14  9:25 ` [PATCH, RESEND 01/14] ide: avoid warning for timings calculation Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14  9:25 ` [PATCH, RESEND 02/14] ata: avoid gcc-7 warning in ata_timing_quantize Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-15 10:56   ` Tejun Heo
2017-07-15 10:56     ` Tejun Heo
2017-07-14  9:25 ` [PATCH, RESEND 03/14] drm/vmwgfx: avoid gcc-7 parentheses warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14 10:11   ` Jani Nikula
2017-07-14 10:11     ` Jani Nikula
2017-07-14 19:21   ` Linus Torvalds
2017-07-14 19:21     ` Linus Torvalds
2017-07-14 19:23     ` Linus Torvalds
2017-07-14 20:28       ` Arnd Bergmann
2017-07-17 13:15         ` Sinclair Yeh
2017-07-17 13:15           ` Sinclair Yeh
2017-07-14  9:25 ` [PATCH 04/14] x86: math-emu: avoid -Wint-in-bool-context warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14  9:25 ` [PATCH 05/14] isdn: isdnloop: suppress a gcc-7 warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14 10:08   ` Joe Perches
2017-07-14 10:37     ` Arnd Bergmann
2017-07-15  4:20       ` Kevin Easton
2017-07-14  9:25 ` [PATCH 06/14] acpi: thermal: fix gcc-6/ccache warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14  9:25 ` [PATCH 07/14] proc/kcore: hide a harmless warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14 12:28   ` Ard Biesheuvel
2017-07-18 19:53     ` Arnd Bergmann
2017-07-18 19:53       ` Arnd Bergmann
2017-07-18 19:55       ` Ard Biesheuvel
2017-07-18 20:01         ` Arnd Bergmann
2017-07-18 20:07           ` Ard Biesheuvel
2017-07-18 20:21             ` Arnd Bergmann
2017-07-14  9:25 ` [PATCH 08/14] Input: adxl34x - fix gcc-7 -Wint-in-bool-context warning Arnd Bergmann
2017-07-14  9:25   ` Arnd Bergmann
2017-07-14 19:24   ` Linus Torvalds
2017-07-14 20:17     ` Arnd Bergmann
2017-07-14 21:40       ` Dmitry Torokhov
2017-07-14  9:30 ` [PATCH 09/14] SFI: fix tautological-compare warning Arnd Bergmann
2017-07-14  9:30   ` Arnd Bergmann
2017-07-14  9:31 ` [PATCH 10/14] staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read Arnd Bergmann
2017-07-14  9:31   ` Arnd Bergmann
2017-07-15 11:42   ` Jonathan Cameron
2017-07-14  9:31 ` [PATCH 11/14] IB/uverbs: fix gcc-7 type warning Arnd Bergmann
2017-07-14  9:31   ` Arnd Bergmann
2017-07-14  9:46   ` Leon Romanovsky
2017-07-14  9:31 ` [PATCH 12/14] drm/nouveau/clk: fix gcc-7 -Wint-in-bool-context warning Arnd Bergmann
2017-07-14  9:31   ` Arnd Bergmann
2017-07-14  9:31 ` [PATCH 13/14] iopoll: avoid " Arnd Bergmann
2017-07-14  9:31   ` Arnd Bergmann
2017-07-14  9:55   ` Joe Perches
2017-07-14 10:22     ` Arnd Bergmann
2017-07-14  9:36 ` [PATCH 14/14] [media] fix warning on v4l2_subdev_call() result interpreted as bool Arnd Bergmann
2017-07-14  9:36   ` Arnd Bergmann
2017-07-14  9:36   ` Arnd Bergmann
2017-07-14 12:05   ` Dan Carpenter
2017-07-14 12:05     ` Dan Carpenter
2017-07-14 12:05     ` Dan Carpenter
2017-07-14 12:27     ` Arnd Bergmann
2017-07-14 12:27       ` Arnd Bergmann
2017-07-14 12:27       ` Arnd Bergmann
2017-07-14 12:55       ` Dan Carpenter
2017-07-14 12:55         ` Dan Carpenter
2017-07-14 12:55         ` Dan Carpenter
2017-07-14 13:09         ` Dan Carpenter
2017-07-14 13:09           ` Dan Carpenter
2017-07-14 13:09           ` Dan Carpenter
2017-07-14 19:32           ` Arnd Bergmann
2017-07-14 19:32             ` Arnd Bergmann
2017-07-14 19:32             ` Arnd Bergmann
2017-07-14 12:41   ` Dan Carpenter
2017-07-14 12:41     ` Dan Carpenter
2017-07-14 12:41     ` Dan Carpenter
2017-07-17 13:45   ` Hans Verkuil
2017-07-17 13:45     ` Hans Verkuil
2017-07-17 14:26     ` Arnd Bergmann [this message]
2017-07-17 14:26       ` Arnd Bergmann
2017-07-17 14:26       ` Arnd Bergmann
2017-07-17 14:28       ` Dan Carpenter
2017-07-17 14:28         ` Dan Carpenter
2017-07-17 14:28         ` Dan Carpenter
2017-07-17 14:32       ` Hans Verkuil
2017-07-17 14:32         ` Hans Verkuil
2017-07-17 14:32         ` Hans Verkuil
2017-07-17 14:35       ` Hans Verkuil
2017-07-17 14:35         ` Hans Verkuil
2017-07-17 14:35         ` Hans Verkuil
2017-07-17 21:23         ` Arnd Bergmann
2017-07-17 21:23           ` Arnd Bergmann
2017-07-17 21:23           ` Arnd Bergmann
2017-07-14 10:29 ` [PATCH 00/14] gcc-7 warnings Greg Kroah-Hartman
2017-07-14 10:29   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK8P3a1zBW_QuPtRFNwuVyE_ziySoV9_ebz4sD7Bya3eRoo8SA@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=adi-buildroot-devel@lists.sourceforge.net \
    --cc=akpm@linux-foundation.org \
    --cc=alan@linux.intel.com \
    --cc=daeseok.youn@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mchehab@kernel.org \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=robert.jarzmik@free.fr \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.