Re: [PATCH 07/24] libsas: fix leak of dev->sata_dev.identify_[packet_]device

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

 



Thanks for fix.
Reviewed-by: Jack Wang <jack_wang@xxxxxxxxx>
> 
> These are never freed in the nominal path.  A domain_device has a
> different lifetime than a sas_rphy we need a dev->rphy independent way
> of identifying sata devices.
> 
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
>  drivers/scsi/libsas/sas_discover.c |    6 ++++++
>  include/scsi/sas_ata.h             |    3 ++-
>  2 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/scsi/libsas/sas_discover.c
> b/drivers/scsi/libsas/sas_discover.c
> index 4e64930..dc52b1f 100644
> --- a/drivers/scsi/libsas/sas_discover.c
> +++ b/drivers/scsi/libsas/sas_discover.c
> @@ -30,6 +30,7 @@
> 
>  #include <scsi/scsi_transport.h>
>  #include <scsi/scsi_transport_sas.h>
> +#include <scsi/sas_ata.h>
>  #include "../scsi_sas_internal.h"
> 
>  /* ---------- Basic task processing for discovery purposes ---------- */
> @@ -231,6 +232,11 @@ void sas_free_device(struct kref *kref)
>  	if (dev->dev_type == EDGE_DEV || dev->dev_type == FANOUT_DEV)
>  		kfree(dev->ex_dev.ex_phy);
> 
> +	if (dev_is_sata(dev)) {
> +		kfree(dev->sata_dev.identify_device);
> +		kfree(dev->sata_dev.identify_packet_device);
> +	}
> +
>  	kfree(dev);
>  }
> 
> diff --git a/include/scsi/sas_ata.h b/include/scsi/sas_ata.h
> index 9c159f7..7d5013f 100644
> --- a/include/scsi/sas_ata.h
> +++ b/include/scsi/sas_ata.h
> @@ -32,7 +32,8 @@
> 
>  static inline int dev_is_sata(struct domain_device *dev)
>  {
> -	return (dev->rphy->identify.target_port_protocols &
> SAS_PROTOCOL_SATA);
> +	return dev->dev_type == SATA_DEV || dev->dev_type == SATA_PM ||
> +	       dev->dev_type == SATA_PM_PORT;
>  }
> 
>  int sas_ata_init_host_and_port(struct domain_device *found_dev,
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux