lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <93ce7034-a26f-b68d-f27f-ef90b6b01bf8@tarent.de>
Date:   Wed, 12 Oct 2022 23:56:11 +0200 (CEST)
From:   Thorsten Glaser <t.glaser@...ent.de>
To:     Andrew Lunn <andrew@...n.ch>
cc:     Eric Dumazet <eric.dumazet@...il.com>,
        Dave Taht <dave.taht@...il.com>, netdev@...r.kernel.org
Subject: Re: RFH, where did I go wrong?

On Wed, 12 Oct 2022, Andrew Lunn wrote:

> > Ooh! Will try! That’s what I get for getting, ahem, inspiration
> > from other qdiscs.
> 
> Are other qdiscs also missing RTNL, or are you just using the
> inspiration in a different context?

I think I was probably confused between which of the functions can
be used when. Eric explained the why. What I was missing was… well,
basically what I asked for weeks ago — what functions I need to
provide when writing a qdisc, and which guarantees and expectations
these have. That rtnl is held for… apparently all but enqueue/dequeue…
was one of these. I doubt other qdiscs miss it, or their users would
also run into this crash or so :/

The thing I did first was to add ASSERT_RTNL(); directly before the
rtnl_* call, just like it was in the other place. That, of course,
crashed immediately. Now *this* could be done systematically.

In OpenBSD, things like that are often hidden behind #if DIAGNOSTIC
which is a global option, disabled in “prod” or space-constrained
(installer) kernels but enabled for the “generic” one for wide testing.
Something to think about?

I’m sure there’s lots of things like flow analysis around in the
Linux world, however that wouldn’t help out-of-tree code being
developed, whereas extra checks like that would. Just some thoughts,
as said earlier this is basically¹ my start in Linux kernel dev.

bye,
//mirabilos
① some small patching of existing code over the years excepted
-- 
Infrastrukturexperte • tarent solutions GmbH
Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 5168 • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg

                        ****************************************************
/⁀\ The UTF-8 Ribbon
╲ ╱ Campaign against      Mit dem tarent-Newsletter nichts mehr verpassen:
 ╳  HTML eMail! Also,     https://www.tarent.de/newsletter
╱ ╲ header encryption!
                        ****************************************************

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ