diff options
| author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-03-10 11:04:58 -0500 |
|---|---|---|
| committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-03-10 11:04:58 -0500 |
| commit | a66cb11b6abdd5a77f09c7bf8adbd424c701bb2b (patch) | |
| tree | 84f534b4b8000c859b9213da61c431a739b71f5c | |
| parent | d0109a59993ba568bb81a67a062dcfb460692447 (diff) | |
| parent | fcadda6a89095fc92e6fe2e248e93b642ce8580b (diff) | |
| download | cryptography-a66cb11b6abdd5a77f09c7bf8adbd424c701bb2b.tar.gz cryptography-a66cb11b6abdd5a77f09c7bf8adbd424c701bb2b.tar.bz2 cryptography-a66cb11b6abdd5a77f09c7bf8adbd424c701bb2b.zip | |
Merge pull request #1742 from alex/fixed-deprecations
Fixed the deprecation warnings being triggered by the tests
| -rw-r--r-- | tests/hazmat/primitives/test_dsa.py | 4 | ||||
| -rw-r--r-- | tests/hazmat/primitives/test_ec.py | 2 | ||||
| -rw-r--r-- | tests/hazmat/primitives/test_rsa.py | 2 | ||||
| -rw-r--r-- | tests/hazmat/primitives/test_serialization.py | 12 | ||||
| -rw-r--r-- | tests/test_x509.py | 4 |
5 files changed, 12 insertions, 12 deletions
diff --git a/tests/hazmat/primitives/test_dsa.py b/tests/hazmat/primitives/test_dsa.py index 112818f4..bbafbc6c 100644 --- a/tests/hazmat/primitives/test_dsa.py +++ b/tests/hazmat/primitives/test_dsa.py @@ -75,7 +75,7 @@ class TestDSA(object): g=vector['g'] ).parameters(backend) skey = parameters.generate_private_key() - if isinstance(skey, dsa.DSAPrivateKeyWithNumbers): + if isinstance(skey, dsa.DSAPrivateKeyWithSerialization): numbers = skey.private_numbers() skey_parameters = numbers.public_numbers.parameter_numbers pkey = skey.public_key() @@ -98,7 +98,7 @@ class TestDSA(object): def test_generate_dsa_private_key_and_parameters(self, backend): skey = dsa.generate_private_key(1024, backend) assert skey - if isinstance(skey, dsa.DSAPrivateKeyWithNumbers) Subject: NET: skip GRO for foreign MAC addresses
For network drivers using napi_gro_receive, packets are run through GRO,
even when the destination MAC address does not match, and they're supposed
to be delivered to another host behind a different bridge port.
This can be very expensive, because for drivers without TSO or scatter-
gather, this can only be undone by copying the skb and checksumming it
again.
To be able to track foreign MAC addresses in an inexpensive way, create
a mask of changed bits in MAC addresses of upper devices. This allows
handling VLANs and bridge devices with different addresses (as long as
they are not too different).
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4007,6 +4007,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
+ if (skb->gro_skip)
+ goto normal;
+
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
@@ -5154,6 +5157,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
+static void __netdev_addr_mask(unsigned char *mask, const unsigned char *addr,
+ struct net_device *dev)
+{
+ int i;
+
+ for (i = 0; i < dev->addr_len; i++)
+ mask[i] |= addr[i] ^ dev->dev_addr[i];
+}
+
+static void __netdev_upper_mask(unsigned char *mask, struct net_device *dev,
+ struct net_device *lower)
+{
+ struct net_device *cur;
+ struct list_head *iter;
+
+ netdev_for_each_upper_dev_rcu(dev, cur, iter) {
+ __netdev_addr_mask(mask, cur->dev_addr, lower);
+ __netdev_upper_mask(mask, cur, lower);
+ }
+}
+
+static void __netdev_update_addr_mask(struct net_device *dev)
+{
+ unsigned char mask[MAX_ADDR_LEN];
+ struct net_device *cur;
+ struct list_head *iter;
+
+ memset(mask, 0, sizeof(mask));
+ __netdev_upper_mask(mask, dev, dev);
+ memcpy(dev->local_addr_mask, mask, dev->addr_len);
+
+ netdev_for_each_lower_dev(dev, cur, iter)
+ __netdev_update_addr_mask(cur);
+}
+
+static void netdev_update_addr_mask(struct net_device *dev)
+{
+ rcu_read_lock();
+ __netdev_update_addr_mask(dev);
+ rcu_read_unlock();
+}
+
static int __netdev_upper_dev_link(struct net_devi |
