RE: [PATCH] Fusion MPT: convert inactive_list_mutex in a mutex

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

 



On Sunday, March 09, 2008 5:16 AM, Matthias Kaehlcke wrote:  
> diff --git a/drivers/message/fusion/mptbase.c 
> b/drivers/message/fusion/mptbase.c
> index 0c303c8..06557f2 100644
> --- a/drivers/message/fusion/mptbase.c
> +++ b/drivers/message/fusion/mptbase.c
> @@ -2136,7 +2136,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, 
> u32 reason, int sleepFlag)
>  		/*
>  		 * Initalize link list for inactive raid volumes.
>  		 */
> -		init_MUTEX(&ioc->raid_data.inactive_list_mutex);
> +		mutex_init(&ioc->raid_data.inactive_list_mutex);
>  		INIT_LIST_HEAD(&ioc->raid_data.inactive_list);
>  
>  		if (ioc->bus_type == SAS) {
> @@ -5122,13 +5122,13 @@ mpt_inactive_raid_list_free(MPT_ADAPTER *ioc)
>  	if (list_empty(&ioc->raid_data.inactive_list))
>  		return;
>  
> -	down(&ioc->raid_data.inactive_list_mutex);
> +	mutex_lock(&ioc->raid_data.inactive_list_mutex);
>  	list_for_each_entry_safe(component_info, pNext,
>  	    &ioc->raid_data.inactive_list, list) {
>  		list_del(&component_info->list);
>  		kfree(component_info);
>  	}
> -	up(&ioc->raid_data.inactive_list_mutex);
> +	mutex_unlock(&ioc->raid_data.inactive_list_mutex);
>  }
>  
>  /**
> @@ -5187,7 +5187,7 @@ mpt_inactive_raid_volumes(MPT_ADAPTER 
> *ioc, u8 channel, u8 id)
>  	if (!handle_inactive_volumes)
>  		goto out;
>  
> -	down(&ioc->raid_data.inactive_list_mutex);
> +	mutex_lock(&ioc->raid_data.inactive_list_mutex);
>  	for (i = 0; i < buffer->NumPhysDisks; i++) {
>  		if(mpt_raid_phys_disk_pg0(ioc,
>  		    buffer->PhysDisk[i].PhysDiskNum, &phys_disk) != 0)
> @@ -5207,7 +5207,7 @@ mpt_inactive_raid_volumes(MPT_ADAPTER 
> *ioc, u8 channel, u8 id)
>  		list_add_tail(&component_info->list,
>  		    &ioc->raid_data.inactive_list);
>  	}
> -	up(&ioc->raid_data.inactive_list_mutex);
> +	mutex_unlock(&ioc->raid_data.inactive_list_mutex);
>  
>   out:
>  	if (buffer)
> diff --git a/drivers/message/fusion/mptbase.h 
> b/drivers/message/fusion/mptbase.h
> index caadc68..88e7a15 100644
> --- a/drivers/message/fusion/mptbase.h
> +++ b/drivers/message/fusion/mptbase.h
> @@ -51,6 +51,7 @@
>  
>  #include <linux/kernel.h>
>  #include <linux/pci.h>
> +#include <linux/mutex.h>
>  
>  #include "lsi/mpi_type.h"
>  #include "lsi/mpi.h"		/* Fusion MPI(nterface) basic defs */
> @@ -531,7 +532,7 @@ struct inactive_raid_component_info {
>  typedef	struct _RaidCfgData {
>  	IOCPage2_t	*pIocPg2;		/* table of 
> Raid Volumes */
>  	IOCPage3_t	*pIocPg3;		/* table of 
> physical disks */
> -	struct semaphore	inactive_list_mutex;
> +	struct mutex	inactive_list_mutex;
>  	struct list_head	inactive_list; /* link list for physical
>  						disk that belong in
>  						inactive volumes */
> diff --git a/drivers/message/fusion/mptscsih.c 
> b/drivers/message/fusion/mptscsih.c
> index af1de0c..4e70ef4 100644
> --- a/drivers/message/fusion/mptscsih.c
> +++ b/drivers/message/fusion/mptscsih.c
> @@ -2295,14 +2295,14 @@ mptscsih_is_phys_disk(MPT_ADAPTER 
> *ioc, u8 channel, u8 id)
>  	if (list_empty(&ioc->raid_data.inactive_list))
>  		goto out;
>  
> -	down(&ioc->raid_data.inactive_list_mutex);
> +	mutex_lock(&ioc->raid_data.inactive_list_mutex);
>  	list_for_each_entry(component_info, 
> &ioc->raid_data.inactive_list,
>  	    list) {
>  		if ((component_info->d.PhysDiskID == id) &&
>  		    (component_info->d.PhysDiskBus == channel))
>  			rc = 1;
>  	}
> -	up(&ioc->raid_data.inactive_list_mutex);
> +	mutex_unlock(&ioc->raid_data.inactive_list_mutex);
>  
>   out:
>  	return rc;
> @@ -2332,14 +2332,14 @@ mptscsih_raid_id_to_num(MPT_ADAPTER 
> *ioc, u8 channel, u8 id)
>  	if (list_empty(&ioc->raid_data.inactive_list))
>  		goto out;
>  
> -	down(&ioc->raid_data.inactive_list_mutex);
> +	mutex_lock(&ioc->raid_data.inactive_list_mutex);
>  	list_for_each_entry(component_info, 
> &ioc->raid_data.inactive_list,
>  	    list) {
>  		if ((component_info->d.PhysDiskID == id) &&
>  		    (component_info->d.PhysDiskBus == channel))
>  			rc = component_info->d.PhysDiskNum;
>  	}
> -	up(&ioc->raid_data.inactive_list_mutex);
> +	mutex_unlock(&ioc->raid_data.inactive_list_mutex);
>  
>   out:
>  	return rc;
>  

This is good, ACK
--
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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux