All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: "Nicolai Hähnle" <nhaehnle@gmail.com>
Cc: dri-devel@lists.freedesktop.org,
	"Nicolai Hähnle" <nicolai.haehnle@amd.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH] drm/radeon: hold reference to fences in radeon_sa_bo_new (3.17 and older)
Date: Mon, 11 Apr 2016 10:05:58 +0100	[thread overview]
Message-ID: <20160411090558.GD3379@ares> (raw)
In-Reply-To: <1458064605-668-1-git-send-email-nhaehnle@gmail.com>

On Tue, Mar 15, 2016 at 12:56:45PM -0500, Nicolai Hähnle wrote:
> From: Nicolai Hähnle <nicolai.haehnle@amd.com>
> 
> [Backport of upstream commit f6ff4f67cdf8455d0a4226eeeaf5af17c37d05eb, with
>  an additional NULL pointer guard that is required for kernels 3.17 and older.
>

Thank you, Nicolai.  I'll queue this backport for the 3.16.

Cheers,
--
Luís


>  To be precise, any kernel that does *not* have commit 954605ca3 "drm/radeon:
>  use common fence implementation for fences, v4" requires this additional
>  NULL pointer guard.]
> 
> An arbitrary amount of time can pass between spin_unlock and
> radeon_fence_wait_any, so we need to ensure that nobody frees the
> fences from under us.
> 
> Based on the analogous fix for amdgpu.
> 
> Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
> Reviewed-by: Christian König <christian.koenig@amd.com> (v1 + fix)
> Tested-by: Lutz Euler <lutz.euler@freenet.de>
> Cc: stable@vger.kernel.org
> ---
>  drivers/gpu/drm/radeon/radeon_sa.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_sa.c b/drivers/gpu/drm/radeon/radeon_sa.c
> index c507896..7d11901 100644
> --- a/drivers/gpu/drm/radeon/radeon_sa.c
> +++ b/drivers/gpu/drm/radeon/radeon_sa.c
> @@ -349,8 +349,15 @@ int radeon_sa_bo_new(struct radeon_device *rdev,
>  			/* see if we can skip over some allocations */
>  		} while (radeon_sa_bo_next_hole(sa_manager, fences, tries));
>  
> +		for (i = 0; i < RADEON_NUM_RINGS; ++i) {
> +			if (fences[i])
> +				radeon_fence_ref(fences[i]);
> +		}
> +
>  		spin_unlock(&sa_manager->wq.lock);
>  		r = radeon_fence_wait_any(rdev, fences, false);
> +		for (i = 0; i < RADEON_NUM_RINGS; ++i)
> +			radeon_fence_unref(&fences[i]);
>  		spin_lock(&sa_manager->wq.lock);
>  		/* if we have nothing to wait for block */
>  		if (r == -ENOENT) {
> -- 
> 2.5.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Luis Henriques <luis.henriques@canonical.com>
To: "Nicolai Hähnle" <nhaehnle@gmail.com>
Cc: dri-devel@lists.freedesktop.org,
	"Nicolai Hähnle" <nicolai.haehnle@amd.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH] drm/radeon: hold reference to fences in radeon_sa_bo_new (3.17 and older)
Date: Mon, 11 Apr 2016 10:05:58 +0100	[thread overview]
Message-ID: <20160411090558.GD3379@ares> (raw)
In-Reply-To: <1458064605-668-1-git-send-email-nhaehnle@gmail.com>

On Tue, Mar 15, 2016 at 12:56:45PM -0500, Nicolai H�hnle wrote:
> From: Nicolai H�hnle <nicolai.haehnle@amd.com>
> 
> [Backport of upstream commit f6ff4f67cdf8455d0a4226eeeaf5af17c37d05eb, with
>  an additional NULL pointer guard that is required for kernels 3.17 and older.
>

Thank you, Nicolai.  I'll queue this backport for the 3.16.

Cheers,
--
Lu�s


>  To be precise, any kernel that does *not* have commit 954605ca3 "drm/radeon:
>  use common fence implementation for fences, v4" requires this additional
>  NULL pointer guard.]
> 
> An arbitrary amount of time can pass between spin_unlock and
> radeon_fence_wait_any, so we need to ensure that nobody frees the
> fences from under us.
> 
> Based on the analogous fix for amdgpu.
> 
> Signed-off-by: Nicolai H�hnle <nicolai.haehnle@amd.com>
> Reviewed-by: Christian K�nig <christian.koenig@amd.com> (v1 + fix)
> Tested-by: Lutz Euler <lutz.euler@freenet.de>
> Cc: stable@vger.kernel.org
> ---
>  drivers/gpu/drm/radeon/radeon_sa.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_sa.c b/drivers/gpu/drm/radeon/radeon_sa.c
> index c507896..7d11901 100644
> --- a/drivers/gpu/drm/radeon/radeon_sa.c
> +++ b/drivers/gpu/drm/radeon/radeon_sa.c
> @@ -349,8 +349,15 @@ int radeon_sa_bo_new(struct radeon_device *rdev,
>  			/* see if we can skip over some allocations */
>  		} while (radeon_sa_bo_next_hole(sa_manager, fences, tries));
>  
> +		for (i = 0; i < RADEON_NUM_RINGS; ++i) {
> +			if (fences[i])
> +				radeon_fence_ref(fences[i]);
> +		}
> +
>  		spin_unlock(&sa_manager->wq.lock);
>  		r = radeon_fence_wait_any(rdev, fences, false);
> +		for (i = 0; i < RADEON_NUM_RINGS; ++i)
> +			radeon_fence_unref(&fences[i]);
>  		spin_lock(&sa_manager->wq.lock);
>  		/* if we have nothing to wait for block */
>  		if (r == -ENOENT) {
> -- 
> 2.5.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-04-11  9:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-15 17:56 [PATCH] drm/radeon: hold reference to fences in radeon_sa_bo_new (3.17 and older) Nicolai Hähnle
2016-04-11  9:05 ` Luis Henriques [this message]
2016-04-11  9:05   ` Luis Henriques

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160411090558.GD3379@ares \
    --to=luis.henriques@canonical.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=nhaehnle@gmail.com \
    --cc=nicolai.haehnle@amd.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.