uma: Never pass cache zones to memguard
Items allocated from cache zones cannot usefully be protected by memguard. PR: 267151 Reported and tested by: pho MFC after: 1 week
This commit is contained in:
parent
e9adbcdf2e
commit
2dba2288aa
@ -3561,7 +3561,8 @@ uma_zalloc_debug(uma_zone_t zone, void **itemp, void *udata, int flags)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_MEMGUARD
|
||||
if ((zone->uz_flags & UMA_ZONE_SMR) == 0 && memguard_cmp_zone(zone)) {
|
||||
if ((zone->uz_flags & (UMA_ZONE_SMR | UMA_ZFLAG_CACHE)) == 0 &&
|
||||
memguard_cmp_zone(zone)) {
|
||||
void *item;
|
||||
item = memguard_alloc(zone->uz_size, flags);
|
||||
if (item != NULL) {
|
||||
@ -3596,7 +3597,8 @@ uma_zfree_debug(uma_zone_t zone, void *item, void *udata)
|
||||
("uma_zfree_debug: called with spinlock or critical section held"));
|
||||
|
||||
#ifdef DEBUG_MEMGUARD
|
||||
if ((zone->uz_flags & UMA_ZONE_SMR) == 0 && is_memguard_addr(item)) {
|
||||
if ((zone->uz_flags & (UMA_ZONE_SMR | UMA_ZFLAG_CACHE)) == 0 &&
|
||||
is_memguard_addr(item)) {
|
||||
if (zone->uz_dtor != NULL)
|
||||
zone->uz_dtor(item, zone->uz_size, udata);
|
||||
if (zone->uz_fini != NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user