The patch titled md: fix possible oops when starting a raid0 array has been added to the -mm tree. Its filename is md-fix-possible-oops-when-starting-a-raid0-array.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: md: fix possible oops when starting a raid0 array From: NeilBrown <neilb@xxxxxxx> This loop that sets up the hash_table has problems. Careful examination will show that the last time through, everything but the first line is pointless. This is because all it does is change 'cur' and 'size' and neither of these are used after the loop. This should ring warning bells... That last time through the loop, size += conf->strip_zone[cur].size can index off the end of the strip_zone array. Depending on what it finds there, it might exit the loop cleanly, or it might spin going further and further beyond the array until it hits an unmapped address. This patch rearranges the code so that the last, pointless, iteration of the loop never happens. i.e. the one statement of the last loop that is needed is moved the the end of the previous loop - or to before the loop starts - and the loop counter starts from 1 instead of 0. Cc: "Don Dupuis" <dondster@xxxxxxxxx> Signed-off-by: Neil Brown <neilb@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/md/raid0.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/md/raid0.c~md-fix-possible-oops-when-starting-a-raid0-array drivers/md/raid0.c --- devel/drivers/md/raid0.c~md-fix-possible-oops-when-starting-a-raid0-array 2006-05-22 00:29:44.000000000 -0700 +++ devel-akpm/drivers/md/raid0.c 2006-05-22 00:29:44.000000000 -0700 @@ -331,13 +331,14 @@ static int raid0_run (mddev_t *mddev) goto out_free_conf; size = conf->strip_zone[cur].size; - for (i=0; i< nb_zone; i++) { - conf->hash_table[i] = conf->strip_zone + cur; + conf->hash_table[0] = conf->strip_zone + cur; + for (i=1; i< nb_zone; i++) { while (size <= conf->hash_spacing) { cur++; size += conf->strip_zone[cur].size; } size -= conf->hash_spacing; + conf->hash_table[i] = conf->strip_zone + cur; } if (conf->preshift) { conf->hash_spacing >>= conf->preshift; _ Patches currently in -mm which might be from neilb@xxxxxxx are origin.patch knfsd-fix-two-problems-that-can-cause-rmmod-nfsd-to-die.patch md-fix-possible-oops-when-starting-a-raid0-array.patch fix-dcache-race-during-umount.patch prune_one_dentry-tweaks.patch remove-softlockup-from-invalidate_mapping_pages.patch kconfig-select-things-at-the-closest-tristate-instead-of-bool.patch make-address_space_operations-invalidatepage-return-void-reiser4.patch md-reformat-code-in-raid1_end_write_request-to-avoid-goto.patch md-remove-arbitrary-limit-on-chunk-size.patch md-remove-useless-ioctl-warning.patch md-increase-the-delay-before-marking-metadata-clean-and-make-it-configurable.patch md-merge-raid5-and-raid6-code.patch md-remove-nuisance-message-at-shutdown.patch md-allow-checkpoint-of-recovery-with-version-1-superblock.patch md-allow-checkpoint-of-recovery-with-version-1-superblock-fix.patch md-allow-a-linear-array-to-have-drives-added-while-active.patch md-support-stripe-offset-mode-in-raid10.patch md-make-md_print_devices-static.patch md-split-reshape-portion-of-raid5-sync_request-into-a-separate-function.patch md-bitmap-fix-online-removal-of-file-backed-bitmaps.patch md-bitmap-remove-bitmap-writeback-daemon.patch md-bitmap-cleaner-separation-of-page-attribute-handlers-in-md-bitmap.patch md-bitmap-use-set_bit-etc-for-bitmap-page-attributes.patch md-bitmap-remove-unnecessary-page-reference-manipulations-from-md-bitmap-code.patch md-bitmap-remove-dead-code-from-md-bitmap.patch md-bitmap-tidy-up-i_writecount-handling-in-md-bitmap.patch md-bitmap-change-md-bitmap-file-handling-to-use-bmap-to-file-blocks.patch md-change-md-bitmap-file-handling-to-use-bmap-to-file-blocks-fix.patch md-calculate-correct-array-size-for-raid10-in-new-offset-mode.patch md-dm-reduce-stack-usage-with-stacked-block-devices.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html