From 373daacfce9ea0091cb3027572354ddebefb8ebb Mon Sep 17 00:00:00 2001 From: Kai Makisara Date: Mon, 20 Dec 2010 18:43:39 +0200 Subject: [SCSI] st: Store page order before driver buffer allocation The order of the pages allocated for the driver buffer must be stored before allocation because it is used in freeing already allocated pages if allocation fails. Signed-off-by: Kai Makisara Reported-by: Lukas Kolbe Signed-off-by: James Bottomley --- drivers/scsi/st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers') diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 5b7388f1c835..12a36acae0b0 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -17,7 +17,7 @@ Last modified: 18-JAN-1998 Richard Gooch Devfs support */ -static const char *verstr = "20100829"; +static const char *verstr = "20101219"; #include @@ -3732,6 +3732,7 @@ static int enlarge_buffer(struct st_buffer * STbuffer, int new_size, int need_dm order < ST_MAX_ORDER && b_size < new_size; order++, b_size *= 2) ; /* empty */ + STbuffer->reserved_page_order = order; } if (max_segs * (PAGE_SIZE << order) < new_size) { if (order == ST_MAX_ORDER) @@ -3758,7 +3759,6 @@ static int enlarge_buffer(struct st_buffer * STbuffer, int new_size, int need_dm segs++; } STbuffer->b_data = page_address(STbuffer->reserved_pages[0]); - STbuffer->reserved_page_order = order; return 1; } -- cgit v1.2.1