net: core: Convert inet_addr_is_any() to sockaddr_storage
Subsystems (6)
PATCH v2 1/1 net: core: Convert inet_addr_is_any() to sockaddr_storage
All the callers of inet_addr_is_any() have a sockaddr_storage-backed sockaddr. Avoid casts and switch prototype to the actual object being used.
---
v2: drop "extern" in header (hch)
v1: https://lore.kernel.org/all/[email protected]/
---
Cc: Christoph Hellwig <[email protected]>
Cc: Sagi Grimberg <[email protected]>
Cc: Chaitanya Kulkarni <[email protected]>
Cc: "Martin K. Petersen" <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Eric Dumazet <[email protected]>
Cc: Jakub Kicinski <[email protected]>
Cc: Paolo Abeni <[email protected]>
Cc: Mike Christie <[email protected]>
Cc: Max Gurtovoy <[email protected]>
Cc: Maurizio Lombardi <[email protected]>
Cc: Dmitry Bogdanov <[email protected]>
Cc: Mingzhe Zou <[email protected]>
Cc: Christophe Leroy <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: "Dr. David Alan Gilbert" <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
--- drivers/nvme/target/rdma.c | 2 +- drivers/nvme/target/tcp.c | 2 +- drivers/target/iscsi/iscsi_target.c | 2 +- include/linux/inet.h | 2 +- net/core/utils.c | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-)
drivers/nvme/target/rdma.c +1 -1
@@ -1986,7 +1986,7 @@ static void nvmet_rdma_disc_port_addr(struct nvmet_req *req,struct nvmet_rdma_port *port = nport->priv;struct rdma_cm_id *cm_id = port->cm_id; -if (inet_addr_is_any ((struct sockaddr *)&cm_id->route.addr.src_addr)) { +if (inet_addr_is_any (&cm_id->route.addr.src_addr)) {struct nvmet_rdma_rsp *rsp = container_of(req, struct nvmet_rdma_rsp, req);struct rdma_cm_id *req_cm_id = rsp->queue->cm_id;
drivers/nvme/target/tcp.c +1 -1
@@ -2158,7 +2158,7 @@ static void nvmet_tcp_disc_port_addr(struct nvmet_req *req, {struct nvmet_tcp_port *port = nport->priv; -if (inet_addr_is_any ((struct sockaddr *)&port->addr)) { +if (inet_addr_is_any (&port->addr)) {struct nvmet_tcp_cmd *cmd = container_of(req, struct nvmet_tcp_cmd, req);struct nvmet_tcp_queue *queue = cmd->queue;
drivers/target/iscsi/iscsi_target.c +1 -1
@@ -3471,7 +3471,7 @@ iscsit_build_sendtargets_response(struct iscsit_cmd *cmd, } } -if (inet_addr_is_any ((struct sockaddr *)&np->np_sockaddr)) +if (inet_addr_is_any (&np->np_sockaddr)) sockaddr = &conn->local_sockaddr;else sockaddr = &np->np_sockaddr;
include/linux/inet.h +1 -1
@@ -55,6 +55,6 @@ extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const charextern int inet_pton_with_scope (struct net *net,unsigned short af,const char *src,const char *port,struct sockaddr_storage *addr); -extern bool inet_addr_is_any (struct sockaddr *addr); +bool inet_addr_is_any (struct sockaddr_storage *addr);#endif /* _LINUX_INET_H */
net/core/utils.c +4 -4
@@ -399,9 +399,9 @@ int inet_pton_with_scope(struct net *net, __kernel_sa_family_t af, }EXPORT_SYMBOL (inet_pton_with_scope); -bool inet_addr_is_any (struct sockaddr *addr) +bool inet_addr_is_any (struct sockaddr_storage *addr) { -if (addr->sa_family ==AF_INET6 ) { +if (addr->ss_family ==AF_INET6 ) {struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)addr;const struct sockaddr_in6 in6_any = { .sin6_addr =IN6ADDR_ANY_INIT };
@@ -409,13 +409,13 @@ bool inet_addr_is_any(struct sockaddr *addr)if (!memcmp (in6->sin6_addr.s6_addr, in6_any.sin6_addr.s6_addr,16 ))return true; - }else if (addr->sa_family ==AF_INET ) { + }else if (addr->ss_family ==AF_INET ) {struct sockaddr_in *in = (struct sockaddr_in *)addr;if (in->sin_addr.s_addr ==htonl (INADDR_ANY ))return true; }else { -pr_warn ("unexpected address family %u\n" , addr->sa_family); +pr_warn ("unexpected address family %u\n" , addr->ss_family); }return false;
Signature · 1 line
2.34.1
Paolo Abeni
maintainerQuoted 7 lines · Kees Cook
All the callers of
inet_addr_is_any()have a sockaddr_storage-backed sockaddr. Avoid casts and switch prototype to the actual object being used.Reviewed-by Christoph Hellwig <[email protected]>Reviewed-by Simon Horman <[email protected]>Signed-off-by Kees Cook <[email protected]>
It looks like the target tree is the networking one. If so, could you please re-submit including 'net-next' into the subj, so this goes trough our CI?
Thanks!
Paolo