Date: Thu, 22 Jul 2010 11:56:38 +0200 (CEST) From: Stefan Richter Subject: 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 --- drivers/firewire/nosy.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) Index: b/drivers/firewire/nosy.c =================================================================== --- a/drivers/firewire/nosy.c +++ b/drivers/firewire/nosy.c @@ -262,21 +262,17 @@ set_phy_reg(struct pcilynx *lynx, int ad 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 * @@ -409,9 +405,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; @@ -431,31 +426,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 @@ -477,7 +471,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 @@ -487,7 +481,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); }