From: Arnd Bergmann <arnd@arndb.de>
To: Timur Tabi <timur@freescale.com>, linuxppc-dev@lists.ozlabs.org
Cc: alan@lxorguk.ukuu.org.uk, kumar.gala@freescale.com,
benh@kernel.crashing.org, greg@kroah.com, akpm@kernel.org,
cmetcalf@tilera.com, konrad.wilk@oracle.com,
linux-kernel@vger.kernel.org, linux-console@vger.kernel.org,
virtualization@lists.linux-foundation.org
Subject: Re: [PATCH 7/7] [v5] drivers/virt: introduce Freescale hypervisor management driver
Date: Thu, 9 Jun 2011 22:13:13 +0200 [thread overview]
Message-ID: <201106092213.13755.arnd@arndb.de> (raw)
In-Reply-To: <1307646794-26374-1-git-send-email-timur@freescale.com>
Hi Timur, thanks for addressing the issues I pointed out. Unfortunately, I
have found a few more now:
On Thursday 09 June 2011 21:13:14 Timur Tabi wrote:
> + /* Make sure the application is called the right driver. */
> + if (_IOC_TYPE(cmd) != 0) {
> + pr_debug("fsl-hv: ioctl type %u should be 0\n", _IOC_TYPE(cmd));
> + return -EINVAL;
> + }
> +
> + /* Make sure the application set the direction flag correctly. */
> + if (_IOC_DIR(cmd) != (_IOC_READ | _IOC_WRITE)) {
> + pr_debug("fsl-hv: ioctl direction should be _IOWR\n");
> + return -EINVAL;
> + }
> +
> + /*
> + * Make sure the application is passing the right structure to us.
> + * For backwards compatibility with older applications, we only check
> + * if the size is too small, rather than unequal.
> + */
> +
> + switch (_IOC_NR(cmd)) {
> + case (_IOC_NR(FSL_HV_IOCTL_PARTITION_RESTART)):
> + size = sizeof(struct fsl_hv_ioctl_restart);
> + if (_IOC_SIZE(cmd) < size)
> + goto size_error;
> + ret = ioctl_restart(arg);
> + break;
As mentioned, it would be easier and more readable to just do
switch(cmd) {
case FSL_HV_IOCTL_PARTITION_RESTART:
...
case FSL_HV_IOCTL_PARTITION_GET_STATUS;
...
There is no need to check the bits individually when you can simply
compare the command number.
> +/**
> + * enum fsl_hv_ioctl_cmd - ioctl commands
> + * @FSL_HV_IOCTL_PARTITION_RESTART: restart another partition
> + * @FSL_HV_IOCTL_PARTITION_GET_STATUS: get a partition's status
> + * @FSL_HV_IOCTL_PARTITION_START: boot another partition
> + * @FSL_HV_IOCTL_PARTITION_STOP: stop this or another partition
> + * @FSL_HV_IOCTL_MEMCPY: copy data from one partition to another
> + * @FSL_HV_IOCTL_DOORBELL: ring a doorbell
> + * @FSL_HV_IOCTL_GETPROP: get a property from another guest's device tree
> + * @FSL_HV_IOCTL_SETPROP: set a property in another guest's device tree
> + *
> + * This enum lists the available ioctl commands for the Freescale hypervisor
> + * management driver. The meaning
> + */
> +enum fsl_hv_ioctl_cmd {
> + FSL_HV_IOCTL_PARTITION_RESTART = _IOWR(0, 1, struct fsl_hv_ioctl_restart),
> + FSL_HV_IOCTL_PARTITION_GET_STATUS = _IOWR(0, 2, struct fsl_hv_ioctl_status),
> + FSL_HV_IOCTL_PARTITION_START = _IOWR(0, 3, struct fsl_hv_ioctl_start),
> + FSL_HV_IOCTL_PARTITION_STOP = _IOWR(0, 4, struct fsl_hv_ioctl_stop),
> + FSL_HV_IOCTL_MEMCPY = _IOWR(0, 5, struct fsl_hv_ioctl_memcpy),
> + FSL_HV_IOCTL_DOORBELL = _IOWR(0, 6, struct fsl_hv_ioctl_doorbell),
> + FSL_HV_IOCTL_GETPROP = _IOWR(0, 7, struct fsl_hv_ioctl_prop),
> + FSL_HV_IOCTL_SETPROP = _IOWR(0, 8, struct fsl_hv_ioctl_prop),
> +};
Using a #define here is usually preferred because then you can use #ifdef in a user
application to check if a given value has been assigned.
More importantly, the code you have chose (0) conflicts with existing drivers
(frame buffer, scsi and wavefront among others). Please chose a free one and
add it to Documentation/ioctl/ioctl-number.txt in the same patch.
Arnd
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Timur Tabi <timur@freescale.com>, linuxppc-dev@lists.ozlabs.org
Cc: konrad.wilk@oracle.com, kumar.gala@freescale.com,
linux-kernel@vger.kernel.org, cmetcalf@tilera.com,
akpm@kernel.org, linux-console@vger.kernel.org, greg@kroah.com,
virtualization@lists.linux-foundation.org,
alan@lxorguk.ukuu.org.uk
Subject: Re: [PATCH 7/7] [v5] drivers/virt: introduce Freescale hypervisor management driver
Date: Thu, 9 Jun 2011 22:13:13 +0200 [thread overview]
Message-ID: <201106092213.13755.arnd@arndb.de> (raw)
In-Reply-To: <1307646794-26374-1-git-send-email-timur@freescale.com>
Hi Timur, thanks for addressing the issues I pointed out. Unfortunately, I
have found a few more now:
On Thursday 09 June 2011 21:13:14 Timur Tabi wrote:
> + /* Make sure the application is called the right driver. */
> + if (_IOC_TYPE(cmd) != 0) {
> + pr_debug("fsl-hv: ioctl type %u should be 0\n", _IOC_TYPE(cmd));
> + return -EINVAL;
> + }
> +
> + /* Make sure the application set the direction flag correctly. */
> + if (_IOC_DIR(cmd) != (_IOC_READ | _IOC_WRITE)) {
> + pr_debug("fsl-hv: ioctl direction should be _IOWR\n");
> + return -EINVAL;
> + }
> +
> + /*
> + * Make sure the application is passing the right structure to us.
> + * For backwards compatibility with older applications, we only check
> + * if the size is too small, rather than unequal.
> + */
> +
> + switch (_IOC_NR(cmd)) {
> + case (_IOC_NR(FSL_HV_IOCTL_PARTITION_RESTART)):
> + size = sizeof(struct fsl_hv_ioctl_restart);
> + if (_IOC_SIZE(cmd) < size)
> + goto size_error;
> + ret = ioctl_restart(arg);
> + break;
As mentioned, it would be easier and more readable to just do
switch(cmd) {
case FSL_HV_IOCTL_PARTITION_RESTART:
...
case FSL_HV_IOCTL_PARTITION_GET_STATUS;
...
There is no need to check the bits individually when you can simply
compare the command number.
> +/**
> + * enum fsl_hv_ioctl_cmd - ioctl commands
> + * @FSL_HV_IOCTL_PARTITION_RESTART: restart another partition
> + * @FSL_HV_IOCTL_PARTITION_GET_STATUS: get a partition's status
> + * @FSL_HV_IOCTL_PARTITION_START: boot another partition
> + * @FSL_HV_IOCTL_PARTITION_STOP: stop this or another partition
> + * @FSL_HV_IOCTL_MEMCPY: copy data from one partition to another
> + * @FSL_HV_IOCTL_DOORBELL: ring a doorbell
> + * @FSL_HV_IOCTL_GETPROP: get a property from another guest's device tree
> + * @FSL_HV_IOCTL_SETPROP: set a property in another guest's device tree
> + *
> + * This enum lists the available ioctl commands for the Freescale hypervisor
> + * management driver. The meaning
> + */
> +enum fsl_hv_ioctl_cmd {
> + FSL_HV_IOCTL_PARTITION_RESTART = _IOWR(0, 1, struct fsl_hv_ioctl_restart),
> + FSL_HV_IOCTL_PARTITION_GET_STATUS = _IOWR(0, 2, struct fsl_hv_ioctl_status),
> + FSL_HV_IOCTL_PARTITION_START = _IOWR(0, 3, struct fsl_hv_ioctl_start),
> + FSL_HV_IOCTL_PARTITION_STOP = _IOWR(0, 4, struct fsl_hv_ioctl_stop),
> + FSL_HV_IOCTL_MEMCPY = _IOWR(0, 5, struct fsl_hv_ioctl_memcpy),
> + FSL_HV_IOCTL_DOORBELL = _IOWR(0, 6, struct fsl_hv_ioctl_doorbell),
> + FSL_HV_IOCTL_GETPROP = _IOWR(0, 7, struct fsl_hv_ioctl_prop),
> + FSL_HV_IOCTL_SETPROP = _IOWR(0, 8, struct fsl_hv_ioctl_prop),
> +};
Using a #define here is usually preferred because then you can use #ifdef in a user
application to check if a given value has been assigned.
More importantly, the code you have chose (0) conflicts with existing drivers
(frame buffer, scsi and wavefront among others). Please chose a free one and
add it to Documentation/ioctl/ioctl-number.txt in the same patch.
Arnd
next prev parent reply other threads:[~2011-06-09 20:13 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 19:13 [PATCH 7/7] [v5] drivers/virt: introduce Freescale hypervisor management driver Timur Tabi
2011-06-09 19:13 ` Timur Tabi
2011-06-09 19:40 ` Randy Dunlap
2011-06-09 19:40 ` Randy Dunlap
2011-06-09 19:40 ` Randy Dunlap
2011-06-09 19:40 ` Randy Dunlap
2011-06-09 19:47 ` Timur Tabi
2011-06-09 19:47 ` Timur Tabi
2011-06-09 19:47 ` Timur Tabi
2011-06-09 19:47 ` Timur Tabi
2011-06-09 19:48 ` Randy Dunlap
2011-06-09 19:48 ` Randy Dunlap
2011-06-09 19:48 ` Randy Dunlap
2011-06-09 20:25 ` Arnd Bergmann
2011-06-09 20:25 ` Arnd Bergmann
2011-06-09 20:25 ` Arnd Bergmann
2011-06-09 20:13 ` Arnd Bergmann [this message]
2011-06-09 20:13 ` Arnd Bergmann
2011-06-09 20:18 ` Timur Tabi
2011-06-09 20:18 ` Timur Tabi
2011-06-09 20:18 ` Timur Tabi
2011-06-09 20:18 ` Timur Tabi
2011-06-09 20:31 ` Greg KH
2011-06-09 20:31 ` Greg KH
2011-06-09 20:40 ` Timur Tabi
2011-06-09 20:40 ` Timur Tabi
2011-06-09 20:40 ` Timur Tabi
2011-06-09 20:40 ` Timur Tabi
2011-06-09 20:31 ` Greg KH
2011-06-09 20:33 ` Arnd Bergmann
2011-06-09 20:33 ` Arnd Bergmann
2011-06-10 10:45 ` Mark Brown
2011-06-10 10:45 ` Mark Brown
2011-06-10 10:45 ` Mark Brown
2011-06-09 20:33 ` Arnd Bergmann
2011-06-10 8:32 ` [PATCH 7/7] [v5] drivers/virt: introduce Freescale hypervisormanagement driver David Laight
2011-06-10 8:32 ` David Laight
2011-06-10 8:32 ` David Laight
2011-06-10 8:32 ` David Laight
2011-06-09 20:13 ` [PATCH 7/7] [v5] drivers/virt: introduce Freescale hypervisor management driver Arnd Bergmann
-- strict thread matches above, loose matches on Subject: below --
2011-06-09 19:13 Timur Tabi
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=201106092213.13755.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=akpm@kernel.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=benh@kernel.crashing.org \
--cc=cmetcalf@tilera.com \
--cc=greg@kroah.com \
--cc=konrad.wilk@oracle.com \
--cc=kumar.gala@freescale.com \
--cc=linux-console@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=timur@freescale.com \
--cc=virtualization@lists.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.