Re: Slab corruption after unloading a module

From: Andrey Borzenkov
Date: Sun Apr 16 2006 - 06:43:49 EST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> There was no problem if I just load and unload the module. But if I
> write to the device using "ls > /dev/temp" and then unload the
> module, I would get slab corruption.

you return different value as what has really been consumed:

> if (*f_pos + count > MAX_DSIZE)
> count1 = MAX_DSIZE - *f_pos;
>
> if (copy_from_user (temp_dev->data+*f_pos, buf, count1)) {
> rv = -EFAULT;
> goto wrap_up;
> }
> up (&temp_dev->sem);
> *f_pos += count1;
> return count;

may be it confuses the rest of kernel a bit?

- -andrey
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFEQh/JR6LMutpd94wRAgn/AKCapb6QcSSeHn1X7qD1TxLBs2OCSACgnGg7
o7fTn3l6DTnLEr5EwqL7hjk=
=bHLf
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/