Hi, Daniel. Thank you for your quick handling of my patch submission. I will look into setting up git send-email. Adam On Fri, Oct 16, 2015 at 10:24 AM, Daniel Vetter <daniel@xxxxxxxx> wrote: > On Fri, Oct 16, 2015 at 03:33:02AM -0700, Adam Richter wrote: >> In Linux 4.3-rc5, there is an error case in drm_dp_get_branch_device >> that returns without releasing mgr->lock, resulting a spew of kernel >> messages about a kernel work function possibly having leaked a mutex >> and presumably more serious adverse consequences later. This patch >> changes the error to "goto out" to unlock the mutex before returning. >> >> Signed-off-by: Adam J. Richter <adam_richter2004@xxxxxxxxx> > > Patch was whitespace mangled (don't past them into your mailer but instead > send them with git send-email directly, that's safer), so I had to > recreate it. > > Applied to drm-misc, thanks. > -Daniel > >> --- >> >> bugzilla.freedesktop.org ticket: >> https://bugs.freedesktop.org/show_bug.cgi?id=92480 >> >> This patch is against the latest >> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git . I >> apologize in advance in I should be submitting patches against some >> other reference. Please feel free to let me know if I should use some >> other reference for submitting future patches. >> >> My request to subscribe to dri-devel@xxxxxxxxxxxxxxxxxxxxx is pending, >> so I apologize if it takes a while for this message to be posted on >> the mailing list. >> >> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c >> b/drivers/gpu/drm/drm_dp_mst_topology.c >> index bf27a07..018ad7f 100644 >> --- a/drivers/gpu/drm/drm_dp_mst_topology.c >> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c >> @@ -1194,17 +1194,18 @@ static struct drm_dp_mst_branch >> *drm_dp_get_mst_branch_device(struct drm_dp_mst_ >> >> list_for_each_entry(port, &mstb->ports, next) { >> if (port->port_num == port_num) { >> - if (!port->mstb) { >> + mstb = port->mstb; >> + if (!mstb) { >> DRM_ERROR("failed to lookup >> MSTB with lct %d, rad %02x\n", lct, rad[0]); >> - return NULL; >> + goto out; >> } >> >> - mstb = port->mstb; >> break; >> } >> } >> } >> kref_get(&mstb->kref); >> + out: >> mutex_unlock(&mgr->lock); >> return mstb; >> } >> _______________________________________________ >> dri-devel mailing list >> dri-devel@xxxxxxxxxxxxxxxxxxxxx >> http://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel