v2.4.19-rmk4 slab.c: /proc/slabinfo uses broken instead of slab labels

Georg Nikodym (georgn@somanetworks.com)
Wed, 27 Nov 2002 15:15:17 -0500


--=.JXwq5O4(RNa,GD
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

In the 2.4.18-2.4.19 timeframe:

http://linux.bkbits.net:8080/linux-2.4/cset@1.536

brcl (Ben LaHaise, I think) pushed in a change to mm/slab.c which
(amongst other things) adds the following code:

...
name = cachep->name;
===> {
===> char tmp;
===> if (__get_user(tmp, name))
===> name = "broken";
===> }

seq_printf(m, "%-17s %6lu %6lu %6u %4lu %4lu %4u",
name, active_objs, num_objs, cachep->objsize,
active_slabs, num_slabs, (1<<cachep->gfporder));
...

to s_show() (the stuff that gets called when somebody cat's /proc/slabinfo)

Trouble is that on my ARM platform, the __get_user() call always fails
and all the slabinfo entries are labelled "broken".

For my purposes, ifdef'ing the offending block out will likely be
sufficient (and safe?) but I'd like to know:

1. Is the ARM __get_user() broken?
2. Could I be doing something else broken that is confusing __get_user()?
3. What was/is the intent of the test? Or stated differently, why on earth
would cachep->name be a user address?

-g

--=.JXwq5O4(RNa,GD
Content-Type: application/pgp-signature

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

iD8DBQE95SfVoJNnikTddkMRAkc2AJ0VasIWLsTqmoB7dZIgNDNoijx9fwCeNWzj
5Vs+tzLPHbAN6p5nJKzvu3E=
=IZT5
-----END PGP SIGNATURE-----

--=.JXwq5O4(RNa,GD--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/