Re: [RFC PATCH v6 6/9] media: tegra: Add Tegra210 Video input driver

From: Sowjanya Komatineni
Date: Tue Apr 07 2020 - 15:06:04 EST



On 4/6/20 9:11 AM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


06.04.2020 18:41, Sowjanya Komatineni ÐÐÑÐÑ:
On 4/5/20 2:11 PM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


04.04.2020 04:25, Sowjanya Komatineni ÐÐÑÐÑ:
...
+static int tegra_vi_tpg_channels_alloc(struct tegra_vi *vi)
+{
+ struct tegra_vi_channel *chan, *tmp;
+ unsigned int port_num;
+ unsigned int nchannels = vi->soc->vi_max_channels;
+ int ret = 0;
+
+ for (port_num = 0; port_num < nchannels; port_num++) {
+ /*
+ * Do not use devm_kzalloc as memory is freed immediately
+ * when device instance is unbound but application
might still
+ * be holding the device node open. Channel memory
allocated
+ * with kzalloc is freed during video device release
callback.
+ */
+ chan = kzalloc(sizeof(*chan), GFP_KERNEL);
Why anyone would want to unbind this driver in practice?

I think it should make more sense to set suppress_bind_attrs=true.
From the previous feedback of patch series, we need to support
unbind/bind and looks like this driver should also support to built as a
module.
If module unloading is also affected, then perhaps you should use
get/put_device() to not allow freeing the resources until they're still
in-use.

I suppose that it should be up to the V4L core to keep the device alive
while needed, rather than to put the burden to the individual drivers.

Hans/Thierry, Can you please comment on this?