bus: mhi: core: Introduce APIs to allocate and free the MHI controller
Client devices should use the APIs provided to allocate and free the MHI controller structure. This will help ensure that the structure is zero-initialized and there are no false positives with respect to reading any values such as the serial number or the OEM PK hash. Suggested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Link: https://lore.kernel.org/r/20200929175218.8178-11-manivannan.sadhasivam@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8e3729bfa7
commit
f42dfbe8f7
|
@ -954,6 +954,22 @@ void mhi_unregister_controller(struct mhi_controller *mhi_cntrl)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(mhi_unregister_controller);
|
||||
|
||||
struct mhi_controller *mhi_alloc_controller(void)
|
||||
{
|
||||
struct mhi_controller *mhi_cntrl;
|
||||
|
||||
mhi_cntrl = kzalloc(sizeof(*mhi_cntrl), GFP_KERNEL);
|
||||
|
||||
return mhi_cntrl;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mhi_alloc_controller);
|
||||
|
||||
void mhi_free_controller(struct mhi_controller *mhi_cntrl)
|
||||
{
|
||||
kfree(mhi_cntrl);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mhi_free_controller);
|
||||
|
||||
int mhi_prepare_for_power_up(struct mhi_controller *mhi_cntrl)
|
||||
{
|
||||
struct device *dev = &mhi_cntrl->mhi_dev->dev;
|
||||
|
|
|
@ -527,6 +527,18 @@ struct mhi_driver {
|
|||
#define to_mhi_driver(drv) container_of(drv, struct mhi_driver, driver)
|
||||
#define to_mhi_device(dev) container_of(dev, struct mhi_device, dev)
|
||||
|
||||
/**
|
||||
* mhi_alloc_controller - Allocate the MHI Controller structure
|
||||
* Allocate the mhi_controller structure using zero initialized memory
|
||||
*/
|
||||
struct mhi_controller *mhi_alloc_controller(void);
|
||||
|
||||
/**
|
||||
* mhi_free_controller - Free the MHI Controller structure
|
||||
* Free the mhi_controller structure which was previously allocated
|
||||
*/
|
||||
void mhi_free_controller(struct mhi_controller *mhi_cntrl);
|
||||
|
||||
/**
|
||||
* mhi_register_controller - Register MHI controller
|
||||
* @mhi_cntrl: MHI controller to register
|
||||
|
|
Loading…
Reference in a new issue