<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>You guys just need to revert it on dal-dev branch and don't
      promote to amd-staging-drm-next.</p>
    <p><br>
    </p>
    <p>So NAK for the change.</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Thanks,</p>
    <p>Andrey<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 01/22/2018 09:38 AM, Lipski, Mikita
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:BN6PR1201MB0100D9415FC07D00CBE859CCE4EF0@BN6PR1201MB0100.namprd12.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
      <div id="divtagdefaultwrapper" style="font-size: 12pt; color:
        rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif,
        "EmojiFont", "Apple Color Emoji",
        "Segoe UI Emoji", NotoColorEmoji, "Segoe UI
        Symbol", "Android Emoji", EmojiSymbols;"
        dir="ltr">
        <div id="divtagdefaultwrapper" style="font-size: 12pt; color:
          rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif,
          "EmojiFont", "Apple Color Emoji",
          "Segoe UI Emoji", NotoColorEmoji, "Segoe UI
          Symbol", "Android Emoji", EmojiSymbols;"
          dir="ltr">
          <div>
            <p style="margin-top:0;margin-bottom:0">Hi Andrey,</p>
            <p style="margin-top:0;margin-bottom:0"><br>
            </p>
            I've checked to revert this change and use Alex's change on
            switching irq destruction sequence and it worked no
            problem. 
          </div>
          You can reject this change if Alex's change is pulled in.
          <p style="margin-top:0;margin-bottom:0"><br>
          </p>
          <p style="margin-top:0;margin-bottom:0">Thanks,</p>
          <p style="margin-top:0;margin-bottom:0">Nick<br>
          </p>
        </div>
        <hr style="display:inline-block;width:98%" tabindex="-1">
        <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt"
            color="#000000" face="Calibri, sans-serif"><b>From:</b>
            Grodzovsky, Andrey<br>
            <b>Sent:</b> Friday, January 19, 2018 1:33:51 PM<br>
            <b>To:</b> Wentland, Harry; <a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
            <b>Cc:</b> Lipski, Mikita<br>
            <b>Subject:</b> Re: [PATCH 15/24] drm/amd/display: Fix
            deadlock when flushing irq</font>
          <div> </div>
        </div>
        <div class="BodyFragment"><font size="2"><span
              style="font-size:11pt;">
              <div class="PlainText">What this spin lock is protecting
                here ? Seems to me it's just a read of
                <br>
                an array element which is always there.<br>
                <br>
                Regarding subsequent remove_timer_handler and timer
                queue destruction it <br>
                seems to me to be obsolete code, I don't think DAL is
                still using the <br>
                timer queue,<br>
                <br>
                so seems to me everything related to it should be
                removed.<br>
                <br>
                Thanks,<br>
                <br>
                Andrey<br>
                <br>
                <br>
                On 01/18/2018 04:03 PM, Harry Wentland wrote:<br>
                > From: Mikita Lipski <a class="moz-txt-link-rfc2396E" href="mailto:mikita.lipski@amd.com"><mikita.lipski@amd.com></a><br>
                ><br>
                > Lock irq table when reading a work in queue,<br>
                > unlock to flush the work, lock again till all tasks<br>
                > are cleared<br>
                ><br>
                > Signed-off-by: Mikita Lipski
                <a class="moz-txt-link-rfc2396E" href="mailto:mikita.lipski@amd.com"><mikita.lipski@amd.com></a><br>
                > Reviewed-by: Harry Wentland
                <a class="moz-txt-link-rfc2396E" href="mailto:Harry.Wentland@amd.com"><Harry.Wentland@amd.com></a><br>
                > ---<br>
                >  
                drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c |
                5 +++--<br>
                >   1 file changed, 3 insertions(+), 2 deletions(-)<br>
                ><br>
                > diff --git
                a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
                b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c<br>
                > index 1874b6cee6af..fb60c91a1bfe 100644<br>
                > ---
                a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c<br>
                > +++
                b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c<br>
                > @@ -400,14 +400,15 @@ void
                amdgpu_dm_irq_fini(struct amdgpu_device *adev)<br>
                >   {<br>
                >        int src;<br>
                >        struct irq_list_head *lh;<br>
                > +     unsigned long irq_table_flags;<br>
                >        DRM_DEBUG_KMS("DM_IRQ: releasing
                resources.\n");<br>
                > -<br>
                >        for (src = 0; src <
                DAL_IRQ_SOURCES_NUMBER; src++) {<br>
                > -<br>
                > +             DM_IRQ_TABLE_LOCK(adev,
                irq_table_flags);<br>
                >                /* The handler was removed from the
                table,<br>
                >                 * it means it is safe to flush all
                the 'work'<br>
                >                 * (because no code can schedule a
                new one). */<br>
                >                lh =
                &adev->dm.irq_handler_list_low_tab[src];<br>
                > +             DM_IRQ_TABLE_UNLOCK(adev,
                irq_table_flags);<br>
                >                flush_work(&lh->work);<br>
                >        }<br>
                >   <br>
                <br>
              </div>
            </span></font></div>
      </div>
    </blockquote>
    <br>
  </body>
</html>