On Tue, Jun 25, 2024 at 03:04:42PM -0700, Randy Dunlap wrote: > > +There are many things this interface must not allow user space to do (without a > > +Taint or CAP), broadly derived from the principles of kernel lockdown. Some > > +examples: > > + > > + 1. DMA to/from arbitrary memory, hang the system, run code in the device, or > > An RPC message is going to run code in the device. Should this say something instead > like: > > download [or load] code to be executed in the device, Yeah, it is a hard concept. It is kind of murky as even today's devlink flash will let you load untrusted code into the device under lockdown AFAICR. How about: 1. DMA to/from arbitrary memory, hang the system, compromise FW integrity with untrusted code, or otherwise compromise device or system security and integrity. Which is a little broader I suppose. > > +The kernel remains the gatekeeper for this interface. If violations of the > > +scopes, security or isolation principles are found, we have options to let > > +devices fix them with a FW update, push a kernel patch to parse and block RPC > > fwctl does not do FW updates, is that correct? I think it is up to the specific RPCs the device supports. Given there is currently no way to marshal a large amount of data it is not a good interface for FW update. I'd encourage people to use devlink flash more broadly, but I also wouldn't go out of the way to block FW update RPCs that might exist from here. I certainly wouldn't want people to make their own FW update ioctls (as still seems to be happening) out of fear they shouldn't use fwctl :\ Looking particularly at mlx5, we've had devlink flash for a long time now, but it hasn't suceeded to displace the mlx5 specific tools, for whatever reason. I grabbed all the changes here thanks! Jason