Re: [PATCH] path_id: add handle_scsi_sas

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



harald@xxxxxxxxxx wrote:
> From: Harald Hoyer <harald@xxxxxxxxxx>
> 
> based on code by Jim Garlick.
> ---
>  extras/path_id/path_id.c |   64 +++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 63 insertions(+), 1 deletions(-)
> 
> diff --git a/extras/path_id/path_id.c b/extras/path_id/path_id.c
> index dcee378..c3d241b 100644
> --- a/extras/path_id/path_id.c
> +++ b/extras/path_id/path_id.c
> @@ -121,7 +121,69 @@ out:
>  
>  static struct udev_device *handle_scsi_sas(struct udev_device *parent, char **path)
>  {
> -	return NULL;
> +	struct udev *udev  = udev_device_get_udev(parent);
> +	struct udev_device *end_dev;
> +	struct udev_device *sasdev;
> +	struct udev_device *phydev;
> +	struct udev_device *parent_dev;
> +	struct udev_device *child_dev;
> +	char syspath[UTIL_PATH_SIZE], *base;
> +	char phy_path[UTIL_PATH_SIZE];
> +	const char *end_name, *name, *enc, *bay;
> +	const char *port_path;
> +	int scsi_host;
> +	int num_phys = 8;
> +	int i;
> +
> +	parent_dev = parent;
> +	while (1) {
> +		child_dev = parent_dev;
> +		parent_dev = udev_device_get_parent(child_dev);
> +		if (parent_dev == NULL)
> +			return NULL;
> +		name = udev_device_get_sysname(parent_dev);
> +		if (strstr(name, "end_device-")) {
> +			end_dev = parent_dev;
> +			end_name = name;
> +		} else if (sscanf(name, "host%d", &scsi_host)) {
> +			port_path = udev_device_get_syspath(child_dev);
> +			break;
> +		}
> +	}
> +
This is wrong. The whole idea of path_id is that the path traversal is done
in one common loop, from which there are callouts to the individual device
handlers.

So we should be having one sas_end_device_handler and one sas_host handler.

I'll see to come up with an updated version.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@xxxxxxx			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux