Merge 265bf63e24
("sctp: ensure sk_state is set to CLOSED if hashing fails in sctp_listen_start") into android12-5.10-lts
Steps on the way to 5.10.227 Change-Id: Icd51aea58e6744d6fa9097da88dd177513a532c6 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
ff0e27a0f9
@ -404,6 +404,8 @@ static void __aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
|
|||||||
gpio->dcache[GPIO_BANK(offset)] = reg;
|
gpio->dcache[GPIO_BANK(offset)] = reg;
|
||||||
|
|
||||||
iowrite32(reg, addr);
|
iowrite32(reg, addr);
|
||||||
|
/* Flush write */
|
||||||
|
ioread32(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
|
static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
|
||||||
@ -1157,7 +1159,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
|
|||||||
if (!gpio_id)
|
if (!gpio_id)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
gpio->clk = of_clk_get(pdev->dev.of_node, 0);
|
gpio->clk = devm_clk_get_enabled(&pdev->dev, NULL);
|
||||||
if (IS_ERR(gpio->clk)) {
|
if (IS_ERR(gpio->clk)) {
|
||||||
dev_warn(&pdev->dev,
|
dev_warn(&pdev->dev,
|
||||||
"Failed to get clock from devicetree, debouncing disabled\n");
|
"Failed to get clock from devicetree, debouncing disabled\n");
|
||||||
|
@ -576,7 +576,7 @@ static int mal_probe(struct platform_device *ofdev)
|
|||||||
printk(KERN_ERR "%pOF: Support for 405EZ not enabled!\n",
|
printk(KERN_ERR "%pOF: Support for 405EZ not enabled!\n",
|
||||||
ofdev->dev.of_node);
|
ofdev->dev.of_node);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
goto fail;
|
goto fail_unmap;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9536,6 +9536,10 @@ static void igb_io_resume(struct pci_dev *pdev)
|
|||||||
struct igb_adapter *adapter = netdev_priv(netdev);
|
struct igb_adapter *adapter = netdev_priv(netdev);
|
||||||
|
|
||||||
if (netif_running(netdev)) {
|
if (netif_running(netdev)) {
|
||||||
|
if (!test_bit(__IGB_DOWN, &adapter->state)) {
|
||||||
|
dev_dbg(&pdev->dev, "Resuming from non-fatal error, do nothing.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (igb_up(adapter)) {
|
if (igb_up(adapter)) {
|
||||||
dev_err(&pdev->dev, "igb_up failed after reset\n");
|
dev_err(&pdev->dev, "igb_up failed after reset\n");
|
||||||
return;
|
return;
|
||||||
|
@ -833,7 +833,6 @@ static inline void qdisc_calculate_pkt_len(struct sk_buff *skb,
|
|||||||
static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
|
static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
|
||||||
struct sk_buff **to_free)
|
struct sk_buff **to_free)
|
||||||
{
|
{
|
||||||
qdisc_calculate_pkt_len(skb, sch);
|
|
||||||
return sch->enqueue(skb, sch, to_free);
|
return sch->enqueue(skb, sch, to_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,7 +589,6 @@ void __qdisc_calculate_pkt_len(struct sk_buff *skb,
|
|||||||
pkt_len = 1;
|
pkt_len = 1;
|
||||||
qdisc_skb_cb(skb)->pkt_len = pkt_len;
|
qdisc_skb_cb(skb)->pkt_len = pkt_len;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__qdisc_calculate_pkt_len);
|
|
||||||
|
|
||||||
void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc)
|
void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc)
|
||||||
{
|
{
|
||||||
@ -1119,6 +1118,12 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (new &&
|
||||||
|
!(parent->flags & TCQ_F_MQROOT) &&
|
||||||
|
rcu_access_pointer(new->stab)) {
|
||||||
|
NL_SET_ERR_MSG(extack, "STAB not supported on a non root");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
err = cops->graft(parent, cl, new, &old, extack);
|
err = cops->graft(parent, cl, new, &old, extack);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
@ -8262,6 +8262,7 @@ static int sctp_listen_start(struct sock *sk, int backlog)
|
|||||||
struct sctp_endpoint *ep = sp->ep;
|
struct sctp_endpoint *ep = sp->ep;
|
||||||
struct crypto_shash *tfm = NULL;
|
struct crypto_shash *tfm = NULL;
|
||||||
char alg[32];
|
char alg[32];
|
||||||
|
int err;
|
||||||
|
|
||||||
/* Allocate HMAC for generating cookie. */
|
/* Allocate HMAC for generating cookie. */
|
||||||
if (!sp->hmac && sp->sctp_hmac_alg) {
|
if (!sp->hmac && sp->sctp_hmac_alg) {
|
||||||
@ -8289,18 +8290,25 @@ static int sctp_listen_start(struct sock *sk, int backlog)
|
|||||||
inet_sk_set_state(sk, SCTP_SS_LISTENING);
|
inet_sk_set_state(sk, SCTP_SS_LISTENING);
|
||||||
if (!ep->base.bind_addr.port) {
|
if (!ep->base.bind_addr.port) {
|
||||||
if (sctp_autobind(sk)) {
|
if (sctp_autobind(sk)) {
|
||||||
inet_sk_set_state(sk, SCTP_SS_CLOSED);
|
err = -EAGAIN;
|
||||||
return -EAGAIN;
|
goto err;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sctp_get_port(sk, inet_sk(sk)->inet_num)) {
|
if (sctp_get_port(sk, inet_sk(sk)->inet_num)) {
|
||||||
inet_sk_set_state(sk, SCTP_SS_CLOSED);
|
err = -EADDRINUSE;
|
||||||
return -EADDRINUSE;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_ONCE(sk->sk_max_ack_backlog, backlog);
|
WRITE_ONCE(sk->sk_max_ack_backlog, backlog);
|
||||||
return sctp_hash_endpoint(ep);
|
err = sctp_hash_endpoint(ep);
|
||||||
|
if (err)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
err:
|
||||||
|
inet_sk_set_state(sk, SCTP_SS_CLOSED);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user