forked from rpms/kernel
		
	v2 of patch
This commit is contained in:
		
							parent
							
								
									1ee3c6e5fc
								
							
						
					
					
						commit
						5d8f3c9211
					
				| @ -1,13 +1,13 @@ | |||||||
| From patchwork Thu Nov 23 02:15:03 2017 | From patchwork Thu Nov 23 02:41:54 2017 | ||||||
| Content-Type: text/plain; charset="utf-8" | Content-Type: text/plain; charset="utf-8" | ||||||
| MIME-Version: 1.0 | MIME-Version: 1.0 | ||||||
| Content-Transfer-Encoding: 7bit | Content-Transfer-Encoding: 7bit | ||||||
| Subject: drm/ttm: don't attempt to use hugepages if dma32 requested | Subject: drm/ttm: don't attempt to use hugepages if dma32 requested (v2) | ||||||
| From: Dave Airlie <airlied@gmail.com> | From: Dave Airlie <airlied@gmail.com> | ||||||
| X-Patchwork-Id: 189811 | X-Patchwork-Id: 189812 | ||||||
| Message-Id: <20171123021503.24227-1-airlied@gmail.com> | Message-Id: <20171123024154.10023-1-airlied@gmail.com> | ||||||
| To: dri-devel@lists.freedesktop.org | To: dri-devel@lists.freedesktop.org | ||||||
| Date: Thu, 23 Nov 2017 12:15:03 +1000 | Date: Thu, 23 Nov 2017 12:41:54 +1000 | ||||||
| 
 | 
 | ||||||
| From: Dave Airlie <airlied@redhat.com> | From: Dave Airlie <airlied@redhat.com> | ||||||
| 
 | 
 | ||||||
| @ -55,19 +55,41 @@ This fixes an oops: | |||||||
| [   30.133245] RIP: __alloc_pages_nodemask+0x35e/0x430 RSP: ffffa7818222bba8 | [   30.133245] RIP: __alloc_pages_nodemask+0x35e/0x430 RSP: ffffa7818222bba8 | ||||||
| [   30.133836] ---[ end trace d4f1deb60784f40a ]--- | [   30.133836] ---[ end trace d4f1deb60784f40a ]--- | ||||||
| 
 | 
 | ||||||
|  | v2: handle free path as well. | ||||||
|  | 
 | ||||||
| Reported-by: Laura Abbott <labbott@redhat.com> | Reported-by: Laura Abbott <labbott@redhat.com> | ||||||
| Reported-by: Adam Williamson <awilliam@redhat.com> | Reported-by: Adam Williamson <awilliam@redhat.com> | ||||||
| Fixes: 0284f1ead87463bc17cf5e81a24fc65c052486f3 (drm/ttm: add transparent huge page support for cached allocations v2) | Fixes: 0284f1ead87463bc17cf5e81a24fc65c052486f3 (drm/ttm: add transparent huge page support for cached allocations v2) | ||||||
| Signed-off-by: Dave Airlie <airlied@redhat.com> | Signed-off-by: Dave Airlie <airlied@redhat.com> | ||||||
| --- | --- | ||||||
|  drivers/gpu/drm/ttm/ttm_page_alloc.c | 24 +++++++++++++----------- |  drivers/gpu/drm/ttm/ttm_page_alloc.c | 36 ++++++++++++++++++++---------------- | ||||||
|  1 file changed, 13 insertions(+), 11 deletions(-) |  1 file changed, 20 insertions(+), 16 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c | diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c | ||||||
| index 316f831..1d3dfce 100644 | index 316f831..b0551aa 100644 | ||||||
| --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c | --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c | ||||||
| +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c | +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c | ||||||
| @@ -865,20 +865,22 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags, | @@ -744,12 +744,14 @@ static void ttm_put_pages(struct page **pages, unsigned npages, int flags, | ||||||
|  |  			} | ||||||
|  |   | ||||||
|  |  #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||||||
|  | -			for (j = 0; j < HPAGE_PMD_NR; ++j) | ||||||
|  | -				if (p++ != pages[i + j]) | ||||||
|  | -				    break; | ||||||
|  | +			if (!(flags & TTM_PAGE_FLAG_DMA32)) { | ||||||
|  | +				for (j = 0; j < HPAGE_PMD_NR; ++j) | ||||||
|  | +					if (p++ != pages[i + j]) | ||||||
|  | +					    break; | ||||||
|  |   | ||||||
|  | -			if (j == HPAGE_PMD_NR) | ||||||
|  | -				order = HPAGE_PMD_ORDER; | ||||||
|  | +				if (j == HPAGE_PMD_NR) | ||||||
|  | +					order = HPAGE_PMD_ORDER; | ||||||
|  | +			} | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  |  			if (page_count(pages[i]) != 1) | ||||||
|  | @@ -865,20 +867,22 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags, | ||||||
|   |   | ||||||
|  		i = 0; |  		i = 0; | ||||||
|  #ifdef CONFIG_TRANSPARENT_HUGEPAGE |  #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user