* these default settings can be changed via sockopts.
* For that reason the STmin value is intentionally _not_ checked for
* consistency and copied directly into the flow control (FC) frame.
- *
*/
#endif /* !_UAPI_CAN_ISOTP_H */
config CAN_ISOTP
tristate "ISO 15765-2:2016 CAN transport protocol"
- default y
help
CAN Transport Protocols offer support for segmented Point-to-Point
communication between CAN nodes via two defined CAN Identifiers.
vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN traffic.
This protocol driver implements data transfers according to
ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types.
+ If you want to perform automotive vehicle diagnostic services (UDS),
+ say 'y'.
source "drivers/net/can/Kconfig"
can_send_ret = can_send(nskb, 1);
if (can_send_ret)
- printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n",
- __func__, can_send_ret);
+ pr_notice_once("can-isotp: %s: can_send_ret %d\n",
+ __func__, can_send_ret);
dev_put(dev);
isotp_tx_burst:
skb = alloc_skb(so->ll.mtu + sizeof(struct can_skb_priv),
- gfp_any());
+ GFP_ATOMIC);
if (!skb) {
dev_put(dev);
break;
can_send_ret = can_send(skb, 1);
if (can_send_ret)
- printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n",
- __func__, can_send_ret);
+ pr_notice_once("can-isotp: %s: can_send_ret %d\n",
+ __func__, can_send_ret);
if (so->tx.idx >= so->tx.len) {
/* we are done */
err = can_send(skb, 1);
dev_put(dev);
if (err) {
- printk_once(KERN_NOTICE "can-isotp: %s: can_send_ret %d\n",
- __func__, err);
+ pr_notice_once("can-isotp: %s: can_send_ret %d\n",
+ __func__, err);
return err;
}