Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Nov 2006 21:08:15 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Jung-uk Kim <jkim@FreeBSD.org>
Cc:        freebsd-fs@FreeBSD.org, freebsd-current@FreeBSD.org, Andriy Gapon <avg@icyb.net.ua>
Subject:   Re: ZFS patches for FreeBSD.
Message-ID:  <20061117210000.S11101@delplex.bde.org>
In-Reply-To: <200611161506.58128.jkim@FreeBSD.org>
References:  <1163701391.00638085.1163691003@10.7.7.3> <455CB8CA.8040603@icyb.net.ua> <200611161506.58128.jkim@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 16 Nov 2006, Jung-uk Kim wrote:

> On Thursday 16 November 2006 02:15 pm, Andriy Gapon wrote:
>> Hmm, I saw errors like this with some other 3rd party kernel module
>> when its sources had constructs like:
>>
>> struct some_struct s = {0};
>>
>> Changing the above initialization to explicit bzero() call helped
>> in that case, but I think that there should be some compiler flags
>> or something to handle this.
>
> AFAIK, there was no way to handle this GCC bug with compiler flags.
> '-ffreestanding' should prevent this to happen but it does not.  As
> Max Laier pointed out, it was discussed long time ago.  Bruce Evans
> had good analysis on this issue, too.

Source code that triggers this bug might be broken anyway.  gcc should
only call a function to do the zeroing for large structs, but large
structs might be too large for the kernel stack.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061117210000.S11101>