Use UMA_ALIGNOF() for name cache UMA zones.
This fixes kernel crashes due to misaligned accesses to the 64-bit time_t embedded in struct namecache_ts in MIPS n32 kernels. MFC after: 1 week Sponsored by: DARPA / AFRL
This commit is contained in:
parent
13b1e2684d
commit
bb8b530dd0
@ -1754,16 +1754,20 @@ nchinit(void *dummy __unused)
|
||||
|
||||
cache_zone_small = uma_zcreate("S VFS Cache",
|
||||
sizeof(struct namecache) + CACHE_PATH_CUTOFF + 1,
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT);
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGNOF(struct namecache),
|
||||
UMA_ZONE_ZINIT);
|
||||
cache_zone_small_ts = uma_zcreate("STS VFS Cache",
|
||||
sizeof(struct namecache_ts) + CACHE_PATH_CUTOFF + 1,
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT);
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGNOF(struct namecache_ts),
|
||||
UMA_ZONE_ZINIT);
|
||||
cache_zone_large = uma_zcreate("L VFS Cache",
|
||||
sizeof(struct namecache) + NAME_MAX + 1,
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT);
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGNOF(struct namecache),
|
||||
UMA_ZONE_ZINIT);
|
||||
cache_zone_large_ts = uma_zcreate("LTS VFS Cache",
|
||||
sizeof(struct namecache_ts) + NAME_MAX + 1,
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_ZINIT);
|
||||
NULL, NULL, NULL, NULL, UMA_ALIGNOF(struct namecache_ts),
|
||||
UMA_ZONE_ZINIT);
|
||||
|
||||
nchashtbl = hashinit(desiredvnodes * 2, M_VFSCACHE, &nchash);
|
||||
ncbuckethash = cache_roundup_2(mp_ncpus * 64) - 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user