[PATCH] drivers: xen: events: fix build issues with disabled Xen HVC

Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov dmytro_firsov@epam.com --- drivers/xen/events.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 5e90a65846..532216fece 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -23,7 +23,9 @@ #include <xen/events.h> #include <xen/hvm.h>
+#if CONFIG_IS_ENABLED(XEN_SERIAL) extern u32 console_evtchn; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
#define NR_EVS 1024
@@ -51,8 +53,11 @@ void unbind_all_ports(void) struct vcpu_info *vcpu_info = &s->vcpu_info[cpu];
for (i = 0; i < NR_EVS; i++) { +#if CONFIG_IS_ENABLED(XEN_SERIAL) if (i == console_evtchn) continue; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */ + if (test_and_clear_bit(i, bound_ports)) { printf("port %d still bound!\n", i); unbind_evtchn(i);

Reviewed-by: Anastasiia Lukianenko vicooodin@gmail.com
On Mon, Jul 4, 2022 at 3:05 PM Dmytro Firsov Dmytro_Firsov@epam.com wrote:
Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov dmytro_firsov@epam.com
drivers/xen/events.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 5e90a65846..532216fece 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -23,7 +23,9 @@ #include <xen/events.h> #include <xen/hvm.h>
+#if CONFIG_IS_ENABLED(XEN_SERIAL) extern u32 console_evtchn; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
#define NR_EVS 1024
@@ -51,8 +53,11 @@ void unbind_all_ports(void) struct vcpu_info *vcpu_info = &s->vcpu_info[cpu];
for (i = 0; i < NR_EVS; i++) {
+#if CONFIG_IS_ENABLED(XEN_SERIAL) if (i == console_evtchn) continue; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
if (test_and_clear_bit(i, bound_ports)) { printf("port %d still bound!\n", i); unbind_evtchn(i);
-- 2.25.1

Can moderators, please, take a look on this patch?
On 20.07.22 23:43, Nastya Vicodin wrote: Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.commailto:vicooodin@gmail.com>
On Mon, Jul 4, 2022 at 3:05 PM Dmytro Firsov <Dmytro_Firsov@epam.commailto:Dmytro_Firsov@epam.com> wrote: Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.commailto:dmytro_firsov@epam.com> --- drivers/xen/events.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 5e90a65846..532216fece 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -23,7 +23,9 @@ #include <xen/events.h> #include <xen/hvm.h>
+#if CONFIG_IS_ENABLED(XEN_SERIAL) extern u32 console_evtchn; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
#define NR_EVS 1024
@@ -51,8 +53,11 @@ void unbind_all_ports(void) struct vcpu_info *vcpu_info = &s->vcpu_info[cpu];
for (i = 0; i < NR_EVS; i++) { +#if CONFIG_IS_ENABLED(XEN_SERIAL) if (i == console_evtchn) continue; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */ + if (test_and_clear_bit(i, bound_ports)) { printf("port %d still bound!\n", i); unbind_evtchn(i); -- 2.25.1

On Tue, Aug 02, 2022 at 08:48:51AM +0000, Dmytro Firsov wrote:
Can moderators, please, take a look on this patch?
What about it?
https://patchwork.ozlabs.org/project/uboot/patch/20220704120533.42168-1-dmyt...
On 20.07.22 23:43, Nastya Vicodin wrote: Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.commailto:vicooodin@gmail.com>
On Mon, Jul 4, 2022 at 3:05 PM Dmytro Firsov <Dmytro_Firsov@epam.commailto:Dmytro_Firsov@epam.com> wrote: Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.commailto:dmytro_firsov@epam.com>
drivers/xen/events.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 5e90a65846..532216fece 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -23,7 +23,9 @@ #include <xen/events.h> #include <xen/hvm.h>
+#if CONFIG_IS_ENABLED(XEN_SERIAL) extern u32 console_evtchn; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
#define NR_EVS 1024
@@ -51,8 +53,11 @@ void unbind_all_ports(void) struct vcpu_info *vcpu_info = &s->vcpu_info[cpu];
for (i = 0; i < NR_EVS; i++) {
+#if CONFIG_IS_ENABLED(XEN_SERIAL) if (i == console_evtchn) continue; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
if (test_and_clear_bit(i, bound_ports)) { printf("port %d still bound!\n", i); unbind_evtchn(i);
-- 2.25.1

It received reviewed-by from code maintainer. Does anything else needed to take it to u-boot/master?
On 02.08.22 13:57, Tom Rini wrote:
On Tue, Aug 02, 2022 at 08:48:51AM +0000, Dmytro Firsov wrote:
Can moderators, please, take a look on this patch?
What about it?
https://patchwork.ozlabs.org/project/uboot/patch/20220704120533.42168-1-dmyt...
On 20.07.22 23:43, Nastya Vicodin wrote: Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.commailto:vicooodin@gmail.com>
On Mon, Jul 4, 2022 at 3:05 PM Dmytro Firsov <Dmytro_Firsov@epam.commailto:Dmytro_Firsov@epam.com> wrote: Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.commailto:dmytro_firsov@epam.com>
drivers/xen/events.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 5e90a65846..532216fece 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -23,7 +23,9 @@ #include <xen/events.h> #include <xen/hvm.h>
+#if CONFIG_IS_ENABLED(XEN_SERIAL) extern u32 console_evtchn; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
#define NR_EVS 1024
@@ -51,8 +53,11 @@ void unbind_all_ports(void) struct vcpu_info *vcpu_info = &s->vcpu_info[cpu];
for (i = 0; i < NR_EVS; i++) {
+#if CONFIG_IS_ENABLED(XEN_SERIAL) if (i == console_evtchn) continue; +#endif /* CONFIG_IS_ENABLED(XEN_SERIAL) */
if (test_and_clear_bit(i, bound_ports)) { printf("port %d still bound!\n", i); unbind_evtchn(i);
-- 2.25.1

On Mon, Jul 04, 2022 at 12:05:38PM +0000, Dmytro Firsov wrote:
Some setups do not use Xen hypervisor console for logging, e.g. they use emulated PL011 hardware or shared peripherals (real UART). In such cases Xen HVC will be disabled on a build time and will cause issues in current driver implementation.
This commit fixes build issues in Xen event channel driver, caused by absense of console event channel, that is not available when console config is disabled. Now console related code will be removed when Xen HVC is turned off.
Signed-off-by: Dmytro Firsov dmytro_firsov@epam.com Reviewed-by: Anastasiia Lukianenko vicooodin@gmail.com Reviewed-by: Anastasiia Lukianenko <vicooodin@gmail.commailto:vicooodin@gmail.com> Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.commailto:dmytro_firsov@epam.com>
Applied to u-boot/master, thanks!
participants (3)
-
Dmytro Firsov
-
Nastya Vicodin
-
Tom Rini