diff options
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 0b2e167d2bce..7b8feff53c0d 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -354,7 +354,7 @@ i915_gem_shmem_pread_fast(struct drm_device *dev, | |||
| 354 | * page_offset = offset within page | 354 | * page_offset = offset within page |
| 355 | * page_length = bytes to copy for this page | 355 | * page_length = bytes to copy for this page |
| 356 | */ | 356 | */ |
| 357 | page_offset = offset & (PAGE_SIZE-1); | 357 | page_offset = offset_in_page(offset); |
| 358 | page_length = remain; | 358 | page_length = remain; |
| 359 | if ((page_offset + remain) > PAGE_SIZE) | 359 | if ((page_offset + remain) > PAGE_SIZE) |
| 360 | page_length = PAGE_SIZE - page_offset; | 360 | page_length = PAGE_SIZE - page_offset; |
| @@ -453,9 +453,9 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, | |||
| 453 | * data_page_offset = offset with data_page_index page. | 453 | * data_page_offset = offset with data_page_index page. |
| 454 | * page_length = bytes to copy for this page | 454 | * page_length = bytes to copy for this page |
| 455 | */ | 455 | */ |
| 456 | shmem_page_offset = offset & ~PAGE_MASK; | 456 | shmem_page_offset = offset_in_page(offset); |
| 457 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; | 457 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; |
| 458 | data_page_offset = data_ptr & ~PAGE_MASK; | 458 | data_page_offset = offset_in_page(data_ptr); |
| 459 | 459 | ||
| 460 | page_length = remain; | 460 | page_length = remain; |
| 461 | if ((shmem_page_offset + page_length) > PAGE_SIZE) | 461 | if ((shmem_page_offset + page_length) > PAGE_SIZE) |
| @@ -638,8 +638,8 @@ i915_gem_gtt_pwrite_fast(struct drm_device *dev, | |||
| 638 | * page_offset = offset within page | 638 | * page_offset = offset within page |
| 639 | * page_length = bytes to copy for this page | 639 | * page_length = bytes to copy for this page |
| 640 | */ | 640 | */ |
| 641 | page_base = (offset & ~(PAGE_SIZE-1)); | 641 | page_base = offset & PAGE_MASK; |
| 642 | page_offset = offset & (PAGE_SIZE-1); | 642 | page_offset = offset_in_page(offset); |
| 643 | page_length = remain; | 643 | page_length = remain; |
| 644 | if ((page_offset + remain) > PAGE_SIZE) | 644 | if ((page_offset + remain) > PAGE_SIZE) |
| 645 | page_length = PAGE_SIZE - page_offset; | 645 | page_length = PAGE_SIZE - page_offset; |
| @@ -650,7 +650,6 @@ i915_gem_gtt_pwrite_fast(struct drm_device *dev, | |||
| 650 | */ | 650 | */ |
| 651 | if (fast_user_write(dev_priv->mm.gtt_mapping, page_base, | 651 | if (fast_user_write(dev_priv->mm.gtt_mapping, page_base, |
| 652 | page_offset, user_data, page_length)) | 652 | page_offset, user_data, page_length)) |
| 653 | |||
| 654 | return -EFAULT; | 653 | return -EFAULT; |
| 655 | 654 | ||
| 656 | remain -= page_length; | 655 | remain -= page_length; |
| @@ -730,9 +729,9 @@ i915_gem_gtt_pwrite_slow(struct drm_device *dev, | |||
| 730 | * page_length = bytes to copy for this page | 729 | * page_length = bytes to copy for this page |
| 731 | */ | 730 | */ |
| 732 | gtt_page_base = offset & PAGE_MASK; | 731 | gtt_page_base = offset & PAGE_MASK; |
| 733 | gtt_page_offset = offset & ~PAGE_MASK; | 732 | gtt_page_offset = offset_in_page(offset); |
| 734 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; | 733 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; |
| 735 | data_page_offset = data_ptr & ~PAGE_MASK; | 734 | data_page_offset = offset_in_page(data_ptr); |
| 736 | 735 | ||
| 737 | page_length = remain; | 736 | page_length = remain; |
| 738 | if ((gtt_page_offset + page_length) > PAGE_SIZE) | 737 | if ((gtt_page_offset + page_length) > PAGE_SIZE) |
| @@ -791,7 +790,7 @@ i915_gem_shmem_pwrite_fast(struct drm_device *dev, | |||
| 791 | * page_offset = offset within page | 790 | * page_offset = offset within page |
| 792 | * page_length = bytes to copy for this page | 791 | * page_length = bytes to copy for this page |
| 793 | */ | 792 | */ |
| 794 | page_offset = offset & (PAGE_SIZE-1); | 793 | page_offset = offset_in_page(offset); |
| 795 | page_length = remain; | 794 | page_length = remain; |
| 796 | if ((page_offset + remain) > PAGE_SIZE) | 795 | if ((page_offset + remain) > PAGE_SIZE) |
| 797 | page_length = PAGE_SIZE - page_offset; | 796 | page_length = PAGE_SIZE - page_offset; |
| @@ -896,9 +895,9 @@ i915_gem_shmem_pwrite_slow(struct drm_device *dev, | |||
| 896 | * data_page_offset = offset with data_page_index page. | 895 | * data_page_offset = offset with data_page_index page. |
| 897 | * page_length = bytes to copy for this page | 896 | * page_length = bytes to copy for this page |
| 898 | */ | 897 | */ |
| 899 | shmem_page_offset = offset & ~PAGE_MASK; | 898 | shmem_page_offset = offset_in_page(offset); |
| 900 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; | 899 | data_page_index = data_ptr / PAGE_SIZE - first_data_page; |
| 901 | data_page_offset = data_ptr & ~PAGE_MASK; | 900 | data_page_offset = offset_in_page(data_ptr); |
| 902 | 901 | ||
| 903 | page_length = remain; | 902 | page_length = remain; |
| 904 | if ((shmem_page_offset + page_length) > PAGE_SIZE) | 903 | if ((shmem_page_offset + page_length) > PAGE_SIZE) |
