NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-arm/50563: pool allocator corruption due to __MUTEX_PRIVATE
The following reply was made to PR port-arm/50563; it has been noted by GNATS.
From: christos%zoulas.com@localhost (Christos Zoulas)
To: gnats-bugs%NetBSD.org@localhost, port-arm-maintainer%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
frank.zerangue%gmail.com@localhost
Cc:
Subject: Re: port-arm/50563: pool allocator corruption due to __MUTEX_PRIVATE
Date: Tue, 15 Dec 2015 12:34:19 -0500
On Dec 15, 5:05pm, frank.zerangue%gmail.com@localhost (Frank Zerangue) wrote:
-- Subject: Re: port-arm/50563: pool allocator corruption due to __MUTEX_PRIV
| Yes, that is the case.=20
|
| What is the need to define two different structs with the same name
| based upon which kernel file that happened to include it, as in this
| case struct kmutex? Two source files that share a type should have the
| same view of the type, yes?
|
| We can guard this with the CTASSERT as you suggested below, but if they
| have to be 8 bits why defined them as a types ipl_cookie_t and
| _cpu_simple_lock_t, why not rather just defined them as 8 bit ints or
| char?
Because if we did, the result would be even worse if the size of those
types changed. You would end up storing truncated versions of them in
the struct since C does not by default warn you about size mismatches
in assignments. I think that the better solution is to add the CTASSERT
so that one is notified that something needs to change...
christos
Home |
Main Index |
Thread Index |
Old Index