[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C97C6D8.4010407@neli.hopto.org>
Date: Mon, 20 Sep 2010 22:40:56 +0200
From: Micha Nelissen <micha@...i.hopto.org>
To: "Bounine, Alexandre" <Alexandre.Bounine@....com>
CC: Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
Thomas Moll <thomas.moll@...go.com>,
Matt Porter <mporter@...nel.crashing.org>,
Li Yang <leoli@...escale.com>,
Kumar Gala <galak@...nel.crashing.org>
Subject: Re: [PATCH v2 03/10] RapidIO: Use stored ingress port number instead
of register read
Hi Alex,
Bounine, Alexandre wrote:
> struct rio_dev {
> struct list_head global_list;
> struct list_head net_list;
> .....
> ..... rest of rio_dev
> .....
> struct rio_switch switch[0];
> }
It makes sense to let rio_dev structures point to the switch they are
attached to. That can be useful in various situations, but is not
possible with this setup.
If a rio_dev is a switch then rdev->rswitch->rdev == rdev holds.
> This will remove extra memory allocation, remove overlapping structure
> members and clean code sections like one shown below:
>
> u8 hopcount = 0xff;
> u16 destid = rdev->destid;
>
> if (rdev->rswitch) {
> destid = rdev->rswitch->destid;
> hopcount = rdev->rswitch->hopcount;
> }
Note that it is possible for rdev->destid to differ from
rdev->rswitch->destid even if rswitch->rdev == rdev (for non-hosts i.e.
agents). rswitch->destid is the destid by which we discovered the switch
(and can reach it) but rdev->destid is the actual id given to the switch.
Micha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists