* [PATCH] Staging: comedi: Use mutex instead of semaphore
@ 2015-09-30 19:01 Ksenija Stanojevic
2015-09-30 21:04 ` [Outreachy kernel] " Arnd Bergmann
2015-09-30 21:42 ` Julia Lawall
0 siblings, 2 replies; 5+ messages in thread
From: Ksenija Stanojevic @ 2015-09-30 19:01 UTC (permalink / raw)
To: outreachy-kernel; +Cc: Ksenija Stanojevic
Replace binary semaphore with mutex because mutex gives better performance
than binary semaphore.
Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
---
drivers/staging/comedi/drivers/dt9812.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c
index e11c216..7d309f9 100644
--- a/drivers/staging/comedi/drivers/dt9812.c
+++ b/drivers/staging/comedi/drivers/dt9812.c
@@ -233,7 +233,7 @@ struct dt9812_usb_cmd {
};
struct dt9812_private {
- struct semaphore sem;
+ struct mutex mut;
struct {
__u8 addr;
size_t size;
@@ -335,7 +335,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
u8 value[2];
int ret;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
ret = dt9812_read_multiple_registers(dev, 2, reg, value);
if (ret == 0) {
/*
@@ -345,7 +345,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
*/
*bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4);
}
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
return ret;
}
@@ -357,9 +357,9 @@ static int dt9812_digital_out(struct comedi_device *dev, u8 bits)
u8 value[1] = { bits };
int ret;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
ret = dt9812_write_multiple_registers(dev, 1, reg, value);
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
return ret;
}
@@ -444,7 +444,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
u8 val[3];
int ret;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
/* 1 select the gain */
dt9812_configure_gain(dev, &rmw[0], gain);
@@ -493,7 +493,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
}
exit:
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
return ret;
}
@@ -504,7 +504,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
struct dt9812_rmw_byte rmw[3];
int ret;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
switch (channel) {
case 0:
@@ -545,7 +545,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
}
ret = dt9812_rmw_multiple_registers(dev, 3, rmw);
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
return ret;
}
@@ -608,9 +608,9 @@ static int dt9812_ao_insn_read(struct comedi_device *dev,
struct dt9812_private *devpriv = dev->private;
int ret;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
ret = comedi_readback_insn_read(dev, s, insn, data);
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
return ret;
}
@@ -774,7 +774,7 @@ static int dt9812_auto_attach(struct comedi_device *dev,
if (!devpriv)
return -ENOMEM;
- sema_init(&devpriv->sem, 1);
+ mutex_init(&devpriv->mut);
usb_set_intfdata(intf, devpriv);
ret = dt9812_find_endpoints(dev);
@@ -846,11 +846,11 @@ static void dt9812_detach(struct comedi_device *dev)
if (!devpriv)
return;
- down(&devpriv->sem);
+ mutex_lock(&devpriv->mut);
usb_set_intfdata(intf, NULL);
- up(&devpriv->sem);
+ mutex_unlock(&devpriv->mut);
}
static struct comedi_driver dt9812_driver = {
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [Outreachy kernel] [PATCH] Staging: comedi: Use mutex instead of semaphore
2015-09-30 19:01 [PATCH] Staging: comedi: Use mutex instead of semaphore Ksenija Stanojevic
@ 2015-09-30 21:04 ` Arnd Bergmann
2015-09-30 21:42 ` Julia Lawall
1 sibling, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2015-09-30 21:04 UTC (permalink / raw)
To: outreachy-kernel; +Cc: Ksenija Stanojevic
On Wednesday 30 September 2015 21:01:15 Ksenija Stanojevic wrote:
> Replace binary semaphore with mutex because mutex gives better performance
> than binary semaphore.
>
> Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
Very nice!
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Outreachy kernel] [PATCH] Staging: comedi: Use mutex instead of semaphore
2015-09-30 19:01 [PATCH] Staging: comedi: Use mutex instead of semaphore Ksenija Stanojevic
2015-09-30 21:04 ` [Outreachy kernel] " Arnd Bergmann
@ 2015-09-30 21:42 ` Julia Lawall
2015-10-13 14:47 ` Ksenija Stanojević
1 sibling, 1 reply; 5+ messages in thread
From: Julia Lawall @ 2015-09-30 21:42 UTC (permalink / raw)
To: Ksenija Stanojevic; +Cc: outreachy-kernel
On Wed, 30 Sep 2015, Ksenija Stanojevic wrote:
> Replace binary semaphore with mutex because mutex gives better performance
> than binary semaphore.
Nice :) I didn't even realize that down and up were still used...
julia
> Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
> ---
> drivers/staging/comedi/drivers/dt9812.c | 28 ++++++++++++++--------------
> 1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c
> index e11c216..7d309f9 100644
> --- a/drivers/staging/comedi/drivers/dt9812.c
> +++ b/drivers/staging/comedi/drivers/dt9812.c
> @@ -233,7 +233,7 @@ struct dt9812_usb_cmd {
> };
>
> struct dt9812_private {
> - struct semaphore sem;
> + struct mutex mut;
> struct {
> __u8 addr;
> size_t size;
> @@ -335,7 +335,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
> u8 value[2];
> int ret;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
> ret = dt9812_read_multiple_registers(dev, 2, reg, value);
> if (ret == 0) {
> /*
> @@ -345,7 +345,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
> */
> *bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4);
> }
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
>
> return ret;
> }
> @@ -357,9 +357,9 @@ static int dt9812_digital_out(struct comedi_device *dev, u8 bits)
> u8 value[1] = { bits };
> int ret;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
> ret = dt9812_write_multiple_registers(dev, 1, reg, value);
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
>
> return ret;
> }
> @@ -444,7 +444,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
> u8 val[3];
> int ret;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
>
> /* 1 select the gain */
> dt9812_configure_gain(dev, &rmw[0], gain);
> @@ -493,7 +493,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
> }
>
> exit:
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
>
> return ret;
> }
> @@ -504,7 +504,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
> struct dt9812_rmw_byte rmw[3];
> int ret;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
>
> switch (channel) {
> case 0:
> @@ -545,7 +545,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
> }
> ret = dt9812_rmw_multiple_registers(dev, 3, rmw);
>
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
>
> return ret;
> }
> @@ -608,9 +608,9 @@ static int dt9812_ao_insn_read(struct comedi_device *dev,
> struct dt9812_private *devpriv = dev->private;
> int ret;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
> ret = comedi_readback_insn_read(dev, s, insn, data);
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
>
> return ret;
> }
> @@ -774,7 +774,7 @@ static int dt9812_auto_attach(struct comedi_device *dev,
> if (!devpriv)
> return -ENOMEM;
>
> - sema_init(&devpriv->sem, 1);
> + mutex_init(&devpriv->mut);
> usb_set_intfdata(intf, devpriv);
>
> ret = dt9812_find_endpoints(dev);
> @@ -846,11 +846,11 @@ static void dt9812_detach(struct comedi_device *dev)
> if (!devpriv)
> return;
>
> - down(&devpriv->sem);
> + mutex_lock(&devpriv->mut);
>
> usb_set_intfdata(intf, NULL);
>
> - up(&devpriv->sem);
> + mutex_unlock(&devpriv->mut);
> }
>
> static struct comedi_driver dt9812_driver = {
> --
> 1.9.1
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/1443639675-18965-1-git-send-email-ksenija.stanojevic%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [Outreachy kernel] [PATCH] Staging: comedi: Use mutex instead of semaphore
2015-09-30 21:42 ` Julia Lawall
@ 2015-10-13 14:47 ` Ksenija Stanojević
2015-10-13 16:48 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Ksenija Stanojević @ 2015-10-13 14:47 UTC (permalink / raw)
To: Julia Lawall; +Cc: outreachy-kernel
Hi Greg,
I think you missed also this patch.
Regards,
Ksenija
On Wed, Sep 30, 2015 at 11:42 PM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> On Wed, 30 Sep 2015, Ksenija Stanojevic wrote:
>
>> Replace binary semaphore with mutex because mutex gives better performance
>> than binary semaphore.
>
> Nice :) I didn't even realize that down and up were still used...
>
> julia
>
>> Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
>> ---
>> drivers/staging/comedi/drivers/dt9812.c | 28 ++++++++++++++--------------
>> 1 file changed, 14 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c
>> index e11c216..7d309f9 100644
>> --- a/drivers/staging/comedi/drivers/dt9812.c
>> +++ b/drivers/staging/comedi/drivers/dt9812.c
>> @@ -233,7 +233,7 @@ struct dt9812_usb_cmd {
>> };
>>
>> struct dt9812_private {
>> - struct semaphore sem;
>> + struct mutex mut;
>> struct {
>> __u8 addr;
>> size_t size;
>> @@ -335,7 +335,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
>> u8 value[2];
>> int ret;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>> ret = dt9812_read_multiple_registers(dev, 2, reg, value);
>> if (ret == 0) {
>> /*
>> @@ -345,7 +345,7 @@ static int dt9812_digital_in(struct comedi_device *dev, u8 *bits)
>> */
>> *bits = (value[0] & 0x7f) | ((value[1] & 0x08) << 4);
>> }
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>>
>> return ret;
>> }
>> @@ -357,9 +357,9 @@ static int dt9812_digital_out(struct comedi_device *dev, u8 bits)
>> u8 value[1] = { bits };
>> int ret;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>> ret = dt9812_write_multiple_registers(dev, 1, reg, value);
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>>
>> return ret;
>> }
>> @@ -444,7 +444,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
>> u8 val[3];
>> int ret;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>>
>> /* 1 select the gain */
>> dt9812_configure_gain(dev, &rmw[0], gain);
>> @@ -493,7 +493,7 @@ static int dt9812_analog_in(struct comedi_device *dev,
>> }
>>
>> exit:
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>>
>> return ret;
>> }
>> @@ -504,7 +504,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
>> struct dt9812_rmw_byte rmw[3];
>> int ret;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>>
>> switch (channel) {
>> case 0:
>> @@ -545,7 +545,7 @@ static int dt9812_analog_out(struct comedi_device *dev, int channel, u16 value)
>> }
>> ret = dt9812_rmw_multiple_registers(dev, 3, rmw);
>>
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>>
>> return ret;
>> }
>> @@ -608,9 +608,9 @@ static int dt9812_ao_insn_read(struct comedi_device *dev,
>> struct dt9812_private *devpriv = dev->private;
>> int ret;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>> ret = comedi_readback_insn_read(dev, s, insn, data);
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>>
>> return ret;
>> }
>> @@ -774,7 +774,7 @@ static int dt9812_auto_attach(struct comedi_device *dev,
>> if (!devpriv)
>> return -ENOMEM;
>>
>> - sema_init(&devpriv->sem, 1);
>> + mutex_init(&devpriv->mut);
>> usb_set_intfdata(intf, devpriv);
>>
>> ret = dt9812_find_endpoints(dev);
>> @@ -846,11 +846,11 @@ static void dt9812_detach(struct comedi_device *dev)
>> if (!devpriv)
>> return;
>>
>> - down(&devpriv->sem);
>> + mutex_lock(&devpriv->mut);
>>
>> usb_set_intfdata(intf, NULL);
>>
>> - up(&devpriv->sem);
>> + mutex_unlock(&devpriv->mut);
>> }
>>
>> static struct comedi_driver dt9812_driver = {
>> --
>> 1.9.1
>>
>> --
>> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
>> To post to this group, send email to outreachy-kernel@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/1443639675-18965-1-git-send-email-ksenija.stanojevic%40gmail.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-10-13 17:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-30 19:01 [PATCH] Staging: comedi: Use mutex instead of semaphore Ksenija Stanojevic
2015-09-30 21:04 ` [Outreachy kernel] " Arnd Bergmann
2015-09-30 21:42 ` Julia Lawall
2015-10-13 14:47 ` Ksenija Stanojević
2015-10-13 16:48 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.