<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 12/20/2018 9:36 PM, Winkler, Tomas
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:5B8DA87D05A7694D9FA63FD143655C1B9DA5947E@hasmsx108.ger.corp.intel.com">
      <pre>+static void __exit mei_hdcp_exit(void)<o:p></o:p></pre>
      <pre>+{<o:p></o:p></pre>
      <pre>+       mei_hdcp_component_cleanup(&cldev->dev);<o:p></o:p></pre>
      <pre><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Don’t think you can do that,  no guarantees this will be valid pointer</span></pre>
    </blockquote>
    <pre>As we discussed offline, we have the below line at cleanup.
So valid pointer is made sure. I will protect init and cleanup with mutex too.

+static void mei_hdcp_component_cleanup(struct device *dev)
+{
+       if (!mei_hdcp_component_registered)
+               return;

-Ram
</pre>
    <blockquote type="cite"
cite="mid:5B8DA87D05A7694D9FA63FD143655C1B9DA5947E@hasmsx108.ger.corp.intel.com">
      <pre><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p></o:p></span></pre>
      <pre><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></pre>
      <pre>+       mei_cldev_driver_unregister(mei_hdcp_driver);<o:p></o:p></pre>
      <pre>+}<o:p></o:p></pre>
      <pre>+<o:p></o:p></pre>
      <pre>+module_init(mei_hdcp_init);<o:p></o:p></pre>
      <pre>+module_exit(mei_hdcp_exit);</pre>
    </blockquote>
  </body>
</html>