WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #51: new file mode 100644 CHECK: struct mutex definition without comment #77: FILE: drivers/rpmsg/rpmsg_usrsock.c:22: + struct mutex lock; CHECK: Macro argument 'ack' may be better as '(ack)' to avoid precedence issues #97: FILE: drivers/rpmsg/rpmsg_usrsock.c:42: +#define rpmsg_usrsock_datareq_ack(ack, rpdev, len) \ + char ack##buf[len = rpmsg_get_max_bufsize(rpdev->ept)] __aligned(8); \ + struct usrsock_message_datareq_ack_s *ack = \ + rpmsg_usrsock_need_copy(rpdev) ? (void *)ack##buf : \ + rpmsg_get_tx_payload_buffer(rpdev->ept, (unsigned int *)&len, 1) CHECK: Macro argument reuse 'rpdev' - possible side-effects? #97: FILE: drivers/rpmsg/rpmsg_usrsock.c:42: +#define rpmsg_usrsock_datareq_ack(ack, rpdev, len) \ + char ack##buf[len = rpmsg_get_max_bufsize(rpdev->ept)] __aligned(8); \ + struct usrsock_message_datareq_ack_s *ack = \ + rpmsg_usrsock_need_copy(rpdev) ? (void *)ack##buf : \ + rpmsg_get_tx_payload_buffer(rpdev->ept, (unsigned int *)&len, 1) CHECK: Macro argument 'rpdev' may be better as '(rpdev)' to avoid precedence issues #97: FILE: drivers/rpmsg/rpmsg_usrsock.c:42: +#define rpmsg_usrsock_datareq_ack(ack, rpdev, len) \ + char ack##buf[len = rpmsg_get_max_bufsize(rpdev->ept)] __aligned(8); \ + struct usrsock_message_datareq_ack_s *ack = \ + rpmsg_usrsock_need_copy(rpdev) ? (void *)ack##buf : \ + rpmsg_get_tx_payload_buffer(rpdev->ept, (unsigned int *)&len, 1) CHECK: Macro argument reuse 'len' - possible side-effects? #97: FILE: drivers/rpmsg/rpmsg_usrsock.c:42: +#define rpmsg_usrsock_datareq_ack(ack, rpdev, len) \ + char ack##buf[len = rpmsg_get_max_bufsize(rpdev->ept)] __aligned(8); \ + struct usrsock_message_datareq_ack_s *ack = \ + rpmsg_usrsock_need_copy(rpdev) ? (void *)ack##buf : \ + rpmsg_get_tx_payload_buffer(rpdev->ept, (unsigned int *)&len, 1) CHECK: Prefer kernel type 'u8' over 'uint8_t' #227: FILE: drivers/rpmsg/rpmsg_usrsock.c:172: + uint8_t xid, int32_t result) CHECK: Alignment should match open parenthesis #240: FILE: drivers/rpmsg/rpmsg_usrsock.c:185: +static int rpmsg_usrsock_send_data_ack(struct rpmsg_device *rpdev, + struct usrsock_message_datareq_ack_s *ack, CHECK: Prefer kernel type 'u8' over 'uint8_t' #241: FILE: drivers/rpmsg/rpmsg_usrsock.c:186: + uint8_t xid, int32_t result, CHECK: Prefer kernel type 'u16' over 'uint16_t' #242: FILE: drivers/rpmsg/rpmsg_usrsock.c:187: + uint16_t valuelen, uint16_t valuelen_nontrunc) CHECK: Prefer kernel type 's16' over 'int16_t' #271: FILE: drivers/rpmsg/rpmsg_usrsock.c:216: + int16_t usockid, uint16_t events) CHECK: Logical continuations should be on the previous line #292: FILE: drivers/rpmsg/rpmsg_usrsock.c:237: + if ((type == SOCK_STREAM || type == SOCK_SEQPACKET) + && sk_stream_is_writeable(conn->sk)) { CHECK: Alignment should match open parenthesis #294: FILE: drivers/rpmsg/rpmsg_usrsock.c:239: + rpmsg_usrsock_send_event(conn->rpdev, + conn->id, USRSOCK_EVENT_SENDTO_READY); CHECK: Alignment should match open parenthesis #306: FILE: drivers/rpmsg/rpmsg_usrsock.c:251: + rpmsg_usrsock_send_ack(conn->rpdev, xid_connecting, + conn->sk->sk_err ? -conn->sk->sk_err : -ETIMEDOUT); CHECK: Alignment should match open parenthesis #309: FILE: drivers/rpmsg/rpmsg_usrsock.c:254: + rpmsg_usrsock_send_event(conn->rpdev, + conn->id, USRSOCK_EVENT_REMOTE_CLOSED); CHECK: Alignment should match open parenthesis #346: FILE: drivers/rpmsg/rpmsg_usrsock.c:291: + rpmsg_usrsock_send_event(conn->rpdev, + conn->id, USRSOCK_EVENT_RECVFROM_AVAIL); CHECK: Comparison to NULL could be written "sk->sk_socket" #353: FILE: drivers/rpmsg/rpmsg_usrsock.c:298: + if (sk->sk_socket != NULL) { CHECK: Alignment should match open parenthesis #365: FILE: drivers/rpmsg/rpmsg_usrsock.c:310: + rpmsg_usrsock_send_event(conn->rpdev, + conn->id, USRSOCK_EVENT_SENDTO_READY); CHECK: Comparison to NULL could be written "!conn" #403: FILE: drivers/rpmsg/rpmsg_usrsock.c:348: + if (conn == NULL) CHECK: Alignment should match open parenthesis #433: FILE: drivers/rpmsg/rpmsg_usrsock.c:378: +static int rpmsg_usrsock_socket_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Alignment should match open parenthesis #441: FILE: drivers/rpmsg/rpmsg_usrsock.c:386: + ret = sock_create_kern(&init_net, + req->domain, type, req->protocol, &sock); CHECK: Logical continuations should be on the previous line #450: FILE: drivers/rpmsg/rpmsg_usrsock.c:395: + if (type != SOCK_STREAM && type != SOCK_SEQPACKET + && ret >= 0 && sk_stream_is_writeable(sock->sk)) { CHECK: Alignment should match open parenthesis #452: FILE: drivers/rpmsg/rpmsg_usrsock.c:397: + rpmsg_usrsock_send_event(rpdev, + ret, USRSOCK_EVENT_SENDTO_READY); CHECK: Alignment should match open parenthesis #485: FILE: drivers/rpmsg/rpmsg_usrsock.c:430: +static int rpmsg_usrsock_close_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #492: FILE: drivers/rpmsg/rpmsg_usrsock.c:437: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #501: FILE: drivers/rpmsg/rpmsg_usrsock.c:446: +static int rpmsg_usrsock_connect_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #512: FILE: drivers/rpmsg/rpmsg_usrsock.c:457: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #516: FILE: drivers/rpmsg/rpmsg_usrsock.c:461: + ret = kernel_connect(sock, + (struct sockaddr *)(req + 1), CHECK: Logical continuations should be on the previous line #525: FILE: drivers/rpmsg/rpmsg_usrsock.c:470: + if ((sock->type == SOCK_STREAM || sock->type == SOCK_SEQPACKET) + && ret >= 0 && sk_stream_is_writeable(sock->sk)) { CHECK: Alignment should match open parenthesis #527: FILE: drivers/rpmsg/rpmsg_usrsock.c:472: + rpmsg_usrsock_send_event(rpdev, + req->usockid, USRSOCK_EVENT_SENDTO_READY); CHECK: Alignment should match open parenthesis #553: FILE: drivers/rpmsg/rpmsg_usrsock.c:498: +static int rpmsg_usrsock_sendto_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #560: FILE: drivers/rpmsg/rpmsg_usrsock.c:505: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #562: FILE: drivers/rpmsg/rpmsg_usrsock.c:507: + ret = rpmsg_usrsock_sendto(sock, + (void *)(req + 1) + req->addrlen, req->buflen, CHECK: braces {} should be used on all arms of this statement #567: FILE: drivers/rpmsg/rpmsg_usrsock.c:512: + if (ret <= 0) [...] + else if ((sock->type == SOCK_STREAM || sock->type == SOCK_SEQPACKET) [...] CHECK: Logical continuations should be on the previous line #570: FILE: drivers/rpmsg/rpmsg_usrsock.c:515: + else if ((sock->type == SOCK_STREAM || sock->type == SOCK_SEQPACKET) + && sk_stream_is_writeable(sock->sk)) { CHECK: Alignment should match open parenthesis #572: FILE: drivers/rpmsg/rpmsg_usrsock.c:517: + rpmsg_usrsock_send_event(rpdev, + req->usockid, USRSOCK_EVENT_SENDTO_READY); CHECK: Alignment should match open parenthesis #594: FILE: drivers/rpmsg/rpmsg_usrsock.c:539: + ret = kernel_recvmsg(sock, &msg, + &iov, 1, size, MSG_DONTWAIT | MSG_NOSIGNAL); CHECK: Alignment should match open parenthesis #602: FILE: drivers/rpmsg/rpmsg_usrsock.c:547: +static int rpmsg_usrsock_recvfrom_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #616: FILE: drivers/rpmsg/rpmsg_usrsock.c:561: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #618: FILE: drivers/rpmsg/rpmsg_usrsock.c:563: + ret = rpmsg_usrsock_recvfrom(sock, + (void *)(ack + 1) + inaddrlen, buflen, CHECK: Alignment should match open parenthesis #622: FILE: drivers/rpmsg/rpmsg_usrsock.c:567: + memcpy((void *)(ack + 1) + outaddrlen, + (void *)(ack + 1) + inaddrlen, ret); CHECK: Alignment should match open parenthesis #631: FILE: drivers/rpmsg/rpmsg_usrsock.c:576: +static int rpmsg_usrsock_setsockopt_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #638: FILE: drivers/rpmsg/rpmsg_usrsock.c:583: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #640: FILE: drivers/rpmsg/rpmsg_usrsock.c:585: + ret = kernel_setsockopt(sock, + rpmsg_usrsock_convert_level(req->level), CHECK: Alignment should match open parenthesis #649: FILE: drivers/rpmsg/rpmsg_usrsock.c:594: +static int rpmsg_usrsock_getsockopt_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #658: FILE: drivers/rpmsg/rpmsg_usrsock.c:603: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #660: FILE: drivers/rpmsg/rpmsg_usrsock.c:605: + ret = kernel_getsockopt(sock, + rpmsg_usrsock_convert_level(req->level), CHECK: Alignment should match open parenthesis #670: FILE: drivers/rpmsg/rpmsg_usrsock.c:615: +static int rpmsg_usrsock_getsockname_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #680: FILE: drivers/rpmsg/rpmsg_usrsock.c:625: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #693: FILE: drivers/rpmsg/rpmsg_usrsock.c:638: +static int rpmsg_usrsock_getpeername_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #703: FILE: drivers/rpmsg/rpmsg_usrsock.c:648: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #716: FILE: drivers/rpmsg/rpmsg_usrsock.c:661: +static int rpmsg_usrsock_bind_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #723: FILE: drivers/rpmsg/rpmsg_usrsock.c:668: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #725: FILE: drivers/rpmsg/rpmsg_usrsock.c:670: + ret = kernel_bind(sock, + (struct sockaddr *)(req + 1), req->addrlen); CHECK: Alignment should match open parenthesis #732: FILE: drivers/rpmsg/rpmsg_usrsock.c:677: +static int rpmsg_usrsock_listen_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #739: FILE: drivers/rpmsg/rpmsg_usrsock.c:684: + if (sock != NULL) CHECK: braces {} should be used on all arms of this statement #755: FILE: drivers/rpmsg/rpmsg_usrsock.c:700: + if (ret >= 0) { [...] + } else [...] CHECK: Unbalanced braces around else statement #758: FILE: drivers/rpmsg/rpmsg_usrsock.c:703: + } else CHECK: Alignment should match open parenthesis #766: FILE: drivers/rpmsg/rpmsg_usrsock.c:711: +static int rpmsg_usrsock_accept_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #778: FILE: drivers/rpmsg/rpmsg_usrsock.c:723: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #780: FILE: drivers/rpmsg/rpmsg_usrsock.c:725: + ret = rpmsg_usrsock_accept(sock, &newsock, + (struct sockaddr *)(ack + 1), &outaddrlen); CHECK: braces {} should be used on all arms of this statement #783: FILE: drivers/rpmsg/rpmsg_usrsock.c:728: + if (ret >= 0) { [...] + } else [...] CHECK: Prefer kernel type 's16' over 'int16_t' #784: FILE: drivers/rpmsg/rpmsg_usrsock.c:729: + int16_t *loc; CHECK: Unbalanced braces around else statement #793: FILE: drivers/rpmsg/rpmsg_usrsock.c:738: + } else CHECK: Alignment should match open parenthesis #799: FILE: drivers/rpmsg/rpmsg_usrsock.c:744: + rpmsg_usrsock_send_data_ack(rpdev, + ack, req->head.xid, ret, inaddrlen, outaddrlen); CHECK: Alignment should match open parenthesis #803: FILE: drivers/rpmsg/rpmsg_usrsock.c:748: + rpmsg_usrsock_send_event(rpdev, + newid, USRSOCK_EVENT_SENDTO_READY); CHECK: Alignment should match open parenthesis #806: FILE: drivers/rpmsg/rpmsg_usrsock.c:751: + rpmsg_usrsock_send_event(rpdev, + newid, USRSOCK_EVENT_RECVFROM_AVAIL); CHECK: Alignment should match open parenthesis #825: FILE: drivers/rpmsg/rpmsg_usrsock.c:770: +static int rpmsg_usrsock_ioctl_handler(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Comparison to NULL could be written "sock" #833: FILE: drivers/rpmsg/rpmsg_usrsock.c:778: + if (sock != NULL) { CHECK: Alignment should match open parenthesis #836: FILE: drivers/rpmsg/rpmsg_usrsock.c:781: + ret = rpmsg_usrsock_ioctl(sock, + req->cmd, (unsigned long)(ack + 1)); CHECK: Alignment should match open parenthesis #860: FILE: drivers/rpmsg/rpmsg_usrsock.c:805: +static int rpmsg_usrsock_callback(struct rpmsg_device *rpdev, + void *data, int len, void *priv, u32 src) CHECK: Prefer kernel type 's8' over 'int8_t' #864: FILE: drivers/rpmsg/rpmsg_usrsock.c:809: + int8_t id = common->reqid; CHECK: Prefer using the BIT macro #1017: FILE: drivers/rpmsg/usrsock.h:69: +#define USRSOCK_EVENT_ABORT (1 << 1) CHECK: Prefer using the BIT macro #1018: FILE: drivers/rpmsg/usrsock.h:70: +#define USRSOCK_EVENT_SENDTO_READY (1 << 2) CHECK: Prefer using the BIT macro #1019: FILE: drivers/rpmsg/usrsock.h:71: +#define USRSOCK_EVENT_RECVFROM_AVAIL (1 << 3) CHECK: Prefer using the BIT macro #1020: FILE: drivers/rpmsg/usrsock.h:72: +#define USRSOCK_EVENT_REMOTE_CLOSED (1 << 4) CHECK: Prefer using the BIT macro #1024: FILE: drivers/rpmsg/usrsock.h:76: +#define USRSOCK_MESSAGE_FLAG_REQ_IN_PROGRESS (1 << 0) CHECK: Prefer using the BIT macro #1025: FILE: drivers/rpmsg/usrsock.h:77: +#define USRSOCK_MESSAGE_FLAG_EVENT (1 << 1) CHECK: Prefer kernel type 's8' over 'int8_t' #1071: FILE: drivers/rpmsg/usrsock.h:123: + int8_t reqid; CHECK: Prefer kernel type 'u8' over 'uint8_t' #1072: FILE: drivers/rpmsg/usrsock.h:124: + uint8_t xid; CHECK: Prefer kernel type 's16' over 'int16_t' #1078: FILE: drivers/rpmsg/usrsock.h:130: + int16_t domain; CHECK: Prefer kernel type 's16' over 'int16_t' #1079: FILE: drivers/rpmsg/usrsock.h:131: + int16_t type; CHECK: Prefer kernel type 's16' over 'int16_t' #1080: FILE: drivers/rpmsg/usrsock.h:132: + int16_t protocol; CHECK: Prefer kernel type 's16' over 'int16_t' #1086: FILE: drivers/rpmsg/usrsock.h:138: + int16_t usockid; CHECK: Prefer kernel type 's16' over 'int16_t' #1092: FILE: drivers/rpmsg/usrsock.h:144: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1093: FILE: drivers/rpmsg/usrsock.h:145: + uint16_t addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1099: FILE: drivers/rpmsg/usrsock.h:151: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1100: FILE: drivers/rpmsg/usrsock.h:152: + uint16_t addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1106: FILE: drivers/rpmsg/usrsock.h:158: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1107: FILE: drivers/rpmsg/usrsock.h:159: + uint16_t backlog; CHECK: Prefer kernel type 's16' over 'int16_t' #1113: FILE: drivers/rpmsg/usrsock.h:165: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1114: FILE: drivers/rpmsg/usrsock.h:166: + uint16_t max_addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1120: FILE: drivers/rpmsg/usrsock.h:172: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1121: FILE: drivers/rpmsg/usrsock.h:173: + uint16_t addrlen; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1122: FILE: drivers/rpmsg/usrsock.h:174: + uint16_t buflen; CHECK: Prefer kernel type 's16' over 'int16_t' #1128: FILE: drivers/rpmsg/usrsock.h:180: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1129: FILE: drivers/rpmsg/usrsock.h:181: + uint16_t max_buflen; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1130: FILE: drivers/rpmsg/usrsock.h:182: + uint16_t max_addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1136: FILE: drivers/rpmsg/usrsock.h:188: + int16_t usockid; CHECK: Prefer kernel type 's16' over 'int16_t' #1137: FILE: drivers/rpmsg/usrsock.h:189: + int16_t level; CHECK: Prefer kernel type 's16' over 'int16_t' #1138: FILE: drivers/rpmsg/usrsock.h:190: + int16_t option; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1139: FILE: drivers/rpmsg/usrsock.h:191: + uint16_t valuelen; CHECK: Prefer kernel type 's16' over 'int16_t' #1145: FILE: drivers/rpmsg/usrsock.h:197: + int16_t usockid; CHECK: Prefer kernel type 's16' over 'int16_t' #1146: FILE: drivers/rpmsg/usrsock.h:198: + int16_t level; CHECK: Prefer kernel type 's16' over 'int16_t' #1147: FILE: drivers/rpmsg/usrsock.h:199: + int16_t option; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1148: FILE: drivers/rpmsg/usrsock.h:200: + uint16_t max_valuelen; CHECK: Prefer kernel type 's16' over 'int16_t' #1154: FILE: drivers/rpmsg/usrsock.h:206: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1155: FILE: drivers/rpmsg/usrsock.h:207: + uint16_t max_addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1161: FILE: drivers/rpmsg/usrsock.h:213: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1162: FILE: drivers/rpmsg/usrsock.h:214: + uint16_t max_addrlen; CHECK: Prefer kernel type 's16' over 'int16_t' #1168: FILE: drivers/rpmsg/usrsock.h:220: + int16_t usockid; CHECK: Prefer kernel type 's32' over 'int32_t' #1169: FILE: drivers/rpmsg/usrsock.h:221: + int32_t cmd; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1170: FILE: drivers/rpmsg/usrsock.h:222: + uint16_t arglen; CHECK: Prefer kernel type 's8' over 'int8_t' #1176: FILE: drivers/rpmsg/usrsock.h:228: + int8_t msgid; CHECK: Prefer kernel type 's8' over 'int8_t' #1177: FILE: drivers/rpmsg/usrsock.h:229: + int8_t flags; CHECK: Prefer kernel type 'u8' over 'uint8_t' #1185: FILE: drivers/rpmsg/usrsock.h:237: + uint8_t xid; CHECK: Prefer kernel type 's32' over 'int32_t' #1186: FILE: drivers/rpmsg/usrsock.h:238: + int32_t result; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1196: FILE: drivers/rpmsg/usrsock.h:248: + uint16_t valuelen; /* length of value returned after buffer */ CHECK: Prefer kernel type 'u16' over 'uint16_t' #1197: FILE: drivers/rpmsg/usrsock.h:249: + uint16_t valuelen_nontrunc; /* actual non-truncated length of value */ CHECK: Prefer kernel type 's16' over 'int16_t' #1205: FILE: drivers/rpmsg/usrsock.h:257: + int16_t usockid; CHECK: Prefer kernel type 'u16' over 'uint16_t' #1206: FILE: drivers/rpmsg/usrsock.h:258: + uint16_t events; total: 0 errors, 1 warnings, 120 checks, 1170 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. ./linux-sof-driver/0001-rpmsg-add-socket-API-redirection-driver.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.