From: Christoph Hellwig <hch@ns.caldera.de>
To: Joachim Weller <JoachimWeller@web.de>
Cc: Joachim Weller <joachim_weller@hsgmed.com>,
axboe@suse.de, linux-kernel@vger.kernel.org
Subject: Re: BUG: cat /proc/partitions endless loop
Date: Fri, 28 Sep 2001 17:00:04 +0200 [thread overview]
Message-ID: <20010928170004.A14892@caldera.de> (raw)
In-Reply-To: <200109281448.f8SEmvh08284@mailgate5.cinetic.de>
In-Reply-To: <200109281448.f8SEmvh08284@mailgate5.cinetic.de>; from JoachimWeller@web.de on Fri, Sep 28, 2001 at 04:48:57PM +0200
On Fri, Sep 28, 2001 at 04:48:57PM +0200, Joachim Weller wrote:
> Christoph Hellwig <hch@ns.caldera.de> schrieb am 28.09.01:
> > In article <200109281315.f8SDFpA01669@bmdipc2c.germany.agilent.com> you wrote:
> > > I traced the problem down to drivers/block/genhd.c,
> > > where the function get_partition_list() outer loop does not
> > > terminate due to the last element in the structured list starting
> > > with gendisk_head is not initialized to NULL, by whatever reason.
> > > My fix does not cure the pointered endless loop, but prevents
> > > from looping when stepping thru the pointered list.
> >
> > I think the fix could be simpler. What about:
> [...]
>
> > + for (gp = gendisk_head; gp != gendisk_head; gp = gp->next) {
>
> This will break your for loop immedeately, because the loop criteria
> is already violated by the initialization !
>
> But I tried another solution:
> for (gp = gendisk_head; gp && (gp->next != gendisk_head); gp = gp->next) {
>
> with no success - the cat /proc/partition only printed the heading line.
> This proofed to me, that the pointered list is created the wrong way,
> in other words, gendisk_head->next is a pointer to itself.
> It looks to me, that the "next" field in
> /*static*/ struct gendisk *gendisk_head;
> is not initialized (by the compiler ?) correctly to NULL.
That's odd, could you try initilazing gendisk_head to NULL explicitly and try
my proposed fix? The gendisk list handling starts to smell _really_ funny.
Christoph
--
Of course it doesn't work. We've performed a software upgrade.
next prev parent reply other threads:[~2001-09-28 15:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-28 14:48 Re: BUG: cat /proc/partitions endless loop Joachim Weller
2001-09-28 15:00 ` Christoph Hellwig [this message]
2001-09-28 15:22 ` Joachim Weller
-- strict thread matches above, loose matches on Subject: below --
2001-09-28 13:15 Joachim Weller
2001-09-28 13:39 ` Christoph Hellwig
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=20010928170004.A14892@caldera.de \
--to=hch@ns.caldera.de \
--cc=JoachimWeller@web.de \
--cc=axboe@suse.de \
--cc=joachim_weller@hsgmed.com \
--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.