manage.c (c900529f3d9161bfde5cca0754f83b4d3c3e0220) | manage.c (a9da6ddaef9ef7d9afd3f89e447c60e38f74bf44) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006 Thomas Gleixner 5 * 6 * This file contains driver APIs to the irq subsystem. 7 */ 8 --- 1838 unchanged lines hidden (view full) --- 1847 chip_bus_sync_unlock(desc); 1848 mutex_unlock(&desc->request_mutex); 1849 1850out_thread: 1851 if (new->thread) { 1852 struct task_struct *t = new->thread; 1853 1854 new->thread = NULL; | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 4 * Copyright (C) 2005-2006 Thomas Gleixner 5 * 6 * This file contains driver APIs to the irq subsystem. 7 */ 8 --- 1838 unchanged lines hidden (view full) --- 1847 chip_bus_sync_unlock(desc); 1848 mutex_unlock(&desc->request_mutex); 1849 1850out_thread: 1851 if (new->thread) { 1852 struct task_struct *t = new->thread; 1853 1854 new->thread = NULL; |
1855 kthread_stop(t); 1856 put_task_struct(t); | 1855 kthread_stop_put(t); |
1857 } 1858 if (new->secondary && new->secondary->thread) { 1859 struct task_struct *t = new->secondary->thread; 1860 1861 new->secondary->thread = NULL; | 1856 } 1857 if (new->secondary && new->secondary->thread) { 1858 struct task_struct *t = new->secondary->thread; 1859 1860 new->secondary->thread = NULL; |
1862 kthread_stop(t); 1863 put_task_struct(t); | 1861 kthread_stop_put(t); |
1864 } 1865out_mput: 1866 module_put(desc->owner); 1867 return ret; 1868} 1869 1870/* 1871 * Internal function to unregister an irqaction - used to free --- 94 unchanged lines hidden (view full) --- 1966 1967 /* 1968 * The action has already been removed above, but the thread writes 1969 * its oneshot mask bit when it completes. Though request_mutex is 1970 * held across this which prevents __setup_irq() from handing out 1971 * the same bit to a newly requested action. 1972 */ 1973 if (action->thread) { | 1862 } 1863out_mput: 1864 module_put(desc->owner); 1865 return ret; 1866} 1867 1868/* 1869 * Internal function to unregister an irqaction - used to free --- 94 unchanged lines hidden (view full) --- 1964 1965 /* 1966 * The action has already been removed above, but the thread writes 1967 * its oneshot mask bit when it completes. Though request_mutex is 1968 * held across this which prevents __setup_irq() from handing out 1969 * the same bit to a newly requested action. 1970 */ 1971 if (action->thread) { |
1974 kthread_stop(action->thread); 1975 put_task_struct(action->thread); 1976 if (action->secondary && action->secondary->thread) { 1977 kthread_stop(action->secondary->thread); 1978 put_task_struct(action->secondary->thread); 1979 } | 1972 kthread_stop_put(action->thread); 1973 if (action->secondary && action->secondary->thread) 1974 kthread_stop_put(action->secondary->thread); |
1980 } 1981 1982 /* Last action releases resources */ 1983 if (!desc->action) { 1984 /* 1985 * Reacquire bus lock as irq_release_resources() might 1986 * require it to deallocate resources over the slow bus. 1987 */ --- 955 unchanged lines hidden --- | 1975 } 1976 1977 /* Last action releases resources */ 1978 if (!desc->action) { 1979 /* 1980 * Reacquire bus lock as irq_release_resources() might 1981 * require it to deallocate resources over the slow bus. 1982 */ --- 955 unchanged lines hidden --- |