Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
[linux-2.6-block.git] / drivers / block / cciss.c
index 62b6c2cc80b5e9d7ef68a7ff84a447e24bb7ade5..d2d95ff5353b08a4f49d1c3da4179090751851bf 100644 (file)
@@ -4257,6 +4257,13 @@ static void cciss_find_board_params(ctlr_info_t *h)
        cciss_get_max_perf_mode_cmds(h);
        h->nr_cmds = h->max_commands - 4 - cciss_tape_cmds;
        h->maxsgentries = readl(&(h->cfgtable->MaxSGElements));
+       /*
+        * The P600 may exhibit poor performnace under some workloads
+        * if we use the value in the configuration table. Limit this
+        * controller to MAXSGENTRIES (32) instead.
+        */
+       if (h->board_id == 0x3225103C)
+               h->maxsgentries = MAXSGENTRIES;
        /*
         * Limit in-command s/g elements to 32 save dma'able memory.
         * Howvever spec says if 0, use 31