View | Details | Raw Unified | Return to bug 218911 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/vm/uma_core.c (-1 / +11 lines)
Lines 1339-1344 keg_large_init(uma_keg_t keg) Link Here
1339
1339
1340
		if ((PAGE_SIZE * keg->uk_ppera) - keg->uk_rsize < shsize)
1340
		if ((PAGE_SIZE * keg->uk_ppera) - keg->uk_rsize < shsize)
1341
			keg->uk_flags |= UMA_ZONE_OFFPAGE;
1341
			keg->uk_flags |= UMA_ZONE_OFFPAGE;
1342
		else if ((PAGE_SIZE * keg->uk_ppera) - shsize > UINT16_MAX) {
1343
			/*
1344
			 * We may have enough room but keg->uk_pgoff
1345
			 * would overflow in keg_ctor().
1346
			 */
1347
#ifdef UMA_DEBUG
1348
			printf("Setting UMA_ZONE_OFFPAGE for %s "
1349
			       "to prevent overflow\n", keg->uk_name);
1350
#endif
1351
			keg->uk_flags |= UMA_ZONE_OFFPAGE;
1352
		}
1342
	}
1353
	}
1343
1354
1344
	if ((keg->uk_flags & UMA_ZONE_OFFPAGE) &&
1355
	if ((keg->uk_flags & UMA_ZONE_OFFPAGE) &&
1345
- 

Return to bug 218911