Skip to content

Commit

Permalink
tgupdate: merge t/DO-NOT-MERGE-mptcp-use-kmalloc-on-kasan-build-net b…
Browse files Browse the repository at this point in the history
…ase into t/DO-NOT-MERGE-mptcp-use-kmalloc-on-kasan-build-net
  • Loading branch information
jenkins-tessares committed Apr 4, 2023
2 parents c52f8bf + 4e03a7a commit 433242c
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 7 deletions.
4 changes: 4 additions & 0 deletions drivers/net/phy/sfp.c
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,10 @@ static const struct sfp_quirk sfp_quirks[] = {

SFP_QUIRK_F("HALNy", "HL-GSFP", sfp_fixup_halny_gsfp),

// HG MXPD-483II-F 2.5G supports 2500Base-X, but incorrectly reports
// 2600MBd in their EERPOM
SFP_QUIRK_M("HG GENUINE", "MXPD-483II", sfp_quirk_2500basex),

// Huawei MA5671A can operate at 2500base-X, but report 1.2GBd NRZ in
// their EEPROM
SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
Expand Down
7 changes: 6 additions & 1 deletion net/ipv6/ip6_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -1965,8 +1965,13 @@ struct sk_buff *__ip6_make_skb(struct sock *sk,
IP6_UPD_PO_STATS(net, rt->rt6i_idev, IPSTATS_MIB_OUT, skb->len);
if (proto == IPPROTO_ICMPV6) {
struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
u8 icmp6_type;

ICMP6MSGOUT_INC_STATS(net, idev, icmp6_hdr(skb)->icmp6_type);
if (sk->sk_socket->type == SOCK_RAW && !inet_sk(sk)->hdrincl)
icmp6_type = fl6->fl6_icmp_type;
else
icmp6_type = icmp6_hdr(skb)->icmp6_type;
ICMP6MSGOUT_INC_STATS(net, idev, icmp6_type);
ICMP6_INC_STATS(net, idev, ICMP6_MIB_OUTMSGS);
}

Expand Down
15 changes: 9 additions & 6 deletions net/qrtr/ns.c
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ static struct qrtr_server *server_add(unsigned int service,
return NULL;
}

static int server_del(struct qrtr_node *node, unsigned int port)
static int server_del(struct qrtr_node *node, unsigned int port, bool bcast)
{
struct qrtr_lookup *lookup;
struct qrtr_server *srv;
Expand All @@ -287,7 +287,7 @@ static int server_del(struct qrtr_node *node, unsigned int port)
radix_tree_delete(&node->servers, port);

/* Broadcast the removal of local servers */
if (srv->node == qrtr_ns.local_node)
if (srv->node == qrtr_ns.local_node && bcast)
service_announce_del(&qrtr_ns.bcast_sq, srv);

/* Announce the service's disappearance to observers */
Expand Down Expand Up @@ -373,7 +373,7 @@ static int ctrl_cmd_bye(struct sockaddr_qrtr *from)
}
slot = radix_tree_iter_resume(slot, &iter);
rcu_read_unlock();
server_del(node, srv->port);
server_del(node, srv->port, true);
rcu_read_lock();
}
rcu_read_unlock();
Expand Down Expand Up @@ -459,10 +459,13 @@ static int ctrl_cmd_del_client(struct sockaddr_qrtr *from,
kfree(lookup);
}

/* Remove the server belonging to this port */
/* Remove the server belonging to this port but don't broadcast
* DEL_SERVER. Neighbours would've already removed the server belonging
* to this port due to the DEL_CLIENT broadcast from qrtr_port_remove().
*/
node = node_get(node_id);
if (node)
server_del(node, port);
server_del(node, port, false);

/* Advertise the removal of this client to all local servers */
local_node = node_get(qrtr_ns.local_node);
Expand Down Expand Up @@ -567,7 +570,7 @@ static int ctrl_cmd_del_server(struct sockaddr_qrtr *from,
if (!node)
return -ENOENT;

return server_del(node, port);
return server_del(node, port, true);
}

static int ctrl_cmd_new_lookup(struct sockaddr_qrtr *from,
Expand Down

0 comments on commit 433242c

Please sign in to comment.