speakup-r functionality

Okash Khawaja okash.khawaja at gmail.com
Mon Aug 21 00:35:07 EDT 2017


Okay then it must be that speakup_fake_down_arrow() is called from inside a
different interrupt when on serial synth. Otherwise it would have caused
kernel lock up.

Thanks very much for testing. I'll try to fix my serial synth.

Cheers,
Okash

On 21 Aug 2017 4:33 am, "John Covici" <covici at ccs.covici.com> wrote:

I tried the new patch, but no joy.  I hope you can fix your serial
synth to test.

Thanks for trying.


On Sun, 20 Aug 2017 17:45:27 -0400,
Okash Khawaja wrote:
>
> Hi,
>
> Here's one thing I think worth trying. I have updated the patch so that
> the net difference between before and after the patch is that
> speakup_fake_down_arrow() is not called when inside interrupt context.
>
> Calling speakup_fake_down_arrow() inside interrupt causes the kernel
> lock up because this itself generates same interrupt, leading to
> infinite recursion.
>
> I didn't think this code was triggered outside of interrupt context, but
> it possibly is when using a serial console - which is the only
> explanation I can think of for the behaviour you've described.
>
> Thanks
>
>
> ---
>  drivers/staging/speakup/main.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> --- a/drivers/staging/speakup/main.c
> +++ b/drivers/staging/speakup/main.c
> @@ -1408,7 +1408,10 @@ static void read_all_doc(struct vc_data
>       cursor_track = read_all_mode;
>       spk_reset_index_count(0);
>       if (get_sentence_buf(vc, 0) == -1) {
> -             kbd_fakekey2(vc, RA_DOWN_ARROW);
> +             del_timer(&cursor_timer);
> +             if (!in_interrupt())
> +                     speakup_fake_down_arrow();
> +             start_read_all_timer(vc, RA_DOWN_ARROW);
>       } else {
>               say_sentence_num(0, 0);
>               synth_insert_next_index(0);

--
Your life is like a penny.  You're going to lose it.  The question is:
How do
you spend it?

         John Covici
         covici at ccs.covici.com


More information about the Speakup mailing list