[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH gnumach] kd_mouse: Fix IBM mouse irq getting stuck and blocki
From: |
Samuel Thibault |
Subject: |
Re: [PATCH gnumach] kd_mouse: Fix IBM mouse irq getting stuck and blocking console |
Date: |
Sat, 25 Feb 2023 12:29:31 +0100 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Applied, thanks!
Damien Zammit, le sam. 25 févr. 2023 06:14:28 +0000, a ecrit:
> TESTED: With and without apic/smp
>
> ---
> i386/i386at/kd_mouse.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/i386/i386at/kd_mouse.c b/i386/i386at/kd_mouse.c
> index c870cf5a..9bd001cb 100644
> --- a/i386/i386at/kd_mouse.c
> +++ b/i386/i386at/kd_mouse.c
> @@ -106,6 +106,7 @@ boolean_t mouse_char_cmd = FALSE; /* mouse
> response is to cmd */
> boolean_t mouse_char_wanted = FALSE; /* want mouse response */
> int mouse_char_index; /* mouse response */
>
> +#define IBM_MOUSE_IRQ 12
>
> /*
> * init_mouse_hw - initialize the serial port.
> @@ -183,7 +184,7 @@ mouseopen(dev_t dev, int flags, io_req_t ior)
> break;
> case IBM_MOUSE:
> mousebufsize = 3;
> - kd_mouse_open(dev, 12);
> + kd_mouse_open(dev, IBM_MOUSE_IRQ);
> ibm_ps2_mouse_open(dev);
> break;
> case NO_MOUSE:
> @@ -222,6 +223,7 @@ kd_mouse_open(
>
> oldvect = ivect[mouse_pic];
> ivect[mouse_pic] = kdintr;
> + unmask_irq(mouse_pic);
> splx(s);
> }
>
> @@ -243,7 +245,7 @@ mouseclose(
> break;
> case IBM_MOUSE:
> ibm_ps2_mouse_close(dev);
> - kd_mouse_close(dev, 12);
> + kd_mouse_close(dev, IBM_MOUSE_IRQ);
> {int i = 20000; for (;i--;); }
> kd_mouse_drain();
> break;
> @@ -282,6 +284,7 @@ kd_mouse_close(
> {
> spl_t s = splhi();
>
> + mask_irq(mouse_pic);
> ivect[mouse_pic] = oldvect;
> splx(s);
> }
> --
> 2.34.1
>
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.