[PATCH 2/9] VC04_SERVICES: Add top level compat ioctl handler

Dan Carpenter dan.carpenter at oracle.com
Wed Jan 18 15:01:58 PST 2017


On Wed, Jan 18, 2017 at 07:04:46AM -0800, Michael Zoran wrote:
> Add the top level compat ioctl handler as a placeholder
> for adding additional handlers.
> 
> The ioctls are first filtered and forwarded to the
> regular ioctl handler if the ioctl does not require
> any extra compatibility processing.
> 
> Signed-off-by: Michael Zoran <mzoran at crowfest.net>
> ---
>  .../vc04_services/interface/vchiq_arm/vchiq_arm.c  | 73 ++++++++++++++++++++++
>  1 file changed, 73 insertions(+)
> 
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> index 0525211bcd65..9ade2f63606b 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> @@ -1206,6 +1206,76 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  	return ret;
>  }
>  
> +#if defined(CONFIG_COMPAT)
> +
> +static long
> +vchiq_ioctl_compat_internal(
> +	struct file *file,
> +	unsigned int cmd,
> +	unsigned long arg)

Align these with the open parenthesis.

> +{
> +	VCHIQ_INSTANCE_T instance = file->private_data;
> +	VCHIQ_STATUS_T status = VCHIQ_SUCCESS;
> +	VCHIQ_SERVICE_T *service = NULL;
> +	long ret = 0;
> +
> +	DEBUG_INITIALISE(g_state.local)

What a horrible little macro...

> +
> +	vchiq_log_trace(vchiq_arm_log_level,
> +			"vchiq_ioctl_compat - instance %pK, cmd %s, arg %lx",
> +			instance,
> +			((_IOC_TYPE(cmd) == VCHIQ_IOC_MAGIC) &&
> +			(_IOC_NR(cmd) <= VCHIQ_IOC_MAX)) ?
> +			ioctl_names[_IOC_NR(cmd)] : "<invalid>", arg);
> +
> +	switch (cmd) {
> +	default:
> +		ret = -ENOTTY;
> +		break;
> +	}

Ugh...

> +
> +	if (service)
> +		unlock_service(service);


More ugh...

> +
> +	if (ret == 0) {

What the heck???  I feel you're trying to gaslight me now.

It's unfortunate that this is right at the start of the series because
I've already met my quota of nonsense code and I won't be reviewing the
rest until v2 comes out.

regards,
dan carpenter




More information about the linux-rpi-kernel mailing list