| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Joe and Bjørn suggested that it'd be nicer to not have the
cast in the fairly common case of doing
*(u8 *)skb_put(skb, 1) = c;
Add skb_put_u8() for this case, and use it across the code,
using the following spatch:
@@
expression SKB, C, S;
typedef u8;
identifier fn = {skb_put};
fresh identifier fn2 = fn ## "_u8";
@@
- *(u8 *)fn(SKB, S) = C;
+ fn2(SKB, C);
Note that due to the "S", the spatch isn't perfect, it should
have checked that S is 1, but there's also places that use a
sizeof expression like sizeof(var) or sizeof(u8) etc. Turns
out that nobody ever did something like
*(u8 *)skb_put(skb, 2) = c;
which would be wrong anyway since the second byte wouldn't be
initialized.
Suggested-by: Joe Perches <joe@perches.com>
Suggested-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems like a historic accident that these return unsigned char *,
and in many places that means casts are required, more often than not.
Make these functions return void * and remove all the casts across
the tree, adding a (u8 *) cast only where the unsigned char pointer
was used directly, all done with the following spatch:
@@
expression SKB, LEN;
typedef u8;
identifier fn = {
skb_pull,
__skb_pull,
skb_pull_inline,
__pskb_pull_tail,
__pskb_pull,
pskb_pull
};
@@
- *(fn(SKB, LEN))
+ *(u8 *)fn(SKB, LEN)
@@
expression E, SKB, LEN;
identifier fn = {
skb_pull,
__skb_pull,
skb_pull_inline,
__pskb_pull_tail,
__pskb_pull,
pskb_pull
};
type T;
@@
- E = ((T *)(fn(SKB, LEN)))
+ E = fn(SKB, LEN)
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems like a historic accident that these return unsigned char *,
and in many places that means casts are required, more often than not.
Make these functions (skb_put, __skb_put and pskb_put) return void *
and remove all the casts across the tree, adding a (u8 *) cast only
where the unsigned char pointer was used directly, all done with the
following spatch:
@@
expression SKB, LEN;
typedef u8;
identifier fn = { skb_put, __skb_put };
@@
- *(fn(SKB, LEN))
+ *(u8 *)fn(SKB, LEN)
@@
expression E, SKB, LEN;
identifier fn = { skb_put, __skb_put };
type T;
@@
- E = ((T *)(fn(SKB, LEN)))
+ E = fn(SKB, LEN)
which actually doesn't cover pskb_put since there are only three
users overall.
A handful of stragglers were converted manually, notably a macro in
drivers/isdn/i4l/isdn_bsdcomp.c and, oddly enough, one of the many
instances in net/bluetooth/hci_sock.c. In the former file, I also
had to fix one whitespace problem spatch introduced.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the following error preventing to load Nokia H4+ module:
kernel: [ 826.461619] hci_nokia: module license 'unspecified' taints kernel.
kernel: [ 826.461629] Disabling lock debugging due to kernel taint
kernel: [ 826.461836] hci_nokia: Unknown symbol gpiod_get_value_cansleep (err 0)
kernel: [ 826.461876] hci_nokia: Unknown symbol devm_kmalloc (err 0)
kernel: [ 826.461908] hci_nokia: Unknown symbol gpiod_set_value (err 0)
kernel: [ 826.461937] hci_nokia: Unknown symbol serdev_device_set_baudrate (err 0)
kernel: [ 826.461994] hci_nokia: Unknown symbol gpiod_set_value_cansleep (err 0)
kernel: [ 826.462021] hci_nokia: Unknown symbol hci_uart_tx_wakeup (err 0)
kernel: [ 826.462043] hci_nokia: Unknown symbol serdev_device_set_flow_control (err 0)
kernel: [ 826.462064] hci_nokia: Unknown symbol gpiod_to_irq (err 0)
kernel: [ 826.462085] hci_nokia: Unknown symbol serdev_device_open (err 0)
kernel: [ 826.462106] hci_nokia: Unknown symbol gpiod_get_value (err 0)
kernel: [ 826.462150] hci_nokia: Unknown symbol clk_prepare (err 0)
kernel: [ 826.462182] hci_nokia: Unknown symbol pm_runtime_enable (err 0)
kernel: [ 826.462204] hci_nokia: Unknown symbol h4_recv_buf (err 0)
kernel: [ 826.462246] hci_nokia: Unknown symbol serdev_device_write_flush (err 0)
kernel: [ 826.462268] hci_nokia: Unknown symbol serdev_device_get_tiocm (err 0)
kernel: [ 826.462298] hci_nokia: Unknown symbol driver_unregister (err 0)
kernel: [ 826.462318] hci_nokia: Unknown symbol serdev_device_wait_until_sent (err 0)
kernel: [ 826.462347] hci_nokia: Unknown symbol __serdev_device_driver_register (err 0)
kernel: [ 826.462384] hci_nokia: Unknown symbol serdev_device_set_tiocm (err 0)
kernel: [ 826.462417] hci_nokia: Unknown symbol clk_get_rate (err 0)
kernel: [ 826.462454] hci_nokia: Unknown symbol __pm_runtime_resume (err 0)
kernel: [ 826.462486] hci_nokia: Unknown symbol serdev_device_close (err 0)
kernel: [ 826.462524] hci_nokia: Unknown symbol cancel_work_sync (err 0)
kernel: [ 826.462546] hci_nokia: Unknown symbol btbcm_set_bdaddr (err 0)
kernel: [ 826.462567] hci_nokia: Unknown symbol clk_disable (err 0)
kernel: [ 826.462610] hci_nokia: Unknown symbol __pm_runtime_disable (err 0)
kernel: [ 826.462632] hci_nokia: Unknown symbol hci_uart_register_device (err 0)
kernel: [ 826.462653] hci_nokia: Unknown symbol clk_enable (err 0)
kernel: [ 826.462675] hci_nokia: Unknown symbol __pm_runtime_idle (err 0)
kernel: [ 826.462700] hci_nokia: Unknown symbol clk_unprepare (err 0)
Signed-off-by: Frédéric Danis <frederic.danis.oss@gmail.com>
Acked-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|
|
This adds a driver for the Nokia H4+ protocol, which is used
at least on the Nokia N9, N900 & N950.
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|