Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ps3: gelic: updown_lock semaphore to mutex

Signed-off-by: Daniel Walker <dwalker@mvista.com>
Acked-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Daniel Walker and committed by
John W. Linville
f622360b bb2d67a3

+6 -6
+5 -5
drivers/net/ps3_gelic_net.c
··· 110 110 void gelic_card_up(struct gelic_card *card) 111 111 { 112 112 pr_debug("%s: called\n", __func__); 113 - down(&card->updown_lock); 113 + mutex_lock(&card->updown_lock); 114 114 if (atomic_inc_return(&card->users) == 1) { 115 115 pr_debug("%s: real do\n", __func__); 116 116 /* enable irq */ ··· 120 120 121 121 napi_enable(&card->napi); 122 122 } 123 - up(&card->updown_lock); 123 + mutex_unlock(&card->updown_lock); 124 124 pr_debug("%s: done\n", __func__); 125 125 } 126 126 ··· 128 128 { 129 129 u64 mask; 130 130 pr_debug("%s: called\n", __func__); 131 - down(&card->updown_lock); 131 + mutex_lock(&card->updown_lock); 132 132 if (atomic_dec_if_positive(&card->users) == 0) { 133 133 pr_debug("%s: real do\n", __func__); 134 134 napi_disable(&card->napi); ··· 146 146 /* stop tx */ 147 147 gelic_card_disable_txdmac(card); 148 148 } 149 - up(&card->updown_lock); 149 + mutex_unlock(&card->updown_lock); 150 150 pr_debug("%s: done\n", __func__); 151 151 } 152 152 ··· 1534 1534 INIT_WORK(&card->tx_timeout_task, gelic_net_tx_timeout_task); 1535 1535 init_waitqueue_head(&card->waitq); 1536 1536 atomic_set(&card->tx_timeout_task_counter, 0); 1537 - init_MUTEX(&card->updown_lock); 1537 + mutex_init(&card->updown_lock); 1538 1538 atomic_set(&card->users, 0); 1539 1539 1540 1540 return card;
+1 -1
drivers/net/ps3_gelic_net.h
··· 298 298 wait_queue_head_t waitq; 299 299 300 300 /* only first user should up the card */ 301 - struct semaphore updown_lock; 301 + struct mutex updown_lock; 302 302 atomic_t users; 303 303 304 304 u64 ether_port_status;