From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by befuddled.reisers.ca (Postfix, from userid 65534) id F27801EFA18; Mon, 21 Aug 2017 00:35:12 -0400 (EDT) Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) by befuddled.reisers.ca (Postfix) with ESMTPS id 5036B1EF5CB for ; Mon, 21 Aug 2017 00:35:10 -0400 (EDT) Received: by mail-oi0-x22f.google.com with SMTP id g131so143508858oic.3 for ; Sun, 20 Aug 2017 21:35:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4hyk+Kbns12ZXr/o4NVcgC3ZXB3HPMPDIJVlpue5z9s=; b=kh/zOgLi/YC3qZTxXPwPZIaMot/5uUvuaOxK/NsypnpKxTxgFSb0FxyCwz49HA9Gge HOer0QjXGd8XQbndnvYPBBCerDiTfYeLsDe9dM/qxLfFVTgNn/REeMFoAQ7+fg3IqyMy kzo1u/ZjE3W31Xlmpucnin2BcejRGD4c16e5POPd9BJ69GvhE0fnQYffYlFow2AOsT4a nwJY0hKO3DmfuGiIExMV7HLS8uf5mDpTdEDdqJ39dkF4qmohjutJUlNu3iynMNIUDiMt cc2K3oB8UFCY+CKpzkDnr7qy8wuP8s1jaRqSaFQDYSD2YfmVKXrAj8yKZ6vN92+2W1CU xfyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=4hyk+Kbns12ZXr/o4NVcgC3ZXB3HPMPDIJVlpue5z9s=; b=Si/P6l5PptJVB+jOsQKZ7quri1Z+5dYCdZD1WsURW39/KZSd4XUHf++WRf1eR4+G+0 Bt2JEqKxr5BD4qoSdTeObIrMHBkDkErTTbqPK37KbagBEfQI0suC15F9uI2JzfsOyS6P OONzOzRlp0h2lJF44m6TT2JM1WPgjobRqltyXZyLxC/vijdNo2OraAIFBDa1YncPnBMq pI/ieYDvkGmf4RiDN6CrabABolZVTHaPlyQ1zGEPeTdODCutg1tsZpgZ5YzO+o+pjP/w 0WlSX+g/pNK1dBCZXhoOsQXBlUKCs7sQ1DoBUX1neMFh2/RedL4+Ezv7em8j++a0hZFa WW7g== X-Gm-Message-State: AHYfb5jP9mnghSwYc8PF6pYPcxKk1hsUR/zRb3e4Q/G8EbL1fLcbnkVY GiHElX8y7qd9eTq/wsIUBgvnAiSbQw== X-Received: by 10.202.178.11 with SMTP id b11mr23320031oif.299.1503290108462; Sun, 20 Aug 2017 21:35:08 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.26.53 with HTTP; Sun, 20 Aug 2017 21:35:07 -0700 (PDT) Received: by 10.157.26.53 with HTTP; Sun, 20 Aug 2017 21:35:07 -0700 (PDT) In-Reply-To: References: <20170820214527.GA464@sanghar> From: Okash Khawaja Date: Mon, 21 Aug 2017 05:35:07 +0100 Message-ID: Subject: Re: speakup-r functionality To: John Covici Cc: "Speakup is a screen review system for Linux." X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: speakup@linux-speakup.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Speakup is a screen review system for Linux." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Aug 2017 04:35:13 -0000 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" 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@ccs.covici.com