From owner-freebsd-emulation@FreeBSD.ORG Mon May 11 07:52:57 2009 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89BB4106564A for ; Mon, 11 May 2009 07:52:57 +0000 (UTC) (envelope-from tmueller@sysgo.com) Received: from mail.sysgo.com (mail.sysgo.com [195.145.229.155]) by mx1.freebsd.org (Postfix) with ESMTP id E0C908FC0A for ; Mon, 11 May 2009 07:52:56 +0000 (UTC) (envelope-from tmueller@sysgo.com) Received: from donald.sysgo.com (unknown [172.20.1.30]) by mail.sysgo.com (Postfix) with ESMTP id A05757C6B2; Mon, 11 May 2009 09:22:18 +0200 (CEST) Received: from tom.ulm.sysgo.com (tom.ulm.sysgo.com [172.30.3.10]) by donald.sysgo.com (Postfix) with ESMTP id 8E15C3642EF; Mon, 11 May 2009 09:22:11 +0200 (CEST) Date: Mon, 11 May 2009 09:20:45 +0200 From: Thomas Mueller To: Chagin Dmitry Message-ID: <20090511092045.4e18692c@tom.ulm.sysgo.com> In-Reply-To: <20090509080609.GA4415@dchagin.static.corbina.ru> References: <200905090700.n49704gb019256@freefall.freebsd.org> <20090509080609.GA4415@dchagin.static.corbina.ru> Organization: SYSGO AG X-Mailer: Claws Mail 3.7.1 (GTK+ 2.16.1; amd64-portbld-freebsd7.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-emulation@freebsd.org Subject: Re: kern/134276: [linux][patch] MSG_NOSIGNAL not translated for recv(), socket timeout incorrect for 64-bit hosts X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 May 2009 07:52:57 -0000 On Sat, 9 May 2009 12:06:09 +0400, Chagin Dmitry wrote: > On Sat, May 09, 2009 at 07:00:04AM +0000, Thomas Mueller wrote: > > The following reply was made to PR kern/134276; it has been noted by GNATS. > > > > From: Thomas Mueller > > To: Chagin Dmitry > > Cc: freebsd-gnats-submit@freebsd.org > > Subject: Re: kern/134276: [linux][patch] MSG_NOSIGNAL not translated for > > recv(), socket timeout incorrect for 64-bit hosts > > Date: Sat, 9 May 2009 08:30:53 +0200 > > > > > > I've encountered two socket related problems with the Linux emulation: > > > > > > > > 1. A Linux application passing the MSG_NOSIGNAL flag in calls to > > > > recv() or recvfrom() will still receive a SIGPIPE if the condition > > > > for sending the signal is met. > > > > > > > > 2. An attempt to set socket timeouts with a call to setsocktopt() using the > > > > SO_RECVTIMEO or SO_SNDTIMEO option will fail with [EINVAL] on amd64. > > > > > > > > > > What the Linux application you have mentioned? > > > I should know it to test patches. Thank you. > > > > Sorry for not mentioning it in the PR. The applications are part of the > > LM-X License Manager package by X-Formation (http://www.x-formation.com/). > > It looks like they offer a trial download but require registration. > > > > When back in the office (next weeek), I could revert my local changes > > and provide you with an output of linux_kdump if that helps. I would > > also test patches. > > > > > > Thank you, > > Please, apply this two patches. > > http://people.freebsd.org/~dchagin/patches/commit-4952ce8.patch In linux_setsockopt() when calling kern_setsockopt() for SO_RCVTIMEO/SO_SNDTIMEO you need to pass 'name' instead of 'bsd_args.name' since the latter is still undefined at that point: --- commit-4952ce8.patch.orig 2009-05-11 09:07:56.000000000 +0200 +++ commit-4952ce8.patch 2009-05-11 09:08:09.000000000 +0200 @@ -39,7 +39,7 @@ + tv.tv_sec = linux_tv.tv_sec; + tv.tv_usec = linux_tv.tv_usec; + return (kern_setsockopt(td, bsd_args.s, bsd_args.level, -+ bsd_args.name, &tv, UIO_SYSSPACE, sizeof(tv))); ++ name, &tv, UIO_SYSSPACE, sizeof(tv))); + break; + default: + break; > http://people.freebsd.org/~dchagin/patches/commit-6355ebf.patch -- Thomas Mueller