Skip to contentSkip to conversation

fix ISDN_CAPI<->ISDN_DIVAS

RFC PATCH In review Adrian Bunk 2 participants 6 messages Mar 24, 2007 – Mar 29, 2007

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 fix ISDN_CAPI<->ISDN_DIVAS

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

---

 drivers/isdn/Makefile               |    2 +-
 drivers/isdn/hardware/eicon/Kconfig |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/isdn/hardware/eicon/Kconfig renamed from drivers/isdn/hardware/eicon/Kconfig.old +1 -1
@@ -3,7 +3,7 @@
 #
 
 menu "Active Eicon DIVA Server cards"
-	depends on NET && ISDN && ISDN_CAPI!=n
+	depends on NET && ISDN
 
 config CAPI_EICON
 	bool "Support Eicon cards"
drivers/isdn/Makefile renamed from drivers/isdn/Makefile.old +1 -1
@@ -4,7 +4,7 @@
 
 obj-$(CONFIG_ISDN_I4L)			+= i4l/
 obj-$(CONFIG_ISDN_CAPI)			+= capi/
-obj-$(CONFIG_ISDN_CAPI)			+= hardware/
+obj-$(CONFIG_ISDN)			+= hardware/
 obj-$(CONFIG_ISDN_DIVERSION)		+= divert/
 obj-$(CONFIG_ISDN_DRV_HISAX)		+= hisax/
 obj-$(CONFIG_ISDN_DRV_ICN)		+= icn/
#1 lore raw
Quoted 15 lines · Adrian Bunk

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Quoted 8 lines

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

Not quite true. Yes, the base modules for the divas driver do not require ISDN_CAPI, but without ISDN_CAPI it doesn't make any sense.

The patch below (go into /hardware even for non ISDN_CAPI) is wrong. The subdir /hardware was created for new drivers using CAPI. So it is correct to go there when ISDN_CAPI != n only.

I don't understand the warnings above. The symbols are exported by divas modules, so why is it causing warnings? There have been no change in the divas modules for this. Any change in the kernel module creation structure which may causing this?

Armin

Quoted 31 lines

---

 drivers/isdn/Makefile               |    2 +-
 drivers/isdn/hardware/eicon/Kconfig |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/isdn/hardware/eicon/Kconfig renamed from drivers/isdn/hardware/eicon/Kconfig.old +1 -1
@@ -3,7 +3,7 @@
 #
 
 menu "Active Eicon DIVA Server cards"
-	depends on NET && ISDN && ISDN_CAPI!=n
+	depends on NET && ISDN
 
 config CAPI_EICON
 	bool "Support Eicon cards"
drivers/isdn/Makefile renamed from drivers/isdn/Makefile.old +1 -1
@@ -4,7 +4,7 @@
 
 obj-$(CONFIG_ISDN_I4L)			+= i4l/
 obj-$(CONFIG_ISDN_CAPI)			+= capi/
-obj-$(CONFIG_ISDN_CAPI)			+= hardware/
+obj-$(CONFIG_ISDN)			+= hardware/
 obj-$(CONFIG_ISDN_DIVERSION)		+= divert/
 obj-$(CONFIG_ISDN_DRV_HISAX)		+= hisax/
 obj-$(CONFIG_ISDN_DRV_ICN)		+= icn/
#2 lore raw
Quoted 22 lines · Armin Schindler
Quoted 21 lines · Adrian Bunk

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n
Quoted 5 lines
Quoted 2 lines

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

Not quite true. Yes, the base modules for the divas driver do not require ISDN_CAPI, but without ISDN_CAPI it doesn't make any sense.

Let me try to understand this:

Does it make sense to have CONFIG_ISDN_DIVAS=y, CONFIG_ISDN_CAPI=m? And do CONFIG_ISDN_DIVAS=y/m, CONFIG_ISDN_DIVAS_DIVACAPI=n configurations make sense?

If not, what about:
- let ISDN_DIVAS depend on ISDN_CAPI and
- enable ISDN_DIVAS_DIVACAPI unconditionally (and perhaps even build it into the divas module)?

Quoted 8 lines

The patch below (go into /hardware even for non ISDN_CAPI) is wrong. The subdir /hardware was created for new drivers using CAPI. So it is correct to go there when ISDN_CAPI != n only.

I don't understand the warnings above. The symbols are exported by divas modules, so why is it causing warnings? There have been no change in the divas modules for this. Any change in the kernel module creation structure which may causing this?

These aren't warnings, these are errors.

Due to
obj-$(CONFIG_ISDN_CAPI) += hardware/

hardware/ isn't visited with CONFIG_ISDN_CAPI=m when building vmlinux.

This means the modules were built, but the static code they were using wasn't linkd into the kernel.

This might not have occured before since CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y is an unusual configuration.

Quoted 2 lines

Armin
...

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
#3 lore raw
Quoted 26 lines · Adrian Bunk
Quoted 25 lines · Armin Schindler
Quoted 23 lines · Adrian Bunk

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

Quoted 6 lines
Quoted 2 lines

Not quite true. Yes, the base modules for the divas driver do not require ISDN_CAPI, but without ISDN_CAPI it doesn't make any sense.

Let me try to understand this:

Does it make sense to have CONFIG_ISDN_DIVAS=y, CONFIG_ISDN_CAPI=m?

Yes, this is possible. DIVAS itself does not depend on CAPI.

Quoted 2 lines

And do CONFIG_ISDN_DIVAS=y/m, CONFIG_ISDN_DIVAS_DIVACAPI=n configurations make sense?

Yes, but for only for experts who want to use the DIVAS own API without CAPI.

Quoted 4 lines

If not, what about:
- let ISDN_DIVAS depend on ISDN_CAPI and
- enable ISDN_DIVAS_DIVACAPI unconditionally (and perhaps even build it into the divas module)?

That would not be correct.

Quoted 14 lines
Quoted 8 lines

The patch below (go into /hardware even for non ISDN_CAPI) is wrong. The subdir /hardware was created for new drivers using CAPI. So it is correct to go there when ISDN_CAPI != n only.

I don't understand the warnings above. The symbols are exported by divas modules, so why is it causing warnings? There have been no change in the divas modules for this. Any change in the kernel module creation structure which may causing this?

These aren't warnings, these are errors.

Due to
obj-$(CONFIG_ISDN_CAPI) += hardware/

Quoted 7 lines

hardware/ isn't visited with CONFIG_ISDN_CAPI=m when building vmlinux.

This means the modules were built, but the static code they were using wasn't linkd into the kernel.

This might not have occured before since CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y is an unusual configuration.

I see. So for DIVAS the line
obj-$(CONFIG_ISDN_CAPI) += hardware/
causes the trouble, because all hardware/ driver are meant to be CAPI drivers...

In that case we should change hardware/eicon/ as you proposed:

Quoted 1 line

- let ISDN_DIVAS depend on ISDN_CAPI and

So the solution might be just to change

menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI!=n
to
menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI

in drivers/isdn/hardware/eicon/Kconfig
right?

Armin

#4 lore raw
Quoted 81 lines · Armin Schindler
Quoted 26 lines · Adrian Bunk
Quoted 25 lines · Armin Schindler
Quoted 23 lines · Adrian Bunk

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

Quoted 6 lines
Quoted 2 lines

Not quite true. Yes, the base modules for the divas driver do not require ISDN_CAPI, but without ISDN_CAPI it doesn't make any sense.

Let me try to understand this:

Does it make sense to have CONFIG_ISDN_DIVAS=y, CONFIG_ISDN_CAPI=m?

Yes, this is possible. DIVAS itself does not depend on CAPI.

Quoted 2 lines

And do CONFIG_ISDN_DIVAS=y/m, CONFIG_ISDN_DIVAS_DIVACAPI=n configurations make sense?

Yes, but for only for experts who want to use the DIVAS own API without CAPI.

Quoted 4 lines

If not, what about:
- let ISDN_DIVAS depend on ISDN_CAPI and
- enable ISDN_DIVAS_DIVACAPI unconditionally (and perhaps even build it into the divas module)?

That would not be correct.

Quoted 14 lines
Quoted 8 lines

The patch below (go into /hardware even for non ISDN_CAPI) is wrong. The subdir /hardware was created for new drivers using CAPI. So it is correct to go there when ISDN_CAPI != n only.

I don't understand the warnings above. The symbols are exported by divas modules, so why is it causing warnings? There have been no change in the divas modules for this. Any change in the kernel module creation structure which may causing this?

These aren't warnings, these are errors.

Due to
obj-$(CONFIG_ISDN_CAPI) += hardware/

Quoted 7 lines

hardware/ isn't visited with CONFIG_ISDN_CAPI=m when building vmlinux.

This means the modules were built, but the static code they were using wasn't linkd into the kernel.

This might not have occured before since CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y is an unusual configuration.

I see. So for DIVAS the line
obj-$(CONFIG_ISDN_CAPI) += hardware/
causes the trouble, because all hardware/ driver are meant to be CAPI drivers...

In that case we should change hardware/eicon/ as you proposed:

Quoted 1 line

- let ISDN_DIVAS depend on ISDN_CAPI and

So the solution might be just to change

Quoted 8 lines

menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI!=n
to
menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI

in drivers/isdn/hardware/eicon/Kconfig
right?

This is a solution.

It implies that CONFIG_ISDN_CAPI=n, CONFIG_ISDN_DIVAS=y/m or CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y will not be possible, and the "experts who want to use the DIVAS own API" you were talking about have to enable CONFIG_ISDN_CAPI in their kernel. But considering that it isn't a new problem, and you as the maintainer hadn't heard about it before (it results in the driver not being included into the kernel despite CONFIG_ISDN_DIVAS=y), this might be a pure theoretical configuration not worth supporting.

Quoted 1 line

Armin

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
#5 lore raw
Quoted 94 lines · Adrian Bunk
Quoted 81 lines · Armin Schindler
Quoted 26 lines · Adrian Bunk
Quoted 25 lines · Armin Schindler
Quoted 23 lines · Adrian Bunk

Randy Dunlap reported in kernel Bugzilla #8241 the following compile error with CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y:

<-- snip -->

...
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/divacapi.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_mnt.ko] undefined!
WARNING: "DIVA_DIDD_Read" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined!
WARNING: "proc_net_eicon" [drivers/isdn/hardware/eicon/diva_idi.ko] undefined! make[1]: *** [__modpost] Error 1

<-- snip -->

Kconfig contains the following strange thing:

menu "Active Eicon DIVA Server cards"

        depends on NET && ISDN && ISDN_CAPI!=n

It seems that except for ISDN_DIVAS_DIVACAPI (that already has a proper dependency), nothing here actually requires ISDN_CAPI?

Quoted 6 lines
Quoted 2 lines

Not quite true. Yes, the base modules for the divas driver do not require ISDN_CAPI, but without ISDN_CAPI it doesn't make any sense.

Let me try to understand this:

Does it make sense to have CONFIG_ISDN_DIVAS=y, CONFIG_ISDN_CAPI=m?

Yes, this is possible. DIVAS itself does not depend on CAPI.

Quoted 2 lines

And do CONFIG_ISDN_DIVAS=y/m, CONFIG_ISDN_DIVAS_DIVACAPI=n configurations make sense?

Yes, but for only for experts who want to use the DIVAS own API without CAPI.

Quoted 4 lines

If not, what about:
- let ISDN_DIVAS depend on ISDN_CAPI and
- enable ISDN_DIVAS_DIVACAPI unconditionally (and perhaps even build it into the divas module)?

That would not be correct.

Quoted 14 lines
Quoted 8 lines

The patch below (go into /hardware even for non ISDN_CAPI) is wrong. The subdir /hardware was created for new drivers using CAPI. So it is correct to go there when ISDN_CAPI != n only.

I don't understand the warnings above. The symbols are exported by divas modules, so why is it causing warnings? There have been no change in the divas modules for this. Any change in the kernel module creation structure which may causing this?

These aren't warnings, these are errors.

Due to
obj-$(CONFIG_ISDN_CAPI) += hardware/

Quoted 7 lines

hardware/ isn't visited with CONFIG_ISDN_CAPI=m when building vmlinux.

This means the modules were built, but the static code they were using wasn't linkd into the kernel.

This might not have occured before since CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y is an unusual configuration.

I see. So for DIVAS the line
obj-$(CONFIG_ISDN_CAPI) += hardware/
causes the trouble, because all hardware/ driver are meant to be CAPI drivers...

In that case we should change hardware/eicon/ as you proposed:

Quoted 1 line

- let ISDN_DIVAS depend on ISDN_CAPI and

So the solution might be just to change

Quoted 8 lines

menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI!=n
to
menu "Active Eicon DIVA Server cards"
depends on NET && ISDN && ISDN_CAPI

in drivers/isdn/hardware/eicon/Kconfig
right?

This is a solution.

Quoted 8 lines

It implies that CONFIG_ISDN_CAPI=n, CONFIG_ISDN_DIVAS=y/m or CONFIG_ISDN_CAPI=m, CONFIG_ISDN_DIVAS=y will not be possible, and the "experts who want to use the DIVAS own API" you were talking about have to enable CONFIG_ISDN_CAPI in their kernel. But considering that it isn't a new problem, and you as the maintainer hadn't heard about it before (it results in the driver not being included into the kernel despite CONFIG_ISDN_DIVAS=y), this might be a pure theoretical configuration not worth supporting.

Agreed. It seems that these 'experts' are using the separate divas driver package anyway.

Armin