From: Andrew Morton BUG: using smp_processor_id() in preemptible [00000001] code: khelper/972 caller is drive_stat_acct+0x37/0x5e Call Trace: [] debug_smp_processor_id+0xb1/0xc4 [] drive_stat_acct+0x37/0x5e [] bio_attempt_back_merge+0x87/0x91 [] __make_request+0xb9/0x2ed [] generic_make_request+0x1e9/0x222 [] submit_bio+0xfb/0x108 [] mpage_bio_submit+0x22/0x26 [] do_mpage_readpage+0x44a/0x4e2 [] radix_tree_insert+0x69/0x1dc [] __inc_zone_state+0x11/0x6d ... Cc: Jens Axboe Signed-off-by: Andrew Morton --- block/ll_rw_blk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN block/ll_rw_blk.c~git-block-atomicity-fix block/ll_rw_blk.c --- a/block/ll_rw_blk.c~git-block-atomicity-fix +++ a/block/ll_rw_blk.c @@ -2577,7 +2577,7 @@ static void drive_stat_acct(struct reque return; if (!new_io) { - __disk_stat_inc(rq->rq_disk, merges[rw]); + disk_stat_inc(rq->rq_disk, merges[rw]); } else { disk_round_stats(rq->rq_disk); rq->rq_disk->in_flight++; _