diff options
author | Guodong Xu <guodong.xu@linaro.org> | 2013-11-29 16:00:56 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2013-12-06 20:09:54 +0800 |
commit | 55f2422397c23deca1c9385dbb54cf1039f813c4 (patch) | |
tree | 1d1e0f8e0ba426a51b258a54b66d3c4dbf69befd /README | |
parent | 879368b7cae2a779123962b90f9ef8cc8defb38f (diff) |
mfd: hi6421: calling irq_create_mapping in irq handler can cause failuretracking-hilt-ll-regulator-1206
irq_create_mapping() is called in hi6421's irq handler. When irq_create_mapping
returns at irq_find_mapping, it is safe. However, when a mapping doesn't exist
and it needs to allocate a irq_desc, the call path is like below, failing at
mutex_lock().
hi6421_irq_handler()
|-> hi6421_to_irq()
|-> irq_create_mapping()
|-> irq_alloc_desc_from()
|-> __irq_alloc_descs()
|-> mutex_lock(&sparse_irq_lock);
The solution is to call irq_create_mapping for each of HI6421_NR_IRQ at _probe
time. And use irq_find_mapping in irq handler.
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions