* [PATCH 2/2] rsxx: Fix possible kernel panic with invalid config.
@ 2013-10-18 22:12 Philip J. Kelleher
0 siblings, 0 replies; only message in thread
From: Philip J. Kelleher @ 2013-10-18 22:12 UTC (permalink / raw)
To: axboe; +Cc: linux-kernel, brking
From: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>
This patch fixes a possible Kernel Panic on driver load if
the configuration on the card is messed up or not yet set.
The driver could possible give a 32 bit unsigned all Fs to
the kernel as the device's block size.
Now we only write the block size to the kernel if the
configuration from the card is valid.
Also, driver version is being updated.
Signed-off-by: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>
-------------------------------------------------------------------------------
diff -uprN -X linux-2.6.32-422.el6-vanilla/Documentation/dontdiff linux-2.6.32-422.el6-vanilla/drivers/block/rsxx/dev.c linux-2.6.32-422.el6/drivers/block/rsxx/dev.c
--- linux-2.6.32-422.el6-vanilla/drivers/block/rsxx/dev.c 2013-10-15 15:19:39.406674940 -0500
+++ linux-2.6.32-422.el6/drivers/block/rsxx/dev.c 2013-10-18 13:40:30.943877311 -0500
@@ -297,13 +297,15 @@ int rsxx_setup_dev(struct rsxx_cardinfo
return -ENOMEM;
}
- blk_size = card->config.data.block_size;
+ if (card->config_valid) {
+ blk_size = card->config.data.block_size;
+ blk_queue_dma_alignment(card->queue, blk_size - 1);
+ blk_queue_logical_block_size(card->queue, blk_size);
+ }
blk_queue_make_request(card->queue, rsxx_make_request);
blk_queue_bounce_limit(card->queue, BLK_BOUNCE_ANY);
- blk_queue_dma_alignment(card->queue, blk_size - 1);
blk_queue_max_hw_sectors(card->queue, blkdev_max_hw_sectors);
- blk_queue_logical_block_size(card->queue, blk_size);
blk_queue_physical_block_size(card->queue, RSXX_HW_BLK_SIZE);
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, card->queue);
diff -uprN -X linux-2.6.32-422.el6-vanilla/Documentation/dontdiff linux-2.6.32-422.el6-vanilla/drivers/block/rsxx/rsxx_priv.h linux-2.6.32-422.el6/drivers/block/rsxx/rsxx_priv.h
--- linux-2.6.32-422.el6-vanilla/drivers/block/rsxx/rsxx_priv.h 2013-10-18 13:21:36.219677235 -0500
+++ linux-2.6.32-422.el6/drivers/block/rsxx/rsxx_priv.h 2013-10-18 13:40:30.952991256 -0500
@@ -52,7 +52,7 @@ struct proc_cmd;
#define RS70_PCI_REV_SUPPORTED 4
#define DRIVER_NAME "rsxx"
-#define DRIVER_VERSION "4.0.2.2510"
+#define DRIVER_VERSION "4.0.3.2516"
/* Block size is 4096 */
#define RSXX_HW_BLK_SHIFT 12
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2013-10-18 22:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-18 22:12 [PATCH 2/2] rsxx: Fix possible kernel panic with invalid config Philip J. Kelleher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®