Problem with new uapi header in Linux kernel 4.4+

Keith Busch keith.busch at
Thu Oct 6 16:09:48 PDT 2016

On Thu, Oct 06, 2016 at 05:15:04PM +0200, Jan Luca Naumann wrote:
> Hey,
> at the moment I try to install a tool called "sedutil"[1]. The tool
> manages self encrypting drives that conform to the TCG OPAL 2.0
> specification.
> The program uses in the current version i.a. ioctl() to communicate with
> NVMe disks (see header [2] and source file [3]). The problem is that the
> tool uses the no longer to the user space exported header file
> "linux/nvme.h". In the new uapi header "linux/nvme_ioctl.h" are the
> enumeration "nvme_admin_opcode" and the structure "nvme_id_ctrl" no
> longer available that are used in the source code...
> Since I do not have much experience with ioctl/NVMe and the upstream
> author has no time at the moment, I want to ask you what would be the
> best attempt to fix this.

Yeah, we changed the uapi to only contain the what's necessary for the
user-kernel interface. We don't want user space to depend on the kernel
header for structure definitions when the kernel has no use for some them.

For the nvme-cli project, we define everything. I'm up for turning parts
of this into a shared library that sedutil and others can use.

More information about the Linux-nvme mailing list