From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Oscar Carter <oscar.carter@gmx.com>
Cc: alsa-devel@alsa-project.org,
linux1394-devel@lists.sourceforge.net,
Kees Cook <keescook@chromium.org>,
kernel-hardening@lists.openwall.com,
linux-kernel@vger.kernel.org,
Clemens Ladisch <clemens@ladisch.de>,
Takashi Iwai <tiwai@suse.com>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
"Lev R . Oshvang ." <levonshe@gmail.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
linux-media@vger.kernel.org
Subject: Re: [PATCH v2] firewire: Remove function callback casts
Date: Wed, 20 May 2020 15:16:24 +0900 [thread overview]
Message-ID: <20200520061624.GA25690@workstation> (raw)
In-Reply-To: <20200519173425.4724-1-oscar.carter@gmx.com>
Hi,
On Tue, May 19, 2020 at 07:34:25PM +0200, Oscar Carter wrote:
> In an effort to enable -Wcast-function-type in the top-level Makefile to
> support Control Flow Integrity builds, remove all the function callback
> casts.
>
> To do this, modify the "fw_iso_context_create" function prototype adding
> a new parameter for the multichannel callback. Also, fix all the
> function calls accordingly.
>
> In the "fw_iso_context_create" function return an error code if both
> callback parameters are NULL and also set the "ctx->callback.sc"
> explicity to NULL in this case. It is not necessary set to NULL the
> "ctx->callback.mc" variable because this and "ctx->callback.sc" are an
> union and setting one implies setting the other one to the same value.
>
> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> ---
> Changelog v1->v2
> -Set explicity to NULL the "ctx->callback.sc" variable and return an error
> code in "fw_iso_context_create" function if both callback parameters are
> NULL as Lev R. Oshvang suggested.
> -Modify the commit changelog accordingly.
>
> drivers/firewire/core-cdev.c | 12 +++++++-----
> drivers/firewire/core-iso.c | 14 ++++++++++++--
> drivers/firewire/net.c | 2 +-
> drivers/media/firewire/firedtv-fw.c | 3 ++-
> include/linux/firewire.h | 3 ++-
> sound/firewire/amdtp-stream.c | 2 +-
> sound/firewire/isight.c | 4 ++--
> 7 files changed, 27 insertions(+), 13 deletions(-)
I'm an author of ALSA firewire stack and thanks for the patch. I agree with
your intention to remove the cast of function callback toward CFI build.
Practically, the isochronous context with FW_ISO_CONTEXT_RECEIVE_MULTICHANNEL
is never used by in-kernel drivers. Here, I propose to leave current
kernel API (fw_iso_context_create() with fw_iso_callback_t) as is.
Alternatively, a new kernel API for the context (e.g.
fw_iso_mc_context_create() with fw_iso_mc_callback_t). This idea leaves
current drivers as is and the change is done inner firewire-core driver,
therefore existent kernel API is not changed.
Later I post two patches for the proposal. I'd like you to review it and
I'm glad to receive your comments.
Regards
Takashi Sakamoto
WARNING: multiple messages have this Message-ID (diff)
From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Oscar Carter <oscar.carter@gmx.com>
Cc: Kees Cook <keescook@chromium.org>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Clemens Ladisch <clemens@ladisch.de>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
kernel-hardening@lists.openwall.com,
linux1394-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
alsa-devel@alsa-project.org,
"Lev R . Oshvang ." <levonshe@gmail.com>
Subject: Re: [PATCH v2] firewire: Remove function callback casts
Date: Wed, 20 May 2020 15:16:24 +0900 [thread overview]
Message-ID: <20200520061624.GA25690@workstation> (raw)
In-Reply-To: <20200519173425.4724-1-oscar.carter@gmx.com>
Hi,
On Tue, May 19, 2020 at 07:34:25PM +0200, Oscar Carter wrote:
> In an effort to enable -Wcast-function-type in the top-level Makefile to
> support Control Flow Integrity builds, remove all the function callback
> casts.
>
> To do this, modify the "fw_iso_context_create" function prototype adding
> a new parameter for the multichannel callback. Also, fix all the
> function calls accordingly.
>
> In the "fw_iso_context_create" function return an error code if both
> callback parameters are NULL and also set the "ctx->callback.sc"
> explicity to NULL in this case. It is not necessary set to NULL the
> "ctx->callback.mc" variable because this and "ctx->callback.sc" are an
> union and setting one implies setting the other one to the same value.
>
> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> ---
> Changelog v1->v2
> -Set explicity to NULL the "ctx->callback.sc" variable and return an error
> code in "fw_iso_context_create" function if both callback parameters are
> NULL as Lev R. Oshvang suggested.
> -Modify the commit changelog accordingly.
>
> drivers/firewire/core-cdev.c | 12 +++++++-----
> drivers/firewire/core-iso.c | 14 ++++++++++++--
> drivers/firewire/net.c | 2 +-
> drivers/media/firewire/firedtv-fw.c | 3 ++-
> include/linux/firewire.h | 3 ++-
> sound/firewire/amdtp-stream.c | 2 +-
> sound/firewire/isight.c | 4 ++--
> 7 files changed, 27 insertions(+), 13 deletions(-)
I'm an author of ALSA firewire stack and thanks for the patch. I agree with
your intention to remove the cast of function callback toward CFI build.
Practically, the isochronous context with FW_ISO_CONTEXT_RECEIVE_MULTICHANNEL
is never used by in-kernel drivers. Here, I propose to leave current
kernel API (fw_iso_context_create() with fw_iso_callback_t) as is.
Alternatively, a new kernel API for the context (e.g.
fw_iso_mc_context_create() with fw_iso_mc_callback_t). This idea leaves
current drivers as is and the change is done inner firewire-core driver,
therefore existent kernel API is not changed.
Later I post two patches for the proposal. I'd like you to review it and
I'm glad to receive your comments.
Regards
Takashi Sakamoto
next prev parent reply other threads:[~2020-05-20 6:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-19 17:34 [PATCH v2] firewire: Remove function callback casts Oscar Carter
2020-05-19 17:34 ` Oscar Carter
2020-05-20 6:16 ` Takashi Sakamoto [this message]
2020-05-20 6:16 ` Takashi Sakamoto
2020-05-22 17:43 ` Oscar Carter
2020-05-22 17:43 ` Oscar Carter
2020-05-23 6:10 ` greg
2020-05-23 6:10 ` greg
2020-05-23 6:10 ` Greg KH
2020-05-23 6:10 ` Greg KH
2020-05-23 7:58 ` Takashi Sakamoto
2020-05-23 7:58 ` Takashi Sakamoto
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=20200520061624.GA25690@workstation \
--to=o-takashi@sakamocchi.jp \
--cc=alsa-devel@alsa-project.org \
--cc=clemens@ladisch.de \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=levonshe@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=mchehab@kernel.org \
--cc=oscar.carter@gmx.com \
--cc=stefanr@s5r6.in-berlin.de \
--cc=tiwai@suse.com \
/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.