From owner-freebsd-arch@FreeBSD.ORG Tue Sep 18 15:12:26 2007 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9EA616A421; Tue, 18 Sep 2007 15:12:26 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail09.syd.optusnet.com.au (mail09.syd.optusnet.com.au [211.29.132.190]) by mx1.freebsd.org (Postfix) with ESMTP id 5B20513C457; Tue, 18 Sep 2007 15:12:26 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c220-239-235-248.carlnfd3.nsw.optusnet.com.au [220.239.235.248]) by mail09.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id l8IFCCpA013882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 19 Sep 2007 01:12:12 +1000 Date: Wed, 19 Sep 2007 01:12:12 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Joe Marcus Clarke In-Reply-To: <1189629164.80084.81.camel@shumai.marcuscom.com> Message-ID: <20070919005425.P75789@besplex.bde.org> References: <1188600721.1255.11.camel@shumai.marcuscom.com> <20070901112600.GA33832@stack.nl> <1188660782.41727.5.camel@shumai.marcuscom.com> <20070901224025.GA97796@stack.nl> <20070902131910.H46281@delplex.bde.org> <1189629164.80084.81.camel@shumai.marcuscom.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Jilles Tjoelker , freebsd-arch@FreeBSD.org Subject: Re: Understanding interrupted system calls X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2007 15:12:26 -0000 On Wed, 12 Sep 2007, Joe Marcus Clarke wrote: Sorry this reply took so long. > On Sun, 2007-09-02 at 14:17 +1000, Bruce Evans wrote: >>> From Jilles' previous reply: >>>>> The fixed version would then be >>>>> >>>>> error = tsleep(&scp->smode, PZERO|PCATCH, "waitvt", 0); >> >> I think this is right. The kernel should never loop on ERESTART like this. >> Please fix the remaining style bug in it (missing spaces around binary >> operator). > > Bruce, I didn't know if you saw my fix, if it needs more work, or if > you're going to commit it? I'd really like to get this fixed before > 7.0. Should I open a PR to track it? Thanks. > > http://www.marcuscom.com/downloads/syscons.c.diff > http://www.marcuscom.com/downloads/pcvt_ext.c (-STABLE only) I saw a new style bug in it, but wasn't going to complain. Now I will :-). % --- src/sys/dev/syscons/syscons.c.orig 2007-09-02 23:04:15.000000000 -0400 % +++ src/sys/dev/syscons/syscons.c 2007-09-02 23:05:06.000000000 -0400 % @@ -1073,8 +1073,7 @@ scioctl(struct cdev *dev, u_long cmd, ca % scp = sc_get_stat(SC_DEV(sc, i)); % if (scp == scp->sc->cur_scp) % return 0; % - while ((error=tsleep(&scp->smode, PZERO|PCATCH, % - "waitvt", 0)) == ERESTART) ; % + error = tsleep(&scp->smode, (PZERO|PCATCH), "waitvt", 0); % return error; % % case VT_GETACTIVE: /* get active vty # */ It now has extra parentheses, and still doesn't have spaces around the binary operator. In pcvt_ext.c.diff, the changes are larger and I only glanced at most of them, but noticed that the formatting of the `PZERO | PCATCH' are was already what I want but was changed to the above (2 changes instead of 1). pcvt is almost dead and its style so unusual that it is difficult to be bug for bug compatible with, so I would try to avoid making any style changes in it. Please commit all the changes, preferably after fixing the style bugs. Bruce