svn commit: r199418 - head/sys/dev/syscons
Kostik Belousov
kostikbel at gmail.com
Tue Nov 17 19:50:13 UTC 2009
On Tue, Nov 17, 2009 at 02:34:54PM -0500, Jung-uk Kim wrote:
> On Tuesday 17 November 2009 02:24 pm, Konstantin Belousov wrote:
> > Author: kib
> > Date: Tue Nov 17 19:24:26 2009
> > New Revision: 199418
> > URL: http://svn.freebsd.org/changeset/base/199418
> >
> > Log:
> > Fix pgsignal() call after signature change in r199355.
> >
> > Reported and tested by: bf1783 googlemail com
> > MFC after: 1 month
> >
> > Modified:
> > head/sys/dev/syscons/scvidctl.c
> >
> > Modified: head/sys/dev/syscons/scvidctl.c
> > ===================================================================
> >=========== --- head/sys/dev/syscons/scvidctl.c Tue Nov 17 18:57:44
> > 2009 (r199417) +++ head/sys/dev/syscons/scvidctl.c Tue Nov 17
> > 19:24:26 2009 (r199418) @@ -321,6 +321,7 @@
> > sc_set_pixel_mode(scr_stat *scp, struct return ENODEV;
> > #else
> > video_info_t info;
> > + ksiginfo_t ksi;
> > u_char *font;
> > int prev_ysize;
> > int error;
> > @@ -458,8 +459,11 @@ sc_set_pixel_mode(scr_stat *scp, struct
> > tp->t_winsize.ws_col = scp->xsize;
> > tp->t_winsize.ws_row = scp->ysize;
> > if (tp->t_pgrp != NULL) {
> > + ksiginfo_init(&ksi);
> > + ksi.ksi_signo = SIGWINCH;
> > + ksi.ksi_code = SI_KERNEL;
> > PGRP_LOCK(tp->t_pgrp);
> > - pgsignal(tp->t_pgrp, SIGWINCH, 1);
> > + pgsignal(tp->t_pgrp, SIGWINCH, 1, &ksi);
> > PGRP_UNLOCK(tp->t_pgrp);
> > }
> > }
>
> Probably you wanted this:
>
> --- sys/dev/syscons/scvidctl.c
> +++ sys/dev/syscons/scvidctl.c
> @@ -321,7 +321,6 @@ sc_set_pixel_mode(scr_stat *scp, struct tty *tp, i
> return ENODEV;
> #else
> video_info_t info;
> - ksiginfo_t ksi;
> u_char *font;
> int prev_ysize;
> int error;
> @@ -458,14 +457,8 @@ sc_set_pixel_mode(scr_stat *scp, struct tty *tp, i
> || tp->t_winsize.ws_row != scp->ysize) {
> tp->t_winsize.ws_col = scp->xsize;
> tp->t_winsize.ws_row = scp->ysize;
> - if (tp->t_pgrp != NULL) {
> - ksiginfo_init(&ksi);
> - ksi.ksi_signo = SIGWINCH;
> - ksi.ksi_code = SI_KERNEL;
> - PGRP_LOCK(tp->t_pgrp);
> - pgsignal(tp->t_pgrp, SIGWINCH, 1, &ksi);
> - PGRP_UNLOCK(tp->t_pgrp);
> - }
> +
> + tty_signal_pgrp(tp, SIGWINCH);
> }
>
> return 0;
> ------------------------------------------------------------------
>
> In fact, it seems it was missed in r181905.
>
> Jung-uk Kim
I do not think so, at least it needs further considerations.
First, call to tty_signal_pgrp() requires locked tty.
Second, tty_signal_pgrp() restores i/o processing on the terminal,
tp->t_flags &= ~TF_STOPPED;
that is not quite obviously right thing to do on SIGWINCH.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-head/attachments/20091117/ed0a57b6/attachment.pgp
More information about the svn-src-head
mailing list