All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: drm/i915/gen8: page directories rework allocation
@ 2015-04-30 10:47 Dan Carpenter
  2015-04-30 12:27 ` Dave Gordon
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Dan Carpenter @ 2015-04-30 10:47 UTC (permalink / raw)
  To: michel.thierry; +Cc: intel-gfx

Hi Michel,

The patch 69876bed7e00: "drm/i915/gen8: page directories rework
allocation" from Apr 8, 2015, has the following issue:

	drivers/gpu/drm/i915/i915_gem_gtt.c:760
	warn: too many zeroes

drivers/gpu/drm/i915/i915_gem_gtt.c
   746  static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
   747                                       struct i915_page_directory_pointer *pdp,
   748                                       uint64_t start,
   749                                       uint64_t length,
   750                                       unsigned long *new_pds)
   751  {
   752          struct drm_device *dev = ppgtt->base.dev;
   753          struct i915_page_directory *pd;
   754          uint64_t temp;
   755          uint32_t pdpe;
   756  
   757          WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
   758  
   759          /* FIXME: PPGTT container_of won't work for 64b */
   760          WARN_ON((start + length) > 0x800000000ULL);
                                                     ^
This last zero was not intended.

   761  
   762          gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
   763                  if (pd)
   764                          continue;
   765  
   766                  pd = alloc_pd_single(dev);
   767                  if (IS_ERR(pd))
   768                          goto unwind_out;
   769  
   770                  gen8_initialize_pd(&ppgtt->base, pd);
   771                  pdp->page_directory[pdpe] = pd;
   772                  set_bit(pdpe, new_pds);
   773          }
   774  
   775          return 0;
   776  
   777  unwind_out:
   778          for_each_set_bit(pdpe, new_pds, GEN8_LEGACY_PDPES)
   779                  unmap_and_free_pd(pdp->page_directory[pdpe], dev);
   780  
   781          return -ENOMEM;
   782  }


regards,
dan carpenter
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: drm/i915/gen8: page directories rework allocation
  2015-04-30 10:47 drm/i915/gen8: page directories rework allocation Dan Carpenter
@ 2015-04-30 12:27 ` Dave Gordon
  2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
  2015-04-30 15:06 ` [PATCH v2] " Michel Thierry
  2 siblings, 0 replies; 13+ messages in thread
From: Dave Gordon @ 2015-04-30 12:27 UTC (permalink / raw)
  To: michel.thierry; +Cc: intel-gfx, Dan Carpenter

On 30/04/15 11:47, Dan Carpenter wrote:
> Hi Michel,
> 
> The patch 69876bed7e00: "drm/i915/gen8: page directories rework
> allocation" from Apr 8, 2015, has the following issue:
> 
> 	drivers/gpu/drm/i915/i915_gem_gtt.c:760
> 	warn: too many zeroes
> 
> drivers/gpu/drm/i915/i915_gem_gtt.c
>    746  static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>    747                                       struct i915_page_directory_pointer *pdp,
>    748                                       uint64_t start,
>    749                                       uint64_t length,
>    750                                       unsigned long *new_pds)
>    751  {
>    752          struct drm_device *dev = ppgtt->base.dev;
>    753          struct i915_page_directory *pd;
>    754          uint64_t temp;
>    755          uint32_t pdpe;
>    756  
>    757          WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>    758  
>    759          /* FIXME: PPGTT container_of won't work for 64b */
>    760          WARN_ON((start + length) > 0x800000000ULL);
>                                                      ^
> This last zero was not intended.

Wouldn't (1ULL << 31) be clearer?

And shouldn't it be >= not > ?

Or perhaps,
	/* FIXME: upper bound must not overflow 31 bits */
	WARN_ON((start + length) & (~0ULL << 31));

Pick whichever you think is most comprehensible and least typo-prone!

.Dave.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 10:47 drm/i915/gen8: page directories rework allocation Dan Carpenter
  2015-04-30 12:27 ` Dave Gordon
@ 2015-04-30 13:59 ` Michel Thierry
  2015-04-30 14:22   ` Ville Syrjälä
                     ` (2 more replies)
  2015-04-30 15:06 ` [PATCH v2] " Michel Thierry
  2 siblings, 3 replies; 13+ messages in thread
From: Michel Thierry @ 2015-04-30 13:59 UTC (permalink / raw)
  To: intel-gfx

The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
page directories rework allocation" added an overflow warning, but the
mask had an extra 0. Use typo-prone option suggested by Dave instead.

This check will be unnecessary after gen8_alloc_va_range handles more
than 4 PDPs (48b addressing).

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Dave Gordon <david.s.gordon@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 6fae6bd..6d894fc 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
 
 	WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
 
-	/* FIXME: PPGTT container_of won't work for 64b */
-	WARN_ON((start + length) > 0x800000000ULL);
+	/* FIXME: upper bound must not overflow 31 bits  */
+	WARN_ON((start + length) & (~0ULL << 31));
 
 	gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
 		if (pd)
-- 
2.1.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
@ 2015-04-30 14:22   ` Ville Syrjälä
  2015-04-30 14:33     ` Michel Thierry
  2015-05-02  0:38   ` shuang.he
  2015-05-04 12:57   ` David Weinehall
  2 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2015-04-30 14:22 UTC (permalink / raw)
  To: Michel Thierry; +Cc: intel-gfx

On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
> page directories rework allocation" added an overflow warning, but the
> mask had an extra 0. Use typo-prone option suggested by Dave instead.
> 
> This check will be unnecessary after gen8_alloc_va_range handles more
> than 4 PDPs (48b addressing).
> 
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Dave Gordon <david.s.gordon@intel.com>
> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 6fae6bd..6d894fc 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>  
>  	WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>  
> -	/* FIXME: PPGTT container_of won't work for 64b */
> -	WARN_ON((start + length) > 0x800000000ULL);
> +	/* FIXME: upper bound must not overflow 31 bits  */
> +	WARN_ON((start + length) & (~0ULL << 31));

Why is it 31 and not 32?

>  
>  	gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
>  		if (pd)
> -- 
> 2.1.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 14:22   ` Ville Syrjälä
@ 2015-04-30 14:33     ` Michel Thierry
  2015-04-30 14:53       ` Dave Gordon
  0 siblings, 1 reply; 13+ messages in thread
From: Michel Thierry @ 2015-04-30 14:33 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

On 4/30/2015 3:22 PM, Ville Syrjälä wrote:
> On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
>> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
>> page directories rework allocation" added an overflow warning, but the
>> mask had an extra 0. Use typo-prone option suggested by Dave instead.
>>
>> This check will be unnecessary after gen8_alloc_va_range handles more
>> than 4 PDPs (48b addressing).
>>
>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>> Cc: Dave Gordon <david.s.gordon@intel.com>
>> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
>> index 6fae6bd..6d894fc 100644
>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>> @@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>>
>>   	WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>>
>> -	/* FIXME: PPGTT container_of won't work for 64b */
>> -	WARN_ON((start + length) > 0x800000000ULL);
>> +	/* FIXME: upper bound must not overflow 31 bits  */
>> +	WARN_ON((start + length) & (~0ULL << 31));
>
> Why is it 31 and not 32?
>

Right, the check really should be (start + length) >= 0x100000000ULL.

>>
>>   	gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
>>   		if (pd)
>> --
>> 2.1.1
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 14:33     ` Michel Thierry
@ 2015-04-30 14:53       ` Dave Gordon
  2015-04-30 14:56         ` Michel Thierry
  2015-04-30 14:58         ` Ville Syrjälä
  0 siblings, 2 replies; 13+ messages in thread
From: Dave Gordon @ 2015-04-30 14:53 UTC (permalink / raw)
  To: Michel Thierry; +Cc: intel-gfx

On 30/04/15 15:33, Michel Thierry wrote:
> On 4/30/2015 3:22 PM, Ville Syrjälä wrote:
>> On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
>>> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
>>> page directories rework allocation" added an overflow warning, but the
>>> mask had an extra 0. Use typo-prone option suggested by Dave instead.
>>>
>>> This check will be unnecessary after gen8_alloc_va_range handles more
>>> than 4 PDPs (48b addressing).
>>>
>>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>> Cc: Dave Gordon <david.s.gordon@intel.com>
>>> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
>>> ---
>>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> index 6fae6bd..6d894fc 100644
>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>> @@ -756,8 +756,8 @@ static int
>>> gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>>>
>>>       WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>>>
>>> -    /* FIXME: PPGTT container_of won't work for 64b */
>>> -    WARN_ON((start + length) > 0x800000000ULL);
>>> +    /* FIXME: upper bound must not overflow 31 bits  */
>>> +    WARN_ON((start + length) & (~0ULL << 31));
>>
>> Why is it 31 and not 32?
> 
> Right, the check really should be (start + length) >= 0x100000000ULL.

Something with '32' in it might be more obvious and save anyone having
to count the zeroes ... and a comment that also mentioned the limit:

	/* FIXME: for now, upper bound must fit in 32 bits  */

	WARN_ON((start + length) >= (1ULL << 32))
	WARN_ON((start + length) & (~0ULL << 32))
	WARN_ON((start + length) >> 32) != 0)

.Dave.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 14:53       ` Dave Gordon
@ 2015-04-30 14:56         ` Michel Thierry
  2015-04-30 14:58         ` Ville Syrjälä
  1 sibling, 0 replies; 13+ messages in thread
From: Michel Thierry @ 2015-04-30 14:56 UTC (permalink / raw)
  To: Dave Gordon; +Cc: intel-gfx

On 4/30/2015 3:53 PM, Dave Gordon wrote:
> On 30/04/15 15:33, Michel Thierry wrote:
>> On 4/30/2015 3:22 PM, Ville Syrjälä wrote:
>>> On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
>>>> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
>>>> page directories rework allocation" added an overflow warning, but the
>>>> mask had an extra 0. Use typo-prone option suggested by Dave instead.
>>>>
>>>> This check will be unnecessary after gen8_alloc_va_range handles more
>>>> than 4 PDPs (48b addressing).
>>>>
>>>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>>> Cc: Dave Gordon <david.s.gordon@intel.com>
>>>> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
>>>> ---
>>>>    drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
>>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> index 6fae6bd..6d894fc 100644
>>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
>>>> @@ -756,8 +756,8 @@ static int
>>>> gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>>>>
>>>>        WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>>>>
>>>> -    /* FIXME: PPGTT container_of won't work for 64b */
>>>> -    WARN_ON((start + length) > 0x800000000ULL);
>>>> +    /* FIXME: upper bound must not overflow 31 bits  */
>>>> +    WARN_ON((start + length) & (~0ULL << 31));
>>>
>>> Why is it 31 and not 32?
>>
>> Right, the check really should be (start + length) >= 0x100000000ULL.
>
> Something with '32' in it might be more obvious and save anyone having
> to count the zeroes ... and a comment that also mentioned the limit:
>
> 	/* FIXME: for now, upper bound must fit in 32 bits  */
>
> 	WARN_ON((start + length) >= (1ULL << 32))
> 	WARN_ON((start + length) & (~0ULL << 32))
> 	WARN_ON((start + length) >> 32) != 0)

Yes, I was planning to just replace _31_ with _32_ and avoid all those 
zeroes...

>
> .Dave.
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 14:53       ` Dave Gordon
  2015-04-30 14:56         ` Michel Thierry
@ 2015-04-30 14:58         ` Ville Syrjälä
  1 sibling, 0 replies; 13+ messages in thread
From: Ville Syrjälä @ 2015-04-30 14:58 UTC (permalink / raw)
  To: Dave Gordon; +Cc: intel-gfx

On Thu, Apr 30, 2015 at 03:53:29PM +0100, Dave Gordon wrote:
> On 30/04/15 15:33, Michel Thierry wrote:
> > On 4/30/2015 3:22 PM, Ville Syrjälä wrote:
> >> On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
> >>> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
> >>> page directories rework allocation" added an overflow warning, but the
> >>> mask had an extra 0. Use typo-prone option suggested by Dave instead.
> >>>
> >>> This check will be unnecessary after gen8_alloc_va_range handles more
> >>> than 4 PDPs (48b addressing).
> >>>
> >>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> >>> Cc: Dave Gordon <david.s.gordon@intel.com>
> >>> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
> >>> ---
> >>>   drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
> >>>   1 file changed, 2 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>> b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>> index 6fae6bd..6d894fc 100644
> >>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> >>> @@ -756,8 +756,8 @@ static int
> >>> gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
> >>>
> >>>       WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
> >>>
> >>> -    /* FIXME: PPGTT container_of won't work for 64b */
> >>> -    WARN_ON((start + length) > 0x800000000ULL);
> >>> +    /* FIXME: upper bound must not overflow 31 bits  */
> >>> +    WARN_ON((start + length) & (~0ULL << 31));
> >>
> >> Why is it 31 and not 32?
> > 
> > Right, the check really should be (start + length) >= 0x100000000ULL.
> 
> Something with '32' in it might be more obvious and save anyone having
> to count the zeroes ... and a comment that also mentioned the limit:
> 
> 	/* FIXME: for now, upper bound must fit in 32 bits  */
> 
> 	WARN_ON((start + length) >= (1ULL << 32))

This would match the '1ULL<<32' used in the ppgtt init.

> 	WARN_ON((start + length) & (~0ULL << 32))
> 	WARN_ON((start + length) >> 32) != 0)
> 
> .Dave.

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v2] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 10:47 drm/i915/gen8: page directories rework allocation Dan Carpenter
  2015-04-30 12:27 ` Dave Gordon
  2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
@ 2015-04-30 15:06 ` Michel Thierry
  2015-05-02  4:26   ` shuang.he
  2015-05-06 10:14   ` Daniel Vetter
  2 siblings, 2 replies; 13+ messages in thread
From: Michel Thierry @ 2015-04-30 15:06 UTC (permalink / raw)
  To: intel-gfx

The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
page directories rework allocation" added an overflow warning, but the
mask had an extra 0. Use typo-prone option suggested by Dave instead,
to check for (start + length) >= 0x100000000ULL.

This check will be unnecessary after gen8_alloc_va_range handles more
than 4 PDPs (48b addressing).

v2: Really check for 32b overflow (Ville)

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Dave Gordon <david.s.gordon@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 6fae6bd..3450cb5 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
 
 	WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
 
-	/* FIXME: PPGTT container_of won't work for 64b */
-	WARN_ON((start + length) > 0x800000000ULL);
+	/* FIXME: upper bound must not overflow 32 bits  */
+	WARN_ON((start + length) >= (1ULL << 32));
 
 	gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
 		if (pd)
-- 
2.1.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
  2015-04-30 14:22   ` Ville Syrjälä
@ 2015-05-02  0:38   ` shuang.he
  2015-05-04 12:57   ` David Weinehall
  2 siblings, 0 replies; 13+ messages in thread
From: shuang.he @ 2015-05-02  0:38 UTC (permalink / raw)
  To: shuang.he, ethan.gao, intel-gfx, michel.thierry

Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6299
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  276/276              276/276
ILK                                  302/302              302/302
SNB                                  316/316              316/316
IVB                                  264/264              264/264
BYT                 -3              227/227              224/227
BDW                                  318/318              318/318
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
*BYT  igt@gem_dummy_reloc_loop@render      FAIL(1)PASS(18)      TIMEOUT(1)PASS(1)
*BYT  igt@gem_exec_parse@bitmasks      FAIL(1)PASS(7)      DMESG_WARN(1)PASS(1)
(dmesg patch applied)drm:check_crtc_state[i915]]*ERROR*mismatch_in_has_infoframe(expected#,found#)@mismatch in has_infoframe .* found
WARNING:at_drivers/gpu/drm/i915/intel_display.c:#check_crtc_state[i915]()@WARNING:.* at .* check_crtc_state+0x
 BYT  igt@gem_pipe_control_store_loop@fresh-buffer      FAIL(1)TIMEOUT(10)PASS(9)      TIMEOUT(2)
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 15:06 ` [PATCH v2] " Michel Thierry
@ 2015-05-02  4:26   ` shuang.he
  2015-05-06 10:14   ` Daniel Vetter
  1 sibling, 0 replies; 13+ messages in thread
From: shuang.he @ 2015-05-02  4:26 UTC (permalink / raw)
  To: shuang.he, ethan.gao, intel-gfx, michel.thierry

Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6300
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  276/276              276/276
ILK                                  302/302              302/302
SNB                                  316/316              316/316
IVB                                  264/264              264/264
BYT                 -3              227/227              224/227
BDW                                  318/318              318/318
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
*BYT  igt@gem_dummy_reloc_loop@render      FAIL(1)PASS(18)      TIMEOUT(1)PASS(1)
 BYT  igt@gem_pipe_control_store_loop@fresh-buffer      FAIL(1)TIMEOUT(10)PASS(9)      TIMEOUT(1)PASS(1)
*BYT  igt@gem_threaded_access_tiled      FAIL(1)PASS(6)      DMESG_WARN(1)PASS(1)
(dmesg patch applied)drm:check_crtc_state[i915]]*ERROR*mismatch_in_has_infoframe(expected#,found#)@mismatch in has_infoframe .* found
WARNING:at_drivers/gpu/drm/i915/intel_display.c:#check_crtc_state[i915]()@WARNING:.* at .* check_crtc_state+0x
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
  2015-04-30 14:22   ` Ville Syrjälä
  2015-05-02  0:38   ` shuang.he
@ 2015-05-04 12:57   ` David Weinehall
  2 siblings, 0 replies; 13+ messages in thread
From: David Weinehall @ 2015-05-04 12:57 UTC (permalink / raw)
  To: Michel Thierry; +Cc: intel-gfx

On Thu, Apr 30, 2015 at 02:59:34PM +0100, Michel Thierry wrote:
> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
> page directories rework allocation" added an overflow warning, but the
> mask had an extra 0. Use typo-prone option suggested by Dave instead.

I think you mean "less typo-prone" here :)


Kind regards, David Weinehall
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories
  2015-04-30 15:06 ` [PATCH v2] " Michel Thierry
  2015-05-02  4:26   ` shuang.he
@ 2015-05-06 10:14   ` Daniel Vetter
  1 sibling, 0 replies; 13+ messages in thread
From: Daniel Vetter @ 2015-05-06 10:14 UTC (permalink / raw)
  To: Michel Thierry; +Cc: intel-gfx

On Thu, Apr 30, 2015 at 04:06:51PM +0100, Michel Thierry wrote:
> The patch 69876bed7e008f5fe01538a2d47c09f2862129d0: "drm/i915/gen8:
> page directories rework allocation" added an overflow warning, but the
> mask had an extra 0. Use typo-prone option suggested by Dave instead,

I inserted the "less" above while applying.

> to check for (start + length) >= 0x100000000ULL.
> 
> This check will be unnecessary after gen8_alloc_va_range handles more
> than 4 PDPs (48b addressing).
> 
> v2: Really check for 32b overflow (Ville)
> 
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Dave Gordon <david.s.gordon@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Michel Thierry <michel.thierry@intel.com>

Queued for -next, thanks for the patch.
-Daniel
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 6fae6bd..3450cb5 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -756,8 +756,8 @@ static int gen8_ppgtt_alloc_page_directories(struct i915_hw_ppgtt *ppgtt,
>  
>  	WARN_ON(!bitmap_empty(new_pds, GEN8_LEGACY_PDPES));
>  
> -	/* FIXME: PPGTT container_of won't work for 64b */
> -	WARN_ON((start + length) > 0x800000000ULL);
> +	/* FIXME: upper bound must not overflow 32 bits  */
> +	WARN_ON((start + length) >= (1ULL << 32));
>  
>  	gen8_for_each_pdpe(pd, pdp, start, length, temp, pdpe) {
>  		if (pd)
> -- 
> 2.1.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-05-06 10:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-30 10:47 drm/i915/gen8: page directories rework allocation Dan Carpenter
2015-04-30 12:27 ` Dave Gordon
2015-04-30 13:59 ` [PATCH] drm/i915: Fix 32b overflow check in gen8_ppgtt_alloc_page_directories Michel Thierry
2015-04-30 14:22   ` Ville Syrjälä
2015-04-30 14:33     ` Michel Thierry
2015-04-30 14:53       ` Dave Gordon
2015-04-30 14:56         ` Michel Thierry
2015-04-30 14:58         ` Ville Syrjälä
2015-05-02  0:38   ` shuang.he
2015-05-04 12:57   ` David Weinehall
2015-04-30 15:06 ` [PATCH v2] " Michel Thierry
2015-05-02  4:26   ` shuang.he
2015-05-06 10:14   ` Daniel Vetter

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.