lkml.org 
[lkml]   [2003]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH 2.5.65] md/linear oops fix
From
Date
This fixes an oops caused by incorrect usage of sector_div()
in which_dev() in md/linear.c. It was dereferencing an non-existent
hash table entry.

--
Daniel McNeil <daniel@osdl.org>
diff -urNp -X /home/daniel/dontdiff linux-2.5.65/drivers/md/linear.c linux-2.5.65-md/drivers/md/linear.c
--- linux-2.5.65/drivers/md/linear.c Mon Mar 17 13:44:04 2003
+++ linux-2.5.65-md/drivers/md/linear.c Tue Mar 18 09:34:09 2003
@@ -37,7 +37,11 @@ static inline dev_info_t *which_dev(mdde
linear_conf_t *conf = mddev_to_conf(mddev);
sector_t block = sector >> 1;

- hash = conf->hash_table + sector_div(block, conf->smallest->size);
+ /*
+ * sector_div(a,b) returns the remainer and sets a to a/b
+ */
+ (void)sector_div(block, conf->smallest->size);
+ hash = conf->hash_table + block;

if ((sector>>1) >= (hash->dev0->size + hash->dev0->offset))
return hash->dev1;
\
 
 \ /
  Last update: 2005-03-22 13:34    [W:0.255 / U:0.848 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site