Re: [PATCH v2 03/10] RapidIO: Use stored ingress port number insteadof register read
From: Micha Nelissen
Date: Mon Sep 20 2010 - 16:41:17 EST
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/