Skip to content

Commit

Permalink
rapidio: change endpoint device name format
Browse files Browse the repository at this point in the history
Change endpoint device name format to use a component tag value instead of
device destination ID.

RapidIO specification defines a component tag to be a unique identifier
for devices in a network.  RapidIO switches already use component tag as
part of their device name and also use it for device identification when
processing error management event notifications.

Forming an endpoint's device name using its component tag instead of
destination ID allows to keep sysfs device directories unchanged in case
if a routing process dynamically changes endpoint's destination ID as a
result of route optimization.

This change should not affect any existing users because a valid device
destination ID always should be obtained by reading "destid" attribute and
not by parsing device name.

This patch also removes switchid member from struct rio_switch because it
simply duplicates the component tag and does not have other use than in
device name generation.

Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Andre van Herk <andre.van.herk@Prodrive.nl>
Cc: Micha Nelissen <micha.nelissen@Prodrive.nl>
Cc: Stef van Os <stef.van.os@Prodrive.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alexandre Bounine authored and torvalds committed Jul 3, 2013
1 parent ed5edee commit 6ca40c2
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 5 deletions.
5 changes: 2 additions & 3 deletions drivers/rapidio/rio-scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,6 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
/* If a PE has both switch and other functions, show it as a switch */
if (rio_is_switch(rdev)) {
rswitch = rdev->rswitch;
rswitch->switchid = rdev->comp_tag & RIO_CTAG_UDEVID;
rswitch->port_ok = 0;
spin_lock_init(&rswitch->lock);
rswitch->route_table = kzalloc(sizeof(u8)*
Expand All @@ -446,7 +445,7 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
rdid++)
rswitch->route_table[rdid] = RIO_INVALID_ROUTE;
dev_set_name(&rdev->dev, "%02x:s:%04x", rdev->net->id,
rswitch->switchid);
rdev->comp_tag & RIO_CTAG_UDEVID);

if (do_enum)
rio_route_clr_table(rdev, RIO_GLOBAL_TABLE, 0);
Expand All @@ -459,7 +458,7 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
rio_enable_rx_tx_port(port, 0, destid, hopcount, 0);

dev_set_name(&rdev->dev, "%02x:e:%04x", rdev->net->id,
rdev->destid);
rdev->comp_tag & RIO_CTAG_UDEVID);
}

rio_attach_device(rdev);
Expand Down
2 changes: 0 additions & 2 deletions include/linux/rio.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ union rio_pw_msg;
/**
* struct rio_switch - RIO switch info
* @node: Node in global list of switches
* @switchid: Switch ID that is unique across a network
* @route_table: Copy of switch routing table
* @port_ok: Status of each port (one bit per port) - OK=1 or UNINIT=0
* @ops: pointer to switch-specific operations
Expand All @@ -101,7 +100,6 @@ union rio_pw_msg;
*/
struct rio_switch {
struct list_head node;
u16 switchid;
u8 *route_table;
u32 port_ok;
struct rio_switch_ops *ops;
Expand Down

0 comments on commit 6ca40c2

Please sign in to comment.