Re: [Bug #13112] Oops in drain_array

Jens Axboe
2009-04-28T06:47:49Z

On Mon, Apr 27 2009, David Rientjes wrote:
> On Mon, 27 Apr 2009, Bart wrote:
>
> > After turning the suggested debuging options I've got tons of these when
> > trying to stress the tape device like before:
> >
> > Apr 27 16:57:30 fs kernel: [ 96.446708] slab error in verify_redzone_free():
> > cache `size-128': memory outside object was overwritten
> > Apr 27 16:57:30 fs kernel: [ 96.446713] Pid: 0, comm: swapper Not tainted
> > 2.6.29.1-64 #2
> > Apr 27 16:57:30 fs kernel: [ 96.446715] Call Trace:
> > Apr 27 16:57:30 fs kernel: [ 96.446717] <IRQ> [<ffffffff8029adc5>]
> > __slab_error+0x1f/0x25
> > Apr 27 16:57:30 fs kernel: [ 96.446728] [<ffffffff8029b24b>]
> > cache_free_debugcheck+0x108/0x1d6
> > Apr 27 16:57:30 fs kernel: [ 96.446731] [<ffffffff8029b473>]
> > kfree+0x81/0xc2
> > Apr 27 16:57:30 fs kernel: [ 96.446735] [<ffffffff802bd311>]
> > bio_free_map_data+0xc/0x1e
>
> This appears to be kfree(bmd->iovecs) in bio_free_map_data(). It looks
> like the memcpy size in bio_set_map_data() overrides the kmalloc size; in
> other words, for a redzone error, bio->bi_vcnt > nr_pages in
> bio_copy_user_iov().

What -git version was this reproduced with?

--
Jens Axboe