]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/scsi/st.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / scsi / st.c
index 5b7388f1c83545975b4ebcad9a73f62cb7669f36..1871b8ae83ae7031f73084470278c7a89ce8da96 100644 (file)
@@ -17,7 +17,7 @@
    Last modified: 18-JAN-1998 Richard Gooch <rgooch@atnf.csiro.au> Devfs support
  */
 
-static const char *verstr = "20100829";
+static const char *verstr = "20101219";
 
 #include <linux/module.h>
 
@@ -3729,9 +3729,11 @@ 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;
        }
        if (max_segs * (PAGE_SIZE << order) < new_size) {
                if (order == ST_MAX_ORDER)
@@ -3758,7 +3760,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;
 }