From: Russell King <rmk+lkml@arm.linux.org.uk>
To: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
Cc: David Hinds <dhinds@sonic.net>, linux-kernel@vger.kernel.org
Subject: Re: Worst recursion in the kernel
Date: Wed, 3 Dec 2003 22:57:43 +0000 [thread overview]
Message-ID: <20031203225743.A25889@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20031203190440.GA15857@wohnheim.fh-wedel.de>; from joern@wohnheim.fh-wedel.de on Wed, Dec 03, 2003 at 08:04:40PM +0100
On Wed, Dec 03, 2003 at 08:04:40PM +0100, Jörn Engel wrote:
> You are right, verify_cis_cache() does not belong into the list.
> Gotta see where that bug comes from. set_cis_map() is correct,
> though. It does call validate_mem(), at least in my copy of
> 2.6.0-test11:
>
> static unsigned char *
> set_cis_map(struct pcmcia_socket *s, unsigned int card_offset, unsigned int flags)
> {
> pccard_mem_map *mem = &s->cis_mem;
> if (!(s->features & SS_CAP_STATIC_MAP) &&
> mem->sys_start == 0) {
> validate_mem(s);
> ...
>
> You can have the current code if you are really interested. It takes
> the call graph as generated by smatch and follows all function calls.
> If it ever revisits a function that was already on the path, it prints
> out a warning like above.
Yes, but the condition of the /data/ is such that it will not recurse.
A pure "can this function call that function" analysis ignoring the
state of the data will say this will infinitely recuse. Include
the data, and you'll find it has a very definite recursion limit.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
next prev parent reply other threads:[~2003-12-03 22:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-03 14:31 Worst recursion in the kernel Jörn Engel
2003-12-03 18:07 ` David Hinds
2003-12-03 19:04 ` Jörn Engel
2003-12-03 22:57 ` Russell King [this message]
2003-12-03 23:08 ` Mike Fedyk
2003-12-03 23:36 ` David Hinds
2003-12-04 14:14 ` Jörn Engel
2003-12-04 15:08 ` Martin Waitz
2003-12-04 18:40 ` Russell King
2003-12-04 18:46 ` Jörn Engel
2003-12-03 23:08 ` David Hinds
2003-12-04 13:47 ` Jörn Engel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031203225743.A25889@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=dhinds@sonic.net \
--cc=joern@wohnheim.fh-wedel.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.