summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2010-07-22 11:56:38 +0200
committerStefan Richter <stefanr@s5r6.in-berlin.de>2010-07-27 11:04:10 +0200
commit685c3f80b6d88478a6428676f9daab59faf3cd4b (patch)
tree3f1f93927c0241ba12d887bcf7b90fc52d760884
parenta2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a (diff)
downloadop-kernel-dev-685c3f80b6d88478a6428676f9daab59faf3cd4b.zip
op-kernel-dev-685c3f80b6d88478a6428676f9daab59faf3cd4b.tar.gz
firewire: nosy: use flagless variants of spinlock accessors
nosy_start/stop_snoop() are always only called by the ioctl method, i.e. with IRQs enabled. packet_handler() and bus_reset_handler() are always only called by the IRQ handler. Hence neither one needs to track IRQ flags. To underline the call context of packet_handler() and bus_reset_handler(), rename these functions to *_irq_handler(). Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r--drivers/firewire/nosy.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c
index 637e514..2357e17 100644
--- a/drivers/firewire/nosy.c
+++ b/drivers/firewire/nosy.c
@@ -263,21 +263,17 @@ set_phy_reg(struct pcilynx *lynx, int addr, int val)
static void
nosy_start_snoop(struct client *client)
{
- unsigned long flags;
-
- spin_lock_irqsave(&client->lynx->client_list_lock, flags);
+ spin_lock_irq(&client->lynx->client_list_lock);
list_add_tail(&client->link, &client->lynx->client_list);
- spin_unlock_irqrestore(&client->lynx->client_list_lock, flags);
+ spin_unlock_irq(&client->lynx->client_list_lock);
}
static void
nosy_stop_snoop(struct client *client)
{
- unsigned long flags;
-
- spin_lock_irqsave(&client->lynx->client_list_lock, flags);
+ spin_lock_irq(&client->lynx->client_list_lock);
list_del_init(&client->link);
- spin_unlock_irqrestore(&client->lynx->client_list_lock, flags);
+ spin_unlock_irq(&client->lynx->client_list_lock);
}
static struct client *
@@ -410,9 +406,8 @@ struct link_packet {
};
static void
-packet_handler(struct pcilynx *lynx)
+packet_irq_handler(struct pcilynx *lynx)
{
- unsigned long flags;
struct client *client;
u32 tcode_mask;
size_t length;
@@ -432,31 +427,30 @@ packet_handler(struct pcilynx *lynx)
else
tcode_mask = 1 << packet->tcode;
- spin_lock_irqsave(&lynx->client_list_lock, flags);
+ spin_lock(&lynx->client_list_lock);
list_for_each_entry(client, &lynx->client_list, link)
if (client->tcode_mask & tcode_mask)
packet_buffer_put(&client->buffer,
lynx->rcv_buffer, length + 4);
- spin_unlock_irqrestore(&lynx->client_list_lock, flags);
+ spin_unlock(&lynx->client_list_lock);
}
static void
-bus_reset_handler(struct pcilynx *lynx)
+bus_reset_irq_handler(struct pcilynx *lynx)
{
- unsigned long flags;
struct client *client;
struct timeval tv;
do_gettimeofday(&tv);
- spin_lock_irqsave(&lynx->client_list_lock, flags);
+ spin_lock(&lynx->client_list_lock);
list_for_each_entry(client, &lynx->client_list, link)
packet_buffer_put(&client->buffer, &tv.tv_usec, 4);
- spin_unlock_irqrestore(&lynx->client_list_lock, flags);
+ spin_unlock(&lynx->client_list_lock);
}
static irqreturn_t
@@ -478,7 +472,7 @@ irq_handler(int irq, void *device)
reg_write(lynx, LINK_INT_STATUS, link_int_status);
if ((link_int_status & LINK_INT_PHY_BUSRESET) > 0)
- bus_reset_handler(lynx);
+ bus_reset_irq_handler(lynx);
}
/* Clear the PCI_INT_STATUS register only after clearing the
@@ -488,7 +482,7 @@ irq_handler(int irq, void *device)
reg_write(lynx, PCI_INT_STATUS, pci_int_status);
if ((pci_int_status & PCI_INT_DMA0_HLT) > 0) {
- packet_handler(lynx);
+ packet_irq_handler(lynx);
run_pcl(lynx, lynx->rcv_start_pcl_bus, 0);
}
OpenPOWER on IntegriCloud