diff options
author | Jia-Ju Bai <baijiaju1990@gmail.com> | 2018-07-23 05:53:21 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2018-07-23 18:05:00 +0200 |
commit | f6ebfc24e78d99ebfa0f8d1761b1d77b733dcbb9 (patch) | |
tree | 26cc9c805c99fb6aab319f40a673f7d119677efa /drivers/bluetooth | |
parent | bluetooth: btusb: Replace GFP_ATOMIC with GFP_KERNEL in inject_cmd_complete() (diff) | |
download | linux-f6ebfc24e78d99ebfa0f8d1761b1d77b733dcbb9.tar.xz linux-f6ebfc24e78d99ebfa0f8d1761b1d77b733dcbb9.zip |
bluetooth: hci_intel: Replace GFP_ATOMIC with GFP_KERNEL in inject_cmd_complete()
inject_cmd_complete() is only called by intel_dequeue(),
which is never called in atomic context.
inject_cmd_complete() calls bt_skb_alloc() with GFP_ATOMIC,
which is not necessary.
GFP_ATOMIC can be replaced with GFP_KERNEL.
This is found by a static analysis tool named DCNS written by myself.
I also manually check the kernel code before reporting it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/hci_intel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c index 7c166e3b308b..46ace321bf60 100644 --- a/drivers/bluetooth/hci_intel.c +++ b/drivers/bluetooth/hci_intel.c @@ -458,7 +458,7 @@ static int inject_cmd_complete(struct hci_dev *hdev, __u16 opcode) struct hci_event_hdr *hdr; struct hci_ev_cmd_complete *evt; - skb = bt_skb_alloc(sizeof(*hdr) + sizeof(*evt) + 1, GFP_ATOMIC); + skb = bt_skb_alloc(sizeof(*hdr) + sizeof(*evt) + 1, GFP_KERNEL); if (!skb) return -ENOMEM; |