diff options
-rw-r--r-- | drivers/staging/ath6kl/os/linux/ar6000_raw_if.c | 4 | ||||
-rw-r--r-- | drivers/staging/brcm80211/brcmfmac/dhd_linux.c | 4 | ||||
-rw-r--r-- | drivers/staging/brcm80211/sys/wl_mac80211.c | 2 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/dt9812.c | 2 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/usbdux.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/usbduxfast.c | 4 | ||||
-rw-r--r-- | drivers/staging/msm/msm_fb.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8712/osdep_service.h | 2 | ||||
-rw-r--r-- | drivers/staging/smbfs/inode.c | 2 | ||||
-rw-r--r-- | drivers/staging/westbridge/astoria/block/cyasblkdev_block.c | 2 | ||||
-rw-r--r-- | drivers/staging/westbridge/astoria/block/cyasblkdev_queue.c | 2 | ||||
-rw-r--r-- | fs/hpfs/buffer.c | 4 | ||||
-rw-r--r-- | fs/hpfs/hpfs_fn.h | 2 | ||||
-rw-r--r-- | fs/hpfs/super.c | 2 | ||||
-rw-r--r-- | fs/jbd2/journal.c | 8 | ||||
-rw-r--r-- | include/linux/irq.h | 5 | ||||
-rw-r--r-- | include/linux/irqnr.h | 2 | ||||
-rw-r--r-- | include/linux/semaphore.h | 6 | ||||
-rw-r--r-- | kernel/irq/manage.c | 4 | ||||
-rwxr-xr-x | scripts/checkpatch.pl | 8 |
20 files changed, 36 insertions, 37 deletions
diff --git a/drivers/staging/ath6kl/os/linux/ar6000_raw_if.c b/drivers/staging/ath6kl/os/linux/ar6000_raw_if.c index c196098f0859..6b8eeea475cf 100644 --- a/drivers/staging/ath6kl/os/linux/ar6000_raw_if.c +++ b/drivers/staging/ath6kl/os/linux/ar6000_raw_if.c | |||
@@ -198,8 +198,8 @@ int ar6000_htc_raw_open(AR_SOFTC_T *ar) | |||
198 | 198 | ||
199 | for (streamID = HTC_RAW_STREAM_0; streamID < HTC_RAW_STREAM_NUM_MAX; streamID++) { | 199 | for (streamID = HTC_RAW_STREAM_0; streamID < HTC_RAW_STREAM_NUM_MAX; streamID++) { |
200 | /* Initialize the data structures */ | 200 | /* Initialize the data structures */ |
201 | init_MUTEX(&arRaw->raw_htc_read_sem[streamID]); | 201 | sema_init(&arRaw->raw_htc_read_sem[streamID], 1); |
202 | init_MUTEX(&arRaw->raw_htc_write_sem[streamID]); | 202 | sema_init(&arRaw->raw_htc_write_sem[streamID], 1); |
203 | init_waitqueue_head(&arRaw->raw_htc_read_queue[streamID]); | 203 | init_waitqueue_head(&arRaw->raw_htc_read_queue[streamID]); |
204 | init_waitqueue_head(&arRaw->raw_htc_write_queue[streamID]); | 204 | init_waitqueue_head(&arRaw->raw_htc_write_queue[streamID]); |
205 | 205 | ||
diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c index e5357875661f..bbbe7c5f7492 100644 --- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c | |||
@@ -1929,7 +1929,7 @@ dhd_pub_t *dhd_attach(osl_t *osh, struct dhd_bus *bus, uint bus_hdrlen) | |||
1929 | goto fail; | 1929 | goto fail; |
1930 | 1930 | ||
1931 | net->netdev_ops = NULL; | 1931 | net->netdev_ops = NULL; |
1932 | init_MUTEX(&dhd->proto_sem); | 1932 | sema_init(&dhd->proto_sem, 1); |
1933 | /* Initialize other structure content */ | 1933 | /* Initialize other structure content */ |
1934 | init_waitqueue_head(&dhd->ioctl_resp_wait); | 1934 | init_waitqueue_head(&dhd->ioctl_resp_wait); |
1935 | init_waitqueue_head(&dhd->ctrl_wait); | 1935 | init_waitqueue_head(&dhd->ctrl_wait); |
@@ -1977,7 +1977,7 @@ dhd_pub_t *dhd_attach(osl_t *osh, struct dhd_bus *bus, uint bus_hdrlen) | |||
1977 | dhd->timer.function = dhd_watchdog; | 1977 | dhd->timer.function = dhd_watchdog; |
1978 | 1978 | ||
1979 | /* Initialize thread based operation and lock */ | 1979 | /* Initialize thread based operation and lock */ |
1980 | init_MUTEX(&dhd->sdsem); | 1980 | sema_init(&dhd->sdsem, 1); |
1981 | if ((dhd_watchdog_prio >= 0) && (dhd_dpc_prio >= 0)) | 1981 | if ((dhd_watchdog_prio >= 0) && (dhd_dpc_prio >= 0)) |
1982 | dhd->threads_only = true; | 1982 | dhd->threads_only = true; |
1983 | else | 1983 | else |
diff --git a/drivers/staging/brcm80211/sys/wl_mac80211.c b/drivers/staging/brcm80211/sys/wl_mac80211.c index ad635ee7758e..d060377629ac 100644 --- a/drivers/staging/brcm80211/sys/wl_mac80211.c +++ b/drivers/staging/brcm80211/sys/wl_mac80211.c | |||
@@ -866,7 +866,7 @@ static wl_info_t *wl_attach(u16 vendor, u16 device, unsigned long regs, | |||
866 | spin_lock_init(&wl->rpcq_lock); | 866 | spin_lock_init(&wl->rpcq_lock); |
867 | spin_lock_init(&wl->txq_lock); | 867 | spin_lock_init(&wl->txq_lock); |
868 | 868 | ||
869 | init_MUTEX(&wl->sem); | 869 | sema_init(&wl->sem, 1); |
870 | #else | 870 | #else |
871 | spin_lock_init(&wl->lock); | 871 | spin_lock_init(&wl->lock); |
872 | spin_lock_init(&wl->isr_lock); | 872 | spin_lock_init(&wl->isr_lock); |
diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 0560a7451512..06059850dae2 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c | |||
@@ -262,7 +262,7 @@ struct dt9812_usb_cmd { | |||
262 | 262 | ||
263 | #define DT9812_NUM_SLOTS 16 | 263 | #define DT9812_NUM_SLOTS 16 |
264 | 264 | ||
265 | static DECLARE_MUTEX(dt9812_mutex); | 265 | static DEFINE_SEMAPHORE(dt9812_mutex); |
266 | 266 | ||
267 | static const struct usb_device_id dt9812_table[] = { | 267 | static const struct usb_device_id dt9812_table[] = { |
268 | {USB_DEVICE(0x0867, 0x9812)}, | 268 | {USB_DEVICE(0x0867, 0x9812)}, |
diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 6131e2dd0591..1f177a67ff11 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c | |||
@@ -315,7 +315,7 @@ struct usbduxsub { | |||
315 | */ | 315 | */ |
316 | static struct usbduxsub usbduxsub[NUMUSBDUX]; | 316 | static struct usbduxsub usbduxsub[NUMUSBDUX]; |
317 | 317 | ||
318 | static DECLARE_MUTEX(start_stop_sem); | 318 | static DEFINE_SEMAPHORE(start_stop_sem); |
319 | 319 | ||
320 | /* | 320 | /* |
321 | * Stops the data acquision | 321 | * Stops the data acquision |
@@ -2367,7 +2367,7 @@ static int usbduxsub_probe(struct usb_interface *uinterf, | |||
2367 | dev_dbg(dev, "comedi_: usbdux: " | 2367 | dev_dbg(dev, "comedi_: usbdux: " |
2368 | "usbduxsub[%d] is ready to connect to comedi.\n", index); | 2368 | "usbduxsub[%d] is ready to connect to comedi.\n", index); |
2369 | 2369 | ||
2370 | init_MUTEX(&(usbduxsub[index].sem)); | 2370 | sema_init(&(usbduxsub[index].sem), 1); |
2371 | /* save a pointer to the usb device */ | 2371 | /* save a pointer to the usb device */ |
2372 | usbduxsub[index].usbdev = udev; | 2372 | usbduxsub[index].usbdev = udev; |
2373 | 2373 | ||
diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 0a164a9a66c3..5b15e6df54e6 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c | |||
@@ -199,7 +199,7 @@ struct usbduxfastsub_s { | |||
199 | */ | 199 | */ |
200 | static struct usbduxfastsub_s usbduxfastsub[NUMUSBDUXFAST]; | 200 | static struct usbduxfastsub_s usbduxfastsub[NUMUSBDUXFAST]; |
201 | 201 | ||
202 | static DECLARE_MUTEX(start_stop_sem); | 202 | static DEFINE_SEMAPHORE(start_stop_sem); |
203 | 203 | ||
204 | /* | 204 | /* |
205 | * bulk transfers to usbduxfast | 205 | * bulk transfers to usbduxfast |
@@ -1504,7 +1504,7 @@ static int usbduxfastsub_probe(struct usb_interface *uinterf, | |||
1504 | "connect to comedi.\n", index); | 1504 | "connect to comedi.\n", index); |
1505 | #endif | 1505 | #endif |
1506 | 1506 | ||
1507 | init_MUTEX(&(usbduxfastsub[index].sem)); | 1507 | sema_init(&(usbduxfastsub[index].sem), 1); |
1508 | /* save a pointer to the usb device */ | 1508 | /* save a pointer to the usb device */ |
1509 | usbduxfastsub[index].usbdev = udev; | 1509 | usbduxfastsub[index].usbdev = udev; |
1510 | 1510 | ||
diff --git a/drivers/staging/msm/msm_fb.c b/drivers/staging/msm/msm_fb.c index ea268edbf43b..23fa049b51f2 100644 --- a/drivers/staging/msm/msm_fb.c +++ b/drivers/staging/msm/msm_fb.c | |||
@@ -1158,7 +1158,7 @@ static int msm_fb_release(struct fb_info *info, int user) | |||
1158 | return ret; | 1158 | return ret; |
1159 | } | 1159 | } |
1160 | 1160 | ||
1161 | DECLARE_MUTEX(msm_fb_pan_sem); | 1161 | DEFINE_SEMAPHORE(msm_fb_pan_sem); |
1162 | 1162 | ||
1163 | static int msm_fb_pan_display(struct fb_var_screeninfo *var, | 1163 | static int msm_fb_pan_display(struct fb_var_screeninfo *var, |
1164 | struct fb_info *info) | 1164 | struct fb_info *info) |
@@ -1962,7 +1962,7 @@ static int msmfb_overlay_play(struct fb_info *info, unsigned long *argp) | |||
1962 | 1962 | ||
1963 | #endif | 1963 | #endif |
1964 | 1964 | ||
1965 | DECLARE_MUTEX(msm_fb_ioctl_ppp_sem); | 1965 | DEFINE_SEMAPHORE(msm_fb_ioctl_ppp_sem); |
1966 | DEFINE_MUTEX(msm_fb_ioctl_lut_sem); | 1966 | DEFINE_MUTEX(msm_fb_ioctl_lut_sem); |
1967 | DEFINE_MUTEX(msm_fb_ioctl_hist_sem); | 1967 | DEFINE_MUTEX(msm_fb_ioctl_hist_sem); |
1968 | 1968 | ||
diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 7fca42c7c0d4..d1674cd282dc 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h | |||
@@ -161,7 +161,7 @@ static inline u32 _down_sema(struct semaphore *sema) | |||
161 | 161 | ||
162 | static inline void _rtl_rwlock_init(struct semaphore *prwlock) | 162 | static inline void _rtl_rwlock_init(struct semaphore *prwlock) |
163 | { | 163 | { |
164 | init_MUTEX(prwlock); | 164 | sema_init(prwlock, 1); |
165 | } | 165 | } |
166 | 166 | ||
167 | static inline void _init_listhead(struct list_head *list) | 167 | static inline void _init_listhead(struct list_head *list) |
diff --git a/drivers/staging/smbfs/inode.c b/drivers/staging/smbfs/inode.c index f9c493591ce7..540a984bb516 100644 --- a/drivers/staging/smbfs/inode.c +++ b/drivers/staging/smbfs/inode.c | |||
@@ -537,7 +537,7 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent) | |||
537 | server->mnt = NULL; | 537 | server->mnt = NULL; |
538 | server->sock_file = NULL; | 538 | server->sock_file = NULL; |
539 | init_waitqueue_head(&server->conn_wq); | 539 | init_waitqueue_head(&server->conn_wq); |
540 | init_MUTEX(&server->sem); | 540 | sema_init(&server->sem, 1); |
541 | INIT_LIST_HEAD(&server->entry); | 541 | INIT_LIST_HEAD(&server->entry); |
542 | INIT_LIST_HEAD(&server->xmitq); | 542 | INIT_LIST_HEAD(&server->xmitq); |
543 | INIT_LIST_HEAD(&server->recvq); | 543 | INIT_LIST_HEAD(&server->recvq); |
diff --git a/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c b/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c index f428a7af357a..e1851f00be56 100644 --- a/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +++ b/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c | |||
@@ -157,7 +157,7 @@ struct cyasblkdev_blk_data { | |||
157 | /* pointer to west bridge block data device superstructure */ | 157 | /* pointer to west bridge block data device superstructure */ |
158 | static struct cyasblkdev_blk_data *gl_bd; | 158 | static struct cyasblkdev_blk_data *gl_bd; |
159 | 159 | ||
160 | static DECLARE_MUTEX(open_lock); | 160 | static DEFINE_SEMAPHORE(open_lock); |
161 | 161 | ||
162 | /* local forwardd declarationss */ | 162 | /* local forwardd declarationss */ |
163 | static cy_as_device_handle *cyas_dev_handle; | 163 | static cy_as_device_handle *cyas_dev_handle; |
diff --git a/drivers/staging/westbridge/astoria/block/cyasblkdev_queue.c b/drivers/staging/westbridge/astoria/block/cyasblkdev_queue.c index 24e959eca412..0bbb8a3e191d 100644 --- a/drivers/staging/westbridge/astoria/block/cyasblkdev_queue.c +++ b/drivers/staging/westbridge/astoria/block/cyasblkdev_queue.c | |||
@@ -334,7 +334,7 @@ int cyasblkdev_init_queue(struct cyasblkdev_queue *bq, spinlock_t *lock) | |||
334 | 334 | ||
335 | init_completion(&bq->thread_complete); | 335 | init_completion(&bq->thread_complete); |
336 | init_waitqueue_head(&bq->thread_wq); | 336 | init_waitqueue_head(&bq->thread_wq); |
337 | init_MUTEX(&bq->thread_sem); | 337 | sema_init(&bq->thread_sem, 1); |
338 | 338 | ||
339 | ret = kernel_thread(cyasblkdev_queue_thread, bq, CLONE_KERNEL); | 339 | ret = kernel_thread(cyasblkdev_queue_thread, bq, CLONE_KERNEL); |
340 | if (ret >= 0) { | 340 | if (ret >= 0) { |
diff --git a/fs/hpfs/buffer.c b/fs/hpfs/buffer.c index eac5f96323e3..793cb9d943d2 100644 --- a/fs/hpfs/buffer.c +++ b/fs/hpfs/buffer.c | |||
@@ -14,7 +14,7 @@ void hpfs_lock_creation(struct super_block *s) | |||
14 | #ifdef DEBUG_LOCKS | 14 | #ifdef DEBUG_LOCKS |
15 | printk("lock creation\n"); | 15 | printk("lock creation\n"); |
16 | #endif | 16 | #endif |
17 | down(&hpfs_sb(s)->hpfs_creation_de); | 17 | mutex_lock(&hpfs_sb(s)->hpfs_creation_de); |
18 | } | 18 | } |
19 | 19 | ||
20 | void hpfs_unlock_creation(struct super_block *s) | 20 | void hpfs_unlock_creation(struct super_block *s) |
@@ -22,7 +22,7 @@ void hpfs_unlock_creation(struct super_block *s) | |||
22 | #ifdef DEBUG_LOCKS | 22 | #ifdef DEBUG_LOCKS |
23 | printk("unlock creation\n"); | 23 | printk("unlock creation\n"); |
24 | #endif | 24 | #endif |
25 | up(&hpfs_sb(s)->hpfs_creation_de); | 25 | mutex_unlock(&hpfs_sb(s)->hpfs_creation_de); |
26 | } | 26 | } |
27 | 27 | ||
28 | /* Map a sector into a buffer and return pointers to it and to the buffer. */ | 28 | /* Map a sector into a buffer and return pointers to it and to the buffer. */ |
diff --git a/fs/hpfs/hpfs_fn.h b/fs/hpfs/hpfs_fn.h index b59eac0232a0..2fee17d0d9ab 100644 --- a/fs/hpfs/hpfs_fn.h +++ b/fs/hpfs/hpfs_fn.h | |||
@@ -87,7 +87,7 @@ struct hpfs_sb_info { | |||
87 | unsigned *sb_bmp_dir; /* main bitmap directory */ | 87 | unsigned *sb_bmp_dir; /* main bitmap directory */ |
88 | unsigned sb_c_bitmap; /* current bitmap */ | 88 | unsigned sb_c_bitmap; /* current bitmap */ |
89 | unsigned sb_max_fwd_alloc; /* max forwad allocation */ | 89 | unsigned sb_max_fwd_alloc; /* max forwad allocation */ |
90 | struct semaphore hpfs_creation_de; /* when creating dirents, nobody else | 90 | struct mutex hpfs_creation_de; /* when creating dirents, nobody else |
91 | can alloc blocks */ | 91 | can alloc blocks */ |
92 | /*unsigned sb_mounting : 1;*/ | 92 | /*unsigned sb_mounting : 1;*/ |
93 | int sb_timeshift; | 93 | int sb_timeshift; |
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index bb69389972eb..6c5f01597c3a 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
@@ -491,7 +491,7 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent) | |||
491 | sbi->sb_bmp_dir = NULL; | 491 | sbi->sb_bmp_dir = NULL; |
492 | sbi->sb_cp_table = NULL; | 492 | sbi->sb_cp_table = NULL; |
493 | 493 | ||
494 | init_MUTEX(&sbi->hpfs_creation_de); | 494 | mutex_init(&sbi->hpfs_creation_de); |
495 | 495 | ||
496 | uid = current_uid(); | 496 | uid = current_uid(); |
497 | gid = current_gid(); | 497 | gid = current_gid(); |
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 538417c1fdbb..c590d155c095 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c | |||
@@ -1838,7 +1838,6 @@ size_t journal_tag_bytes(journal_t *journal) | |||
1838 | */ | 1838 | */ |
1839 | #define JBD2_MAX_SLABS 8 | 1839 | #define JBD2_MAX_SLABS 8 |
1840 | static struct kmem_cache *jbd2_slab[JBD2_MAX_SLABS]; | 1840 | static struct kmem_cache *jbd2_slab[JBD2_MAX_SLABS]; |
1841 | static DECLARE_MUTEX(jbd2_slab_create_sem); | ||
1842 | 1841 | ||
1843 | static const char *jbd2_slab_names[JBD2_MAX_SLABS] = { | 1842 | static const char *jbd2_slab_names[JBD2_MAX_SLABS] = { |
1844 | "jbd2_1k", "jbd2_2k", "jbd2_4k", "jbd2_8k", | 1843 | "jbd2_1k", "jbd2_2k", "jbd2_4k", "jbd2_8k", |
@@ -1859,6 +1858,7 @@ static void jbd2_journal_destroy_slabs(void) | |||
1859 | 1858 | ||
1860 | static int jbd2_journal_create_slab(size_t size) | 1859 | static int jbd2_journal_create_slab(size_t size) |
1861 | { | 1860 | { |
1861 | static DEFINE_MUTEX(jbd2_slab_create_mutex); | ||
1862 | int i = order_base_2(size) - 10; | 1862 | int i = order_base_2(size) - 10; |
1863 | size_t slab_size; | 1863 | size_t slab_size; |
1864 | 1864 | ||
@@ -1870,16 +1870,16 @@ static int jbd2_journal_create_slab(size_t size) | |||
1870 | 1870 | ||
1871 | if (unlikely(i < 0)) | 1871 | if (unlikely(i < 0)) |
1872 | i = 0; | 1872 | i = 0; |
1873 | down(&jbd2_slab_create_sem); | 1873 | mutex_lock(&jbd2_slab_create_mutex); |
1874 | if (jbd2_slab[i]) { | 1874 | if (jbd2_slab[i]) { |
1875 | up(&jbd2_slab_create_sem); | 1875 | mutex_unlock(&jbd2_slab_create_mutex); |
1876 | return 0; /* Already created */ | 1876 | return 0; /* Already created */ |
1877 | } | 1877 | } |
1878 | 1878 | ||
1879 | slab_size = 1 << (i+10); | 1879 | slab_size = 1 << (i+10); |
1880 | jbd2_slab[i] = kmem_cache_create(jbd2_slab_names[i], slab_size, | 1880 | jbd2_slab[i] = kmem_cache_create(jbd2_slab_names[i], slab_size, |
1881 | slab_size, 0, NULL); | 1881 | slab_size, 0, NULL); |
1882 | up(&jbd2_slab_create_sem); | 1882 | mutex_unlock(&jbd2_slab_create_mutex); |
1883 | if (!jbd2_slab[i]) { | 1883 | if (!jbd2_slab[i]) { |
1884 | printk(KERN_EMERG "JBD2: no memory for jbd2_slab cache\n"); | 1884 | printk(KERN_EMERG "JBD2: no memory for jbd2_slab cache\n"); |
1885 | return -ENOMEM; | 1885 | return -ENOMEM; |
diff --git a/include/linux/irq.h b/include/linux/irq.h index e9639115dff1..abde2527c699 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -412,6 +412,11 @@ static inline void irq_free_desc(unsigned int irq) | |||
412 | irq_free_descs(irq, 1); | 412 | irq_free_descs(irq, 1); |
413 | } | 413 | } |
414 | 414 | ||
415 | static inline int irq_reserve_irq(unsigned int irq) | ||
416 | { | ||
417 | return irq_reserve_irqs(irq, 1); | ||
418 | } | ||
419 | |||
415 | #endif /* CONFIG_GENERIC_HARDIRQS */ | 420 | #endif /* CONFIG_GENERIC_HARDIRQS */ |
416 | 421 | ||
417 | #endif /* !CONFIG_S390 */ | 422 | #endif /* !CONFIG_S390 */ |
diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h index 05aa8c23483f..3bc4dcab6e82 100644 --- a/include/linux/irqnr.h +++ b/include/linux/irqnr.h | |||
@@ -43,7 +43,7 @@ unsigned int irq_get_next_irq(unsigned int offset); | |||
43 | else | 43 | else |
44 | 44 | ||
45 | #ifdef CONFIG_SMP | 45 | #ifdef CONFIG_SMP |
46 | #define irq_node(irq) (irq_to_desc(irq)->node) | 46 | #define irq_node(irq) (irq_get_irq_data(irq)->node) |
47 | #else | 47 | #else |
48 | #define irq_node(irq) 0 | 48 | #define irq_node(irq) 0 |
49 | #endif | 49 | #endif |
diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h index 5310d27abd2a..39fa04966aa8 100644 --- a/include/linux/semaphore.h +++ b/include/linux/semaphore.h | |||
@@ -29,9 +29,6 @@ struct semaphore { | |||
29 | #define DEFINE_SEMAPHORE(name) \ | 29 | #define DEFINE_SEMAPHORE(name) \ |
30 | struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1) | 30 | struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1) |
31 | 31 | ||
32 | #define DECLARE_MUTEX(name) \ | ||
33 | struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1) | ||
34 | |||
35 | static inline void sema_init(struct semaphore *sem, int val) | 32 | static inline void sema_init(struct semaphore *sem, int val) |
36 | { | 33 | { |
37 | static struct lock_class_key __key; | 34 | static struct lock_class_key __key; |
@@ -39,9 +36,6 @@ static inline void sema_init(struct semaphore *sem, int val) | |||
39 | lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); | 36 | lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0); |
40 | } | 37 | } |
41 | 38 | ||
42 | #define init_MUTEX(sem) sema_init(sem, 1) | ||
43 | #define init_MUTEX_LOCKED(sem) sema_init(sem, 0) | ||
44 | |||
45 | extern void down(struct semaphore *sem); | 39 | extern void down(struct semaphore *sem); |
46 | extern int __must_check down_interruptible(struct semaphore *sem); | 40 | extern int __must_check down_interruptible(struct semaphore *sem); |
47 | extern int __must_check down_killable(struct semaphore *sem); | 41 | extern int __must_check down_killable(struct semaphore *sem); |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 644e8d5fa367..5f92acc5f952 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -324,6 +324,10 @@ void enable_irq(unsigned int irq) | |||
324 | if (!desc) | 324 | if (!desc) |
325 | return; | 325 | return; |
326 | 326 | ||
327 | if (WARN(!desc->irq_data.chip || !desc->irq_data.chip->irq_enable, | ||
328 | KERN_ERR "enable_irq before setup/request_irq: irq %u\n", irq)) | ||
329 | return; | ||
330 | |||
327 | chip_bus_lock(desc); | 331 | chip_bus_lock(desc); |
328 | raw_spin_lock_irqsave(&desc->lock, flags); | 332 | raw_spin_lock_irqsave(&desc->lock, flags); |
329 | __enable_irq(desc, irq, false); | 333 | __enable_irq(desc, irq, false); |
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 90b54d4697fd..e3c7fc0dca38 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -2794,12 +2794,8 @@ sub process { | |||
2794 | WARN("__func__ should be used instead of gcc specific __FUNCTION__\n" . $herecurr); | 2794 | WARN("__func__ should be used instead of gcc specific __FUNCTION__\n" . $herecurr); |
2795 | } | 2795 | } |
2796 | 2796 | ||
2797 | # check for semaphores used as mutexes | 2797 | # check for semaphores initialized locked |
2798 | if ($line =~ /^.\s*(DECLARE_MUTEX|init_MUTEX)\s*\(/) { | 2798 | if ($line =~ /^.\s*sema_init.+,\W?0\W?\)/) { |
2799 | WARN("mutexes are preferred for single holder semaphores\n" . $herecurr); | ||
2800 | } | ||
2801 | # check for semaphores used as mutexes | ||
2802 | if ($line =~ /^.\s*init_MUTEX_LOCKED\s*\(/) { | ||
2803 | WARN("consider using a completion\n" . $herecurr); | 2799 | WARN("consider using a completion\n" . $herecurr); |
2804 | 2800 | ||
2805 | } | 2801 | } |