All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: Vegard Nossum <vegard.nossum@oracle.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-api@vger.kernel.org,
	Linux Documentation <linux-doc@vger.kernel.org>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>, Jiri Pirko <jiri@nvidia.com>,
	Leonid Bloch <lbloch@nvidia.com>,
	Itay Avraham <itayavr@nvidia.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Saeed Mahameed <saeedm@nvidia.com>,
	David Ahern <dsahern@kernel.org>,
	Aron Silverton <aron.silverton@oracle.com>,
	Christoph Hellwig <hch@infradead.org>,
	andrew.gospodarek@broadcom.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH V4 3/5] misc: mlx5ctl: Add info ioctl
Date: Sat, 2 Mar 2024 00:03:49 -0800	[thread overview]
Message-ID: <ZeLdZbB02OcuoWku@x130> (raw)
In-Reply-To: <bb259840-35b6-4483-8e76-8046cae1269b@oracle.com>

On 29 Feb 12:47, Vegard Nossum wrote:
>
>On 07/02/2024 08:24, Saeed Mahameed wrote:
>>+static int mlx5ctl_info_ioctl(struct file *file,
>>+			      struct mlx5ctl_info __user *arg,
>>+			      size_t usize)
>>+{
>>+	struct mlx5ctl_fd *mfd = file->private_data;
>>+	size_t ksize = sizeof(struct mlx5ctl_info);
>>+	struct mlx5ctl_dev *mcdev = mfd->mcdev;
>>+	struct mlx5_core_dev *mdev = mcdev->mdev;
>>+	struct mlx5ctl_info *info;
>>+	int err = 0;
>>+
>>+	if (usize < ksize)
>>+		return -EINVAL;
>>+
>>+	info = kzalloc(ksize, GFP_KERNEL);
>>+	if (!info)
>>+		return -ENOMEM;
>
>struct mlx5ctl_info is small, why not put it on the stack or even copy
>it directly from the original object, assuming it has no holes/padding?
>

There's no original object, but yes storing it on the stack should work.

>>+
>>+	info->dev_uctx_cap = MLX5_CAP_GEN(mdev, uctx_cap);
>>+	info->uctx_cap = mfd->uctx_cap;
>>+	info->uctx_uid = mfd->uctx_uid;
>>+	info->ucap = mfd->ucap;
>>+
>>+	if (copy_to_user(arg, info, ksize))
>>+		err = -EFAULT;
>>+
>>+	kfree(info);
>>+	return err;
>>+}
>
>Is there even a remote possibility of extending this structure in the
>future? If so the size check will not allow you to be backwards
>compatible. Should there be a version field in there or would you
>just add a new ioctl altogether? Adding linux-api@vger.kernel.org to Cc.
>

This was my original implementation, but Greg's preference is to allow no
extension to the ioctl structures, in case of extension required, new IOCTL
and structure should be introduced.

>>diff --git a/include/uapi/misc/mlx5ctl.h b/include/uapi/misc/mlx5ctl.h
>>new file mode 100644
>>index 000000000000..9be944128025
>>--- /dev/null
>>+++ b/include/uapi/misc/mlx5ctl.h
>>@@ -0,0 +1,20 @@
>>+/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 WITH Linux-syscall-note */
>>+/* Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
>>+
>>+#ifndef __MLX5CTL_IOCTL_H__
>>+#define __MLX5CTL_IOCTL_H__
>>+
>>+struct mlx5ctl_info {
>>+	__u16 uctx_uid; /* current process allocated UCTX UID */
>>+	__u16 reserved1; /* explicit padding must be zero */
>>+	__u32 uctx_cap; /* current process effective UCTX cap */
>>+	__u32 dev_uctx_cap; /* device's UCTX capabilities */
>>+	__u32 ucap; /* process user capability */
>>+};
>>+
>>+#define MLX5CTL_IOCTL_MAGIC 0x5c
>>+
>>+#define MLX5CTL_IOCTL_INFO \
>>+	_IOR(MLX5CTL_IOCTL_MAGIC, 0x0, struct mlx5ctl_info)
>>+
>>+#endif /* __MLX5CTL_IOCTL_H__ */
>
>Should you add anything to Documentation/ABI/ ? (Or add other
>documentation for this driver?)
>

The driver doesn't expose any sysfs other than the IOCTLs, but yes
a documentation might be useful to make sure ABI is stable, most of the
other drivers point out to the uapi header for documentation.


  reply	other threads:[~2024-03-02  8:03 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-07  7:24 [PATCH V4 0/5] mlx5 ConnectX control misc driver Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 1/5] mlx5: Add aux dev for ctl interface Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 2/5] misc: mlx5ctl: Add mlx5ctl misc driver Saeed Mahameed
2024-02-29 11:44   ` Vegard Nossum
2024-03-02  8:04     ` Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 3/5] misc: mlx5ctl: Add info ioctl Saeed Mahameed
2024-02-29 11:47   ` Vegard Nossum
2024-03-02  8:03     ` Saeed Mahameed [this message]
2024-02-07  7:24 ` [PATCH V4 4/5] misc: mlx5ctl: Add command rpc ioctl Saeed Mahameed
2024-02-29 11:49   ` Vegard Nossum
2024-03-02  7:48     ` Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 5/5] misc: mlx5ctl: Add umem reg/unreg ioctl Saeed Mahameed
2024-02-29 11:51   ` Vegard Nossum
2024-02-07 15:03 ` [PATCH V4 0/5] mlx5 ConnectX control misc driver Jakub Kicinski
2024-02-08  5:03   ` Saeed Mahameed
2024-02-09  2:15     ` Jakub Kicinski
2024-02-09  6:55       ` Jiri Pirko
2024-02-09 22:42       ` David Ahern
2024-02-09 22:58         ` Jakub Kicinski
2024-02-10  5:01           ` David Ahern
2024-02-11 11:03             ` Greg Kroah-Hartman
2024-02-11 17:01               ` David Ahern
2024-02-14 20:31             ` David Ahern
2024-02-15  0:46               ` Jason Gunthorpe
2024-02-10  1:01         ` Jason Gunthorpe
2024-02-11 16:59           ` David Ahern
2024-02-14  8:29 ` Christoph Hellwig
2024-02-14 15:48   ` Jakub Kicinski
2024-02-15  7:00     ` Christoph Hellwig
2024-02-15 12:08       ` Jiri Pirko
2024-02-16  1:00       ` Jakub Kicinski
2024-02-16 15:05         ` Jason Gunthorpe
2024-02-15 13:21     ` Jason Gunthorpe
2024-02-16  1:10       ` Jakub Kicinski
2024-02-16  4:20         ` David Ahern
2024-02-16 19:04         ` Jason Gunthorpe
2024-02-14 16:17   ` Andy Gospodarek
2024-02-14 17:57     ` Jason Gunthorpe
2024-02-14 18:11       ` Jakub Kicinski
2024-02-14 18:37         ` Jason Gunthorpe
2024-02-16  1:40           ` Jakub Kicinski
2024-02-16 14:27             ` Jason Gunthorpe
2024-03-04 16:02       ` Jason Gunthorpe
2024-03-22  3:23         ` David Ahern
2024-03-22  7:32           ` Greg Kroah-Hartman
2024-03-22 15:24             ` David Ahern
2024-03-22 15:46               ` Andy Gospodarek
2024-03-22 20:58                 ` Jakub Kicinski
2024-03-22 21:18                   ` David Ahern
2024-03-22 22:40                     ` Jakub Kicinski
2024-03-26 14:57                       ` David Ahern
2024-04-01 12:30                         ` Leon Romanovsky
2024-04-01 14:50                           ` Jakub Kicinski
2024-04-01 18:10                             ` Leon Romanovsky
2024-04-01 19:04                               ` Jakub Kicinski
2024-04-02 19:20                                 ` Leon Romanovsky
2024-04-02 18:45                             ` Jason Gunthorpe
2024-04-02 21:36                               ` Jakub Kicinski
2024-04-02 22:46                                 ` Jason Gunthorpe
2024-04-02 23:21                                   ` Jakub Kicinski
2024-04-03  0:15                                     ` Jakub Kicinski
2024-04-03  6:57                                       ` Leon Romanovsky
2024-04-02 16:32                         ` Edward Cree
2024-04-02 18:40                           ` Jason Gunthorpe
2024-04-03 19:28                             ` David Ahern
2024-04-04 17:35                             ` Edward Cree
2024-04-04 18:33                               ` Jason Gunthorpe
2024-04-04 19:31                                 ` Edward Cree
2024-04-05 11:21                                   ` Jason Gunthorpe
2024-04-04 19:53                                 ` Jakub Kicinski
2024-04-04 20:44                                   ` Jason Gunthorpe
2024-04-04 21:34                                     ` Jakub Kicinski
2024-04-05 11:13                                       ` Jason Gunthorpe
2024-04-05 15:38                                         ` Jakub Kicinski
2024-04-05 17:48                                           ` Jakub Kicinski
2024-04-08 16:45                                             ` Jason Gunthorpe
2024-04-08 16:41                                           ` Jason Gunthorpe
2024-04-04 18:44                               ` Andrew Lunn
2024-04-04 20:25                                 ` Jason Gunthorpe
2024-04-04 20:53                                   ` Edward Cree
2024-04-05 11:00                                     ` Jason Gunthorpe
2024-04-02 18:48                           ` Leon Romanovsky
2024-04-03 12:26                             ` Edward Cree
2024-04-03 19:00                               ` Leon Romanovsky
2024-04-03 19:31                                 ` David Ahern
2024-04-04  0:01                                   ` Jakub Kicinski
2024-04-04  3:57                                     ` David Ahern
2024-04-04 12:23                                     ` Jason Gunthorpe
2024-04-04 14:48                                       ` Jakub Kicinski
2024-04-04 17:47                                         ` Jason Gunthorpe
2024-04-04 18:06                                           ` Edward Cree
2024-04-04 18:35                                             ` Leon Romanovsky
2024-04-04 19:46                                               ` Edward Cree
2024-04-05 10:41                                                 ` Leon Romanovsky
2024-04-08  8:02                                                   ` Przemek Kitszel
2024-03-22 21:44                   ` Jason Gunthorpe
2024-03-22 22:29                     ` Jakub Kicinski
2024-03-23  1:27                       ` Saeed Mahameed
2024-03-23  1:33                       ` Jason Gunthorpe
2024-03-22 14:53           ` Aron Silverton
2024-04-30  1:36         ` David Ahern
2024-04-30  7:09           ` 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=ZeLdZbB02OcuoWku@x130 \
    --to=saeed@kernel.org \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=arnd@arndb.de \
    --cc=aron.silverton@oracle.com \
    --cc=dsahern@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=itayavr@nvidia.com \
    --cc=jgg@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=lbloch@nvidia.com \
    --cc=leonro@nvidia.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=vegard.nossum@oracle.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.