linux-next: build failure after merge of the drm-misc tree
diff mbox

Message ID 20170719114657.245537cd@canb.auug.org.au
State New
Headers show

Commit Message

Stephen Rothwell July 19, 2017, 1:46 a.m. UTC
Hi all,

After merging the drm-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/staging/vboxvideo/vbox_drv.c:235:2: error: unknown field 'set_busid' specified in initializer
  .set_busid = drm_pci_set_busid,
  ^
drivers/staging/vboxvideo/vbox_drv.c:235:15: error: 'drm_pci_set_busid' undeclared here (not in a function)
  .set_busid = drm_pci_set_busid,
               ^
drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_init':
drivers/staging/vboxvideo/vbox_drv.c:273:9: error: implicit declaration of function 'drm_pci_init' [-Werror=implicit-function-declaration]
  return drm_pci_init(&driver, &vbox_pci_driver);
         ^
drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_exit':
drivers/staging/vboxvideo/vbox_drv.c:278:2: error: implicit declaration of function 'drm_pci_exit' [-Werror=implicit-function-declaration]
  drm_pci_exit(&driver, &vbox_pci_driver);
  ^

Caused by commits

  5c484cee7ef9 ("drm: Remove drm_driver->set_busid hook")
  10631d724def ("drm/pci: Deprecate drm_pci_init/exit completely")

interacting with commit

  dd55d44f4084 ("staging: vboxvideo: Add vboxvideo to drivers/staging")

from the staging.current tree.

I have applied the following merge fix patch - please check that it
is correct.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Wed, 19 Jul 2017 11:41:01 +1000
Subject: [PATCH] drm: fixes for staging due to API changes in the drm core

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/staging/vboxvideo/vbox_drv.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Stephen Rothwell July 21, 2017, 12:08 a.m. UTC | #1
Hi Dave,

The following is now applicable to the drm and staging.current trees ...

On Wed, 19 Jul 2017 11:46:57 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the drm-misc tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/staging/vboxvideo/vbox_drv.c:235:2: error: unknown field 'set_busid' specified in initializer
>   .set_busid = drm_pci_set_busid,
>   ^
> drivers/staging/vboxvideo/vbox_drv.c:235:15: error: 'drm_pci_set_busid' undeclared here (not in a function)
>   .set_busid = drm_pci_set_busid,
>                ^
> drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_init':
> drivers/staging/vboxvideo/vbox_drv.c:273:9: error: implicit declaration of function 'drm_pci_init' [-Werror=implicit-function-declaration]
>   return drm_pci_init(&driver, &vbox_pci_driver);
>          ^
> drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_exit':
> drivers/staging/vboxvideo/vbox_drv.c:278:2: error: implicit declaration of function 'drm_pci_exit' [-Werror=implicit-function-declaration]
>   drm_pci_exit(&driver, &vbox_pci_driver);
>   ^
> 
> Caused by commits
> 
>   5c484cee7ef9 ("drm: Remove drm_driver->set_busid hook")
>   10631d724def ("drm/pci: Deprecate drm_pci_init/exit completely")
> 
> interacting with commit
> 
>   dd55d44f4084 ("staging: vboxvideo: Add vboxvideo to drivers/staging")
> 
> from the staging.current tree.
> 
> I have applied the following merge fix patch - please check that it
> is correct.
> 
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Wed, 19 Jul 2017 11:41:01 +1000
> Subject: [PATCH] drm: fixes for staging due to API changes in the drm core
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>  drivers/staging/vboxvideo/vbox_drv.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
> index 92ae1560a16d..6d0600c37c0c 100644
> --- a/drivers/staging/vboxvideo/vbox_drv.c
> +++ b/drivers/staging/vboxvideo/vbox_drv.c
> @@ -232,7 +232,6 @@ static struct drm_driver driver = {
>  	.lastclose = vbox_driver_lastclose,
>  	.master_set = vbox_master_set,
>  	.master_drop = vbox_master_drop,
> -	.set_busid = drm_pci_set_busid,
>  
>  	.fops = &vbox_fops,
>  	.irq_handler = vbox_irq_handler,
> @@ -270,12 +269,12 @@ static int __init vbox_init(void)
>  	if (vbox_modeset == 0)
>  		return -EINVAL;
>  
> -	return drm_pci_init(&driver, &vbox_pci_driver);
> +	return pci_register_driver(&vbox_pci_driver);
>  }
>  
>  static void __exit vbox_exit(void)
>  {
> -	drm_pci_exit(&driver, &vbox_pci_driver);
> +	pci_unregister_driver(&vbox_pci_driver);
>  }
>  
>  module_init(vbox_init);
> -- 
> 2.13.2
Daniel Vetter July 21, 2017, 7:24 a.m. UTC | #2
Hi Greg&Hans,

How are we going to handle this now? The refactor is deeply burried in
drm-misc, I guess you could cherry-pick the relevant patches over. But
that'll probably lead to more conflicts because git will get confused.

Or you could just delete the set_busid hook in -staging, which renders
the driver unbisectable since it'll only work when merged together
with the drm trees.

This is pretty much why I don't like -staging, it makes cross
subsystem refactorings (which is already hard, getting 20+ driver
folks to agree on stuff sometimes) unecessarily harder.

Cheers, Daniel

On Fri, Jul 21, 2017 at 2:08 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Dave,
>
> The following is now applicable to the drm and staging.current trees ...
>
> On Wed, 19 Jul 2017 11:46:57 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>>
>> After merging the drm-misc tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:
>>
>> drivers/staging/vboxvideo/vbox_drv.c:235:2: error: unknown field 'set_busid' specified in initializer
>>   .set_busid = drm_pci_set_busid,
>>   ^
>> drivers/staging/vboxvideo/vbox_drv.c:235:15: error: 'drm_pci_set_busid' undeclared here (not in a function)
>>   .set_busid = drm_pci_set_busid,
>>                ^
>> drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_init':
>> drivers/staging/vboxvideo/vbox_drv.c:273:9: error: implicit declaration of function 'drm_pci_init' [-Werror=implicit-function-declaration]
>>   return drm_pci_init(&driver, &vbox_pci_driver);
>>          ^
>> drivers/staging/vboxvideo/vbox_drv.c: In function 'vbox_exit':
>> drivers/staging/vboxvideo/vbox_drv.c:278:2: error: implicit declaration of function 'drm_pci_exit' [-Werror=implicit-function-declaration]
>>   drm_pci_exit(&driver, &vbox_pci_driver);
>>   ^
>>
>> Caused by commits
>>
>>   5c484cee7ef9 ("drm: Remove drm_driver->set_busid hook")
>>   10631d724def ("drm/pci: Deprecate drm_pci_init/exit completely")
>>
>> interacting with commit
>>
>>   dd55d44f4084 ("staging: vboxvideo: Add vboxvideo to drivers/staging")
>>
>> from the staging.current tree.
>>
>> I have applied the following merge fix patch - please check that it
>> is correct.
>>
>> From: Stephen Rothwell <sfr@canb.auug.org.au>
>> Date: Wed, 19 Jul 2017 11:41:01 +1000
>> Subject: [PATCH] drm: fixes for staging due to API changes in the drm core
>>
>> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
>> ---
>>  drivers/staging/vboxvideo/vbox_drv.c | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
>> index 92ae1560a16d..6d0600c37c0c 100644
>> --- a/drivers/staging/vboxvideo/vbox_drv.c
>> +++ b/drivers/staging/vboxvideo/vbox_drv.c
>> @@ -232,7 +232,6 @@ static struct drm_driver driver = {
>>       .lastclose = vbox_driver_lastclose,
>>       .master_set = vbox_master_set,
>>       .master_drop = vbox_master_drop,
>> -     .set_busid = drm_pci_set_busid,
>>
>>       .fops = &vbox_fops,
>>       .irq_handler = vbox_irq_handler,
>> @@ -270,12 +269,12 @@ static int __init vbox_init(void)
>>       if (vbox_modeset == 0)
>>               return -EINVAL;
>>
>> -     return drm_pci_init(&driver, &vbox_pci_driver);
>> +     return pci_register_driver(&vbox_pci_driver);
>>  }
>>
>>  static void __exit vbox_exit(void)
>>  {
>> -     drm_pci_exit(&driver, &vbox_pci_driver);
>> +     pci_unregister_driver(&vbox_pci_driver);
>>  }
>>
>>  module_init(vbox_init);
>> --
>> 2.13.2
>
> --
> Cheers,
> Stephen Rothwell
Hans de Goede July 21, 2017, 7:01 p.m. UTC | #3
Hi,

On 21-07-17 09:24, Daniel Vetter wrote:
> Hi Greg&Hans,
> 
> How are we going to handle this now? The refactor is deeply burried in
> drm-misc, I guess you could cherry-pick the relevant patches over. But
> that'll probably lead to more conflicts because git will get confused.
> 
> Or you could just delete the set_busid hook in -staging, which renders
> the driver unbisectable since it'll only work when merged together
> with the drm trees.

Removing the set_busid hook in staging (but only for -next, not
for -linus) is fine with me.

Regards,

Hans
Stephen Rothwell July 24, 2017, 12:03 a.m. UTC | #4
Hi Daniel,

On Fri, 21 Jul 2017 09:24:49 +0200 Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> How are we going to handle this now? The refactor is deeply burried in
> drm-misc, I guess you could cherry-pick the relevant patches over. But
> that'll probably lead to more conflicts because git will get confused.

I'll just keep applying the merge resolution patch and will remind Dave
and Greg about it during the week before the merge window opens so that
they can let Linus know that the fix up is needed.
Daniel Vetter July 24, 2017, 8:24 a.m. UTC | #5
On Mon, Jul 24, 2017 at 2:03 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Daniel,
>
> On Fri, 21 Jul 2017 09:24:49 +0200 Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>>
>> How are we going to handle this now? The refactor is deeply burried in
>> drm-misc, I guess you could cherry-pick the relevant patches over. But
>> that'll probably lead to more conflicts because git will get confused.
>
> I'll just keep applying the merge resolution patch and will remind Dave
> and Greg about it during the week before the merge window opens so that
> they can let Linus know that the fix up is needed.

Well, Greg squeezed the vbox driver into -rc2, so now we already get
to resolve this in a backmerge. And hopefully the bikeshed patches in
-staging won't interfere too badly with whatever refactoring we'll do
in drm-next.

Greg, fyi this is the last time I'll ack a drm driver for staging.
This just doesn't work. We're spending more time here working the
-staging vs. drm-next conflicts than the actual vbox driver review has
taken me. And probly less than the cleanup for merging directly to
drm-next will end up taking.

Thanks, Daniel
Greg KH July 24, 2017, 6:33 p.m. UTC | #6
On Mon, Jul 24, 2017 at 10:24:41AM +0200, Daniel Vetter wrote:
> On Mon, Jul 24, 2017 at 2:03 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > Hi Daniel,
> >
> > On Fri, 21 Jul 2017 09:24:49 +0200 Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> >>
> >> How are we going to handle this now? The refactor is deeply burried in
> >> drm-misc, I guess you could cherry-pick the relevant patches over. But
> >> that'll probably lead to more conflicts because git will get confused.
> >
> > I'll just keep applying the merge resolution patch and will remind Dave
> > and Greg about it during the week before the merge window opens so that
> > they can let Linus know that the fix up is needed.
> 
> Well, Greg squeezed the vbox driver into -rc2, so now we already get
> to resolve this in a backmerge. And hopefully the bikeshed patches in
> -staging won't interfere too badly with whatever refactoring we'll do
> in drm-next.
> 
> Greg, fyi this is the last time I'll ack a drm driver for staging.
> This just doesn't work. We're spending more time here working the
> -staging vs. drm-next conflicts than the actual vbox driver review has
> taken me. And probly less than the cleanup for merging directly to
> drm-next will end up taking.

Hey, I was amazed that you all acked it, and it's why I required that
you do so before I took it :)

Good luck with the merges!

greg k-h

Patch
diff mbox

diff --git a/drivers/staging/vboxvideo/vbox_drv.c b/drivers/staging/vboxvideo/vbox_drv.c
index 92ae1560a16d..6d0600c37c0c 100644
--- a/drivers/staging/vboxvideo/vbox_drv.c
+++ b/drivers/staging/vboxvideo/vbox_drv.c
@@ -232,7 +232,6 @@  static struct drm_driver driver = {
 	.lastclose = vbox_driver_lastclose,
 	.master_set = vbox_master_set,
 	.master_drop = vbox_master_drop,
-	.set_busid = drm_pci_set_busid,
 
 	.fops = &vbox_fops,
 	.irq_handler = vbox_irq_handler,
@@ -270,12 +269,12 @@  static int __init vbox_init(void)
 	if (vbox_modeset == 0)
 		return -EINVAL;
 
-	return drm_pci_init(&driver, &vbox_pci_driver);
+	return pci_register_driver(&vbox_pci_driver);
 }
 
 static void __exit vbox_exit(void)
 {
-	drm_pci_exit(&driver, &vbox_pci_driver);
+	pci_unregister_driver(&vbox_pci_driver);
 }
 
 module_init(vbox_init);