Hi!

On 2020-05-22T15:16:04-0700, Julian Brown <jul...@codesourcery.com> wrote:
> This patch adds some missing unlocking from error paths in the OpenACC
> attach/detach code, noticed during development of other patches in
> this series.

Thanks, pushed "[OpenACC] Missing unlocking on error paths in
attach/detach code" to master branch in commit
dc9541545d9e5705a97c41713c557f55522b54dc, and releases/gcc-10 branch in
commit 16faaf529cfdefbf577cf6affc5869506b484599, see attached.

..., and then pushed "[OpenACC] Missing unlocking on error paths in
attach/detach code, part II" to master branch in commit
2e24d457d8c97e409549848715ff046cfa9efd3d, and releases/gcc-10 branch in
commit 52022880530d3ae9cdae81db74a40a92f2265c2c, see attached, too.


Grüße
 Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander 
Walter
>From 2e24d457d8c97e409549848715ff046cfa9efd3d Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tho...@codesourcery.com>
Date: Sat, 23 May 2020 17:20:30 +0200
Subject: [PATCH] [OpenACC] Missing unlocking on error paths in attach/detach
 code, part II

	libgomp/
	* oacc-mem.c (goacc_exit_data_internal): Unlock on error path.
---
 libgomp/oacc-mem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c
index c06b7341cbbf..6713846c9429 100644
--- a/libgomp/oacc-mem.c
+++ b/libgomp/oacc-mem.c
@@ -1060,7 +1060,10 @@ goacc_exit_data_internal (struct gomp_device_descr *acc_dev, size_t mapnum,
 	      = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
 
 	    if (n == NULL)
-	      gomp_fatal ("struct not mapped for detach operation");
+	      {
+		gomp_mutex_unlock (&acc_dev->lock);
+		gomp_fatal ("struct not mapped for detach operation");
+	      }
 
 	    gomp_detach_pointer (acc_dev, aq, n, hostaddr, finalize, NULL);
 	  }
-- 
2.26.2

>From 52022880530d3ae9cdae81db74a40a92f2265c2c Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tho...@codesourcery.com>
Date: Sat, 23 May 2020 17:20:30 +0200
Subject: [PATCH] [OpenACC] Missing unlocking on error paths in attach/detach
 code, part II

	libgomp/
	* oacc-mem.c (goacc_exit_data_internal): Unlock on error path.

(cherry picked from commit 2e24d457d8c97e409549848715ff046cfa9efd3d)
---
 libgomp/oacc-mem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c
index c06b7341cbbf..6713846c9429 100644
--- a/libgomp/oacc-mem.c
+++ b/libgomp/oacc-mem.c
@@ -1060,7 +1060,10 @@ goacc_exit_data_internal (struct gomp_device_descr *acc_dev, size_t mapnum,
 	      = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
 
 	    if (n == NULL)
-	      gomp_fatal ("struct not mapped for detach operation");
+	      {
+		gomp_mutex_unlock (&acc_dev->lock);
+		gomp_fatal ("struct not mapped for detach operation");
+	      }
 
 	    gomp_detach_pointer (acc_dev, aq, n, hostaddr, finalize, NULL);
 	  }
-- 
2.26.2

>From 2e24d457d8c97e409549848715ff046cfa9efd3d Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tho...@codesourcery.com>
Date: Sat, 23 May 2020 17:20:30 +0200
Subject: [PATCH] [OpenACC] Missing unlocking on error paths in attach/detach
 code, part II

	libgomp/
	* oacc-mem.c (goacc_exit_data_internal): Unlock on error path.
---
 libgomp/oacc-mem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c
index c06b7341cbbf..6713846c9429 100644
--- a/libgomp/oacc-mem.c
+++ b/libgomp/oacc-mem.c
@@ -1060,7 +1060,10 @@ goacc_exit_data_internal (struct gomp_device_descr *acc_dev, size_t mapnum,
 	      = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
 
 	    if (n == NULL)
-	      gomp_fatal ("struct not mapped for detach operation");
+	      {
+		gomp_mutex_unlock (&acc_dev->lock);
+		gomp_fatal ("struct not mapped for detach operation");
+	      }
 
 	    gomp_detach_pointer (acc_dev, aq, n, hostaddr, finalize, NULL);
 	  }
-- 
2.26.2

>From 52022880530d3ae9cdae81db74a40a92f2265c2c Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tho...@codesourcery.com>
Date: Sat, 23 May 2020 17:20:30 +0200
Subject: [PATCH] [OpenACC] Missing unlocking on error paths in attach/detach
 code, part II

	libgomp/
	* oacc-mem.c (goacc_exit_data_internal): Unlock on error path.

(cherry picked from commit 2e24d457d8c97e409549848715ff046cfa9efd3d)
---
 libgomp/oacc-mem.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libgomp/oacc-mem.c b/libgomp/oacc-mem.c
index c06b7341cbbf..6713846c9429 100644
--- a/libgomp/oacc-mem.c
+++ b/libgomp/oacc-mem.c
@@ -1060,7 +1060,10 @@ goacc_exit_data_internal (struct gomp_device_descr *acc_dev, size_t mapnum,
 	      = splay_tree_lookup (&acc_dev->mem_map, &cur_node);
 
 	    if (n == NULL)
-	      gomp_fatal ("struct not mapped for detach operation");
+	      {
+		gomp_mutex_unlock (&acc_dev->lock);
+		gomp_fatal ("struct not mapped for detach operation");
+	      }
 
 	    gomp_detach_pointer (acc_dev, aq, n, hostaddr, finalize, NULL);
 	  }
-- 
2.26.2

Reply via email to