Subject: Re: [PATCH v2 03/10] RapidIO: Use stored ingress port number instead of register read

From: Andrew Morton <[email-masked]>
Date: Tue, 14 Sep 2010 15:12:19 -0700

On Tue, 14 Sep 2010 10:59:16 -0400
Alexandre Bounine <[email-masked]> wrote:

> @@ -219,6 +219,7 @@ struct rio_net {
>  /**
>   * struct rio_switch - RIO switch info
>   * @node: Node in global list of switches
> + * @rdev: Associated RIO device structure
>   * @switchid: Switch ID that is unique across a network
>   * @hopcount: Hopcount to this switch
>   * @destid: Associated destid in the path
> @@ -234,6 +235,7 @@ struct rio_net {
>   */
>  struct rio_switch {
>  	struct list_head node;
> +	struct rio_dev *rdev;
>  	u16 switchid;
>  	u16 hopcount;
>  	u16 destid;

What is the locking for rdev?  In other patches I see pointer chases
with no obvious locking against concurrent changes?