* [PATCH] gpu: drm: i915: Change return type to vm_fault_t
@ 2018-04-17 15:11 Souptick Joarder
2018-04-17 15:29 ` Jani Nikula
0 siblings, 1 reply; 7+ messages in thread
From: Souptick Joarder @ 2018-04-17 15:11 UTC (permalink / raw)
To: jani.nikula, joonas.lahtinen, rodrigo.vivi, airlied
Cc: intel-gfx, dri-devel, linux-kernel, willy
Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.
Reference id -> 1c8f422059ae ("mm: change return type to
vm_fault_t")
Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
drivers/gpu/drm/i915/i915_drv.h | 3 ++-
drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++-------
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index a42deeb..95b0d50 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -51,6 +51,7 @@
#include <drm/drm_gem.h>
#include <drm/drm_auth.h>
#include <drm/drm_cache.h>
+#include <linux/mm_types.h>
#include "i915_params.h"
#include "i915_reg.h"
@@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv,
unsigned int flags);
int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv);
void i915_gem_resume(struct drm_i915_private *dev_priv);
-int i915_gem_fault(struct vm_fault *vmf);
+vm_fault_t i915_gem_fault(struct vm_fault *vmf);
int i915_gem_object_wait(struct drm_i915_gem_object *obj,
unsigned int flags,
long timeout,
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index dd89abd..bdac690 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void)
* The current feature set supported by i915_gem_fault() and thus GTT mmaps
* is exposed via I915_PARAM_MMAP_GTT_VERSION (see i915_gem_mmap_gtt_version).
*/
-int i915_gem_fault(struct vm_fault *vmf)
+vm_fault_t i915_gem_fault(struct vm_fault *vmf)
{
#define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */
struct vm_area_struct *area = vmf->vma;
@@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf)
pgoff_t page_offset;
unsigned int flags;
int ret;
+ vm_fault_t retval;
/* We don't use vmf->pgoff since that has the fake offset */
page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT;
@@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf)
* and so needs to be reported.
*/
if (!i915_terminally_wedged(&dev_priv->gpu_error)) {
- ret = VM_FAULT_SIGBUS;
+ retval = VM_FAULT_SIGBUS;
break;
}
case -EAGAIN:
@@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf)
* EBUSY is ok: this just means that another thread
* already did the job.
*/
- ret = VM_FAULT_NOPAGE;
+ retval = VM_FAULT_NOPAGE;
break;
case -ENOMEM:
- ret = VM_FAULT_OOM;
+ retval = VM_FAULT_OOM;
break;
case -ENOSPC:
case -EFAULT:
- ret = VM_FAULT_SIGBUS;
+ retval = VM_FAULT_SIGBUS;
break;
default:
WARN_ONCE(ret, "unhandled error in i915_gem_fault: %i\n", ret);
- ret = VM_FAULT_SIGBUS;
+ retval = VM_FAULT_SIGBUS;
break;
}
- return ret;
+ return retval;
}
static void __i915_gem_object_release_mmap(struct drm_i915_gem_object *obj)
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] gpu: drm: i915: Change return type to vm_fault_t 2018-04-17 15:11 [PATCH] gpu: drm: i915: Change return type to vm_fault_t Souptick Joarder @ 2018-04-17 15:29 ` Jani Nikula 2018-04-17 15:44 ` Souptick Joarder 2018-04-17 16:18 ` Daniel Vetter 0 siblings, 2 replies; 7+ messages in thread From: Jani Nikula @ 2018-04-17 15:29 UTC (permalink / raw) To: Souptick Joarder, joonas.lahtinen, rodrigo.vivi, airlied Cc: intel-gfx, dri-devel, linux-kernel, willy On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: > Use new return type vm_fault_t for fault handler. For > now, this is just documenting that the function returns > a VM_FAULT value rather than an errno. Once all instances > are converted, vm_fault_t will become a distinct type. > > Reference id -> 1c8f422059ae ("mm: change return type to > vm_fault_t") > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 3 ++- > drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index a42deeb..95b0d50 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -51,6 +51,7 @@ > #include <drm/drm_gem.h> > #include <drm/drm_auth.h> > #include <drm/drm_cache.h> > +#include <linux/mm_types.h> > > #include "i915_params.h" > #include "i915_reg.h" > @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv, > unsigned int flags); > int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv); > void i915_gem_resume(struct drm_i915_private *dev_priv); > -int i915_gem_fault(struct vm_fault *vmf); > +vm_fault_t i915_gem_fault(struct vm_fault *vmf); > int i915_gem_object_wait(struct drm_i915_gem_object *obj, > unsigned int flags, > long timeout, > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index dd89abd..bdac690 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) > * The current feature set supported by i915_gem_fault() and thus GTT mmaps > * is exposed via I915_PARAM_MMAP_GTT_VERSION (see i915_gem_mmap_gtt_version). > */ > -int i915_gem_fault(struct vm_fault *vmf) > +vm_fault_t i915_gem_fault(struct vm_fault *vmf) > { > #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ > struct vm_area_struct *area = vmf->vma; > @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) > pgoff_t page_offset; > unsigned int flags; > int ret; > + vm_fault_t retval; What's the point of changing the name? An unnecessary change. BR, Jani. > > /* We don't use vmf->pgoff since that has the fake offset */ > page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; > @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) > * and so needs to be reported. > */ > if (!i915_terminally_wedged(&dev_priv->gpu_error)) { > - ret = VM_FAULT_SIGBUS; > + retval = VM_FAULT_SIGBUS; > break; > } > case -EAGAIN: > @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) > * EBUSY is ok: this just means that another thread > * already did the job. > */ > - ret = VM_FAULT_NOPAGE; > + retval = VM_FAULT_NOPAGE; > break; > case -ENOMEM: > - ret = VM_FAULT_OOM; > + retval = VM_FAULT_OOM; > break; > case -ENOSPC: > case -EFAULT: > - ret = VM_FAULT_SIGBUS; > + retval = VM_FAULT_SIGBUS; > break; > default: > WARN_ONCE(ret, "unhandled error in i915_gem_fault: %i\n", ret); > - ret = VM_FAULT_SIGBUS; > + retval = VM_FAULT_SIGBUS; > break; > } > - return ret; > + return retval; > } > > static void __i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) > -- > 1.9.1 > -- Jani Nikula, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] gpu: drm: i915: Change return type to vm_fault_t 2018-04-17 15:29 ` Jani Nikula @ 2018-04-17 15:44 ` Souptick Joarder 2018-04-17 16:15 ` Matthew Wilcox 2018-04-17 16:18 ` Daniel Vetter 1 sibling, 1 reply; 7+ messages in thread From: Souptick Joarder @ 2018-04-17 15:44 UTC (permalink / raw) To: Jani Nikula Cc: joonas.lahtinen, rodrigo.vivi, airlied, intel-gfx, dri-devel, linux-kernel, Matthew Wilcox Not exactly. The plan for these patches is to introduce new vm_fault_t type in vm_operations_struct fault handlers. It's now available in 4.17-rc1. We will push all the required drivers/filesystem changes through different maintainers to linus tree. Once everything is converted into vm_fault_t type then Changing it from a signed to an unsigned int causes GCC to warn about an assignment from an incompatible type -- int foo(void) is incompatible with unsigned int foo(void). Please refer 1c8f422059ae ("mm: change return type to vm_fault_t") in 4.17-rc1. On Tue, Apr 17, 2018 at 8:59 PM, Jani Nikula <jani.nikula@linux.intel.com> wrote: > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: >> Use new return type vm_fault_t for fault handler. For >> now, this is just documenting that the function returns >> a VM_FAULT value rather than an errno. Once all instances >> are converted, vm_fault_t will become a distinct type. >> >> Reference id -> 1c8f422059ae ("mm: change return type to >> vm_fault_t") >> >> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> >> --- >> drivers/gpu/drm/i915/i915_drv.h | 3 ++- >> drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- >> 2 files changed, 10 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >> index a42deeb..95b0d50 100644 >> --- a/drivers/gpu/drm/i915/i915_drv.h >> +++ b/drivers/gpu/drm/i915/i915_drv.h >> @@ -51,6 +51,7 @@ >> #include <drm/drm_gem.h> >> #include <drm/drm_auth.h> >> #include <drm/drm_cache.h> >> +#include <linux/mm_types.h> >> >> #include "i915_params.h" >> #include "i915_reg.h" >> @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv, >> unsigned int flags); >> int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv); >> void i915_gem_resume(struct drm_i915_private *dev_priv); >> -int i915_gem_fault(struct vm_fault *vmf); >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf); >> int i915_gem_object_wait(struct drm_i915_gem_object *obj, >> unsigned int flags, >> long timeout, >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c >> index dd89abd..bdac690 100644 >> --- a/drivers/gpu/drm/i915/i915_gem.c >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) >> * The current feature set supported by i915_gem_fault() and thus GTT mmaps >> * is exposed via I915_PARAM_MMAP_GTT_VERSION (see i915_gem_mmap_gtt_version). >> */ >> -int i915_gem_fault(struct vm_fault *vmf) >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf) >> { >> #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ >> struct vm_area_struct *area = vmf->vma; >> @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> pgoff_t page_offset; >> unsigned int flags; >> int ret; >> + vm_fault_t retval; > > What's the point of changing the name? An unnecessary change. > > BR, > Jani. > >> >> /* We don't use vmf->pgoff since that has the fake offset */ >> page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; >> @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> * and so needs to be reported. >> */ >> if (!i915_terminally_wedged(&dev_priv->gpu_error)) { >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> } >> case -EAGAIN: >> @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) >> * EBUSY is ok: this just means that another thread >> * already did the job. >> */ >> - ret = VM_FAULT_NOPAGE; >> + retval = VM_FAULT_NOPAGE; >> break; >> case -ENOMEM: >> - ret = VM_FAULT_OOM; >> + retval = VM_FAULT_OOM; >> break; >> case -ENOSPC: >> case -EFAULT: >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> default: >> WARN_ONCE(ret, "unhandled error in i915_gem_fault: %i\n", ret); >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> } >> - return ret; >> + return retval; >> } >> >> static void __i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) >> -- >> 1.9.1 >> > > -- > Jani Nikula, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] gpu: drm: i915: Change return type to vm_fault_t 2018-04-17 15:44 ` Souptick Joarder @ 2018-04-17 16:15 ` Matthew Wilcox [not found] ` <CAFqt6zb5TgZEHHT9kTWsoQ8REy6rVjZ6uQN4oQ2LUatwG13jQw@mail.gmail.com> 0 siblings, 1 reply; 7+ messages in thread From: Matthew Wilcox @ 2018-04-17 16:15 UTC (permalink / raw) To: Souptick Joarder Cc: Jani Nikula, joonas.lahtinen, rodrigo.vivi, airlied, intel-gfx, dri-devel, linux-kernel On Tue, Apr 17, 2018 at 09:14:32PM +0530, Souptick Joarder wrote: > Not exactly. The plan for these patches is to introduce new vm_fault_t type > in vm_operations_struct fault handlers. It's now available in 4.17-rc1. We will > push all the required drivers/filesystem changes through different maintainers > to linus tree. Once everything is converted into vm_fault_t type then Changing > it from a signed to an unsigned int causes GCC to warn about an assignment > from an incompatible type -- int foo(void) is incompatible with > unsigned int foo(void). > > Please refer 1c8f422059ae ("mm: change return type to vm_fault_t") in 4.17-rc1. I think this patch would be clearer if you did - int ret; + int err; + vm_fault_t ret; Then it would be clearer to the maintainer that you're splitting apart the VM_FAULT and errno codes. Sorry for not catching this during initial review. > On Tue, Apr 17, 2018 at 8:59 PM, Jani Nikula > <jani.nikula@linux.intel.com> wrote: > > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: > >> Use new return type vm_fault_t for fault handler. For > >> now, this is just documenting that the function returns > >> a VM_FAULT value rather than an errno. Once all instances > >> are converted, vm_fault_t will become a distinct type. > >> > >> Reference id -> 1c8f422059ae ("mm: change return type to > >> vm_fault_t") > >> > >> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > >> --- > >> drivers/gpu/drm/i915/i915_drv.h | 3 ++- > >> drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- > >> 2 files changed, 10 insertions(+), 8 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > >> index a42deeb..95b0d50 100644 > >> --- a/drivers/gpu/drm/i915/i915_drv.h > >> +++ b/drivers/gpu/drm/i915/i915_drv.h > >> @@ -51,6 +51,7 @@ > >> #include <drm/drm_gem.h> > >> #include <drm/drm_auth.h> > >> #include <drm/drm_cache.h> > >> +#include <linux/mm_types.h> > >> > >> #include "i915_params.h" > >> #include "i915_reg.h" > >> @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv, > >> unsigned int flags); > >> int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv); > >> void i915_gem_resume(struct drm_i915_private *dev_priv); > >> -int i915_gem_fault(struct vm_fault *vmf); > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf); > >> int i915_gem_object_wait(struct drm_i915_gem_object *obj, > >> unsigned int flags, > >> long timeout, > >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > >> index dd89abd..bdac690 100644 > >> --- a/drivers/gpu/drm/i915/i915_gem.c > >> +++ b/drivers/gpu/drm/i915/i915_gem.c > >> @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) > >> * The current feature set supported by i915_gem_fault() and thus GTT mmaps > >> * is exposed via I915_PARAM_MMAP_GTT_VERSION (see i915_gem_mmap_gtt_version). > >> */ > >> -int i915_gem_fault(struct vm_fault *vmf) > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf) > >> { > >> #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ > >> struct vm_area_struct *area = vmf->vma; > >> @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) > >> pgoff_t page_offset; > >> unsigned int flags; > >> int ret; > >> + vm_fault_t retval; > > > > What's the point of changing the name? An unnecessary change. > > > > BR, > > Jani. > > > >> > >> /* We don't use vmf->pgoff since that has the fake offset */ > >> page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; > >> @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) > >> * and so needs to be reported. > >> */ > >> if (!i915_terminally_wedged(&dev_priv->gpu_error)) { > >> - ret = VM_FAULT_SIGBUS; > >> + retval = VM_FAULT_SIGBUS; > >> break; > >> } > >> case -EAGAIN: > >> @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) > >> * EBUSY is ok: this just means that another thread > >> * already did the job. > >> */ > >> - ret = VM_FAULT_NOPAGE; > >> + retval = VM_FAULT_NOPAGE; > >> break; > >> case -ENOMEM: > >> - ret = VM_FAULT_OOM; > >> + retval = VM_FAULT_OOM; > >> break; > >> case -ENOSPC: > >> case -EFAULT: > >> - ret = VM_FAULT_SIGBUS; > >> + retval = VM_FAULT_SIGBUS; > >> break; > >> default: > >> WARN_ONCE(ret, "unhandled error in i915_gem_fault: %i\n", ret); > >> - ret = VM_FAULT_SIGBUS; > >> + retval = VM_FAULT_SIGBUS; > >> break; > >> } > >> - return ret; > >> + return retval; > >> } > >> > >> static void __i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) > >> -- > >> 1.9.1 > >> > > > > -- > > Jani Nikula, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CAFqt6zb5TgZEHHT9kTWsoQ8REy6rVjZ6uQN4oQ2LUatwG13jQw@mail.gmail.com>]
* Re: [PATCH] gpu: drm: i915: Change return type to vm_fault_t [not found] ` <CAFqt6zb5TgZEHHT9kTWsoQ8REy6rVjZ6uQN4oQ2LUatwG13jQw@mail.gmail.com> @ 2018-04-18 5:46 ` Jani Nikula 2018-04-20 22:13 ` [Intel-gfx] " Rodrigo Vivi 0 siblings, 1 reply; 7+ messages in thread From: Jani Nikula @ 2018-04-18 5:46 UTC (permalink / raw) To: Souptick Joarder, Matthew Wilcox Cc: rodrigo.vivi, linux-kernel, joonas.lahtinen, intel-gfx, airlied, dri-devel On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: > On 17-Apr-2018 9:45 PM, "Matthew Wilcox" <willy@infradead.org> wrote: >> >> On Tue, Apr 17, 2018 at 09:14:32PM +0530, Souptick Joarder wrote: >> > Not exactly. The plan for these patches is to introduce new vm_fault_t > type >> > in vm_operations_struct fault handlers. It's now available in 4.17-rc1. > We will >> > push all the required drivers/filesystem changes through different > maintainers >> > to linus tree. Once everything is converted into vm_fault_t type then > Changing >> > it from a signed to an unsigned int causes GCC to warn about an > assignment >> > from an incompatible type -- int foo(void) is incompatible with >> > unsigned int foo(void). >> > >> > Please refer 1c8f422059ae ("mm: change return type to vm_fault_t") in > 4.17-rc1. >> >> I think this patch would be clearer if you did >> >> - int ret; >> + int err; >> + vm_fault_t ret; >> >> Then it would be clearer to the maintainer that you're splitting apart the >> VM_FAULT and errno codes. >> >> Sorry for not catching this during initial review. > > Ok, I will make required changes and send v2. Sorry, even I missed this :) I'm afraid Daniel is closer to the truth. My bad, sorry for the noise. BR, Jani. >> >> > On Tue, Apr 17, 2018 at 8:59 PM, Jani Nikula >> > <jani.nikula@linux.intel.com> wrote: >> > > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: >> > >> Use new return type vm_fault_t for fault handler. For >> > >> now, this is just documenting that the function returns >> > >> a VM_FAULT value rather than an errno. Once all instances >> > >> are converted, vm_fault_t will become a distinct type. >> > >> >> > >> Reference id -> 1c8f422059ae ("mm: change return type to >> > >> vm_fault_t") >> > >> >> > >> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> >> > >> --- >> > >> drivers/gpu/drm/i915/i915_drv.h | 3 ++- >> > >> drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- >> > >> 2 files changed, 10 insertions(+), 8 deletions(-) >> > >> >> > >> diff --git a/drivers/gpu/drm/i915/i915_drv.h > b/drivers/gpu/drm/i915/i915_drv.h >> > >> index a42deeb..95b0d50 100644 >> > >> --- a/drivers/gpu/drm/i915/i915_drv.h >> > >> +++ b/drivers/gpu/drm/i915/i915_drv.h >> > >> @@ -51,6 +51,7 @@ >> > >> #include <drm/drm_gem.h> >> > >> #include <drm/drm_auth.h> >> > >> #include <drm/drm_cache.h> >> > >> +#include <linux/mm_types.h> >> > >> >> > >> #include "i915_params.h" >> > >> #include "i915_reg.h" >> > >> @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct > drm_i915_private *dev_priv, >> > >> unsigned int flags); >> > >> int __must_check i915_gem_suspend(struct drm_i915_private > *dev_priv); >> > >> void i915_gem_resume(struct drm_i915_private *dev_priv); >> > >> -int i915_gem_fault(struct vm_fault *vmf); >> > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf); >> > >> int i915_gem_object_wait(struct drm_i915_gem_object *obj, >> > >> unsigned int flags, >> > >> long timeout, >> > >> diff --git a/drivers/gpu/drm/i915/i915_gem.c > b/drivers/gpu/drm/i915/i915_gem.c >> > >> index dd89abd..bdac690 100644 >> > >> --- a/drivers/gpu/drm/i915/i915_gem.c >> > >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> > >> @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) >> > >> * The current feature set supported by i915_gem_fault() and thus > GTT mmaps >> > >> * is exposed via I915_PARAM_MMAP_GTT_VERSION (see > i915_gem_mmap_gtt_version). >> > >> */ >> > >> -int i915_gem_fault(struct vm_fault *vmf) >> > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf) >> > >> { >> > >> #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ >> > >> struct vm_area_struct *area = vmf->vma; >> > >> @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> > >> pgoff_t page_offset; >> > >> unsigned int flags; >> > >> int ret; >> > >> + vm_fault_t retval; >> > > >> > > What's the point of changing the name? An unnecessary change. >> > > >> > > BR, >> > > Jani. >> > > >> > >> >> > >> /* We don't use vmf->pgoff since that has the fake offset */ >> > >> page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; >> > >> @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> > >> * and so needs to be reported. >> > >> */ >> > >> if (!i915_terminally_wedged(&dev_priv->gpu_error)) { >> > >> - ret = VM_FAULT_SIGBUS; >> > >> + retval = VM_FAULT_SIGBUS; >> > >> break; >> > >> } >> > >> case -EAGAIN: >> > >> @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) >> > >> * EBUSY is ok: this just means that another thread >> > >> * already did the job. >> > >> */ >> > >> - ret = VM_FAULT_NOPAGE; >> > >> + retval = VM_FAULT_NOPAGE; >> > >> break; >> > >> case -ENOMEM: >> > >> - ret = VM_FAULT_OOM; >> > >> + retval = VM_FAULT_OOM; >> > >> break; >> > >> case -ENOSPC: >> > >> case -EFAULT: >> > >> - ret = VM_FAULT_SIGBUS; >> > >> + retval = VM_FAULT_SIGBUS; >> > >> break; >> > >> default: >> > >> WARN_ONCE(ret, "unhandled error in i915_gem_fault: > %i\n", ret); >> > >> - ret = VM_FAULT_SIGBUS; >> > >> + retval = VM_FAULT_SIGBUS; >> > >> break; >> > >> } >> > >> - return ret; >> > >> + return retval; >> > >> } >> > >> >> > >> static void __i915_gem_object_release_mmap(struct > drm_i915_gem_object *obj) >> > >> -- >> > >> 1.9.1 >> > >> >> > > >> > > -- >> > > Jani Nikula, Intel Open Source Technology Center -- Jani Nikula, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-gfx] [PATCH] gpu: drm: i915: Change return type to vm_fault_t 2018-04-18 5:46 ` Jani Nikula @ 2018-04-20 22:13 ` Rodrigo Vivi 0 siblings, 0 replies; 7+ messages in thread From: Rodrigo Vivi @ 2018-04-20 22:13 UTC (permalink / raw) To: Jani Nikula Cc: Souptick Joarder, Matthew Wilcox, airlied, intel-gfx, linux-kernel, dri-devel On Wed, Apr 18, 2018 at 08:46:44AM +0300, Jani Nikula wrote: > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: > > On 17-Apr-2018 9:45 PM, "Matthew Wilcox" <willy@infradead.org> wrote: > >> > >> On Tue, Apr 17, 2018 at 09:14:32PM +0530, Souptick Joarder wrote: > >> > Not exactly. The plan for these patches is to introduce new vm_fault_t > > type > >> > in vm_operations_struct fault handlers. It's now available in 4.17-rc1. > > We will > >> > push all the required drivers/filesystem changes through different > > maintainers > >> > to linus tree. Once everything is converted into vm_fault_t type then > > Changing > >> > it from a signed to an unsigned int causes GCC to warn about an > > assignment > >> > from an incompatible type -- int foo(void) is incompatible with > >> > unsigned int foo(void). > >> > > >> > Please refer 1c8f422059ae ("mm: change return type to vm_fault_t") in > > 4.17-rc1. > >> > >> I think this patch would be clearer if you did > >> > >> - int ret; > >> + int err; > >> + vm_fault_t ret; > >> > >> Then it would be clearer to the maintainer that you're splitting apart the > >> VM_FAULT and errno codes. > >> > >> Sorry for not catching this during initial review. > > > > Ok, I will make required changes and send v2. Sorry, even I missed this :) > > I'm afraid Daniel is closer to the truth. +1. > My bad, sorry for the noise. I opened this thread to add exactly question/noise ;). So my recommendation for some next time is to make the intention clear on the commit message itself from the begin. > > BR, > Jani. > > > > >> > >> > On Tue, Apr 17, 2018 at 8:59 PM, Jani Nikula > >> > <jani.nikula@linux.intel.com> wrote: > >> > > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: > >> > >> Use new return type vm_fault_t for fault handler. For > >> > >> now, this is just documenting that the function returns > >> > >> a VM_FAULT value rather than an errno. Once all instances > >> > >> are converted, vm_fault_t will become a distinct type. > >> > >> > >> > >> Reference id -> 1c8f422059ae ("mm: change return type to > >> > >> vm_fault_t") > >> > >> > >> > >> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > >> > >> --- > >> > >> drivers/gpu/drm/i915/i915_drv.h | 3 ++- > >> > >> drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- > >> > >> 2 files changed, 10 insertions(+), 8 deletions(-) > >> > >> > >> > >> diff --git a/drivers/gpu/drm/i915/i915_drv.h > > b/drivers/gpu/drm/i915/i915_drv.h > >> > >> index a42deeb..95b0d50 100644 > >> > >> --- a/drivers/gpu/drm/i915/i915_drv.h > >> > >> +++ b/drivers/gpu/drm/i915/i915_drv.h > >> > >> @@ -51,6 +51,7 @@ > >> > >> #include <drm/drm_gem.h> > >> > >> #include <drm/drm_auth.h> > >> > >> #include <drm/drm_cache.h> > >> > >> +#include <linux/mm_types.h> > >> > >> > >> > >> #include "i915_params.h" > >> > >> #include "i915_reg.h" > >> > >> @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct > > drm_i915_private *dev_priv, > >> > >> unsigned int flags); > >> > >> int __must_check i915_gem_suspend(struct drm_i915_private > > *dev_priv); > >> > >> void i915_gem_resume(struct drm_i915_private *dev_priv); > >> > >> -int i915_gem_fault(struct vm_fault *vmf); > >> > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf); > >> > >> int i915_gem_object_wait(struct drm_i915_gem_object *obj, > >> > >> unsigned int flags, > >> > >> long timeout, > >> > >> diff --git a/drivers/gpu/drm/i915/i915_gem.c > > b/drivers/gpu/drm/i915/i915_gem.c > >> > >> index dd89abd..bdac690 100644 > >> > >> --- a/drivers/gpu/drm/i915/i915_gem.c > >> > >> +++ b/drivers/gpu/drm/i915/i915_gem.c > >> > >> @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) > >> > >> * The current feature set supported by i915_gem_fault() and thus > > GTT mmaps > >> > >> * is exposed via I915_PARAM_MMAP_GTT_VERSION (see > > i915_gem_mmap_gtt_version). > >> > >> */ > >> > >> -int i915_gem_fault(struct vm_fault *vmf) > >> > >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf) > >> > >> { > >> > >> #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ > >> > >> struct vm_area_struct *area = vmf->vma; > >> > >> @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) > >> > >> pgoff_t page_offset; > >> > >> unsigned int flags; > >> > >> int ret; > >> > >> + vm_fault_t retval; > >> > > > >> > > What's the point of changing the name? An unnecessary change. > >> > > > >> > > BR, > >> > > Jani. > >> > > > >> > >> > >> > >> /* We don't use vmf->pgoff since that has the fake offset */ > >> > >> page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; > >> > >> @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) > >> > >> * and so needs to be reported. > >> > >> */ > >> > >> if (!i915_terminally_wedged(&dev_priv->gpu_error)) { > >> > >> - ret = VM_FAULT_SIGBUS; > >> > >> + retval = VM_FAULT_SIGBUS; > >> > >> break; > >> > >> } > >> > >> case -EAGAIN: > >> > >> @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) > >> > >> * EBUSY is ok: this just means that another thread > >> > >> * already did the job. > >> > >> */ > >> > >> - ret = VM_FAULT_NOPAGE; > >> > >> + retval = VM_FAULT_NOPAGE; > >> > >> break; > >> > >> case -ENOMEM: > >> > >> - ret = VM_FAULT_OOM; > >> > >> + retval = VM_FAULT_OOM; > >> > >> break; > >> > >> case -ENOSPC: > >> > >> case -EFAULT: > >> > >> - ret = VM_FAULT_SIGBUS; > >> > >> + retval = VM_FAULT_SIGBUS; > >> > >> break; > >> > >> default: > >> > >> WARN_ONCE(ret, "unhandled error in i915_gem_fault: > > %i\n", ret); > >> > >> - ret = VM_FAULT_SIGBUS; > >> > >> + retval = VM_FAULT_SIGBUS; > >> > >> break; > >> > >> } > >> > >> - return ret; > >> > >> + return retval; > >> > >> } > >> > >> > >> > >> static void __i915_gem_object_release_mmap(struct > > drm_i915_gem_object *obj) > >> > >> -- > >> > >> 1.9.1 > >> > >> > >> > > > >> > > -- > >> > > Jani Nikula, Intel Open Source Technology Center > > -- > Jani Nikula, Intel Open Source Technology Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] gpu: drm: i915: Change return type to vm_fault_t 2018-04-17 15:29 ` Jani Nikula 2018-04-17 15:44 ` Souptick Joarder @ 2018-04-17 16:18 ` Daniel Vetter 1 sibling, 0 replies; 7+ messages in thread From: Daniel Vetter @ 2018-04-17 16:18 UTC (permalink / raw) To: Jani Nikula Cc: Souptick Joarder, Joonas Lahtinen, Rodrigo Vivi, Dave Airlie, intel-gfx, Matthew Wilcox, Linux Kernel Mailing List, dri-devel On Tue, Apr 17, 2018 at 5:29 PM, Jani Nikula <jani.nikula@linux.intel.com> wrote: > On Tue, 17 Apr 2018, Souptick Joarder <jrdr.linux@gmail.com> wrote: >> Use new return type vm_fault_t for fault handler. For >> now, this is just documenting that the function returns >> a VM_FAULT value rather than an errno. Once all instances >> are converted, vm_fault_t will become a distinct type. >> >> Reference id -> 1c8f422059ae ("mm: change return type to >> vm_fault_t") >> >> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> >> --- >> drivers/gpu/drm/i915/i915_drv.h | 3 ++- >> drivers/gpu/drm/i915/i915_gem.c | 15 ++++++++------- >> 2 files changed, 10 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h >> index a42deeb..95b0d50 100644 >> --- a/drivers/gpu/drm/i915/i915_drv.h >> +++ b/drivers/gpu/drm/i915/i915_drv.h >> @@ -51,6 +51,7 @@ >> #include <drm/drm_gem.h> >> #include <drm/drm_auth.h> >> #include <drm/drm_cache.h> >> +#include <linux/mm_types.h> >> >> #include "i915_params.h" >> #include "i915_reg.h" >> @@ -3363,7 +3364,7 @@ int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv, >> unsigned int flags); >> int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv); >> void i915_gem_resume(struct drm_i915_private *dev_priv); >> -int i915_gem_fault(struct vm_fault *vmf); >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf); >> int i915_gem_object_wait(struct drm_i915_gem_object *obj, >> unsigned int flags, >> long timeout, >> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c >> index dd89abd..bdac690 100644 >> --- a/drivers/gpu/drm/i915/i915_gem.c >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> @@ -1882,7 +1882,7 @@ int i915_gem_mmap_gtt_version(void) >> * The current feature set supported by i915_gem_fault() and thus GTT mmaps >> * is exposed via I915_PARAM_MMAP_GTT_VERSION (see i915_gem_mmap_gtt_version). >> */ >> -int i915_gem_fault(struct vm_fault *vmf) >> +vm_fault_t i915_gem_fault(struct vm_fault *vmf) >> { >> #define MIN_CHUNK_PAGES ((1 << 20) >> PAGE_SHIFT) /* 1 MiB */ >> struct vm_area_struct *area = vmf->vma; >> @@ -1895,6 +1895,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> pgoff_t page_offset; >> unsigned int flags; >> int ret; >> + vm_fault_t retval; > > What's the point of changing the name? An unnecessary change. int ret; already exists and is used. You can't also have a vm_fault_t ret; on top of that :-) -Daniel > > BR, > Jani. > >> >> /* We don't use vmf->pgoff since that has the fake offset */ >> page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT; >> @@ -2000,7 +2001,7 @@ int i915_gem_fault(struct vm_fault *vmf) >> * and so needs to be reported. >> */ >> if (!i915_terminally_wedged(&dev_priv->gpu_error)) { >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> } >> case -EAGAIN: >> @@ -2017,21 +2018,21 @@ int i915_gem_fault(struct vm_fault *vmf) >> * EBUSY is ok: this just means that another thread >> * already did the job. >> */ >> - ret = VM_FAULT_NOPAGE; >> + retval = VM_FAULT_NOPAGE; >> break; >> case -ENOMEM: >> - ret = VM_FAULT_OOM; >> + retval = VM_FAULT_OOM; >> break; >> case -ENOSPC: >> case -EFAULT: >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> default: >> WARN_ONCE(ret, "unhandled error in i915_gem_fault: %i\n", ret); >> - ret = VM_FAULT_SIGBUS; >> + retval = VM_FAULT_SIGBUS; >> break; >> } >> - return ret; >> + return retval; >> } >> >> static void __i915_gem_object_release_mmap(struct drm_i915_gem_object *obj) >> -- >> 1.9.1 >> > > -- > Jani Nikula, Intel Open Source Technology Center > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-04-20 22:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-17 15:11 [PATCH] gpu: drm: i915: Change return type to vm_fault_t Souptick Joarder
2018-04-17 15:29 ` Jani Nikula
2018-04-17 15:44 ` Souptick Joarder
2018-04-17 16:15 ` Matthew Wilcox
[not found] ` <CAFqt6zb5TgZEHHT9kTWsoQ8REy6rVjZ6uQN4oQ2LUatwG13jQw@mail.gmail.com>
2018-04-18 5:46 ` Jani Nikula
2018-04-20 22:13 ` [Intel-gfx] " Rodrigo Vivi
2018-04-17 16:18 ` Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox