Hi, On 7/22/24 9:18 AM, Jason Gunthorpe wrote: > 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. OK, somewhat better. >>> +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 :\ fair enough. > 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! -- ~Randy