> This sector_div() is in linear_conf() while the call trace indicates > the bug happens in mddev_put(). I'll have a deeper look later today. > > Is this a recent regression? Sorry, I don't know. 2.6.24.4 has the some problem. the code linear.c : 158 min_spacing = conf->array_sectors / 2; 159 sector_div(min_spacing, PAGE_SIZE/sizeof(struct dev_info *)); if the array size is less then 1024K and the system is 32 based, min_spacing will be ZERO. 174 if (sz >= min_spacing && sz < conf->hash_spacing) 175 conf->hash_spacing = sz; when min_spacing is ZERO then the hash_spacing is ZERO, too. 199 base = conf->hash_spacing >> conf->preshift; 200 round = sector_div(sz, base); here is base is ZERO, and case didive error. raid of less then 1M size is really unusual, just refusing the request is OK. Correct me if I have something wrong. Thanks a lot. -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html