Re: [PATCH] staging: speakup: refactor synths array to use a list
From: Justin Skists
Date: Wed Jun 06 2018 - 16:28:28 EST
On Wed, Jun 06, 2018 at 03:26:28PM +0200, Samuel Thibault wrote:
> Hello,
>
> Justin Skists, le lun. 04 juin 2018 10:52:12 +0100, a ecrit:
> > The synths[] array is a collection of synths acting like a list.
> > There is no need for synths to be an array, so refactor synths[] to use
> > standard kernel list_head API, instead, and modify the usages to suit.
> > As a side-effect, the maximum number of synths has also become redundant.
>
> This looks good to me,
>
> Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
Thank you.
> Did you test to e.g. insmod speakup_soft ; insmod speakup_dummy ; rmmod
> speakup_soft ; rmmod speakup_dummy
>
> to make sure it did work correctly?
I did. And I swapped synths via the sysfs interface.
As always, it's always good to double-check. So, I've scripted the test
sequence that I used and attached the output.
> I'd also rather see it tested in the real wild before committing.
As it should be. :)
Justin
Kernel info
-----------
# uname -a
Linux buildroot 4.17.0-rc7-next-20180601 #1 SMP Mon Jun 4 09:31:05 BST 2018 x86_64 GNU/Linux
insert modules
--------------
# modprobe speakup
# modprobe speakup_dummy dev=ttyS1 ser=1 start=1
# modprobe speakup_soft
# lsmod
Module Size Used by Tainted: G
speakup_soft 16384 0
speakup_dummy 16384 0
speakup 118784 2 speakup_soft,speakup_dummy
switching to soft
-----------------
# echo 'soft' > /sys/accessibility/speakup/synth
# cat /sys/accessibility/speakup/synth
soft
switching to dummy
------------------
# echo 'dummy' > /sys/accessibility/speakup/synth
# cat /sys/accessibility/speakup/synth
dummy
Removing modules
----------------
# rmmod speakup_dummy
# rmmod speakup_soft
# lsmod
Module Size Used by Tainted: G
speakup 118784 0
view message log
----------------
# tail -25 /var/log/messages
Jun 6 20:06:57 buildroot kern.notice kernel: random: ssh-keygen: uninitialized urandom read (32 bytes read)
Jun 6 20:06:57 buildroot kern.notice kernel: random: sshd: uninitialized urandom read (32 bytes read)
Jun 6 20:06:57 buildroot auth.info sshd[105]: Server listening on :: port 22.
Jun 6 20:06:57 buildroot auth.info sshd[105]: Server listening on 0.0.0.0 port 22.
Jun 6 20:06:57 buildroot daemon.info : starting pid 107, tty '/dev/tty1': '/sbin/getty -L tty1 0 vt100 '
Jun 6 20:07:00 buildroot auth.info login[107]: root login on 'tty1'
Jun 6 20:07:08 buildroot kern.notice kernel: random: crng init done
Jun 6 20:07:12 buildroot kern.warn kernel: speakup: module is from the staging directory, the quality is unknown, you have been warned.
Jun 6 20:07:13 buildroot kern.info kernel: input: Speakup as /devices/virtual/input/input4
Jun 6 20:07:13 buildroot kern.info kernel: initialized device: /dev/synth, node (MAJOR 10, MINOR 25)
Jun 6 20:07:13 buildroot kern.info kernel: speakup 3.1.6: initialized
Jun 6 20:07:13 buildroot kern.info kernel: synth name on entry is: (null)
Jun 6 20:07:13 buildroot kern.warn kernel: speakup_dummy: module is from the staging directory, the quality is unknown, you have been warned.
Jun 6 20:07:13 buildroot kern.warn kernel: synth probe
Jun 6 20:07:13 buildroot kern.warn kernel: speakup_soft: module is from the staging directory, the quality is unknown, you have been warned.
Jun 6 20:07:13 buildroot kern.info kernel: releasing synth dummy
Jun 6 20:07:13 buildroot kern.warn kernel: synth probe
Jun 6 20:07:13 buildroot kern.info kernel: initialized device: /dev/softsynth, node (MAJOR 10, MINOR 26)
Jun 6 20:07:13 buildroot kern.info kernel: initialized device: /dev/softsynthu, node (MAJOR 10, MINOR 27)
Jun 6 20:07:13 buildroot kern.warn kernel: soft already in use
Jun 6 20:07:13 buildroot kern.info kernel: releasing synth soft
Jun 6 20:07:13 buildroot kern.info kernel: unregistered /dev/softsynth
Jun 6 20:07:13 buildroot kern.info kernel: unregistered /dev/softsynthu
Jun 6 20:07:13 buildroot kern.warn kernel: synth probe
Jun 6 20:07:13 buildroot kern.info kernel: releasing synth dummy