From: FUJITA Tomonori Date: Mon, 20 Dec 2010 16:44:45 +0000 (+0200) Subject: [SCSI] st: Increase success probability in driver buffer allocation X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=46081b166415acb66d4b3150ecefcd9460bb48a1;p=linux-beck.git [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 Signed-off-by: Kai Makisara Reported-by: Lukas Kolbe Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 12a36acae0b0..1871b8ae83ae 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -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;