Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
r8152 conflicts are the NAPI fixes in 'net' overlapping with some tasklet stuff in net-next Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -223,10 +223,8 @@ static int rxkad_secure_packet_encrypt(const struct rxrpc_call *call,
|
||||
struct rxrpc_skb_priv *sp;
|
||||
struct rxrpc_crypt iv;
|
||||
struct scatterlist sg[16];
|
||||
struct sk_buff *trailer;
|
||||
unsigned int len;
|
||||
u16 check;
|
||||
int nsg;
|
||||
int err;
|
||||
|
||||
sp = rxrpc_skb(skb);
|
||||
@@ -250,15 +248,14 @@ static int rxkad_secure_packet_encrypt(const struct rxrpc_call *call,
|
||||
crypto_skcipher_encrypt(req);
|
||||
|
||||
/* we want to encrypt the skbuff in-place */
|
||||
nsg = skb_cow_data(skb, 0, &trailer);
|
||||
err = -ENOMEM;
|
||||
if (nsg < 0 || nsg > 16)
|
||||
err = -EMSGSIZE;
|
||||
if (skb_shinfo(skb)->nr_frags > 16)
|
||||
goto out;
|
||||
|
||||
len = data_size + call->conn->size_align - 1;
|
||||
len &= ~(call->conn->size_align - 1);
|
||||
|
||||
sg_init_table(sg, nsg);
|
||||
sg_init_table(sg, ARRAY_SIZE(sg));
|
||||
err = skb_to_sgvec(skb, sg, 0, len);
|
||||
if (unlikely(err < 0))
|
||||
goto out;
|
||||
@@ -359,11 +356,10 @@ static int rxkad_verify_packet_1(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
struct rxkad_level1_hdr sechdr;
|
||||
struct rxrpc_crypt iv;
|
||||
struct scatterlist sg[16];
|
||||
struct sk_buff *trailer;
|
||||
bool aborted;
|
||||
u32 data_size, buf;
|
||||
u16 check;
|
||||
int nsg, ret;
|
||||
int ret;
|
||||
|
||||
_enter("");
|
||||
|
||||
@@ -376,11 +372,7 @@ static int rxkad_verify_packet_1(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
/* Decrypt the skbuff in-place. TODO: We really want to decrypt
|
||||
* directly into the target buffer.
|
||||
*/
|
||||
nsg = skb_cow_data(skb, 0, &trailer);
|
||||
if (nsg < 0 || nsg > 16)
|
||||
goto nomem;
|
||||
|
||||
sg_init_table(sg, nsg);
|
||||
sg_init_table(sg, ARRAY_SIZE(sg));
|
||||
ret = skb_to_sgvec(skb, sg, offset, 8);
|
||||
if (unlikely(ret < 0))
|
||||
return ret;
|
||||
@@ -428,10 +420,6 @@ protocol_error:
|
||||
if (aborted)
|
||||
rxrpc_send_abort_packet(call);
|
||||
return -EPROTO;
|
||||
|
||||
nomem:
|
||||
_leave(" = -ENOMEM");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -446,7 +434,6 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
struct rxkad_level2_hdr sechdr;
|
||||
struct rxrpc_crypt iv;
|
||||
struct scatterlist _sg[4], *sg;
|
||||
struct sk_buff *trailer;
|
||||
bool aborted;
|
||||
u32 data_size, buf;
|
||||
u16 check;
|
||||
@@ -463,12 +450,11 @@ static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb,
|
||||
/* Decrypt the skbuff in-place. TODO: We really want to decrypt
|
||||
* directly into the target buffer.
|
||||
*/
|
||||
nsg = skb_cow_data(skb, 0, &trailer);
|
||||
if (nsg < 0)
|
||||
goto nomem;
|
||||
|
||||
sg = _sg;
|
||||
if (unlikely(nsg > 4)) {
|
||||
nsg = skb_shinfo(skb)->nr_frags;
|
||||
if (nsg <= 4) {
|
||||
nsg = 4;
|
||||
} else {
|
||||
sg = kmalloc_array(nsg, sizeof(*sg), GFP_NOIO);
|
||||
if (!sg)
|
||||
goto nomem;
|
||||
|
Reference in New Issue
Block a user