QLogic InfiniPath: convert ipath_eep_sem to mutex
PATCH 1/1 QLogic InfiniPath: convert ipath_eep_sem to mutex
QLogic InfiniPath: convert the semaphore ipath_eep_sem to the mutex API
Signed-off-by Matthias Kaehlcke <[email protected]>
--
drivers/infiniband/hw/ipath/ipath_eeprom.c +10 -10
@@ -510,10 +510,10 @@ int ipath_eeprom_read(struct ipath_devdata *dd, u8 eeprom_offset, {int ret; - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (!ret) { ret =ipath_eeprom_internal_read (dd, eeprom_offset, buff, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock); }return ret;
@@ -524,10 +524,10 @@ int ipath_eeprom_write(struct ipath_devdata *dd, u8 eeprom_offset, {int ret; - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (!ret) { ret =ipath_eeprom_internal_write (dd, eeprom_offset, buff, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock); }return ret;
@@ -616,9 +616,9 @@ void ipath_get_eeprom_info(struct ipath_devdata *dd) goto bail; } -down (&dd->ipath_eep_sem); +mutex_lock (&dd->ipath_eep_lock); eep_stat =ipath_eeprom_internal_read (dd,0 , buf, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);if (eep_stat) {ipath_dev_err (dd,"Failed reading GUID from eeprom\n" );
@@ -764,14 +764,14 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd)/* Grab semaphore and read current EEPROM. If we get an * error, let go, but if not, keep it until we finish write. */ - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (ret) {ipath_dev_err (dd,"Unable to acquire EEPROM for logging\n" ); goto free_bail; } ret =ipath_eeprom_internal_read (dd,0 , buf, len);if (ret) { -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);ipath_dev_err (dd,"Unable read EEPROM for logging\n" ); goto free_bail; }
@@ -779,7 +779,7 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd) csum =flash_csum (ifp,0 );if (csum != ifp->if_csum) { -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);ipath_dev_err (dd,"EEPROM cks err (0x%02X, S/B 0x%02X)\n" , csum, ifp->if_csum); ret =1 ;
@@ -849,7 +849,7 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd) csum =flash_csum (ifp,1 ); ret =ipath_eeprom_internal_write (dd,0 , buf, hi_water +1 ); } -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);if (ret)ipath_dev_err (dd,"Failed updating EEPROM\n" );
drivers/infiniband/hw/ipath/ipath_init_chip.c +1 -1
@@ -348,7 +348,7 @@ static int init_chip_first(struct ipath_devdata *dd,spin_lock_init (&dd->ipath_gpio_lock);spin_lock_init (&dd->ipath_eep_st_lock); -sema_init (&dd->ipath_eep_sem,1 ); +mutex_init (&dd->ipath_eep_lock); done: *pdp = pd;
drivers/infiniband/hw/ipath/ipath_kernel.h +2 -1
@@ -41,6 +41,7 @@#include <linux/interrupt.h> #include <linux/pci.h> #include <linux/dma-mapping.h> +#include <linux/mutex.h> #include <asm/io.h> #include <rdma/ib_verbs.h>
@@ -616,7 +617,7 @@ struct ipath_devdata {/* control access to actual counters, timer */ spinlock_t ipath_eep_st_lock;/* control high-level access to EEPROM */ -struct semaphore ipath_eep_sem; +struct mutex ipath_eep_lock;/* Below inc'd by ipath_snap_cntrs(), locked by ipath_eep_st_lock */ uint64_t ipath_traffic_wds;/* active time is kept in seconds, but logged in hours */
Signature · 11 lines
Matthias Kaehlcke
Linux Application Developer
Barcelona
La libertad es como la mañana. Hay quienes esperan dormidos a que
llegue, pero hay quienes desvelan y caminan la noche para alcanzarla
(Subcomandante Marcos)
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-[ Forwarding to ipath entry from MAINTAINERS file... if someone from
Qlogic will ACK this, I'll add it to my tree for 2.6.25 - Roland ]
QLogic InfiniPath: convert the semaphore ipath_eep_sem to the mutex API
Signed-off-by Matthias Kaehlcke <[email protected]>
--
drivers/infiniband/hw/ipath/ipath_eeprom.c +10 -10
@@ -510,10 +510,10 @@ int ipath_eeprom_read(struct ipath_devdata *dd, u8 eeprom_offset, {int ret; - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (!ret) { ret =ipath_eeprom_internal_read (dd, eeprom_offset, buff, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock); }return ret;
@@ -524,10 +524,10 @@ int ipath_eeprom_write(struct ipath_devdata *dd, u8 eeprom_offset, {int ret; - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (!ret) { ret =ipath_eeprom_internal_write (dd, eeprom_offset, buff, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock); }return ret;
@@ -616,9 +616,9 @@ void ipath_get_eeprom_info(struct ipath_devdata *dd) goto bail; } -down (&dd->ipath_eep_sem); +mutex_lock (&dd->ipath_eep_lock); eep_stat =ipath_eeprom_internal_read (dd,0 , buf, len); -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);if (eep_stat) {ipath_dev_err (dd,"Failed reading GUID from eeprom\n" );
@@ -764,14 +764,14 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd)/* Grab semaphore and read current EEPROM. If we get an * error, let go, but if not, keep it until we finish write. */ - ret =down_interruptible (&dd->ipath_eep_sem); + ret =mutex_lock_interruptible (&dd->ipath_eep_lock);if (ret) {ipath_dev_err (dd,"Unable to acquire EEPROM for logging\n" ); goto free_bail; } ret =ipath_eeprom_internal_read (dd,0 , buf, len);if (ret) { -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);ipath_dev_err (dd,"Unable read EEPROM for logging\n" ); goto free_bail; }
@@ -779,7 +779,7 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd) csum =flash_csum (ifp,0 );if (csum != ifp->if_csum) { -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);ipath_dev_err (dd,"EEPROM cks err (0x%02X, S/B 0x%02X)\n" , csum, ifp->if_csum); ret =1 ;
@@ -849,7 +849,7 @@ int ipath_update_eeprom_log(struct ipath_devdata *dd) csum =flash_csum (ifp,1 ); ret =ipath_eeprom_internal_write (dd,0 , buf, hi_water +1 ); } -up (&dd->ipath_eep_sem); +mutex_unlock (&dd->ipath_eep_lock);if (ret)ipath_dev_err (dd,"Failed updating EEPROM\n" );
drivers/infiniband/hw/ipath/ipath_init_chip.c +1 -1
@@ -348,7 +348,7 @@ static int init_chip_first(struct ipath_devdata *dd,spin_lock_init (&dd->ipath_gpio_lock);spin_lock_init (&dd->ipath_eep_st_lock); -sema_init (&dd->ipath_eep_sem,1 ); +mutex_init (&dd->ipath_eep_lock); done: *pdp = pd;
drivers/infiniband/hw/ipath/ipath_kernel.h +2 -1
@@ -41,6 +41,7 @@#include <linux/interrupt.h> #include <linux/pci.h> #include <linux/dma-mapping.h> +#include <linux/mutex.h> #include <asm/io.h> #include <rdma/ib_verbs.h>
@@ -616,7 +617,7 @@ struct ipath_devdata {/* control access to actual counters, timer */ spinlock_t ipath_eep_st_lock;/* control high-level access to EEPROM */ -struct semaphore ipath_eep_sem; +struct mutex ipath_eep_lock;/* Below inc'd by ipath_snap_cntrs(), locked by ipath_eep_st_lock */ uint64_t ipath_traffic_wds;/* active time is kept in seconds, but logged in hours */
Signature · 11 lines
Matthias Kaehlcke
Linux Application Developer
Barcelona
La libertad es como la mañana. Hay quienes esperan dormidos a que
llegue, pero hay quienes desvelan y caminan la noche para alcanzarla
(Subcomandante Marcos)
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-hi roland, thanks for picking this up...
Quoted 7 lines · Roland Dreier
[ Forwarding to ipath entry from
MAINTAINERSfile... if someone from
Qlogic will ACK this, I'll add it to my tree for 2.6.25 - Roland ]QLogic InfiniPath: convert the semaphore
ipath_eep_semto the mutex APISigned-off-by Matthias Kaehlcke <[email protected]>
Acked-by Michael Albaugh <[email protected]>
Tested-by Arthur Jones <[email protected]>
arthur