Messages in this thread | | | Date | Sun, 26 Mar 2023 08:34:53 +0200 | From | Greg KH <> | Subject | Re: [PATCH v1 2/3] virt: tdx-guest: Add Quote generation support |
| |
On Sat, Mar 25, 2023 at 11:20:38PM -0700, Kuppuswamy Sathyanarayanan wrote: > Since GetQuote support requires usage of DMA APIs, convert TDX guest > driver to a platform driver.
Sorry, but that's not a valid reason to use a platform device for fake things like this:
> +static struct platform_device *tdx_dev;
Especially a single static one.
> +static int tdx_guest_probe(struct platform_device *pdev) > +{ > + if (tdx_register_event_irq_cb(attestation_callback_handler, pdev)) > + return -EIO; > + > + return misc_register(&tdx_misc_dev); > +} > + > +static int tdx_guest_remove(struct platform_device *pdev) > +{ > + tdx_unregister_event_irq_cb(attestation_callback_handler, pdev); > + misc_deregister(&tdx_misc_dev); > + return 0; > +} > + > +static struct platform_driver tdx_guest_driver = { > + .probe = tdx_guest_probe, > + .remove = tdx_guest_remove, > + .driver.name = KBUILD_MODNAME, > +}; > + > static const struct x86_cpu_id tdx_guest_ids[] = { > X86_MATCH_FEATURE(X86_FEATURE_TDX_GUEST, NULL), > {} > @@ -84,16 +310,35 @@ MODULE_DEVICE_TABLE(x86cpu, tdx_guest_ids); > > static int __init tdx_guest_init(void) > { > + int ret; > + > if (!x86_match_cpu(tdx_guest_ids)) > return -ENODEV; > > - return misc_register(&tdx_misc_dev); > + ret = platform_driver_register(&tdx_guest_driver); > + if (ret) { > + pr_err("failed to register driver, err=%d\n", ret); > + return ret; > + }
No, please do not create a fake platform driver.
> + tdx_dev = platform_device_register_simple(KBUILD_MODNAME, > + PLATFORM_DEVID_NONE, > + NULL, 0);
And please do not create a fake platform device.
As always, do not create fake platform devices for things that are NOT platform devices.
If this device needs DMA (but why?) then make it a real device and tie it to the bus it belongs to (that it is obviously doing DMA on.)
But as-is, this isn't ok, sorry.
thanks,
greg k-h
| |