Re: speakup-r functionality

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx
_______________________________________________
Speakup mailing list
Speakup@xxxxxxxxxxxxxxxxx
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup




[Index of Archives]     [Linux for the Blind]     [Fedora Discussioin]     [Linux Kernel]     [Yosemite News]     [Big List of Linux Books]
  Powered by Linux