[SCSI] st: Increase success probability in driver buffer allocation

Modify allocation to try the minimum possible page order allowed by the HBA
scatter/gather segment limit in allocation of the driver's internal
buffer. This increases the probability of successful allocation. The
allocation may still fail if this minimum order is > 0.

Signed-off-by: FUJITA Tomonori <[email protected]>
Signed-off-by: Kai Makisara <[email protected]>
Reported-by: Lukas Kolbe <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
This commit is contained in:
FUJITA Tomonori 2010-12-20 18:44:45 +02:00 • committed by James Bottomley
commit 46081b1664

View file

@ -3729,7 +3729,8 @@ static int enlarge_buffer(struct st_buffer * STbuffer, int new_size, int need_dm
b_size = PAGE_SIZE << order;
} else {
for (b_size = PAGE_SIZE, order = 0;
order < ST_MAX_ORDER && b_size < new_size;
order < ST_MAX_ORDER &&
max_segs * (PAGE_SIZE << order) < new_size;
order++, b_size *= 2)
; /* empty */
STbuffer->reserved_page_order = order;