If the media device module is removed and re-probed without also removing and re-probing the subdevice modules, .unregister() and .register() ops are called on the subdevices without the subdevice drivers being removed and re-probed. This creates two problems: - the CSI and PRPENCVF subdevices attempt to register a stale video capture device resulting in the kobject "tried to init an initialized object" backtrace. - pad graph objects are added to the media device pad list twice, resulting in list corruption on the pad list. The following two patches fix those issues. History: v2: - Add missing local var ic_priv in prp_registered() in first patch. Steve Longerbeam (2): media: imx: Move capture device init to registered media: imx: Move pads init to probe drivers/staging/media/imx/imx-ic-prp.c | 25 ++++----- drivers/staging/media/imx/imx-ic-prpencvf.c | 51 ++++++++++--------- drivers/staging/media/imx/imx-media-capture.c | 15 +++--- drivers/staging/media/imx/imx-media-csi.c | 35 +++++++------ drivers/staging/media/imx/imx-media-vdic.c | 27 ++++------ drivers/staging/media/imx/imx6-mipi-csi2.c | 27 +++++----- drivers/staging/media/imx/imx7-media-csi.c | 38 +++++++------- drivers/staging/media/imx/imx7-mipi-csis.c | 23 +++------ 8 files changed, 114 insertions(+), 127 deletions(-) -- 2.17.1