On Fri, Oct 01, 2021 at 10:07:48AM -0700, Julian Brown wrote: > This patch releases the device lock on a sanity-checking error path in > transfer combining (cbuf) handling in libgomp:target.c. This shouldn't > happen when handling well-formed mapping clauses, but erroneous clauses > can currently cause a hang if the condition triggers. > > Tested with offloading to NVPTX. OK? > > 2021-09-29 Julian Brown <jul...@codesourcery.com> > > libgomp/ > * target.c (gomp_copy_host2dev): Release device lock on cbuf > error path.
Ok, thanks. This doesn't seem to depend on anything else, so can be committed separately right away. > diff --git a/libgomp/target.c b/libgomp/target.c > index 65bb40100e5..84c6fdf2c47 100644 > --- a/libgomp/target.c > +++ b/libgomp/target.c > @@ -385,7 +385,10 @@ gomp_copy_host2dev (struct gomp_device_descr *devicep, > else if (cbuf->chunks[middle].start <= doff) > { > if (doff + sz > cbuf->chunks[middle].end) > - gomp_fatal ("internal libgomp cbuf error"); > + { > + gomp_mutex_unlock (&devicep->lock); > + gomp_fatal ("internal libgomp cbuf error"); > + } > memcpy ((char *) cbuf->buf + (doff - cbuf->chunks[0].start), > h, sz); > return; > -- > 2.29.2 Jakub