* [PATCH] drm/vgem: Convert to a struct drm_device subclass
@ 2017-05-08 13:22 Chris Wilson
2017-05-08 13:43 ` ✓ Fi.CI.BAT: success for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Chris Wilson @ 2017-05-08 13:22 UTC (permalink / raw)
To: dri-devel; +Cc: Daniel Vetter, intel-gfx
With Laura's introduction of the fake platform device for importing
dmabuf, we add a second static that is logically tied to the vgem_device.
Convert vgem over to using the struct drm_device subclassing, so that
the platform device is stored inside its owner.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/vgem/vgem_drv.c | 63 +++++++++++++++++++++++++++--------------
1 file changed, 41 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index c9381d457a03..4b23ba049632 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -42,7 +42,10 @@
#define DRIVER_MAJOR 1
#define DRIVER_MINOR 0
-static struct platform_device *vgem_platform;
+static struct vgem_device {
+ struct drm_device drm;
+ struct platform_device *platform;
+} *vgem_device;
static void vgem_gem_free_object(struct drm_gem_object *obj)
{
@@ -307,7 +310,9 @@ static struct sg_table *vgem_prime_get_sg_table(struct drm_gem_object *obj)
static struct drm_gem_object* vgem_prime_import(struct drm_device *dev,
struct dma_buf *dma_buf)
{
- return drm_gem_prime_import_dev(dev, dma_buf, &vgem_platform->dev);
+ struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
+
+ return drm_gem_prime_import_dev(dev, dma_buf, &vgem->platform->dev);
}
static struct drm_gem_object *vgem_prime_import_sg_table(struct drm_device *dev,
@@ -377,8 +382,19 @@ static int vgem_prime_mmap(struct drm_gem_object *obj,
return 0;
}
+static void vgem_release(struct drm_device *dev)
+{
+ struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
+
+ platform_device_unregister(vgem->platform);
+ drm_dev_fini(&vgem->drm);
+
+ kfree(vgem);
+}
+
static struct drm_driver vgem_driver = {
.driver_features = DRIVER_GEM | DRIVER_PRIME,
+ .release = vgem_release,
.open = vgem_open,
.postclose = vgem_postclose,
.gem_free_object_unlocked = vgem_gem_free_object,
@@ -408,45 +424,48 @@ static struct drm_driver vgem_driver = {
.minor = DRIVER_MINOR,
};
-static struct drm_device *vgem_device;
-
static int __init vgem_init(void)
{
int ret;
- vgem_device = drm_dev_alloc(&vgem_driver, NULL);
- if (IS_ERR(vgem_device))
- return PTR_ERR(vgem_device);
+ vgem_device = kzalloc(sizeof(*vgem_device), GFP_KERNEL);
+ if (!vgem_device)
+ return -ENOMEM;
- vgem_platform = platform_device_register_simple("vgem",
- -1, NULL, 0);
+ ret = drm_dev_init(&vgem_device->drm, &vgem_driver, NULL);
+ if (ret)
+ goto out_free;
- if (!vgem_platform) {
+ vgem_device->platform =
+ platform_device_register_simple("vgem", -1, NULL, 0);
+ if (!vgem_device->platform) {
ret = -ENODEV;
- goto out;
+ goto out_fini;
}
- dma_coerce_mask_and_coherent(&vgem_platform->dev,
- DMA_BIT_MASK(64));
+ dma_coerce_mask_and_coherent(&vgem_device->platform->dev,
+ DMA_BIT_MASK(64));
- ret = drm_dev_register(vgem_device, 0);
+ /* Final step: expose the device/driver to userspace */
+ ret = drm_dev_register(&vgem_device->drm, 0);
if (ret)
- goto out_unref;
+ goto out_unregister;
return 0;
-out_unref:
- platform_device_unregister(vgem_platform);
-out:
- drm_dev_unref(vgem_device);
+out_unregister:
+ platform_device_unregister(vgem_device->platform);
+out_fini:
+ drm_dev_fini(&vgem_device->drm);
+out_free:
+ kfree(vgem_device);
return ret;
}
static void __exit vgem_exit(void)
{
- platform_device_unregister(vgem_platform);
- drm_dev_unregister(vgem_device);
- drm_dev_unref(vgem_device);
+ drm_dev_unregister(&vgem_device->drm);
+ drm_dev_unref(&vgem_device->drm);
}
module_init(vgem_init);
--
2.11.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for drm/vgem: Convert to a struct drm_device subclass
2017-05-08 13:22 [PATCH] drm/vgem: Convert to a struct drm_device subclass Chris Wilson
@ 2017-05-08 13:43 ` Patchwork
2017-05-09 19:20 ` [PATCH] " Laura Abbott
2017-05-10 17:35 ` ✓ Fi.CI.BAT: success for drm/vgem: Convert to a struct drm_device subclass (rev2) Patchwork
2 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2017-05-08 13:43 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/vgem: Convert to a struct drm_device subclass
URL : https://patchwork.freedesktop.org/series/24119/
State : success
== Summary ==
Series 24119v1 drm/vgem: Convert to a struct drm_device subclass
https://patchwork.freedesktop.org/api/1.0/series/24119/revisions/1/mbox/
Test gem_exec_suspend:
Subgroup basic-s4-devices:
pass -> DMESG-WARN (fi-kbl-7560u) fdo#100125
fdo#100125 https://bugs.freedesktop.org/show_bug.cgi?id=100125
fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 time:435s
fi-bdw-gvtdvm total:278 pass:256 dwarn:8 dfail:0 fail:0 skip:14 time:428s
fi-bsw-n3050 total:278 pass:242 dwarn:0 dfail:0 fail:0 skip:36 time:573s
fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 time:506s
fi-bxt-t5700 total:278 pass:258 dwarn:0 dfail:0 fail:0 skip:20 time:550s
fi-byt-j1900 total:278 pass:254 dwarn:0 dfail:0 fail:0 skip:24 time:485s
fi-byt-n2820 total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time:476s
fi-elk-e7500 total:278 pass:221 dwarn:0 dfail:0 fail:0 skip:57 time:404s
fi-hsw-4770 total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time:406s
fi-hsw-4770r total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time:410s
fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 time:417s
fi-ivb-3520m total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:492s
fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:488s
fi-kbl-7500u total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:459s
fi-kbl-7560u total:278 pass:267 dwarn:1 dfail:0 fail:0 skip:10 time:565s
fi-skl-6260u total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time:457s
fi-skl-6700hq total:278 pass:261 dwarn:0 dfail:0 fail:0 skip:17 time:570s
fi-skl-6700k total:278 pass:256 dwarn:4 dfail:0 fail:0 skip:18 time:462s
fi-skl-6770hq total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time:494s
fi-skl-gvtdvm total:278 pass:265 dwarn:0 dfail:0 fail:0 skip:13 time:428s
fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time:535s
fi-snb-2600 total:278 pass:249 dwarn:0 dfail:0 fail:0 skip:29 time:396s
f3c6147e2a7879ee7face0b7b634dd26704fc3d4 drm-tip: 2017y-05m-08d-11h-23m-22s UTC integration manifest
200a832 drm/vgem: Convert to a struct drm_device subclass
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4641/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/vgem: Convert to a struct drm_device subclass
2017-05-08 13:22 [PATCH] drm/vgem: Convert to a struct drm_device subclass Chris Wilson
2017-05-08 13:43 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-05-09 19:20 ` Laura Abbott
2017-05-10 8:15 ` Daniel Vetter
2017-05-10 17:35 ` ✓ Fi.CI.BAT: success for drm/vgem: Convert to a struct drm_device subclass (rev2) Patchwork
2 siblings, 1 reply; 14+ messages in thread
From: Laura Abbott @ 2017-05-09 19:20 UTC (permalink / raw)
To: Chris Wilson, dri-devel; +Cc: Daniel Vetter, intel-gfx
On 05/08/2017 06:22 AM, Chris Wilson wrote:
> With Laura's introduction of the fake platform device for importing
> dmabuf, we add a second static that is logically tied to the vgem_device.
> Convert vgem over to using the struct drm_device subclassing, so that
> the platform device is stored inside its owner.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Laura Abbott <labbott@redhat.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> drivers/gpu/drm/vgem/vgem_drv.c | 63 +++++++++++++++++++++++++++--------------
> 1 file changed, 41 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
> index c9381d457a03..4b23ba049632 100644
> --- a/drivers/gpu/drm/vgem/vgem_drv.c
> +++ b/drivers/gpu/drm/vgem/vgem_drv.c
> @@ -42,7 +42,10 @@
> #define DRIVER_MAJOR 1
> #define DRIVER_MINOR 0
>
> -static struct platform_device *vgem_platform;
> +static struct vgem_device {
> + struct drm_device drm;
> + struct platform_device *platform;
> +} *vgem_device;
>
> static void vgem_gem_free_object(struct drm_gem_object *obj)
> {
> @@ -307,7 +310,9 @@ static struct sg_table *vgem_prime_get_sg_table(struct drm_gem_object *obj)
> static struct drm_gem_object* vgem_prime_import(struct drm_device *dev,
> struct dma_buf *dma_buf)
> {
> - return drm_gem_prime_import_dev(dev, dma_buf, &vgem_platform->dev);
> + struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
> +
> + return drm_gem_prime_import_dev(dev, dma_buf, &vgem->platform->dev);
> }
>
> static struct drm_gem_object *vgem_prime_import_sg_table(struct drm_device *dev,
> @@ -377,8 +382,19 @@ static int vgem_prime_mmap(struct drm_gem_object *obj,
> return 0;
> }
>
> +static void vgem_release(struct drm_device *dev)
> +{
> + struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
> +
> + platform_device_unregister(vgem->platform);
> + drm_dev_fini(&vgem->drm);
> +
> + kfree(vgem);
> +}
> +
> static struct drm_driver vgem_driver = {
> .driver_features = DRIVER_GEM | DRIVER_PRIME,
> + .release = vgem_release,
> .open = vgem_open,
> .postclose = vgem_postclose,
> .gem_free_object_unlocked = vgem_gem_free_object,
> @@ -408,45 +424,48 @@ static struct drm_driver vgem_driver = {
> .minor = DRIVER_MINOR,
> };
>
> -static struct drm_device *vgem_device;
> -
> static int __init vgem_init(void)
> {
> int ret;
>
> - vgem_device = drm_dev_alloc(&vgem_driver, NULL);
> - if (IS_ERR(vgem_device))
> - return PTR_ERR(vgem_device);
> + vgem_device = kzalloc(sizeof(*vgem_device), GFP_KERNEL);
> + if (!vgem_device)
> + return -ENOMEM;
>
> - vgem_platform = platform_device_register_simple("vgem",
> - -1, NULL, 0);
> + ret = drm_dev_init(&vgem_device->drm, &vgem_driver, NULL);
> + if (ret)
> + goto out_free;
>
> - if (!vgem_platform) {
> + vgem_device->platform =
> + platform_device_register_simple("vgem", -1, NULL, 0);
> + if (!vgem_device->platform) {
> ret = -ENODEV;
> - goto out;
> + goto out_fini;
> }
>
> - dma_coerce_mask_and_coherent(&vgem_platform->dev,
> - DMA_BIT_MASK(64));
> + dma_coerce_mask_and_coherent(&vgem_device->platform->dev,
> + DMA_BIT_MASK(64));
>
> - ret = drm_dev_register(vgem_device, 0);
> + /* Final step: expose the device/driver to userspace */
> + ret = drm_dev_register(&vgem_device->drm, 0);
> if (ret)
> - goto out_unref;
> + goto out_unregister;
>
> return 0;
>
> -out_unref:
> - platform_device_unregister(vgem_platform);
> -out:
> - drm_dev_unref(vgem_device);
> +out_unregister:
> + platform_device_unregister(vgem_device->platform);
> +out_fini:
> + drm_dev_fini(&vgem_device->drm > +out_free:
> + kfree(vgem_device);
> return ret;
> }
>
> static void __exit vgem_exit(void)
> {
> - platform_device_unregister(vgem_platform);
> - drm_dev_unregister(vgem_device);
> - drm_dev_unref(vgem_device);
> + drm_dev_unregister(&vgem_device->drm);
> + drm_dev_unref(&vgem_device->drm);
> }
>
> module_init(vgem_init);
>
Reviewed-by: Laura Abbott <labbott@redhat.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/vgem: Convert to a struct drm_device subclass
2017-05-09 19:20 ` [PATCH] " Laura Abbott
@ 2017-05-10 8:15 ` Daniel Vetter
2017-05-10 14:40 ` Laura Abbott
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Daniel Vetter @ 2017-05-10 8:15 UTC (permalink / raw)
To: Laura Abbott; +Cc: Daniel Vetter, intel-gfx, dri-devel
On Tue, May 09, 2017 at 12:20:32PM -0700, Laura Abbott wrote:
> On 05/08/2017 06:22 AM, Chris Wilson wrote:
> > With Laura's introduction of the fake platform device for importing
> > dmabuf, we add a second static that is logically tied to the vgem_device.
> > Convert vgem over to using the struct drm_device subclassing, so that
> > the platform device is stored inside its owner.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Laura Abbott <labbott@redhat.com>
> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> > drivers/gpu/drm/vgem/vgem_drv.c | 63 +++++++++++++++++++++++++++--------------
> > 1 file changed, 41 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
> > index c9381d457a03..4b23ba049632 100644
> > --- a/drivers/gpu/drm/vgem/vgem_drv.c
> > +++ b/drivers/gpu/drm/vgem/vgem_drv.c
> > @@ -42,7 +42,10 @@
> > #define DRIVER_MAJOR 1
> > #define DRIVER_MINOR 0
> > -static struct platform_device *vgem_platform;
> > +static struct vgem_device {
> > + struct drm_device drm;
> > + struct platform_device *platform;
> > +} *vgem_device;
> > static void vgem_gem_free_object(struct drm_gem_object *obj)
> > {
> > @@ -307,7 +310,9 @@ static struct sg_table *vgem_prime_get_sg_table(struct drm_gem_object *obj)
> > static struct drm_gem_object* vgem_prime_import(struct drm_device *dev,
> > struct dma_buf *dma_buf)
> > {
> > - return drm_gem_prime_import_dev(dev, dma_buf, &vgem_platform->dev);
> > + struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
> > +
> > + return drm_gem_prime_import_dev(dev, dma_buf, &vgem->platform->dev);
> > }
> > static struct drm_gem_object *vgem_prime_import_sg_table(struct drm_device *dev,
> > @@ -377,8 +382,19 @@ static int vgem_prime_mmap(struct drm_gem_object *obj,
> > return 0;
> > }
> > +static void vgem_release(struct drm_device *dev)
> > +{
> > + struct vgem_device *vgem = container_of(dev, typeof(*vgem), drm);
> > +
> > + platform_device_unregister(vgem->platform);
> > + drm_dev_fini(&vgem->drm);
> > +
> > + kfree(vgem);
> > +}
> > +
> > static struct drm_driver vgem_driver = {
> > .driver_features = DRIVER_GEM | DRIVER_PRIME,
> > + .release = vgem_release,
> > .open = vgem_open,
> > .postclose = vgem_postclose,
> > .gem_free_object_unlocked = vgem_gem_free_object,
> > @@ -408,45 +424,48 @@ static struct drm_driver vgem_driver = {
> > .minor = DRIVER_MINOR,
> > };
> > -static struct drm_device *vgem_device;
> > -
> > static int __init vgem_init(void)
> > {
> > int ret;
> > - vgem_device = drm_dev_alloc(&vgem_driver, NULL);
> > - if (IS_ERR(vgem_device))
> > - return PTR_ERR(vgem_device);
> > + vgem_device = kzalloc(sizeof(*vgem_device), GFP_KERNEL);
> > + if (!vgem_device)
> > + return -ENOMEM;
> > - vgem_platform = platform_device_register_simple("vgem",
> > - -1, NULL, 0);
> > + ret = drm_dev_init(&vgem_device->drm, &vgem_driver, NULL);
> > + if (ret)
> > + goto out_free;
> > - if (!vgem_platform) {
> > + vgem_device->platform =
> > + platform_device_register_simple("vgem", -1, NULL, 0);
> > + if (!vgem_device->platform) {
> > ret = -ENODEV;
> > - goto out;
> > + goto out_fini;
> > }
> > - dma_coerce_mask_and_coherent(&vgem_platform->dev,
> > - DMA_BIT_MASK(64));
> > + dma_coerce_mask_and_coherent(&vgem_device->platform->dev,
> > + DMA_BIT_MASK(64));
> > - ret = drm_dev_register(vgem_device, 0);
> > + /* Final step: expose the device/driver to userspace */
> > + ret = drm_dev_register(&vgem_device->drm, 0);
> > if (ret)
> > - goto out_unref;
> > + goto out_unregister;
> > return 0;
> > -out_unref:
> > - platform_device_unregister(vgem_platform);
> > -out:
> > - drm_dev_unref(vgem_device);
> > +out_unregister:
> > + platform_device_unregister(vgem_device->platform);
> > +out_fini:
> > + drm_dev_fini(&vgem_device->drm > +out_free:
> > + kfree(vgem_device);
> > return ret;
> > }
> > static void __exit vgem_exit(void)
> > {
> > - platform_device_unregister(vgem_platform);
> > - drm_dev_unregister(vgem_device);
> > - drm_dev_unref(vgem_device);
> > + drm_dev_unregister(&vgem_device->drm);
> > + drm_dev_unref(&vgem_device->drm);
> > }
> > module_init(vgem_init);
> >
>
> Reviewed-by: Laura Abbott <labbott@redhat.com>
Applied, thanks for patch&review. Btw, I thought there was a small
0day/gcc issue that needs a fixup. Does this patch address it, or is there
some other patch I've failed to spot&apply?
Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] drm/prime: include device.h
2017-05-10 8:15 ` Daniel Vetter
@ 2017-05-10 14:40 ` Laura Abbott
2017-05-10 14:59 ` ✗ Fi.CI.BAT: failure for drm/prime: include device.h Patchwork
2017-05-10 17:16 ` ✓ Fi.CI.BAT: success " Patchwork
2 siblings, 0 replies; 14+ messages in thread
From: Laura Abbott @ 2017-05-10 14:40 UTC (permalink / raw)
To: Daniel Vetter, Chris Wilson
Cc: Laura Abbott, dri-devel, linux-kernel, intel-gfx
Explictly add linux/device.h to ensure struct device is defined:
In file included from include/drm/drm_file.h:38:0,
from drivers/gpu/drm/drm_file.c:38:
include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
parameter list will not be visible outside of this definition or
declaration
struct device *attach_dev);
^~~~~~
Signed-off-by: Laura Abbott <labbott@redhat.com>
---
Sorry, missed sending this out
---
include/drm/drm_prime.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
index 46fd1fb..8ef37c8 100644
--- a/include/drm/drm_prime.h
+++ b/include/drm/drm_prime.h
@@ -35,6 +35,7 @@
#include <linux/mutex.h>
#include <linux/rbtree.h>
#include <linux/scatterlist.h>
+#include <linux/device.h>
/**
* struct drm_prime_file_private - per-file tracking for PRIME
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH] drm/prime: include device.h
@ 2017-05-10 14:40 ` Laura Abbott
0 siblings, 0 replies; 14+ messages in thread
From: Laura Abbott @ 2017-05-10 14:40 UTC (permalink / raw)
To: Daniel Vetter, Chris Wilson; +Cc: intel-gfx, linux-kernel, dri-devel
Explictly add linux/device.h to ensure struct device is defined:
In file included from include/drm/drm_file.h:38:0,
from drivers/gpu/drm/drm_file.c:38:
include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
parameter list will not be visible outside of this definition or
declaration
struct device *attach_dev);
^~~~~~
Signed-off-by: Laura Abbott <labbott@redhat.com>
---
Sorry, missed sending this out
---
include/drm/drm_prime.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
index 46fd1fb..8ef37c8 100644
--- a/include/drm/drm_prime.h
+++ b/include/drm/drm_prime.h
@@ -35,6 +35,7 @@
#include <linux/mutex.h>
#include <linux/rbtree.h>
#include <linux/scatterlist.h>
+#include <linux/device.h>
/**
* struct drm_prime_file_private - per-file tracking for PRIME
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/prime: include device.h
2017-05-10 14:40 ` Laura Abbott
@ 2017-05-10 14:48 ` Chris Wilson
-1 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2017-05-10 14:48 UTC (permalink / raw)
To: Laura Abbott; +Cc: Daniel Vetter, dri-devel, linux-kernel, intel-gfx
On Wed, May 10, 2017 at 07:40:01AM -0700, Laura Abbott wrote:
> Explictly add linux/device.h to ensure struct device is defined:
>
> In file included from include/drm/drm_file.h:38:0,
> from drivers/gpu/drm/drm_file.c:38:
> include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
> parameter list will not be visible outside of this definition or
> declaration
> struct device *attach_dev);
We aren't using it for anything other than an opaque pointer, so a
struct device;
forward decl will suffice?
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] drm/prime: include device.h
@ 2017-05-10 14:48 ` Chris Wilson
0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2017-05-10 14:48 UTC (permalink / raw)
To: Laura Abbott; +Cc: Daniel Vetter, intel-gfx, linux-kernel, dri-devel
On Wed, May 10, 2017 at 07:40:01AM -0700, Laura Abbott wrote:
> Explictly add linux/device.h to ensure struct device is defined:
>
> In file included from include/drm/drm_file.h:38:0,
> from drivers/gpu/drm/drm_file.c:38:
> include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
> parameter list will not be visible outside of this definition or
> declaration
> struct device *attach_dev);
We aren't using it for anything other than an opaque pointer, so a
struct device;
forward decl will suffice?
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/prime: include device.h
2017-05-10 8:15 ` Daniel Vetter
2017-05-10 14:40 ` Laura Abbott
@ 2017-05-10 14:59 ` Patchwork
2017-05-10 17:16 ` ✓ Fi.CI.BAT: success " Patchwork
2 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2017-05-10 14:59 UTC (permalink / raw)
To: Laura Abbott; +Cc: intel-gfx
== Series Details ==
Series: drm/prime: include device.h
URL : https://patchwork.freedesktop.org/series/24226/
State : failure
== Summary ==
Series 24226v1 drm/prime: include device.h
https://patchwork.freedesktop.org/api/1.0/series/24226/revisions/1/mbox/
Test gem_busy:
Subgroup basic-hang-default:
pass -> DMESG-WARN (fi-elk-e7500) fdo#100942 +1
Test gem_close_race:
Subgroup basic-process:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-threads:
pass -> SKIP (fi-elk-e7500)
Test gem_cpu_reloc:
Subgroup basic:
pass -> SKIP (fi-elk-e7500)
Test gem_cs_tlb:
Subgroup basic-default:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_basic:
Subgroup basic-bsd:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-render:
pass -> SKIP (fi-elk-e7500)
Subgroup gtt-bsd:
pass -> SKIP (fi-elk-e7500)
Subgroup gtt-default:
pass -> SKIP (fi-elk-e7500)
Subgroup gtt-render:
pass -> SKIP (fi-elk-e7500)
Subgroup readonly-bsd:
pass -> SKIP (fi-elk-e7500)
Subgroup readonly-default:
pass -> SKIP (fi-elk-e7500)
Subgroup readonly-render:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_create:
Subgroup basic:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_fence:
Subgroup basic-busy-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wait-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-await-default:
pass -> SKIP (fi-elk-e7500)
Subgroup nb-await-default:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_flush:
Subgroup basic-batch-kernel-default-uc:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-batch-kernel-default-wb:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-uc-pro-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-uc-prw-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-uc-ro-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-uc-rw-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-uc-set-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-pro-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-prw-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-ro-before-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-ro-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-rw-before-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-rw-default:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-wb-set-default:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_gttfill:
Subgroup basic:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_nop:
Subgroup basic-parallel:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-series:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_parallel:
Subgroup basic:
pass -> SKIP (fi-elk-e7500)
Test gem_exec_reloc:
Subgroup basic-cpu:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-gtt:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-cpu-gtt:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-gtt-cpu:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-cpu-read:
pass -> SKIP (fi-elk-e7500)
Subgroup basic-gtt-read:
WARNING: Long output truncated
978d7cf5f470ccdde039ab2c73d8260fcc610ffd drm-tip: 2017y-05m-10d-11h-11m-28s UTC integration manifest
59043ff drm/prime: include device.h
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4659/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCHv2] drm/prime: Forward declare struct device
2017-05-10 14:48 ` Chris Wilson
@ 2017-05-10 17:05 ` Laura Abbott
-1 siblings, 0 replies; 14+ messages in thread
From: Laura Abbott @ 2017-05-10 17:05 UTC (permalink / raw)
To: Daniel Vetter, Chris Wilson
Cc: Laura Abbott, dri-devel, linux-kernel, intel-gfx
We need a declaration of struct device to avoid warnings:
In file included from include/drm/drm_file.h:38:0,
from drivers/gpu/drm/drm_file.c:38:
include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
parameter list will not be visible outside of this definition or
declaration
struct device *attach_dev);
^~~~~~
Forward declare it.
Signed-off-by: Laura Abbott <labbott@redhat.com>
---
v2: Switch to foward declaration instead of including a header.
---
include/drm/drm_prime.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
index 46fd1fb..59ccab4 100644
--- a/include/drm/drm_prime.h
+++ b/include/drm/drm_prime.h
@@ -50,6 +50,8 @@ struct drm_prime_file_private {
struct rb_root handles;
};
+struct device;
+
struct dma_buf_export_info;
struct dma_buf;
--
2.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv2] drm/prime: Forward declare struct device
@ 2017-05-10 17:05 ` Laura Abbott
0 siblings, 0 replies; 14+ messages in thread
From: Laura Abbott @ 2017-05-10 17:05 UTC (permalink / raw)
To: Daniel Vetter, Chris Wilson
Cc: intel-gfx, Laura Abbott, linux-kernel, dri-devel
We need a declaration of struct device to avoid warnings:
In file included from include/drm/drm_file.h:38:0,
from drivers/gpu/drm/drm_file.c:38:
include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
parameter list will not be visible outside of this definition or
declaration
struct device *attach_dev);
^~~~~~
Forward declare it.
Signed-off-by: Laura Abbott <labbott@redhat.com>
---
v2: Switch to foward declaration instead of including a header.
---
include/drm/drm_prime.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
index 46fd1fb..59ccab4 100644
--- a/include/drm/drm_prime.h
+++ b/include/drm/drm_prime.h
@@ -50,6 +50,8 @@ struct drm_prime_file_private {
struct rb_root handles;
};
+struct device;
+
struct dma_buf_export_info;
struct dma_buf;
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCHv2] drm/prime: Forward declare struct device
2017-05-10 17:05 ` Laura Abbott
(?)
@ 2017-05-10 17:13 ` Sumit Semwal
-1 siblings, 0 replies; 14+ messages in thread
From: Sumit Semwal @ 2017-05-10 17:13 UTC (permalink / raw)
To: Laura Abbott
Cc: Daniel Vetter, Chris Wilson, DRI mailing list, LKML,
Intel Graphics Development
Hi Laura,
On 10 May 2017 at 22:35, Laura Abbott <labbott@redhat.com> wrote:
>
> We need a declaration of struct device to avoid warnings:
>
> In file included from include/drm/drm_file.h:38:0,
> from drivers/gpu/drm/drm_file.c:38:
> include/drm/drm_prime.h:71:14: warning: 'struct device' declared inside
> parameter list will not be visible outside of this definition or
> declaration
> struct device *attach_dev);
> ^~~~~~
>
> Forward declare it.
>
> Signed-off-by: Laura Abbott <labbott@redhat.com>
Thanks for the patch; feel free to add my
Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>
> ---
> v2: Switch to foward declaration instead of including a header.
> ---
> include/drm/drm_prime.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
> index 46fd1fb..59ccab4 100644
> --- a/include/drm/drm_prime.h
> +++ b/include/drm/drm_prime.h
> @@ -50,6 +50,8 @@ struct drm_prime_file_private {
> struct rb_root handles;
> };
>
> +struct device;
> +
> struct dma_buf_export_info;
> struct dma_buf;
>
> --
> 2.7.4
>
Best,
Sumit.
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for drm/prime: include device.h
2017-05-10 8:15 ` Daniel Vetter
2017-05-10 14:40 ` Laura Abbott
2017-05-10 14:59 ` ✗ Fi.CI.BAT: failure for drm/prime: include device.h Patchwork
@ 2017-05-10 17:16 ` Patchwork
2 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2017-05-10 17:16 UTC (permalink / raw)
To: Laura Abbott; +Cc: intel-gfx
== Series Details ==
Series: drm/prime: include device.h
URL : https://patchwork.freedesktop.org/series/24226/
State : success
== Summary ==
Series 24226v1 drm/prime: include device.h
https://patchwork.freedesktop.org/api/1.0/series/24226/revisions/1/mbox/
Test gem_busy:
Subgroup basic-hang-default:
dmesg-warn -> PASS (fi-elk-e7500) fdo#100942 +1
Test gem_close_race:
Subgroup basic-process:
skip -> PASS (fi-elk-e7500)
Subgroup basic-threads:
skip -> PASS (fi-elk-e7500)
Test gem_cpu_reloc:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_cs_tlb:
Subgroup basic-default:
skip -> PASS (fi-elk-e7500)
Test gem_exec_basic:
Subgroup basic-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup basic-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-render:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-default:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-render:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-default:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-render:
skip -> PASS (fi-elk-e7500)
Test gem_exec_create:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_exec_fence:
Subgroup basic-busy-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wait-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-await-default:
skip -> PASS (fi-elk-e7500)
Subgroup nb-await-default:
skip -> PASS (fi-elk-e7500)
Test gem_exec_flush:
Subgroup basic-batch-kernel-default-uc:
skip -> PASS (fi-elk-e7500)
Subgroup basic-batch-kernel-default-wb:
skip -> PASS (fi-elk-e7500)
Subgroup basic-uc-pro-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-uc-prw-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-uc-ro-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-uc-rw-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-uc-set-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-pro-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-prw-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-ro-before-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-ro-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-rw-before-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-rw-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wb-set-default:
skip -> PASS (fi-elk-e7500)
Test gem_exec_gttfill:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_exec_nop:
Subgroup basic-parallel:
skip -> PASS (fi-elk-e7500)
Subgroup basic-series:
skip -> PASS (fi-elk-e7500)
Test gem_exec_parallel:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_exec_reloc:
Subgroup basic-cpu:
skip -> PASS (fi-elk-e7500)
Subgroup basic-gtt:
skip -> PASS (fi-elk-e7500)
Subgroup basic-cpu-gtt:
skip -> PASS (fi-elk-e7500)
Subgroup basic-gtt-cpu:
skip -> PASS (fi-elk-e7500)
Subgroup basic-cpu-read:
skip -> PASS (fi-elk-e7500)
Subgroup basic-gtt-read:
WARNING: Long output truncated
3bdaa44e46f5dfa387453e5c82be9f2953b7a051 drm-tip: 2017y-05m-10d-16h-32m-59s UTC integration manifest
9e08b2f drm/prime: include device.h
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4662/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Fi.CI.BAT: success for drm/vgem: Convert to a struct drm_device subclass (rev2)
2017-05-08 13:22 [PATCH] drm/vgem: Convert to a struct drm_device subclass Chris Wilson
2017-05-08 13:43 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-05-09 19:20 ` [PATCH] " Laura Abbott
@ 2017-05-10 17:35 ` Patchwork
2 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2017-05-10 17:35 UTC (permalink / raw)
To: Laura Abbott; +Cc: intel-gfx
== Series Details ==
Series: drm/vgem: Convert to a struct drm_device subclass (rev2)
URL : https://patchwork.freedesktop.org/series/24119/
State : success
== Summary ==
Series 24119v2 drm/vgem: Convert to a struct drm_device subclass
https://patchwork.freedesktop.org/api/1.0/series/24119/revisions/2/mbox/
Test gem_busy:
Subgroup basic-hang-default:
dmesg-warn -> PASS (fi-elk-e7500) fdo#100942 +2
Test gem_close_race:
Subgroup basic-process:
skip -> PASS (fi-elk-e7500)
Subgroup basic-threads:
skip -> PASS (fi-elk-e7500)
Test gem_cpu_reloc:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_cs_tlb:
Subgroup basic-default:
skip -> PASS (fi-elk-e7500)
Test gem_exec_basic:
Subgroup basic-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup basic-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-render:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-default:
skip -> PASS (fi-elk-e7500)
Subgroup gtt-render:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-bsd:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-default:
skip -> PASS (fi-elk-e7500)
Subgroup readonly-render:
skip -> PASS (fi-elk-e7500)
Test gem_exec_create:
Subgroup basic:
skip -> PASS (fi-elk-e7500)
Test gem_exec_fence:
Subgroup basic-busy-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-wait-default:
skip -> PASS (fi-elk-e7500)
Subgroup basic-await-default:
skip -> PASS (fi-elk-e7500)
Test gem_exec_reloc:
Subgroup basic-gtt-cpu-noreloc:
incomplete -> SKIP (fi-elk-e7500)
fdo#100942 https://bugs.freedesktop.org/show_bug.cgi?id=100942
fi-bdw-5557u total:278 pass:267 dwarn:0 dfail:0 fail:0 skip:11 time:436s
fi-bdw-gvtdvm total:278 pass:256 dwarn:8 dfail:0 fail:0 skip:14 time:438s
fi-bsw-n3050 total:278 pass:242 dwarn:0 dfail:0 fail:0 skip:36 time:585s
fi-bxt-j4205 total:278 pass:259 dwarn:0 dfail:0 fail:0 skip:19 time:515s
fi-bxt-t5700 total:278 pass:258 dwarn:0 dfail:0 fail:0 skip:20 time:554s
fi-byt-j1900 total:278 pass:254 dwarn:0 dfail:0 fail:0 skip:24 time:494s
fi-byt-n2820 total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time:484s
fi-elk-e7500 total:173 pass:27 dwarn:6 dfail:1 fail:0 skip:82
fi-hsw-4770 total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time:414s
fi-hsw-4770r total:278 pass:262 dwarn:0 dfail:0 fail:0 skip:16 time:416s
fi-ilk-650 total:278 pass:228 dwarn:0 dfail:0 fail:0 skip:50 time:422s
fi-ivb-3520m total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:487s
fi-ivb-3770 total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:479s
fi-kbl-7500u total:278 pass:260 dwarn:0 dfail:0 fail:0 skip:18 time:467s
fi-kbl-7560u total:278 pass:267 dwarn:1 dfail:0 fail:0 skip:10 time:575s
fi-skl-6260u total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time:470s
fi-skl-6700hq total:278 pass:261 dwarn:0 dfail:0 fail:0 skip:17 time:580s
fi-skl-6700k total:278 pass:256 dwarn:4 dfail:0 fail:0 skip:18 time:465s
fi-skl-6770hq total:278 pass:268 dwarn:0 dfail:0 fail:0 skip:10 time:498s
fi-skl-gvtdvm total:278 pass:265 dwarn:0 dfail:0 fail:0 skip:13 time:436s
fi-snb-2520m total:278 pass:250 dwarn:0 dfail:0 fail:0 skip:28 time:536s
fi-snb-2600 total:278 pass:249 dwarn:0 dfail:0 fail:0 skip:29 time:421s
3bdaa44e46f5dfa387453e5c82be9f2953b7a051 drm-tip: 2017y-05m-10d-16h-32m-59s UTC integration manifest
1035639 drm/prime: Forward declare struct device
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4663/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2017-05-10 17:35 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-08 13:22 [PATCH] drm/vgem: Convert to a struct drm_device subclass Chris Wilson
2017-05-08 13:43 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-05-09 19:20 ` [PATCH] " Laura Abbott
2017-05-10 8:15 ` Daniel Vetter
2017-05-10 14:40 ` [PATCH] drm/prime: include device.h Laura Abbott
2017-05-10 14:40 ` Laura Abbott
2017-05-10 14:48 ` Chris Wilson
2017-05-10 14:48 ` Chris Wilson
2017-05-10 17:05 ` [PATCHv2] drm/prime: Forward declare struct device Laura Abbott
2017-05-10 17:05 ` Laura Abbott
2017-05-10 17:13 ` Sumit Semwal
2017-05-10 14:59 ` ✗ Fi.CI.BAT: failure for drm/prime: include device.h Patchwork
2017-05-10 17:16 ` ✓ Fi.CI.BAT: success " Patchwork
2017-05-10 17:35 ` ✓ Fi.CI.BAT: success for drm/vgem: Convert to a struct drm_device subclass (rev2) Patchwork
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.