|
@@ -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
|