All of lore.kernel.org
 help / color / mirror / Atom feed
* (unknown), 
@ 2013-10-19 22:21 ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n

Hello David,

this is another batch intended for net-next/linux-3.13.

This pull request is a bit bigger than usual, but 6 patches are very small
(three of them are about email updates)..

Patch 1 is fixing a previous merge conflict resolution that went wrong
(I realised that only now while checking other patches..).
Patches from 2 to 4 that are updating our emails in all the proper files
(Documentation/, headers and MAINTAINERS).

Patches 5, 6 and 7 are bringing a big improvement to the TranslationTable
component: it is now able to group non-mesh clients based on the VLAN they
belong to. In this way a lot a new enhancements are now possible thanks to the
fact that each batman-adv behaviour can be applied on a per VLAN basis.

And, of course, in patches from 8 to 12 you have some of the enhancements I was
talking about:
- make the batman-Gateway selection VLAN dependent
- make DAT (Distributed ARP Table) group ARP entries on a VLAN basis (this
  allows DAT to work even when the admin decided to use the same IP subnet on
  different VLANs)
- make the AP-Isolation behaviour switchable on each VLAN independently
- export VLAN specific attributes via sysfs. Switches like the AP-Isolation are
  now exported once per VLAN (backward compatibility of the sysfs interface has
  been preserved)

Patches 13 and 14 are small code cleanups.
Patch 15 is a minor improvement in the TT locking mechanism.

Patches 16 and 17 are other enhancements to the TT component. Those allow a
node to parse a "non-mesh client announcement message" and accept only those
TT entries belonging to certain VLANs.

Patch 18 exploits this parse&accept mechanism to make the Bridge Loop Avoidance
component reject only TT entries connected to the VLAN where it is operating.
Previous to this change, BLA was rejecting all the entries coming from any other
Backbone node, regardless of the VLAN (for more details about how the Bridge
Loop Avoidance works please check [1]).


Please pull or let me know of any problem.

Thanks a lot,
	Antonio


[1] http://www.open-mesh.org/projects/batman-adv/wiki/Bridge-loop-avoidance-II

The following changes since commit b1eda2ac3fa6bf23b27c7c70eda6885124c79ed3:

  em_ipset: use dev_net() accessor (2013-10-18 16:23:06 -0400)

are available in the git repository at:

  git://git.open-mesh.org/linux-merge.git tags/batman-adv-for-davem

for you to fetch changes up to cfd4f75701b6b13b1ec74e6f65ad0d1969c19247:

  batman-adv: make the backbone gw check VLAN specific (2013-10-19 23:25:38 +0200)

----------------------------------------------------------------
Included changed:
- email addresses update in documentation, source files and MAINTAINERS
- make the TT component distinguish non-mesh clients based on the VLAN they
  belong to
- improve all the internal components to properly work on a per-VLAN basis
  (enabled by the new TT-VLAN feature)
- enhance the sysfs interface in order to provide behaviour switches on a
  per-VLAN basis (enabled by the new TT-VLAN feature)
- improve TT lock mechanism
- improve unicast transmission APIs

----------------------------------------------------------------
Antonio Quartulli (15):
      batman-adv: check skb preparation return value
      batman-adv: update email address for Antonio Quartulli
      batman-adv: add the VLAN ID attribute to the TT entry
      batman-adv: use vid when computing local and global TT CRC
      batman-adv: print the VID together with the TT entries
      batman-adv: make the GW module correctly talk to the new VLAN-TT
      batman-adv: make the Distributed ARP Table vlan aware
      batman-adv: add per VLAN interface attribute framework
      batman-adv: add sysfs framework for VLAN
      batman-adv: make the AP isolation attribute VLAN specific
      batman-adv: remove bogus comment
      batman-adv: lock around TT operations to avoid sending inconsistent data
      batman-adv: make the TT CRC logic VLAN specific
      batman-adv: make the TT global purge routine VLAN specific
      batman-adv: make the backbone gw check VLAN specific

Linus Lüssing (1):
      batman-adv: refine API calls for unicast transmissions of SKBs

Marek Lindner (1):
      batman-adv: update email address for Marek Lindner

Simon Wunderlich (1):
      batman-adv: update email address for Simon Wunderlich

 .../ABI/testing/sysfs-class-net-batman-adv         |    4 +-
 Documentation/ABI/testing/sysfs-class-net-mesh     |   23 +-
 Documentation/networking/batman-adv.txt            |    4 +-
 MAINTAINERS                                        |    2 +-
 net/batman-adv/bridge_loop_avoidance.c             |   58 +-
 net/batman-adv/bridge_loop_avoidance.h             |   10 +-
 net/batman-adv/distributed-arp-table.c             |  160 ++-
 net/batman-adv/gateway_client.c                    |   25 +-
 net/batman-adv/hard-interface.c                    |    2 +
 net/batman-adv/main.c                              |   33 +-
 net/batman-adv/main.h                              |   15 +-
 net/batman-adv/originator.c                        |  104 +-
 net/batman-adv/originator.h                        |    7 +
 net/batman-adv/packet.h                            |   32 +-
 net/batman-adv/routing.c                           |   28 +-
 net/batman-adv/send.c                              |   98 +-
 net/batman-adv/send.h                              |   51 +-
 net/batman-adv/soft-interface.c                    |  227 +++-
 net/batman-adv/soft-interface.h                    |    4 +
 net/batman-adv/sysfs.c                             |  178 ++-
 net/batman-adv/sysfs.h                             |   10 +
 net/batman-adv/translation-table.c                 | 1157 +++++++++++++++-----
 net/batman-adv/translation-table.h                 |   23 +-
 net/batman-adv/types.h                             |   83 +-
 24 files changed, 1851 insertions(+), 487 deletions(-)

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] (no subject)
@ 2013-10-19 22:21 ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n

Hello David,

this is another batch intended for net-next/linux-3.13.

This pull request is a bit bigger than usual, but 6 patches are very small
(three of them are about email updates)..

Patch 1 is fixing a previous merge conflict resolution that went wrong
(I realised that only now while checking other patches..).
Patches from 2 to 4 that are updating our emails in all the proper files
(Documentation/, headers and MAINTAINERS).

Patches 5, 6 and 7 are bringing a big improvement to the TranslationTable
component: it is now able to group non-mesh clients based on the VLAN they
belong to. In this way a lot a new enhancements are now possible thanks to the
fact that each batman-adv behaviour can be applied on a per VLAN basis.

And, of course, in patches from 8 to 12 you have some of the enhancements I was
talking about:
- make the batman-Gateway selection VLAN dependent
- make DAT (Distributed ARP Table) group ARP entries on a VLAN basis (this
  allows DAT to work even when the admin decided to use the same IP subnet on
  different VLANs)
- make the AP-Isolation behaviour switchable on each VLAN independently
- export VLAN specific attributes via sysfs. Switches like the AP-Isolation are
  now exported once per VLAN (backward compatibility of the sysfs interface has
  been preserved)

Patches 13 and 14 are small code cleanups.
Patch 15 is a minor improvement in the TT locking mechanism.

Patches 16 and 17 are other enhancements to the TT component. Those allow a
node to parse a "non-mesh client announcement message" and accept only those
TT entries belonging to certain VLANs.

Patch 18 exploits this parse&accept mechanism to make the Bridge Loop Avoidance
component reject only TT entries connected to the VLAN where it is operating.
Previous to this change, BLA was rejecting all the entries coming from any other
Backbone node, regardless of the VLAN (for more details about how the Bridge
Loop Avoidance works please check [1]).


Please pull or let me know of any problem.

Thanks a lot,
	Antonio


[1] http://www.open-mesh.org/projects/batman-adv/wiki/Bridge-loop-avoidance-II

The following changes since commit b1eda2ac3fa6bf23b27c7c70eda6885124c79ed3:

  em_ipset: use dev_net() accessor (2013-10-18 16:23:06 -0400)

are available in the git repository at:

  git://git.open-mesh.org/linux-merge.git tags/batman-adv-for-davem

for you to fetch changes up to cfd4f75701b6b13b1ec74e6f65ad0d1969c19247:

  batman-adv: make the backbone gw check VLAN specific (2013-10-19 23:25:38 +0200)

----------------------------------------------------------------
Included changed:
- email addresses update in documentation, source files and MAINTAINERS
- make the TT component distinguish non-mesh clients based on the VLAN they
  belong to
- improve all the internal components to properly work on a per-VLAN basis
  (enabled by the new TT-VLAN feature)
- enhance the sysfs interface in order to provide behaviour switches on a
  per-VLAN basis (enabled by the new TT-VLAN feature)
- improve TT lock mechanism
- improve unicast transmission APIs

----------------------------------------------------------------
Antonio Quartulli (15):
      batman-adv: check skb preparation return value
      batman-adv: update email address for Antonio Quartulli
      batman-adv: add the VLAN ID attribute to the TT entry
      batman-adv: use vid when computing local and global TT CRC
      batman-adv: print the VID together with the TT entries
      batman-adv: make the GW module correctly talk to the new VLAN-TT
      batman-adv: make the Distributed ARP Table vlan aware
      batman-adv: add per VLAN interface attribute framework
      batman-adv: add sysfs framework for VLAN
      batman-adv: make the AP isolation attribute VLAN specific
      batman-adv: remove bogus comment
      batman-adv: lock around TT operations to avoid sending inconsistent data
      batman-adv: make the TT CRC logic VLAN specific
      batman-adv: make the TT global purge routine VLAN specific
      batman-adv: make the backbone gw check VLAN specific

Linus Lüssing (1):
      batman-adv: refine API calls for unicast transmissions of SKBs

Marek Lindner (1):
      batman-adv: update email address for Marek Lindner

Simon Wunderlich (1):
      batman-adv: update email address for Simon Wunderlich

 .../ABI/testing/sysfs-class-net-batman-adv         |    4 +-
 Documentation/ABI/testing/sysfs-class-net-mesh     |   23 +-
 Documentation/networking/batman-adv.txt            |    4 +-
 MAINTAINERS                                        |    2 +-
 net/batman-adv/bridge_loop_avoidance.c             |   58 +-
 net/batman-adv/bridge_loop_avoidance.h             |   10 +-
 net/batman-adv/distributed-arp-table.c             |  160 ++-
 net/batman-adv/gateway_client.c                    |   25 +-
 net/batman-adv/hard-interface.c                    |    2 +
 net/batman-adv/main.c                              |   33 +-
 net/batman-adv/main.h                              |   15 +-
 net/batman-adv/originator.c                        |  104 +-
 net/batman-adv/originator.h                        |    7 +
 net/batman-adv/packet.h                            |   32 +-
 net/batman-adv/routing.c                           |   28 +-
 net/batman-adv/send.c                              |   98 +-
 net/batman-adv/send.h                              |   51 +-
 net/batman-adv/soft-interface.c                    |  227 +++-
 net/batman-adv/soft-interface.h                    |    4 +
 net/batman-adv/sysfs.c                             |  178 ++-
 net/batman-adv/sysfs.h                             |   10 +
 net/batman-adv/translation-table.c                 | 1157 +++++++++++++++-----
 net/batman-adv/translation-table.h                 |   23 +-
 net/batman-adv/types.h                             |   83 +-
 24 files changed, 1851 insertions(+), 487 deletions(-)

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* [PATCH 01/18] batman-adv: check skb preparation return value
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli

Fix bogus merge conflict resolution by checking the return
values of the skb preparation routines.

Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 net/batman-adv/send.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index 82588e4..d765d53 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -267,11 +267,14 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 
 	switch (packet_type) {
 	case BATADV_UNICAST:
-		batadv_send_skb_prepare_unicast(skb, orig_node);
+		if (!batadv_send_skb_prepare_unicast(skb, orig_node))
+			goto out;
 		break;
 	case BATADV_UNICAST_4ADDR:
-		batadv_send_skb_prepare_unicast_4addr(bat_priv, skb, orig_node,
-						      packet_subtype);
+		if (!batadv_send_skb_prepare_unicast_4addr(bat_priv, skb,
+							   orig_node,
+							   packet_subtype))
+			goto out;
 		break;
 	default:
 		/* this function supports UNICAST and UNICAST_4ADDR only. It
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 01/18] batman-adv: check skb preparation return value
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli

Fix bogus merge conflict resolution by checking the return
values of the skb preparation routines.

Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 net/batman-adv/send.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index 82588e4..d765d53 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -267,11 +267,14 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 
 	switch (packet_type) {
 	case BATADV_UNICAST:
-		batadv_send_skb_prepare_unicast(skb, orig_node);
+		if (!batadv_send_skb_prepare_unicast(skb, orig_node))
+			goto out;
 		break;
 	case BATADV_UNICAST_4ADDR:
-		batadv_send_skb_prepare_unicast_4addr(bat_priv, skb, orig_node,
-						      packet_subtype);
+		if (!batadv_send_skb_prepare_unicast_4addr(bat_priv, skb,
+							   orig_node,
+							   packet_subtype))
+			goto out;
 		break;
 	default:
 		/* this function supports UNICAST and UNICAST_4ADDR only. It
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 02/18] batman-adv: update email address for Simon Wunderlich
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Simon Wunderlich, Marek Lindner

From: Simon Wunderlich <sw@simonwunderlich.de>

My university will stop email service for alumni in january 2014, please
use my new e-mail address instead.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
---
 Documentation/ABI/testing/sysfs-class-net-mesh | 4 ++--
 Documentation/networking/batman-adv.txt        | 2 +-
 MAINTAINERS                                    | 2 +-
 net/batman-adv/main.h                          | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index f00a69b..96ae0a4 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -16,7 +16,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/bonding
 Date:           June 2010
-Contact:        Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+Contact:        Simon Wunderlich <sw@simonwunderlich.de>
 Description:
                 Indicates whether the data traffic going through the
                 mesh will be sent using multiple interfaces at the
@@ -24,7 +24,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/bridge_loop_avoidance
 Date:           November 2011
-Contact:        Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+Contact:        Simon Wunderlich <sw@simonwunderlich.de>
 Description:
                 Indicates whether the bridge loop avoidance feature
                 is enabled. This feature detects and avoids loops
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 897d1f4..89ace66 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -200,4 +200,4 @@ Mailing-list:   b.a.t.m.a.n@open-mesh.org (optional  subscription
 You can also contact the Authors:
 
 Marek  Lindner  <lindner_marek@yahoo.de>
-Simon  Wunderlich  <siwu@hrz.tu-chemnitz.de>
+Simon  Wunderlich  <sw@simonwunderlich.de>
diff --git a/MAINTAINERS b/MAINTAINERS
index a46bcf81..f169259 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1653,7 +1653,7 @@ F:	include/linux/backlight.h
 
 BATMAN ADVANCED
 M:	Marek Lindner <mareklindner@neomailbox.ch>
-M:	Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+M:	Simon Wunderlich <sw@simonwunderlich.de>
 M:	Antonio Quartulli <antonio@meshcoding.com>
 L:	b.a.t.m.a.n@lists.open-mesh.org
 W:	http://www.open-mesh.org/
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 54c13d5..c754f8e 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -21,7 +21,7 @@
 #define _NET_BATMAN_ADV_MAIN_H_
 
 #define BATADV_DRIVER_AUTHOR "Marek Lindner <lindner_marek@yahoo.de>, " \
-			     "Simon Wunderlich <siwu@hrz.tu-chemnitz.de>"
+			     "Simon Wunderlich <sw@simonwunderlich.de>"
 #define BATADV_DRIVER_DESC   "B.A.T.M.A.N. advanced"
 #define BATADV_DRIVER_DEVICE "batman-adv"
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 02/18] batman-adv: update email address for Simon Wunderlich
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner

From: Simon Wunderlich <sw@simonwunderlich.de>

My university will stop email service for alumni in january 2014, please
use my new e-mail address instead.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
---
 Documentation/ABI/testing/sysfs-class-net-mesh | 4 ++--
 Documentation/networking/batman-adv.txt        | 2 +-
 MAINTAINERS                                    | 2 +-
 net/batman-adv/main.h                          | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index f00a69b..96ae0a4 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -16,7 +16,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/bonding
 Date:           June 2010
-Contact:        Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+Contact:        Simon Wunderlich <sw@simonwunderlich.de>
 Description:
                 Indicates whether the data traffic going through the
                 mesh will be sent using multiple interfaces at the
@@ -24,7 +24,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/bridge_loop_avoidance
 Date:           November 2011
-Contact:        Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+Contact:        Simon Wunderlich <sw@simonwunderlich.de>
 Description:
                 Indicates whether the bridge loop avoidance feature
                 is enabled. This feature detects and avoids loops
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 897d1f4..89ace66 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -200,4 +200,4 @@ Mailing-list:   b.a.t.m.a.n@open-mesh.org (optional  subscription
 You can also contact the Authors:
 
 Marek  Lindner  <lindner_marek@yahoo.de>
-Simon  Wunderlich  <siwu@hrz.tu-chemnitz.de>
+Simon  Wunderlich  <sw@simonwunderlich.de>
diff --git a/MAINTAINERS b/MAINTAINERS
index a46bcf81..f169259 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1653,7 +1653,7 @@ F:	include/linux/backlight.h
 
 BATMAN ADVANCED
 M:	Marek Lindner <mareklindner@neomailbox.ch>
-M:	Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
+M:	Simon Wunderlich <sw@simonwunderlich.de>
 M:	Antonio Quartulli <antonio@meshcoding.com>
 L:	b.a.t.m.a.n@lists.open-mesh.org
 W:	http://www.open-mesh.org/
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 54c13d5..c754f8e 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -21,7 +21,7 @@
 #define _NET_BATMAN_ADV_MAIN_H_
 
 #define BATADV_DRIVER_AUTHOR "Marek Lindner <lindner_marek@yahoo.de>, " \
-			     "Simon Wunderlich <siwu@hrz.tu-chemnitz.de>"
+			     "Simon Wunderlich <sw@simonwunderlich.de>"
 #define BATADV_DRIVER_DESC   "B.A.T.M.A.N. advanced"
 #define BATADV_DRIVER_DEVICE "batman-adv"
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 03/18] batman-adv: update email address for Antonio Quartulli
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
---
 Documentation/ABI/testing/sysfs-class-net-mesh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index 96ae0a4..a86528c 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -8,7 +8,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/ap_isolation
 Date:           May 2011
-Contact:        Antonio Quartulli <ordex@autistici.org>
+Contact:        Antonio Quartulli <antonio@meshcoding.com>
 Description:
                 Indicates whether the data traffic going from a
                 wireless client to another wireless client will be
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 03/18] batman-adv: update email address for Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
---
 Documentation/ABI/testing/sysfs-class-net-mesh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index 96ae0a4..a86528c 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -8,7 +8,7 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/ap_isolation
 Date:           May 2011
-Contact:        Antonio Quartulli <ordex@autistici.org>
+Contact:        Antonio Quartulli <antonio@meshcoding.com>
 Description:
                 Indicates whether the data traffic going from a
                 wireless client to another wireless client will be
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 04/18] batman-adv: update email address for Marek Lindner
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Marek Lindner <mareklindner@neomailbox.ch>

Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 Documentation/ABI/testing/sysfs-class-net-batman-adv |  4 ++--
 Documentation/ABI/testing/sysfs-class-net-mesh       | 12 ++++++------
 Documentation/networking/batman-adv.txt              |  2 +-
 net/batman-adv/main.h                                |  2 +-
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-batman-adv b/Documentation/ABI/testing/sysfs-class-net-batman-adv
index bdc0070..7f34a95 100644
--- a/Documentation/ABI/testing/sysfs-class-net-batman-adv
+++ b/Documentation/ABI/testing/sysfs-class-net-batman-adv
@@ -1,13 +1,13 @@
 
 What:           /sys/class/net/<iface>/batman-adv/iface_status
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Indicates the status of <iface> as it is seen by batman.
 
 What:           /sys/class/net/<iface>/batman-adv/mesh_iface
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 The /sys/class/net/<iface>/batman-adv/mesh_iface file
                 displays the batman mesh interface this <iface>
diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index a86528c..dfdea2b 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -1,7 +1,7 @@
 
 What:           /sys/class/net/<mesh_iface>/mesh/aggregated_ogms
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Indicates whether the batman protocol messages of the
                 mesh <mesh_iface> shall be aggregated or not.
@@ -41,21 +41,21 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_bandwidth
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the bandwidth which is propagated by this
                 node if gw_mode was set to 'server'.
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_mode
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the state of the gateway features. Can be
                 either 'off', 'client' or 'server'.
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_sel_class
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the selection criteria this node will use
                 to choose a gateway if gw_mode was set to 'client'.
@@ -77,14 +77,14 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/orig_interval
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the interval in milliseconds in which batman
                 sends its protocol messages.
 
 What:           /sys/class/net/<mesh_iface>/mesh/routing_algo
 Date:           Dec 2011
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the routing procotol this mesh instance
                 uses to find the optimal paths through the mesh.
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 89ace66..89490beb 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -199,5 +199,5 @@ Mailing-list:   b.a.t.m.a.n@open-mesh.org (optional  subscription
 
 You can also contact the Authors:
 
-Marek  Lindner  <lindner_marek@yahoo.de>
+Marek  Lindner  <mareklindner@neomailbox.ch>
 Simon  Wunderlich  <sw@simonwunderlich.de>
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index c754f8e..ff55dcc 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -20,7 +20,7 @@
 #ifndef _NET_BATMAN_ADV_MAIN_H_
 #define _NET_BATMAN_ADV_MAIN_H_
 
-#define BATADV_DRIVER_AUTHOR "Marek Lindner <lindner_marek@yahoo.de>, " \
+#define BATADV_DRIVER_AUTHOR "Marek Lindner <mareklindner@neomailbox.ch>, " \
 			     "Simon Wunderlich <sw@simonwunderlich.de>"
 #define BATADV_DRIVER_DESC   "B.A.T.M.A.N. advanced"
 #define BATADV_DRIVER_DEVICE "batman-adv"
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 04/18] batman-adv: update email address for Marek Lindner
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Marek Lindner <mareklindner@neomailbox.ch>

Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 Documentation/ABI/testing/sysfs-class-net-batman-adv |  4 ++--
 Documentation/ABI/testing/sysfs-class-net-mesh       | 12 ++++++------
 Documentation/networking/batman-adv.txt              |  2 +-
 net/batman-adv/main.h                                |  2 +-
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-batman-adv b/Documentation/ABI/testing/sysfs-class-net-batman-adv
index bdc0070..7f34a95 100644
--- a/Documentation/ABI/testing/sysfs-class-net-batman-adv
+++ b/Documentation/ABI/testing/sysfs-class-net-batman-adv
@@ -1,13 +1,13 @@
 
 What:           /sys/class/net/<iface>/batman-adv/iface_status
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Indicates the status of <iface> as it is seen by batman.
 
 What:           /sys/class/net/<iface>/batman-adv/mesh_iface
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 The /sys/class/net/<iface>/batman-adv/mesh_iface file
                 displays the batman mesh interface this <iface>
diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index a86528c..dfdea2b 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -1,7 +1,7 @@
 
 What:           /sys/class/net/<mesh_iface>/mesh/aggregated_ogms
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Indicates whether the batman protocol messages of the
                 mesh <mesh_iface> shall be aggregated or not.
@@ -41,21 +41,21 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_bandwidth
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the bandwidth which is propagated by this
                 node if gw_mode was set to 'server'.
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_mode
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the state of the gateway features. Can be
                 either 'off', 'client' or 'server'.
 
 What:           /sys/class/net/<mesh_iface>/mesh/gw_sel_class
 Date:           October 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the selection criteria this node will use
                 to choose a gateway if gw_mode was set to 'client'.
@@ -77,14 +77,14 @@ Description:
 
 What:           /sys/class/net/<mesh_iface>/mesh/orig_interval
 Date:           May 2010
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the interval in milliseconds in which batman
                 sends its protocol messages.
 
 What:           /sys/class/net/<mesh_iface>/mesh/routing_algo
 Date:           Dec 2011
-Contact:        Marek Lindner <lindner_marek@yahoo.de>
+Contact:        Marek Lindner <mareklindner@neomailbox.ch>
 Description:
                 Defines the routing procotol this mesh instance
                 uses to find the optimal paths through the mesh.
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 89ace66..89490beb 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -199,5 +199,5 @@ Mailing-list:   b.a.t.m.a.n@open-mesh.org (optional  subscription
 
 You can also contact the Authors:
 
-Marek  Lindner  <lindner_marek@yahoo.de>
+Marek  Lindner  <mareklindner@neomailbox.ch>
 Simon  Wunderlich  <sw@simonwunderlich.de>
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index c754f8e..ff55dcc 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -20,7 +20,7 @@
 #ifndef _NET_BATMAN_ADV_MAIN_H_
 #define _NET_BATMAN_ADV_MAIN_H_
 
-#define BATADV_DRIVER_AUTHOR "Marek Lindner <lindner_marek@yahoo.de>, " \
+#define BATADV_DRIVER_AUTHOR "Marek Lindner <mareklindner@neomailbox.ch>, " \
 			     "Simon Wunderlich <sw@simonwunderlich.de>"
 #define BATADV_DRIVER_DESC   "B.A.T.M.A.N. advanced"
 #define BATADV_DRIVER_DEVICE "batman-adv"
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 05/18] batman-adv: add the VLAN ID attribute to the TT entry
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

To make the translation table code VLAN-aware, each entry
must carry the VLAN ID which it belongs to. This patch adds
such attribute to the related TT structures.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c |  37 ++---
 net/batman-adv/distributed-arp-table.c |  11 +-
 net/batman-adv/gateway_client.c        |   3 +-
 net/batman-adv/main.c                  |  29 +++-
 net/batman-adv/main.h                  |   9 +-
 net/batman-adv/packet.h                |  14 +-
 net/batman-adv/routing.c               |  28 ++--
 net/batman-adv/send.c                  |   8 +-
 net/batman-adv/send.h                  |  16 ++-
 net/batman-adv/soft-interface.c        |  35 ++---
 net/batman-adv/translation-table.c     | 240 ++++++++++++++++++++++++++-------
 net/batman-adv/translation-table.h     |  19 +--
 net/batman-adv/types.h                 |   2 +
 13 files changed, 314 insertions(+), 137 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 5bb58d7..e8a6458 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -858,27 +858,25 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv,
 				    struct batadv_hard_iface *primary_if,
 				    struct sk_buff *skb)
 {
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
-	struct arphdr *arphdr;
-	uint8_t *hw_src, *hw_dst;
 	struct batadv_bla_claim_dst *bla_dst;
+	uint8_t *hw_src, *hw_dst;
+	struct vlan_ethhdr *vhdr;
+	struct ethhdr *ethhdr;
+	struct arphdr *arphdr;
+	unsigned short vid;
 	__be16 proto;
 	int headlen;
-	unsigned short vid = BATADV_NO_FLAGS;
 	int ret;
 
+	vid = batadv_get_vid(skb, 0);
 	ethhdr = eth_hdr(skb);
 
-	if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
+	proto = ethhdr->h_proto;
+	headlen = ETH_HLEN;
+	if (vid & BATADV_VLAN_HAS_TAG) {
 		vhdr = (struct vlan_ethhdr *)ethhdr;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 		proto = vhdr->h_vlan_encapsulated_proto;
-		headlen = sizeof(*vhdr);
-	} else {
-		proto = ethhdr->h_proto;
-		headlen = ETH_HLEN;
+		headlen += VLAN_HLEN;
 	}
 
 	if (proto != htons(ETH_P_ARP))
@@ -1365,10 +1363,8 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
 int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 			      struct batadv_orig_node *orig_node, int hdr_size)
 {
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
 	struct batadv_bla_backbone_gw *backbone_gw;
-	unsigned short vid = BATADV_NO_FLAGS;
+	unsigned short vid;
 
 	if (!atomic_read(&orig_node->bat_priv->bridge_loop_avoidance))
 		return 0;
@@ -1377,16 +1373,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 	if (!pskb_may_pull(skb, hdr_size + ETH_HLEN))
 		return 0;
 
-	ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
-
-	if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
-		if (!pskb_may_pull(skb, hdr_size + VLAN_ETH_HLEN))
-			return 0;
-
-		vhdr = (struct vlan_ethhdr *)(skb->data + hdr_size);
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
-	}
+	vid = batadv_get_vid(skb, hdr_size);
 
 	/* see if this originator is a backbone gw for this VLAN */
 	backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv,
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 99da412..1b590f0 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -905,7 +905,8 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 		 * additional DAT answer may trigger kernel warnings about
 		 * a packet coming from the wrong port.
 		 */
-		if (batadv_is_my_client(bat_priv, dat_entry->mac_addr)) {
+		if (batadv_is_my_client(bat_priv, dat_entry->mac_addr,
+					BATADV_NO_FLAGS)) {
 			ret = true;
 			goto out;
 		}
@@ -990,9 +991,11 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	 */
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
 		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
-						    BATADV_P_DAT_CACHE_REPLY);
+						    BATADV_P_DAT_CACHE_REPLY,
+						    BATADV_NO_FLAGS);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new);
+		err = batadv_send_skb_unicast(bat_priv, skb_new,
+					      BATADV_NO_FLAGS);
 
 	if (!err) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
@@ -1080,7 +1083,7 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	/* if this REPLY is directed to a client of mine, let's deliver the
 	 * packet to the interface
 	 */
-	ret = !batadv_is_my_client(bat_priv, hw_dst);
+	ret = !batadv_is_my_client(bat_priv, hw_dst, BATADV_NO_FLAGS);
 out:
 	if (ret)
 		kfree_skb(skb);
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 053bb31..a920946 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -744,7 +744,8 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 
 	ethhdr = (struct ethhdr *)skb->data;
 	orig_dst_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						 ethhdr->h_dest);
+						 ethhdr->h_dest,
+						 BATADV_NO_FLAGS);
 	if (!orig_dst_node)
 		goto out;
 
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 7f3a5c4..80f60d1 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -132,7 +132,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 		goto err;
 
 	batadv_tt_local_add(soft_iface, soft_iface->dev_addr,
-			    BATADV_NULL_IFINDEX);
+			    BATADV_NO_FLAGS, BATADV_NULL_IFINDEX);
 
 	ret = batadv_bla_init(bat_priv);
 	if (ret < 0)
@@ -1144,6 +1144,33 @@ out:
 		batadv_orig_node_free_ref(orig_node);
 }
 
+/**
+ * batadv_get_vid - extract the VLAN identifier from skb if any
+ * @skb: the buffer containing the packet
+ * @header_len: length of the batman header preceding the ethernet header
+ *
+ * If the packet embedded in the skb is vlan tagged this function returns the
+ * VID with the BATADV_VLAN_HAS_TAG flag. Otherwise BATADV_NO_FLAGS is returned.
+ */
+unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len)
+{
+	struct ethhdr *ethhdr = (struct ethhdr *)(skb->data + header_len);
+	struct vlan_ethhdr *vhdr;
+	unsigned short vid;
+
+	if (ethhdr->h_proto != htons(ETH_P_8021Q))
+		return BATADV_NO_FLAGS;
+
+	if (!pskb_may_pull(skb, header_len + VLAN_ETH_HLEN))
+		return BATADV_NO_FLAGS;
+
+	vhdr = (struct vlan_ethhdr *)(skb->data + header_len);
+	vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
+	vid |= BATADV_VLAN_HAS_TAG;
+
+	return vid;
+}
+
 static int batadv_param_set_ra(const char *val, const struct kernel_param *kp)
 {
 	struct batadv_algo_ops *bat_algo_ops;
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index ff55dcc..2774d7f 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -169,14 +169,6 @@ enum batadv_uev_type {
 #include <linux/seq_file.h>
 #include "types.h"
 
-/**
- * batadv_vlan_flags - flags for the four MSB of any vlan ID field
- * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
- */
-enum batadv_vlan_flags {
-	BATADV_VLAN_HAS_TAG	= BIT(15),
-};
-
 #define BATADV_PRINT_VID(vid) (vid & BATADV_VLAN_HAS_TAG ? \
 			       (int)(vid & VLAN_VID_MASK) : -1)
 
@@ -368,5 +360,6 @@ int batadv_tvlv_containers_process(struct batadv_priv *bat_priv,
 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, uint8_t *src,
 			      uint8_t *dst, uint8_t type, uint8_t version,
 			      void *tvlv_value, uint16_t tvlv_value_len);
+unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len);
 
 #endif /* _NET_BATMAN_ADV_MAIN_H_ */
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index 65e723e..6311642 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -122,6 +122,14 @@ enum batadv_tt_client_flags {
 	BATADV_TT_CLIENT_TEMP	 = BIT(11),
 };
 
+/**
+ * batadv_vlan_flags - flags for the four MSB of any vlan ID field
+ * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
+ */
+enum batadv_vlan_flags {
+	BATADV_VLAN_HAS_TAG	= BIT(15),
+};
+
 /* claim frame types for the bridge loop avoidance */
 enum batadv_bla_claimframe {
 	BATADV_CLAIM_TYPE_CLAIM		= 0x00,
@@ -399,21 +407,23 @@ struct batadv_tvlv_tt_data {
  *  batadv_tt_client_flags)
  * @reserved: reserved field
  * @addr: mac address of non-mesh client that triggered this tt change
+ * @vid: VLAN identifier
  */
 struct batadv_tvlv_tt_change {
 	uint8_t flags;
 	uint8_t reserved;
 	uint8_t addr[ETH_ALEN];
+	__be16 vid;
 };
 
 /**
  * struct batadv_tvlv_roam_adv - roaming advertisement
  * @client: mac address of roaming client
- * @reserved: field reserved for future use
+ * @vid: VLAN identifier
  */
 struct batadv_tvlv_roam_adv {
 	uint8_t  client[ETH_ALEN];
-	uint16_t reserved;
+	__be16 vid;
 };
 
 #endif /* _NET_BATMAN_ADV_PACKET_H_ */
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 3281a50..149ef57 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -30,6 +30,8 @@
 #include "network-coding.h"
 #include "fragmentation.h"
 
+#include <linux/if_vlan.h>
+
 static int batadv_route_unicast_packet(struct sk_buff *skb,
 				       struct batadv_hard_iface *recv_if);
 
@@ -724,6 +726,7 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @unicast_packet: the unicast header to be updated
  * @dst_addr: the payload destination
+ * @vid: VLAN identifier
  *
  * Search the translation table for dst_addr and update the unicast header with
  * the new corresponding information (originator address where the destination
@@ -734,21 +737,22 @@ out:
 static bool
 batadv_reroute_unicast_packet(struct batadv_priv *bat_priv,
 			      struct batadv_unicast_packet *unicast_packet,
-			      uint8_t *dst_addr)
+			      uint8_t *dst_addr, unsigned short vid)
 {
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_hard_iface *primary_if = NULL;
 	bool ret = false;
 	uint8_t *orig_addr, orig_ttvn;
 
-	if (batadv_is_my_client(bat_priv, dst_addr)) {
+	if (batadv_is_my_client(bat_priv, dst_addr, vid)) {
 		primary_if = batadv_primary_if_get_selected(bat_priv);
 		if (!primary_if)
 			goto out;
 		orig_addr = primary_if->net_dev->dev_addr;
 		orig_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 	} else {
-		orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr);
+		orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr,
+						     vid);
 		if (!orig_node)
 			goto out;
 
@@ -775,11 +779,12 @@ out:
 
 static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 				     struct sk_buff *skb, int hdr_len) {
-	uint8_t curr_ttvn, old_ttvn;
-	struct batadv_orig_node *orig_node;
-	struct ethhdr *ethhdr;
+	struct batadv_unicast_packet *unicast_packet;
 	struct batadv_hard_iface *primary_if;
-	struct batadv_unicast_packet *unicast_packet;
+	struct batadv_orig_node *orig_node;
+	uint8_t curr_ttvn, old_ttvn;
+	struct ethhdr *ethhdr;
+	unsigned short vid;
 	int is_old_ttvn;
 
 	/* check if there is enough data before accessing it */
@@ -791,6 +796,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 		return 0;
 
 	unicast_packet = (struct batadv_unicast_packet *)skb->data;
+	vid = batadv_get_vid(skb, hdr_len);
 	ethhdr = (struct ethhdr *)(skb->data + hdr_len);
 
 	/* check if the destination client was served by this node and it is now
@@ -798,9 +804,9 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * message and that it knows the new destination in the mesh to re-route
 	 * the packet to
 	 */
-	if (batadv_tt_local_client_is_roaming(bat_priv, ethhdr->h_dest)) {
+	if (batadv_tt_local_client_is_roaming(bat_priv, ethhdr->h_dest, vid)) {
 		if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
-						  ethhdr->h_dest))
+						  ethhdr->h_dest, vid))
 			net_ratelimited_function(batadv_dbg, BATADV_DBG_TT,
 						 bat_priv,
 						 "Rerouting unicast packet to %pM (dst=%pM): Local Roaming\n",
@@ -846,7 +852,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * target host
 	 */
 	if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
-					  ethhdr->h_dest)) {
+					  ethhdr->h_dest, vid)) {
 		net_ratelimited_function(batadv_dbg, BATADV_DBG_TT, bat_priv,
 					 "Rerouting unicast packet to %pM (dst=%pM): TTVN mismatch old_ttvn=%u new_ttvn=%u\n",
 					 unicast_packet->dest, ethhdr->h_dest,
@@ -858,7 +864,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * currently served by this node or there is no destination at all and
 	 * it is possible to drop the packet
 	 */
-	if (!batadv_is_my_client(bat_priv, ethhdr->h_dest))
+	if (!batadv_is_my_client(bat_priv, ethhdr->h_dest, vid))
 		return 0;
 
 	/* update the header in order to let the packet be delivered to this
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index d765d53..acaa7ff 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -240,12 +240,14 @@ out:
  * @packet_type: the batman unicast packet type to use
  * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
  *  4addr packets)
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype)
+				    int packet_subtype,
+				    unsigned short vid)
 {
 	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
 	struct batadv_unicast_packet *unicast_packet;
@@ -260,7 +262,7 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 		 * returns NULL in case of AP isolation
 		 */
 		orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						     ethhdr->h_dest);
+						     ethhdr->h_dest, vid);
 
 	if (!orig_node)
 		goto out;
@@ -290,7 +292,7 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 	 * try to reroute it because the ttvn contained in the header is less
 	 * than the current one
 	 */
-	if (batadv_tt_global_client_is_roaming(bat_priv, ethhdr->h_dest))
+	if (batadv_tt_global_client_is_roaming(bat_priv, ethhdr->h_dest, vid))
 		unicast_packet->ttvn = unicast_packet->ttvn - 1;
 
 	if (batadv_send_skb_to_orig(skb, orig_node, NULL) != NET_XMIT_DROP)
diff --git a/net/batman-adv/send.h b/net/batman-adv/send.h
index ad63184..c030cb7 100644
--- a/net/batman-adv/send.h
+++ b/net/batman-adv/send.h
@@ -40,21 +40,23 @@ bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
 					   int packet_subtype);
 int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype);
-
+				    int packet_subtype,
+				    unsigned short vid);
 
 /**
  * batadv_send_unicast_skb - send the skb encapsulated in a unicast packet
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
-					  struct sk_buff *skb)
+					  struct sk_buff *skb,
+					  unsigned short vid)
 {
 	return batadv_send_skb_generic_unicast(bat_priv, skb, BATADV_UNICAST,
-					       0);
+					       0, vid);
 }
 
 /**
@@ -63,16 +65,18 @@ static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @packet_subtype: the unicast 4addr packet subtype to use
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 static inline int batadv_send_skb_unicast_4addr(struct batadv_priv *bat_priv,
 						struct sk_buff *skb,
-						int packet_subtype)
+						int packet_subtype,
+						unsigned short vid)
 {
 	return batadv_send_skb_generic_unicast(bat_priv, skb,
 					       BATADV_UNICAST_4ADDR,
-					       packet_subtype);
+					       packet_subtype, vid);
 }
 
 #endif /* _NET_BATMAN_ADV_SEND_H_ */
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index e8a2bd6..279e91d 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -118,9 +118,10 @@ static int batadv_interface_set_mac_addr(struct net_device *dev, void *p)
 
 	/* only modify transtable if it has been initialized before */
 	if (atomic_read(&bat_priv->mesh_state) == BATADV_MESH_ACTIVE) {
-		batadv_tt_local_remove(bat_priv, old_addr,
+		batadv_tt_local_remove(bat_priv, old_addr, BATADV_NO_FLAGS,
 				       "mac address changed", false);
-		batadv_tt_local_add(dev, addr->sa_data, BATADV_NULL_IFINDEX);
+		batadv_tt_local_add(dev, addr->sa_data, BATADV_NO_FLAGS,
+				    BATADV_NULL_IFINDEX);
 	}
 
 	return 0;
@@ -152,33 +153,33 @@ static void batadv_interface_set_rx_mode(struct net_device *dev)
 static int batadv_interface_tx(struct sk_buff *skb,
 			       struct net_device *soft_iface)
 {
-	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
+	struct ethhdr *ethhdr;
 	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	struct batadv_hard_iface *primary_if = NULL;
 	struct batadv_bcast_packet *bcast_packet;
-	struct vlan_ethhdr *vhdr;
 	__be16 ethertype = htons(ETH_P_BATMAN);
 	static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
 						   0x00, 0x00};
 	static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
 						    0x00, 0x00};
+	struct vlan_ethhdr *vhdr;
 	unsigned int header_len = 0;
 	int data_len = skb->len, ret;
-	unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
+	unsigned long brd_delay = 1;
 	bool do_bcast = false;
+	unsigned short vid;
 	uint32_t seqno;
-	unsigned long brd_delay = 1;
 
 	if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
 		goto dropped;
 
 	soft_iface->trans_start = jiffies;
+	vid = batadv_get_vid(skb, 0);
+	ethhdr = (struct ethhdr *)skb->data;
 
 	switch (ntohs(ethhdr->h_proto)) {
 	case ETH_P_8021Q:
 		vhdr = (struct vlan_ethhdr *)skb->data;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 
 		if (vhdr->h_vlan_encapsulated_proto != ethertype)
 			break;
@@ -196,7 +197,8 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 	/* Register the client MAC in the transtable */
 	if (!is_multicast_ether_addr(ethhdr->h_source))
-		batadv_tt_local_add(soft_iface, ethhdr->h_source, skb->skb_iif);
+		batadv_tt_local_add(soft_iface, ethhdr->h_source, vid,
+				    skb->skb_iif);
 
 	/* don't accept stp packets. STP does not help in meshes.
 	 * better use the bridge loop avoidance ...
@@ -296,7 +298,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 		batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
 
-		ret = batadv_send_skb_unicast(bat_priv, skb);
+		ret = batadv_send_skb_unicast(bat_priv, skb, vid);
 		if (ret != 0)
 			goto dropped_freed;
 	}
@@ -319,12 +321,12 @@ void batadv_interface_rx(struct net_device *soft_iface,
 			 struct sk_buff *skb, struct batadv_hard_iface *recv_if,
 			 int hdr_size, struct batadv_orig_node *orig_node)
 {
-	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
 	struct batadv_header *batadv_header = (struct batadv_header *)skb->data;
-	unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
+	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	__be16 ethertype = htons(ETH_P_BATMAN);
+	struct vlan_ethhdr *vhdr;
+	struct ethhdr *ethhdr;
+	unsigned short vid;
 	bool is_bcast;
 
 	is_bcast = (batadv_header->packet_type == BATADV_BCAST);
@@ -336,13 +338,12 @@ void batadv_interface_rx(struct net_device *soft_iface,
 	skb_pull_rcsum(skb, hdr_size);
 	skb_reset_mac_header(skb);
 
+	vid = batadv_get_vid(skb, hdr_size);
 	ethhdr = eth_hdr(skb);
 
 	switch (ntohs(ethhdr->h_proto)) {
 	case ETH_P_8021Q:
 		vhdr = (struct vlan_ethhdr *)skb->data;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 
 		if (vhdr->h_vlan_encapsulated_proto != ethertype)
 			break;
@@ -378,7 +379,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
 
 	if (orig_node)
 		batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
-						     ethhdr->h_source);
+						     ethhdr->h_source, vid);
 
 	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
 		goto dropped;
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index b521afb..63adb97 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -34,6 +34,7 @@ static struct lock_class_key batadv_tt_local_hash_lock_class_key;
 static struct lock_class_key batadv_tt_global_hash_lock_class_key;
 
 static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
+				 unsigned short vid,
 				 struct batadv_orig_node *orig_node);
 static void batadv_tt_purge(struct work_struct *work);
 static void
@@ -41,7 +42,8 @@ batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry);
 static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
 				 const unsigned char *addr,
-				 const char *message, bool roaming);
+				 unsigned short vid, const char *message,
+				 bool roaming);
 
 /* returns 1 if they are the same mac addr */
 static int batadv_compare_tt(const struct hlist_node *node, const void *data2)
@@ -52,43 +54,93 @@ static int batadv_compare_tt(const struct hlist_node *node, const void *data2)
 	return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
 }
 
+/**
+ * batadv_choose_tt - return the index of the tt entry in the hash table
+ * @data: pointer to the tt_common_entry object to map
+ * @size: the size of the hash table
+ *
+ * Returns the hash index where the object represented by 'data' should be
+ * stored at.
+ */
+static inline uint32_t batadv_choose_tt(const void *data, uint32_t size)
+{
+	struct batadv_tt_common_entry *tt;
+	uint32_t hash = 0;
+
+	tt = (struct batadv_tt_common_entry *)data;
+	hash = batadv_hash_bytes(hash, &tt->addr, ETH_ALEN);
+	hash = batadv_hash_bytes(hash, &tt->vid, sizeof(tt->vid));
+
+	hash += (hash << 3);
+	hash ^= (hash >> 11);
+	hash += (hash << 15);
+
+	return hash % size;
+}
+
+/**
+ * batadv_tt_hash_find - look for a client in the given hash table
+ * @hash: the hash table to search
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the tt_common struct belonging to the searched client if
+ * found, NULL otherwise.
+ */
 static struct batadv_tt_common_entry *
-batadv_tt_hash_find(struct batadv_hashtable *hash, const void *data)
+batadv_tt_hash_find(struct batadv_hashtable *hash, const uint8_t *addr,
+		    unsigned short vid)
 {
 	struct hlist_head *head;
-	struct batadv_tt_common_entry *tt_common_entry;
-	struct batadv_tt_common_entry *tt_common_entry_tmp = NULL;
+	struct batadv_tt_common_entry to_search, *tt, *tt_tmp = NULL;
 	uint32_t index;
 
 	if (!hash)
 		return NULL;
 
-	index = batadv_choose_orig(data, hash->size);
+	memcpy(to_search.addr, addr, ETH_ALEN);
+	to_search.vid = vid;
+
+	index = batadv_choose_tt(&to_search, hash->size);
 	head = &hash->table[index];
 
 	rcu_read_lock();
-	hlist_for_each_entry_rcu(tt_common_entry, head, hash_entry) {
-		if (!batadv_compare_eth(tt_common_entry, data))
+	hlist_for_each_entry_rcu(tt, head, hash_entry) {
+		if (!batadv_compare_eth(tt, addr))
 			continue;
 
-		if (!atomic_inc_not_zero(&tt_common_entry->refcount))
+		if (tt->vid != vid)
 			continue;
 
-		tt_common_entry_tmp = tt_common_entry;
+		if (!atomic_inc_not_zero(&tt->refcount))
+			continue;
+
+		tt_tmp = tt;
 		break;
 	}
 	rcu_read_unlock();
 
-	return tt_common_entry_tmp;
+	return tt_tmp;
 }
 
+/**
+ * batadv_tt_local_hash_find - search the local table for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the corresponding tt_local_entry struct if the client is
+ * found, NULL otherwise.
+ */
 static struct batadv_tt_local_entry *
-batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const void *data)
+batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const uint8_t *addr,
+			  unsigned short vid)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 
-	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.local_hash, data);
+	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.local_hash, addr,
+					      vid);
 	if (tt_common_entry)
 		tt_local_entry = container_of(tt_common_entry,
 					      struct batadv_tt_local_entry,
@@ -96,13 +148,24 @@ batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const void *data)
 	return tt_local_entry;
 }
 
+/**
+ * batadv_tt_global_hash_find - search the global table for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the corresponding tt_global_entry struct if the client
+ * is found, NULL otherwise.
+ */
 static struct batadv_tt_global_entry *
-batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const void *data)
+batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const uint8_t *addr,
+			   unsigned short vid)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
 
-	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.global_hash, data);
+	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.global_hash, addr,
+					      vid);
 	if (tt_common_entry)
 		tt_global_entry = container_of(tt_common_entry,
 					       struct batadv_tt_global_entry,
@@ -178,6 +241,7 @@ static void batadv_tt_local_event(struct batadv_priv *bat_priv,
 	tt_change_node->change.flags = flags;
 	tt_change_node->change.reserved = 0;
 	memcpy(tt_change_node->change.addr, common->addr, ETH_ALEN);
+	tt_change_node->change.vid = htons(common->vid);
 
 	del_op_requested = flags & BATADV_TT_CLIENT_DEL;
 
@@ -268,12 +332,21 @@ static void batadv_tt_global_free(struct batadv_priv *bat_priv,
 		   tt_global->common.addr, message);
 
 	batadv_hash_remove(bat_priv->tt.global_hash, batadv_compare_tt,
-			   batadv_choose_orig, tt_global->common.addr);
+			   batadv_choose_tt, &tt_global->common);
 	batadv_tt_global_entry_free_ref(tt_global);
 }
 
+/**
+ * batadv_tt_local_add - add a new client to the local table or update an
+ *  existing client
+ * @soft_iface: netdev struct of the mesh interface
+ * @addr: the mac address of the client to add
+ * @vid: VLAN identifier
+ * @ifindex: index of the interface where the client is connected to (useful to
+ *  identify wireless clients)
+ */
 void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
-			 int ifindex)
+			 unsigned short vid, int ifindex)
 {
 	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	struct batadv_tt_local_entry *tt_local;
@@ -283,8 +356,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 	int hash_added;
 	bool roamed_back = false;
 
-	tt_local = batadv_tt_local_hash_find(bat_priv, addr);
-	tt_global = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_local = batadv_tt_local_hash_find(bat_priv, addr, vid);
+	tt_global = batadv_tt_global_hash_find(bat_priv, addr, vid);
 
 	if (tt_local) {
 		tt_local->last_seen = jiffies;
@@ -329,6 +402,7 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 	 * (consistency check)
 	 */
 	tt_local->common.flags = BATADV_TT_CLIENT_NEW;
+	tt_local->common.vid = vid;
 	if (batadv_is_wifi_iface(ifindex))
 		tt_local->common.flags |= BATADV_TT_CLIENT_WIFI;
 	atomic_set(&tt_local->common.refcount, 2);
@@ -340,7 +414,7 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		tt_local->common.flags |= BATADV_TT_CLIENT_NOPURGE;
 
 	hash_added = batadv_hash_add(bat_priv->tt.local_hash, batadv_compare_tt,
-				     batadv_choose_orig, &tt_local->common,
+				     batadv_choose_tt, &tt_local->common,
 				     &tt_local->common.hash_entry);
 
 	if (unlikely(hash_added != 0)) {
@@ -362,6 +436,7 @@ check_roaming:
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(orig_entry, head, list) {
 			batadv_send_roam_adv(bat_priv, tt_global->common.addr,
+					     tt_global->common.vid,
 					     orig_entry->orig_node);
 		}
 		rcu_read_unlock();
@@ -550,19 +625,20 @@ batadv_tt_local_set_pending(struct batadv_priv *bat_priv,
  * batadv_tt_local_remove - logically remove an entry from the local table
  * @bat_priv: the bat priv with all the soft interface information
  * @addr: the MAC address of the client to remove
+ * @vid: VLAN identifier
  * @message: message to append to the log on deletion
  * @roaming: true if the deletion is due to a roaming event
  *
  * Returns the flags assigned to the local entry before being deleted
  */
 uint16_t batadv_tt_local_remove(struct batadv_priv *bat_priv,
-				const uint8_t *addr, const char *message,
-				bool roaming)
+				const uint8_t *addr, unsigned short vid,
+				const char *message, bool roaming)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	uint16_t flags, curr_flags = BATADV_NO_FLAGS;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 
@@ -798,6 +874,7 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @orig_node: the originator announcing the client
  * @tt_addr: the mac address of the non-mesh client
+ * @vid: VLAN identifier
  * @flags: TT flags that have to be set for this non-mesh client
  * @ttvn: the tt version number ever announcing this non-mesh client
  *
@@ -813,7 +890,8 @@ out:
  */
 static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
-				 const unsigned char *tt_addr, uint16_t flags,
+				 const unsigned char *tt_addr,
+				 unsigned short vid, uint16_t flags,
 				 uint8_t ttvn)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
@@ -823,8 +901,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *common;
 	uint16_t local_flags;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr);
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr, vid);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr, vid);
 
 	/* if the node already has a local client for this entry, it has to wait
 	 * for a roaming advertisement instead of manually messing up the global
@@ -841,6 +919,7 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 
 		common = &tt_global_entry->common;
 		memcpy(common->addr, tt_addr, ETH_ALEN);
+		common->vid = vid;
 
 		common->flags = flags;
 		tt_global_entry->roam_at = 0;
@@ -858,7 +937,7 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 
 		hash_added = batadv_hash_add(bat_priv->tt.global_hash,
 					     batadv_compare_tt,
-					     batadv_choose_orig, common,
+					     batadv_choose_tt, common,
 					     &common->hash_entry);
 
 		if (unlikely(hash_added != 0)) {
@@ -924,7 +1003,7 @@ add_orig_entry:
 out_remove:
 
 	/* remove address from local hash if present */
-	local_flags = batadv_tt_local_remove(bat_priv, tt_addr,
+	local_flags = batadv_tt_local_remove(bat_priv, tt_addr, vid,
 					     "global tt received",
 					     flags & BATADV_TT_CLIENT_ROAM);
 	tt_global_entry->common.flags |= local_flags & BATADV_TT_CLIENT_WIFI;
@@ -1147,17 +1226,25 @@ batadv_tt_global_del_roaming(struct batadv_priv *bat_priv,
 						orig_node, message);
 }
 
-
-
+/**
+ * batadv_tt_global_del - remove a client from the global table
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: an originator serving this client
+ * @addr: the mac address of the client
+ * @vid: VLAN identifier
+ * @message: a message explaining the reason for deleting the client to print
+ *  for debugging purpose
+ * @roaming: true if the deletion has been triggered by a roaming event
+ */
 static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
-				 const unsigned char *addr,
+				 const unsigned char *addr, unsigned short vid,
 				 const char *message, bool roaming)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
 	struct batadv_tt_local_entry *local_entry = NULL;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -1186,7 +1273,8 @@ static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 	 *    the global entry, since it is useless now.
 	 */
 	local_entry = batadv_tt_local_hash_find(bat_priv,
-						tt_global_entry->common.addr);
+						tt_global_entry->common.addr,
+						vid);
 	if (local_entry) {
 		/* local entry exists, case 2: client roamed to us. */
 		batadv_tt_global_del_orig_list(tt_global_entry);
@@ -1354,9 +1442,24 @@ _batadv_is_ap_isolated(struct batadv_tt_local_entry *tt_local_entry,
 	return ret;
 }
 
+/**
+ * batadv_transtable_search - get the mesh destination for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @src: mac address of the source client
+ * @addr: mac address of the destination client
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the originator that was selected as destination in the
+ * mesh for contacting the client 'addr', NULL otherwise.
+ * In case of multiple originators serving the same client, the function returns
+ * the best one (best in terms of metric towards the destination node).
+ *
+ * If the two clients are AP isolated the function returns NULL.
+ */
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
-						  const uint8_t *addr)
+						  const uint8_t *addr,
+						  unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
@@ -1364,13 +1467,13 @@ struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 	struct batadv_tt_orig_list_entry *best_entry;
 
 	if (src && atomic_read(&bat_priv->ap_isolation)) {
-		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src);
+		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src, vid);
 		if (!tt_local_entry ||
 		    (tt_local_entry->common.flags & BATADV_TT_CLIENT_PENDING))
 			goto out;
 	}
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -1649,6 +1752,7 @@ batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
 			memcpy(tt_change->addr, tt_common_entry->addr,
 			       ETH_ALEN);
 			tt_change->flags = tt_common_entry->flags;
+			tt_change->vid = htons(tt_common_entry->vid);
 			tt_change->reserved = 0;
 
 			tt_num_entries++;
@@ -1979,11 +2083,13 @@ static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
 			roams = (tt_change + i)->flags & BATADV_TT_CLIENT_ROAM;
 			batadv_tt_global_del(bat_priv, orig_node,
 					     (tt_change + i)->addr,
+					     ntohs((tt_change + i)->vid),
 					     "tt removed by changes",
 					     roams);
 		} else {
 			if (!batadv_tt_global_add(bat_priv, orig_node,
 						  (tt_change + i)->addr,
+						  ntohs((tt_change + i)->vid),
 						  (tt_change + i)->flags, ttvn))
 				/* In case of problem while storing a
 				 * global_entry, we stop the updating
@@ -2040,12 +2146,21 @@ static void batadv_tt_update_changes(struct batadv_priv *bat_priv,
 	atomic_set(&orig_node->last_ttvn, ttvn);
 }
 
-bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr)
+/**
+ * batadv_is_my_client - check if a client is served by the local node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac adress of the client to check
+ * @vid: VLAN identifier
+ *
+ * Returns true if the client is served by this node, false otherwise.
+ */
+bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
+			 unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	bool ret = false;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 	/* Check if the client has been logically deleted (but is kept for
@@ -2194,7 +2309,20 @@ unlock:
 	return ret;
 }
 
+/**
+ * batadv_send_roam_adv - send a roaming advertisement message
+ * @bat_priv: the bat priv with all the soft interface information
+ * @client: mac address of the roaming client
+ * @vid: VLAN identifier
+ * @orig_node: message destination
+ *
+ * Send a ROAMING_ADV message to the node which was previously serving this
+ * client. This is done to inform the node that from now on all traffic destined
+ * for this particular roamed client has to be forwarded to the sender of the
+ * roaming message.
+ */
 static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
+				 unsigned short vid,
 				 struct batadv_orig_node *orig_node)
 {
 	struct batadv_hard_iface *primary_if;
@@ -2217,7 +2345,7 @@ static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_TX);
 
 	memcpy(tvlv_roam.client, client, sizeof(tvlv_roam.client));
-	tvlv_roam.reserved = 0;
+	tvlv_roam.vid = htons(vid);
 
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
 				 orig_node->orig, BATADV_TVLV_ROAM, 1,
@@ -2383,11 +2511,13 @@ bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 	if (!atomic_read(&bat_priv->ap_isolation))
 		goto out;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst,
+						   BATADV_NO_FLAGS);
 	if (!tt_local_entry)
 		goto out;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src,
+						     BATADV_NO_FLAGS);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2482,17 +2612,23 @@ request_table:
 	}
 }
 
-/* returns true whether we know that the client has moved from its old
- * originator to another one. This entry is kept is still kept for consistency
- * purposes
+/**
+ * batadv_tt_global_client_is_roaming - check if a client is marked as roaming
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to check
+ * @vid: VLAN identifier
+ *
+ * Returns true if we know that the client has moved from its old originator
+ * to another one. This entry is still kept for consistency purposes and will be
+ * deleted later by a DEL or because of timeout
  */
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
-					uint8_t *addr)
+					uint8_t *addr, unsigned short vid)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
 	bool ret = false;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2505,19 +2641,20 @@ out:
 /**
  * batadv_tt_local_client_is_roaming - tells whether the client is roaming
  * @bat_priv: the bat priv with all the soft interface information
- * @addr: the MAC address of the local client to query
+ * @addr: the mac address of the local client to query
+ * @vid: VLAN identifier
  *
  * Returns true if the local client is known to be roaming (it is not served by
  * this node anymore) or not. If yes, the client is still present in the table
  * to keep the latter consistent with the node TTVN
  */
 bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv,
-				       uint8_t *addr)
+				       uint8_t *addr, unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	bool ret = false;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 
@@ -2529,7 +2666,8 @@ out:
 
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
-					  const unsigned char *addr)
+					  const unsigned char *addr,
+					  unsigned short vlan)
 {
 	bool ret = false;
 
@@ -2540,7 +2678,7 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		goto out;
 
-	if (!batadv_tt_global_add(bat_priv, orig_node, addr,
+	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vlan,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
 		goto out;
@@ -2706,7 +2844,7 @@ static int batadv_roam_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 		   src, roaming_adv->client);
 
 	batadv_tt_global_add(bat_priv, orig_node, roaming_adv->client,
-			     BATADV_TT_CLIENT_ROAM,
+			     ntohs(roaming_adv->vid), BATADV_TT_CLIENT_ROAM,
 			     atomic_read(&orig_node->last_ttvn) + 1);
 
 out:
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index 015d8b9..1d9506d 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -22,10 +22,10 @@
 
 int batadv_tt_init(struct batadv_priv *bat_priv);
 void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
-			 int ifindex);
+			 unsigned short vid, int ifindex);
 uint16_t batadv_tt_local_remove(struct batadv_priv *bat_priv,
-				const uint8_t *addr, const char *message,
-				bool roaming);
+				const uint8_t *addr, unsigned short vid,
+				const char *message, bool roaming);
 int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset);
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
@@ -33,18 +33,21 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       const char *message);
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
-						  const uint8_t *addr);
+						  const uint8_t *addr,
+						  unsigned short vid);
 void batadv_tt_free(struct batadv_priv *bat_priv);
-bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr);
+bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
+			 unsigned short vid);
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 			   uint8_t *dst);
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv);
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
-					uint8_t *addr);
+					uint8_t *addr, unsigned short vid);
 bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv,
-				       uint8_t *addr);
+				       uint8_t *addr, unsigned short vid);
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
-					  const unsigned char *addr);
+					  const unsigned char *addr,
+					  unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 5cbb0d0..99029c5 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -715,6 +715,7 @@ struct batadv_bla_claim {
 /**
  * struct batadv_tt_common_entry - tt local & tt global common data
  * @addr: mac address of non-mesh client
+ * @vid: VLAN identifier
  * @hash_entry: hlist node for batadv_priv_tt::local_hash or for
  *  batadv_priv_tt::global_hash
  * @flags: various state handling flags (see batadv_tt_client_flags)
@@ -724,6 +725,7 @@ struct batadv_bla_claim {
  */
 struct batadv_tt_common_entry {
 	uint8_t addr[ETH_ALEN];
+	unsigned short vid;
 	struct hlist_node hash_entry;
 	uint16_t flags;
 	unsigned long added_at;
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 05/18] batman-adv: add the VLAN ID attribute to the TT entry
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

To make the translation table code VLAN-aware, each entry
must carry the VLAN ID which it belongs to. This patch adds
such attribute to the related TT structures.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c |  37 ++---
 net/batman-adv/distributed-arp-table.c |  11 +-
 net/batman-adv/gateway_client.c        |   3 +-
 net/batman-adv/main.c                  |  29 +++-
 net/batman-adv/main.h                  |   9 +-
 net/batman-adv/packet.h                |  14 +-
 net/batman-adv/routing.c               |  28 ++--
 net/batman-adv/send.c                  |   8 +-
 net/batman-adv/send.h                  |  16 ++-
 net/batman-adv/soft-interface.c        |  35 ++---
 net/batman-adv/translation-table.c     | 240 ++++++++++++++++++++++++++-------
 net/batman-adv/translation-table.h     |  19 +--
 net/batman-adv/types.h                 |   2 +
 13 files changed, 314 insertions(+), 137 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 5bb58d7..e8a6458 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -858,27 +858,25 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv,
 				    struct batadv_hard_iface *primary_if,
 				    struct sk_buff *skb)
 {
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
-	struct arphdr *arphdr;
-	uint8_t *hw_src, *hw_dst;
 	struct batadv_bla_claim_dst *bla_dst;
+	uint8_t *hw_src, *hw_dst;
+	struct vlan_ethhdr *vhdr;
+	struct ethhdr *ethhdr;
+	struct arphdr *arphdr;
+	unsigned short vid;
 	__be16 proto;
 	int headlen;
-	unsigned short vid = BATADV_NO_FLAGS;
 	int ret;
 
+	vid = batadv_get_vid(skb, 0);
 	ethhdr = eth_hdr(skb);
 
-	if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
+	proto = ethhdr->h_proto;
+	headlen = ETH_HLEN;
+	if (vid & BATADV_VLAN_HAS_TAG) {
 		vhdr = (struct vlan_ethhdr *)ethhdr;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 		proto = vhdr->h_vlan_encapsulated_proto;
-		headlen = sizeof(*vhdr);
-	} else {
-		proto = ethhdr->h_proto;
-		headlen = ETH_HLEN;
+		headlen += VLAN_HLEN;
 	}
 
 	if (proto != htons(ETH_P_ARP))
@@ -1365,10 +1363,8 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
 int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 			      struct batadv_orig_node *orig_node, int hdr_size)
 {
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
 	struct batadv_bla_backbone_gw *backbone_gw;
-	unsigned short vid = BATADV_NO_FLAGS;
+	unsigned short vid;
 
 	if (!atomic_read(&orig_node->bat_priv->bridge_loop_avoidance))
 		return 0;
@@ -1377,16 +1373,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 	if (!pskb_may_pull(skb, hdr_size + ETH_HLEN))
 		return 0;
 
-	ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
-
-	if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
-		if (!pskb_may_pull(skb, hdr_size + VLAN_ETH_HLEN))
-			return 0;
-
-		vhdr = (struct vlan_ethhdr *)(skb->data + hdr_size);
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
-	}
+	vid = batadv_get_vid(skb, hdr_size);
 
 	/* see if this originator is a backbone gw for this VLAN */
 	backbone_gw = batadv_backbone_hash_find(orig_node->bat_priv,
diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 99da412..1b590f0 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -905,7 +905,8 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 		 * additional DAT answer may trigger kernel warnings about
 		 * a packet coming from the wrong port.
 		 */
-		if (batadv_is_my_client(bat_priv, dat_entry->mac_addr)) {
+		if (batadv_is_my_client(bat_priv, dat_entry->mac_addr,
+					BATADV_NO_FLAGS)) {
 			ret = true;
 			goto out;
 		}
@@ -990,9 +991,11 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	 */
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
 		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
-						    BATADV_P_DAT_CACHE_REPLY);
+						    BATADV_P_DAT_CACHE_REPLY,
+						    BATADV_NO_FLAGS);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new);
+		err = batadv_send_skb_unicast(bat_priv, skb_new,
+					      BATADV_NO_FLAGS);
 
 	if (!err) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
@@ -1080,7 +1083,7 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	/* if this REPLY is directed to a client of mine, let's deliver the
 	 * packet to the interface
 	 */
-	ret = !batadv_is_my_client(bat_priv, hw_dst);
+	ret = !batadv_is_my_client(bat_priv, hw_dst, BATADV_NO_FLAGS);
 out:
 	if (ret)
 		kfree_skb(skb);
diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 053bb31..a920946 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -744,7 +744,8 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 
 	ethhdr = (struct ethhdr *)skb->data;
 	orig_dst_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						 ethhdr->h_dest);
+						 ethhdr->h_dest,
+						 BATADV_NO_FLAGS);
 	if (!orig_dst_node)
 		goto out;
 
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 7f3a5c4..80f60d1 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -132,7 +132,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 		goto err;
 
 	batadv_tt_local_add(soft_iface, soft_iface->dev_addr,
-			    BATADV_NULL_IFINDEX);
+			    BATADV_NO_FLAGS, BATADV_NULL_IFINDEX);
 
 	ret = batadv_bla_init(bat_priv);
 	if (ret < 0)
@@ -1144,6 +1144,33 @@ out:
 		batadv_orig_node_free_ref(orig_node);
 }
 
+/**
+ * batadv_get_vid - extract the VLAN identifier from skb if any
+ * @skb: the buffer containing the packet
+ * @header_len: length of the batman header preceding the ethernet header
+ *
+ * If the packet embedded in the skb is vlan tagged this function returns the
+ * VID with the BATADV_VLAN_HAS_TAG flag. Otherwise BATADV_NO_FLAGS is returned.
+ */
+unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len)
+{
+	struct ethhdr *ethhdr = (struct ethhdr *)(skb->data + header_len);
+	struct vlan_ethhdr *vhdr;
+	unsigned short vid;
+
+	if (ethhdr->h_proto != htons(ETH_P_8021Q))
+		return BATADV_NO_FLAGS;
+
+	if (!pskb_may_pull(skb, header_len + VLAN_ETH_HLEN))
+		return BATADV_NO_FLAGS;
+
+	vhdr = (struct vlan_ethhdr *)(skb->data + header_len);
+	vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
+	vid |= BATADV_VLAN_HAS_TAG;
+
+	return vid;
+}
+
 static int batadv_param_set_ra(const char *val, const struct kernel_param *kp)
 {
 	struct batadv_algo_ops *bat_algo_ops;
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index ff55dcc..2774d7f 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -169,14 +169,6 @@ enum batadv_uev_type {
 #include <linux/seq_file.h>
 #include "types.h"
 
-/**
- * batadv_vlan_flags - flags for the four MSB of any vlan ID field
- * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
- */
-enum batadv_vlan_flags {
-	BATADV_VLAN_HAS_TAG	= BIT(15),
-};
-
 #define BATADV_PRINT_VID(vid) (vid & BATADV_VLAN_HAS_TAG ? \
 			       (int)(vid & VLAN_VID_MASK) : -1)
 
@@ -368,5 +360,6 @@ int batadv_tvlv_containers_process(struct batadv_priv *bat_priv,
 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, uint8_t *src,
 			      uint8_t *dst, uint8_t type, uint8_t version,
 			      void *tvlv_value, uint16_t tvlv_value_len);
+unsigned short batadv_get_vid(struct sk_buff *skb, size_t header_len);
 
 #endif /* _NET_BATMAN_ADV_MAIN_H_ */
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index 65e723e..6311642 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -122,6 +122,14 @@ enum batadv_tt_client_flags {
 	BATADV_TT_CLIENT_TEMP	 = BIT(11),
 };
 
+/**
+ * batadv_vlan_flags - flags for the four MSB of any vlan ID field
+ * @BATADV_VLAN_HAS_TAG: whether the field contains a valid vlan tag or not
+ */
+enum batadv_vlan_flags {
+	BATADV_VLAN_HAS_TAG	= BIT(15),
+};
+
 /* claim frame types for the bridge loop avoidance */
 enum batadv_bla_claimframe {
 	BATADV_CLAIM_TYPE_CLAIM		= 0x00,
@@ -399,21 +407,23 @@ struct batadv_tvlv_tt_data {
  *  batadv_tt_client_flags)
  * @reserved: reserved field
  * @addr: mac address of non-mesh client that triggered this tt change
+ * @vid: VLAN identifier
  */
 struct batadv_tvlv_tt_change {
 	uint8_t flags;
 	uint8_t reserved;
 	uint8_t addr[ETH_ALEN];
+	__be16 vid;
 };
 
 /**
  * struct batadv_tvlv_roam_adv - roaming advertisement
  * @client: mac address of roaming client
- * @reserved: field reserved for future use
+ * @vid: VLAN identifier
  */
 struct batadv_tvlv_roam_adv {
 	uint8_t  client[ETH_ALEN];
-	uint16_t reserved;
+	__be16 vid;
 };
 
 #endif /* _NET_BATMAN_ADV_PACKET_H_ */
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 3281a50..149ef57 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -30,6 +30,8 @@
 #include "network-coding.h"
 #include "fragmentation.h"
 
+#include <linux/if_vlan.h>
+
 static int batadv_route_unicast_packet(struct sk_buff *skb,
 				       struct batadv_hard_iface *recv_if);
 
@@ -724,6 +726,7 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @unicast_packet: the unicast header to be updated
  * @dst_addr: the payload destination
+ * @vid: VLAN identifier
  *
  * Search the translation table for dst_addr and update the unicast header with
  * the new corresponding information (originator address where the destination
@@ -734,21 +737,22 @@ out:
 static bool
 batadv_reroute_unicast_packet(struct batadv_priv *bat_priv,
 			      struct batadv_unicast_packet *unicast_packet,
-			      uint8_t *dst_addr)
+			      uint8_t *dst_addr, unsigned short vid)
 {
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_hard_iface *primary_if = NULL;
 	bool ret = false;
 	uint8_t *orig_addr, orig_ttvn;
 
-	if (batadv_is_my_client(bat_priv, dst_addr)) {
+	if (batadv_is_my_client(bat_priv, dst_addr, vid)) {
 		primary_if = batadv_primary_if_get_selected(bat_priv);
 		if (!primary_if)
 			goto out;
 		orig_addr = primary_if->net_dev->dev_addr;
 		orig_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 	} else {
-		orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr);
+		orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr,
+						     vid);
 		if (!orig_node)
 			goto out;
 
@@ -775,11 +779,12 @@ out:
 
 static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 				     struct sk_buff *skb, int hdr_len) {
-	uint8_t curr_ttvn, old_ttvn;
-	struct batadv_orig_node *orig_node;
-	struct ethhdr *ethhdr;
+	struct batadv_unicast_packet *unicast_packet;
 	struct batadv_hard_iface *primary_if;
-	struct batadv_unicast_packet *unicast_packet;
+	struct batadv_orig_node *orig_node;
+	uint8_t curr_ttvn, old_ttvn;
+	struct ethhdr *ethhdr;
+	unsigned short vid;
 	int is_old_ttvn;
 
 	/* check if there is enough data before accessing it */
@@ -791,6 +796,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 		return 0;
 
 	unicast_packet = (struct batadv_unicast_packet *)skb->data;
+	vid = batadv_get_vid(skb, hdr_len);
 	ethhdr = (struct ethhdr *)(skb->data + hdr_len);
 
 	/* check if the destination client was served by this node and it is now
@@ -798,9 +804,9 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * message and that it knows the new destination in the mesh to re-route
 	 * the packet to
 	 */
-	if (batadv_tt_local_client_is_roaming(bat_priv, ethhdr->h_dest)) {
+	if (batadv_tt_local_client_is_roaming(bat_priv, ethhdr->h_dest, vid)) {
 		if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
-						  ethhdr->h_dest))
+						  ethhdr->h_dest, vid))
 			net_ratelimited_function(batadv_dbg, BATADV_DBG_TT,
 						 bat_priv,
 						 "Rerouting unicast packet to %pM (dst=%pM): Local Roaming\n",
@@ -846,7 +852,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * target host
 	 */
 	if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
-					  ethhdr->h_dest)) {
+					  ethhdr->h_dest, vid)) {
 		net_ratelimited_function(batadv_dbg, BATADV_DBG_TT, bat_priv,
 					 "Rerouting unicast packet to %pM (dst=%pM): TTVN mismatch old_ttvn=%u new_ttvn=%u\n",
 					 unicast_packet->dest, ethhdr->h_dest,
@@ -858,7 +864,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
 	 * currently served by this node or there is no destination at all and
 	 * it is possible to drop the packet
 	 */
-	if (!batadv_is_my_client(bat_priv, ethhdr->h_dest))
+	if (!batadv_is_my_client(bat_priv, ethhdr->h_dest, vid))
 		return 0;
 
 	/* update the header in order to let the packet be delivered to this
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index d765d53..acaa7ff 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -240,12 +240,14 @@ out:
  * @packet_type: the batman unicast packet type to use
  * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
  *  4addr packets)
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype)
+				    int packet_subtype,
+				    unsigned short vid)
 {
 	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
 	struct batadv_unicast_packet *unicast_packet;
@@ -260,7 +262,7 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 		 * returns NULL in case of AP isolation
 		 */
 		orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						     ethhdr->h_dest);
+						     ethhdr->h_dest, vid);
 
 	if (!orig_node)
 		goto out;
@@ -290,7 +292,7 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 	 * try to reroute it because the ttvn contained in the header is less
 	 * than the current one
 	 */
-	if (batadv_tt_global_client_is_roaming(bat_priv, ethhdr->h_dest))
+	if (batadv_tt_global_client_is_roaming(bat_priv, ethhdr->h_dest, vid))
 		unicast_packet->ttvn = unicast_packet->ttvn - 1;
 
 	if (batadv_send_skb_to_orig(skb, orig_node, NULL) != NET_XMIT_DROP)
diff --git a/net/batman-adv/send.h b/net/batman-adv/send.h
index ad63184..c030cb7 100644
--- a/net/batman-adv/send.h
+++ b/net/batman-adv/send.h
@@ -40,21 +40,23 @@ bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
 					   int packet_subtype);
 int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype);
-
+				    int packet_subtype,
+				    unsigned short vid);
 
 /**
  * batadv_send_unicast_skb - send the skb encapsulated in a unicast packet
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
-					  struct sk_buff *skb)
+					  struct sk_buff *skb,
+					  unsigned short vid)
 {
 	return batadv_send_skb_generic_unicast(bat_priv, skb, BATADV_UNICAST,
-					       0);
+					       0, vid);
 }
 
 /**
@@ -63,16 +65,18 @@ static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @packet_subtype: the unicast 4addr packet subtype to use
+ * @vid: the vid to be used to search the translation table
  *
  * Returns 1 in case of error or 0 otherwise.
  */
 static inline int batadv_send_skb_unicast_4addr(struct batadv_priv *bat_priv,
 						struct sk_buff *skb,
-						int packet_subtype)
+						int packet_subtype,
+						unsigned short vid)
 {
 	return batadv_send_skb_generic_unicast(bat_priv, skb,
 					       BATADV_UNICAST_4ADDR,
-					       packet_subtype);
+					       packet_subtype, vid);
 }
 
 #endif /* _NET_BATMAN_ADV_SEND_H_ */
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index e8a2bd6..279e91d 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -118,9 +118,10 @@ static int batadv_interface_set_mac_addr(struct net_device *dev, void *p)
 
 	/* only modify transtable if it has been initialized before */
 	if (atomic_read(&bat_priv->mesh_state) == BATADV_MESH_ACTIVE) {
-		batadv_tt_local_remove(bat_priv, old_addr,
+		batadv_tt_local_remove(bat_priv, old_addr, BATADV_NO_FLAGS,
 				       "mac address changed", false);
-		batadv_tt_local_add(dev, addr->sa_data, BATADV_NULL_IFINDEX);
+		batadv_tt_local_add(dev, addr->sa_data, BATADV_NO_FLAGS,
+				    BATADV_NULL_IFINDEX);
 	}
 
 	return 0;
@@ -152,33 +153,33 @@ static void batadv_interface_set_rx_mode(struct net_device *dev)
 static int batadv_interface_tx(struct sk_buff *skb,
 			       struct net_device *soft_iface)
 {
-	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
+	struct ethhdr *ethhdr;
 	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	struct batadv_hard_iface *primary_if = NULL;
 	struct batadv_bcast_packet *bcast_packet;
-	struct vlan_ethhdr *vhdr;
 	__be16 ethertype = htons(ETH_P_BATMAN);
 	static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
 						   0x00, 0x00};
 	static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
 						    0x00, 0x00};
+	struct vlan_ethhdr *vhdr;
 	unsigned int header_len = 0;
 	int data_len = skb->len, ret;
-	unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
+	unsigned long brd_delay = 1;
 	bool do_bcast = false;
+	unsigned short vid;
 	uint32_t seqno;
-	unsigned long brd_delay = 1;
 
 	if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
 		goto dropped;
 
 	soft_iface->trans_start = jiffies;
+	vid = batadv_get_vid(skb, 0);
+	ethhdr = (struct ethhdr *)skb->data;
 
 	switch (ntohs(ethhdr->h_proto)) {
 	case ETH_P_8021Q:
 		vhdr = (struct vlan_ethhdr *)skb->data;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 
 		if (vhdr->h_vlan_encapsulated_proto != ethertype)
 			break;
@@ -196,7 +197,8 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 	/* Register the client MAC in the transtable */
 	if (!is_multicast_ether_addr(ethhdr->h_source))
-		batadv_tt_local_add(soft_iface, ethhdr->h_source, skb->skb_iif);
+		batadv_tt_local_add(soft_iface, ethhdr->h_source, vid,
+				    skb->skb_iif);
 
 	/* don't accept stp packets. STP does not help in meshes.
 	 * better use the bridge loop avoidance ...
@@ -296,7 +298,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 		batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
 
-		ret = batadv_send_skb_unicast(bat_priv, skb);
+		ret = batadv_send_skb_unicast(bat_priv, skb, vid);
 		if (ret != 0)
 			goto dropped_freed;
 	}
@@ -319,12 +321,12 @@ void batadv_interface_rx(struct net_device *soft_iface,
 			 struct sk_buff *skb, struct batadv_hard_iface *recv_if,
 			 int hdr_size, struct batadv_orig_node *orig_node)
 {
-	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
-	struct ethhdr *ethhdr;
-	struct vlan_ethhdr *vhdr;
 	struct batadv_header *batadv_header = (struct batadv_header *)skb->data;
-	unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
+	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	__be16 ethertype = htons(ETH_P_BATMAN);
+	struct vlan_ethhdr *vhdr;
+	struct ethhdr *ethhdr;
+	unsigned short vid;
 	bool is_bcast;
 
 	is_bcast = (batadv_header->packet_type == BATADV_BCAST);
@@ -336,13 +338,12 @@ void batadv_interface_rx(struct net_device *soft_iface,
 	skb_pull_rcsum(skb, hdr_size);
 	skb_reset_mac_header(skb);
 
+	vid = batadv_get_vid(skb, hdr_size);
 	ethhdr = eth_hdr(skb);
 
 	switch (ntohs(ethhdr->h_proto)) {
 	case ETH_P_8021Q:
 		vhdr = (struct vlan_ethhdr *)skb->data;
-		vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
-		vid |= BATADV_VLAN_HAS_TAG;
 
 		if (vhdr->h_vlan_encapsulated_proto != ethertype)
 			break;
@@ -378,7 +379,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
 
 	if (orig_node)
 		batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
-						     ethhdr->h_source);
+						     ethhdr->h_source, vid);
 
 	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
 		goto dropped;
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index b521afb..63adb97 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -34,6 +34,7 @@ static struct lock_class_key batadv_tt_local_hash_lock_class_key;
 static struct lock_class_key batadv_tt_global_hash_lock_class_key;
 
 static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
+				 unsigned short vid,
 				 struct batadv_orig_node *orig_node);
 static void batadv_tt_purge(struct work_struct *work);
 static void
@@ -41,7 +42,8 @@ batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry);
 static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
 				 const unsigned char *addr,
-				 const char *message, bool roaming);
+				 unsigned short vid, const char *message,
+				 bool roaming);
 
 /* returns 1 if they are the same mac addr */
 static int batadv_compare_tt(const struct hlist_node *node, const void *data2)
@@ -52,43 +54,93 @@ static int batadv_compare_tt(const struct hlist_node *node, const void *data2)
 	return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
 }
 
+/**
+ * batadv_choose_tt - return the index of the tt entry in the hash table
+ * @data: pointer to the tt_common_entry object to map
+ * @size: the size of the hash table
+ *
+ * Returns the hash index where the object represented by 'data' should be
+ * stored at.
+ */
+static inline uint32_t batadv_choose_tt(const void *data, uint32_t size)
+{
+	struct batadv_tt_common_entry *tt;
+	uint32_t hash = 0;
+
+	tt = (struct batadv_tt_common_entry *)data;
+	hash = batadv_hash_bytes(hash, &tt->addr, ETH_ALEN);
+	hash = batadv_hash_bytes(hash, &tt->vid, sizeof(tt->vid));
+
+	hash += (hash << 3);
+	hash ^= (hash >> 11);
+	hash += (hash << 15);
+
+	return hash % size;
+}
+
+/**
+ * batadv_tt_hash_find - look for a client in the given hash table
+ * @hash: the hash table to search
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the tt_common struct belonging to the searched client if
+ * found, NULL otherwise.
+ */
 static struct batadv_tt_common_entry *
-batadv_tt_hash_find(struct batadv_hashtable *hash, const void *data)
+batadv_tt_hash_find(struct batadv_hashtable *hash, const uint8_t *addr,
+		    unsigned short vid)
 {
 	struct hlist_head *head;
-	struct batadv_tt_common_entry *tt_common_entry;
-	struct batadv_tt_common_entry *tt_common_entry_tmp = NULL;
+	struct batadv_tt_common_entry to_search, *tt, *tt_tmp = NULL;
 	uint32_t index;
 
 	if (!hash)
 		return NULL;
 
-	index = batadv_choose_orig(data, hash->size);
+	memcpy(to_search.addr, addr, ETH_ALEN);
+	to_search.vid = vid;
+
+	index = batadv_choose_tt(&to_search, hash->size);
 	head = &hash->table[index];
 
 	rcu_read_lock();
-	hlist_for_each_entry_rcu(tt_common_entry, head, hash_entry) {
-		if (!batadv_compare_eth(tt_common_entry, data))
+	hlist_for_each_entry_rcu(tt, head, hash_entry) {
+		if (!batadv_compare_eth(tt, addr))
 			continue;
 
-		if (!atomic_inc_not_zero(&tt_common_entry->refcount))
+		if (tt->vid != vid)
 			continue;
 
-		tt_common_entry_tmp = tt_common_entry;
+		if (!atomic_inc_not_zero(&tt->refcount))
+			continue;
+
+		tt_tmp = tt;
 		break;
 	}
 	rcu_read_unlock();
 
-	return tt_common_entry_tmp;
+	return tt_tmp;
 }
 
+/**
+ * batadv_tt_local_hash_find - search the local table for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the corresponding tt_local_entry struct if the client is
+ * found, NULL otherwise.
+ */
 static struct batadv_tt_local_entry *
-batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const void *data)
+batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const uint8_t *addr,
+			  unsigned short vid)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 
-	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.local_hash, data);
+	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.local_hash, addr,
+					      vid);
 	if (tt_common_entry)
 		tt_local_entry = container_of(tt_common_entry,
 					      struct batadv_tt_local_entry,
@@ -96,13 +148,24 @@ batadv_tt_local_hash_find(struct batadv_priv *bat_priv, const void *data)
 	return tt_local_entry;
 }
 
+/**
+ * batadv_tt_global_hash_find - search the global table for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to look for
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the corresponding tt_global_entry struct if the client
+ * is found, NULL otherwise.
+ */
 static struct batadv_tt_global_entry *
-batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const void *data)
+batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const uint8_t *addr,
+			   unsigned short vid)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
 
-	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.global_hash, data);
+	tt_common_entry = batadv_tt_hash_find(bat_priv->tt.global_hash, addr,
+					      vid);
 	if (tt_common_entry)
 		tt_global_entry = container_of(tt_common_entry,
 					       struct batadv_tt_global_entry,
@@ -178,6 +241,7 @@ static void batadv_tt_local_event(struct batadv_priv *bat_priv,
 	tt_change_node->change.flags = flags;
 	tt_change_node->change.reserved = 0;
 	memcpy(tt_change_node->change.addr, common->addr, ETH_ALEN);
+	tt_change_node->change.vid = htons(common->vid);
 
 	del_op_requested = flags & BATADV_TT_CLIENT_DEL;
 
@@ -268,12 +332,21 @@ static void batadv_tt_global_free(struct batadv_priv *bat_priv,
 		   tt_global->common.addr, message);
 
 	batadv_hash_remove(bat_priv->tt.global_hash, batadv_compare_tt,
-			   batadv_choose_orig, tt_global->common.addr);
+			   batadv_choose_tt, &tt_global->common);
 	batadv_tt_global_entry_free_ref(tt_global);
 }
 
+/**
+ * batadv_tt_local_add - add a new client to the local table or update an
+ *  existing client
+ * @soft_iface: netdev struct of the mesh interface
+ * @addr: the mac address of the client to add
+ * @vid: VLAN identifier
+ * @ifindex: index of the interface where the client is connected to (useful to
+ *  identify wireless clients)
+ */
 void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
-			 int ifindex)
+			 unsigned short vid, int ifindex)
 {
 	struct batadv_priv *bat_priv = netdev_priv(soft_iface);
 	struct batadv_tt_local_entry *tt_local;
@@ -283,8 +356,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 	int hash_added;
 	bool roamed_back = false;
 
-	tt_local = batadv_tt_local_hash_find(bat_priv, addr);
-	tt_global = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_local = batadv_tt_local_hash_find(bat_priv, addr, vid);
+	tt_global = batadv_tt_global_hash_find(bat_priv, addr, vid);
 
 	if (tt_local) {
 		tt_local->last_seen = jiffies;
@@ -329,6 +402,7 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 	 * (consistency check)
 	 */
 	tt_local->common.flags = BATADV_TT_CLIENT_NEW;
+	tt_local->common.vid = vid;
 	if (batadv_is_wifi_iface(ifindex))
 		tt_local->common.flags |= BATADV_TT_CLIENT_WIFI;
 	atomic_set(&tt_local->common.refcount, 2);
@@ -340,7 +414,7 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		tt_local->common.flags |= BATADV_TT_CLIENT_NOPURGE;
 
 	hash_added = batadv_hash_add(bat_priv->tt.local_hash, batadv_compare_tt,
-				     batadv_choose_orig, &tt_local->common,
+				     batadv_choose_tt, &tt_local->common,
 				     &tt_local->common.hash_entry);
 
 	if (unlikely(hash_added != 0)) {
@@ -362,6 +436,7 @@ check_roaming:
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(orig_entry, head, list) {
 			batadv_send_roam_adv(bat_priv, tt_global->common.addr,
+					     tt_global->common.vid,
 					     orig_entry->orig_node);
 		}
 		rcu_read_unlock();
@@ -550,19 +625,20 @@ batadv_tt_local_set_pending(struct batadv_priv *bat_priv,
  * batadv_tt_local_remove - logically remove an entry from the local table
  * @bat_priv: the bat priv with all the soft interface information
  * @addr: the MAC address of the client to remove
+ * @vid: VLAN identifier
  * @message: message to append to the log on deletion
  * @roaming: true if the deletion is due to a roaming event
  *
  * Returns the flags assigned to the local entry before being deleted
  */
 uint16_t batadv_tt_local_remove(struct batadv_priv *bat_priv,
-				const uint8_t *addr, const char *message,
-				bool roaming)
+				const uint8_t *addr, unsigned short vid,
+				const char *message, bool roaming)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	uint16_t flags, curr_flags = BATADV_NO_FLAGS;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 
@@ -798,6 +874,7 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @orig_node: the originator announcing the client
  * @tt_addr: the mac address of the non-mesh client
+ * @vid: VLAN identifier
  * @flags: TT flags that have to be set for this non-mesh client
  * @ttvn: the tt version number ever announcing this non-mesh client
  *
@@ -813,7 +890,8 @@ out:
  */
 static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
-				 const unsigned char *tt_addr, uint16_t flags,
+				 const unsigned char *tt_addr,
+				 unsigned short vid, uint16_t flags,
 				 uint8_t ttvn)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
@@ -823,8 +901,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *common;
 	uint16_t local_flags;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr);
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr, vid);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr, vid);
 
 	/* if the node already has a local client for this entry, it has to wait
 	 * for a roaming advertisement instead of manually messing up the global
@@ -841,6 +919,7 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 
 		common = &tt_global_entry->common;
 		memcpy(common->addr, tt_addr, ETH_ALEN);
+		common->vid = vid;
 
 		common->flags = flags;
 		tt_global_entry->roam_at = 0;
@@ -858,7 +937,7 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 
 		hash_added = batadv_hash_add(bat_priv->tt.global_hash,
 					     batadv_compare_tt,
-					     batadv_choose_orig, common,
+					     batadv_choose_tt, common,
 					     &common->hash_entry);
 
 		if (unlikely(hash_added != 0)) {
@@ -924,7 +1003,7 @@ add_orig_entry:
 out_remove:
 
 	/* remove address from local hash if present */
-	local_flags = batadv_tt_local_remove(bat_priv, tt_addr,
+	local_flags = batadv_tt_local_remove(bat_priv, tt_addr, vid,
 					     "global tt received",
 					     flags & BATADV_TT_CLIENT_ROAM);
 	tt_global_entry->common.flags |= local_flags & BATADV_TT_CLIENT_WIFI;
@@ -1147,17 +1226,25 @@ batadv_tt_global_del_roaming(struct batadv_priv *bat_priv,
 						orig_node, message);
 }
 
-
-
+/**
+ * batadv_tt_global_del - remove a client from the global table
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: an originator serving this client
+ * @addr: the mac address of the client
+ * @vid: VLAN identifier
+ * @message: a message explaining the reason for deleting the client to print
+ *  for debugging purpose
+ * @roaming: true if the deletion has been triggered by a roaming event
+ */
 static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 				 struct batadv_orig_node *orig_node,
-				 const unsigned char *addr,
+				 const unsigned char *addr, unsigned short vid,
 				 const char *message, bool roaming)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
 	struct batadv_tt_local_entry *local_entry = NULL;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -1186,7 +1273,8 @@ static void batadv_tt_global_del(struct batadv_priv *bat_priv,
 	 *    the global entry, since it is useless now.
 	 */
 	local_entry = batadv_tt_local_hash_find(bat_priv,
-						tt_global_entry->common.addr);
+						tt_global_entry->common.addr,
+						vid);
 	if (local_entry) {
 		/* local entry exists, case 2: client roamed to us. */
 		batadv_tt_global_del_orig_list(tt_global_entry);
@@ -1354,9 +1442,24 @@ _batadv_is_ap_isolated(struct batadv_tt_local_entry *tt_local_entry,
 	return ret;
 }
 
+/**
+ * batadv_transtable_search - get the mesh destination for a given client
+ * @bat_priv: the bat priv with all the soft interface information
+ * @src: mac address of the source client
+ * @addr: mac address of the destination client
+ * @vid: VLAN identifier
+ *
+ * Returns a pointer to the originator that was selected as destination in the
+ * mesh for contacting the client 'addr', NULL otherwise.
+ * In case of multiple originators serving the same client, the function returns
+ * the best one (best in terms of metric towards the destination node).
+ *
+ * If the two clients are AP isolated the function returns NULL.
+ */
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
-						  const uint8_t *addr)
+						  const uint8_t *addr,
+						  unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
@@ -1364,13 +1467,13 @@ struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 	struct batadv_tt_orig_list_entry *best_entry;
 
 	if (src && atomic_read(&bat_priv->ap_isolation)) {
-		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src);
+		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src, vid);
 		if (!tt_local_entry ||
 		    (tt_local_entry->common.flags & BATADV_TT_CLIENT_PENDING))
 			goto out;
 	}
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -1649,6 +1752,7 @@ batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
 			memcpy(tt_change->addr, tt_common_entry->addr,
 			       ETH_ALEN);
 			tt_change->flags = tt_common_entry->flags;
+			tt_change->vid = htons(tt_common_entry->vid);
 			tt_change->reserved = 0;
 
 			tt_num_entries++;
@@ -1979,11 +2083,13 @@ static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
 			roams = (tt_change + i)->flags & BATADV_TT_CLIENT_ROAM;
 			batadv_tt_global_del(bat_priv, orig_node,
 					     (tt_change + i)->addr,
+					     ntohs((tt_change + i)->vid),
 					     "tt removed by changes",
 					     roams);
 		} else {
 			if (!batadv_tt_global_add(bat_priv, orig_node,
 						  (tt_change + i)->addr,
+						  ntohs((tt_change + i)->vid),
 						  (tt_change + i)->flags, ttvn))
 				/* In case of problem while storing a
 				 * global_entry, we stop the updating
@@ -2040,12 +2146,21 @@ static void batadv_tt_update_changes(struct batadv_priv *bat_priv,
 	atomic_set(&orig_node->last_ttvn, ttvn);
 }
 
-bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr)
+/**
+ * batadv_is_my_client - check if a client is served by the local node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac adress of the client to check
+ * @vid: VLAN identifier
+ *
+ * Returns true if the client is served by this node, false otherwise.
+ */
+bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
+			 unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	bool ret = false;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 	/* Check if the client has been logically deleted (but is kept for
@@ -2194,7 +2309,20 @@ unlock:
 	return ret;
 }
 
+/**
+ * batadv_send_roam_adv - send a roaming advertisement message
+ * @bat_priv: the bat priv with all the soft interface information
+ * @client: mac address of the roaming client
+ * @vid: VLAN identifier
+ * @orig_node: message destination
+ *
+ * Send a ROAMING_ADV message to the node which was previously serving this
+ * client. This is done to inform the node that from now on all traffic destined
+ * for this particular roamed client has to be forwarded to the sender of the
+ * roaming message.
+ */
 static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
+				 unsigned short vid,
 				 struct batadv_orig_node *orig_node)
 {
 	struct batadv_hard_iface *primary_if;
@@ -2217,7 +2345,7 @@ static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_TX);
 
 	memcpy(tvlv_roam.client, client, sizeof(tvlv_roam.client));
-	tvlv_roam.reserved = 0;
+	tvlv_roam.vid = htons(vid);
 
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
 				 orig_node->orig, BATADV_TVLV_ROAM, 1,
@@ -2383,11 +2511,13 @@ bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 	if (!atomic_read(&bat_priv->ap_isolation))
 		goto out;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst,
+						   BATADV_NO_FLAGS);
 	if (!tt_local_entry)
 		goto out;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src,
+						     BATADV_NO_FLAGS);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2482,17 +2612,23 @@ request_table:
 	}
 }
 
-/* returns true whether we know that the client has moved from its old
- * originator to another one. This entry is kept is still kept for consistency
- * purposes
+/**
+ * batadv_tt_global_client_is_roaming - check if a client is marked as roaming
+ * @bat_priv: the bat priv with all the soft interface information
+ * @addr: the mac address of the client to check
+ * @vid: VLAN identifier
+ *
+ * Returns true if we know that the client has moved from its old originator
+ * to another one. This entry is still kept for consistency purposes and will be
+ * deleted later by a DEL or because of timeout
  */
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
-					uint8_t *addr)
+					uint8_t *addr, unsigned short vid)
 {
 	struct batadv_tt_global_entry *tt_global_entry;
 	bool ret = false;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2505,19 +2641,20 @@ out:
 /**
  * batadv_tt_local_client_is_roaming - tells whether the client is roaming
  * @bat_priv: the bat priv with all the soft interface information
- * @addr: the MAC address of the local client to query
+ * @addr: the mac address of the local client to query
+ * @vid: VLAN identifier
  *
  * Returns true if the local client is known to be roaming (it is not served by
  * this node anymore) or not. If yes, the client is still present in the table
  * to keep the latter consistent with the node TTVN
  */
 bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv,
-				       uint8_t *addr)
+				       uint8_t *addr, unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry;
 	bool ret = false;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr, vid);
 	if (!tt_local_entry)
 		goto out;
 
@@ -2529,7 +2666,8 @@ out:
 
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
-					  const unsigned char *addr)
+					  const unsigned char *addr,
+					  unsigned short vlan)
 {
 	bool ret = false;
 
@@ -2540,7 +2678,7 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		goto out;
 
-	if (!batadv_tt_global_add(bat_priv, orig_node, addr,
+	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vlan,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
 		goto out;
@@ -2706,7 +2844,7 @@ static int batadv_roam_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 		   src, roaming_adv->client);
 
 	batadv_tt_global_add(bat_priv, orig_node, roaming_adv->client,
-			     BATADV_TT_CLIENT_ROAM,
+			     ntohs(roaming_adv->vid), BATADV_TT_CLIENT_ROAM,
 			     atomic_read(&orig_node->last_ttvn) + 1);
 
 out:
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index 015d8b9..1d9506d 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -22,10 +22,10 @@
 
 int batadv_tt_init(struct batadv_priv *bat_priv);
 void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
-			 int ifindex);
+			 unsigned short vid, int ifindex);
 uint16_t batadv_tt_local_remove(struct batadv_priv *bat_priv,
-				const uint8_t *addr, const char *message,
-				bool roaming);
+				const uint8_t *addr, unsigned short vid,
+				const char *message, bool roaming);
 int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset);
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
@@ -33,18 +33,21 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       const char *message);
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
-						  const uint8_t *addr);
+						  const uint8_t *addr,
+						  unsigned short vid);
 void batadv_tt_free(struct batadv_priv *bat_priv);
-bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr);
+bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
+			 unsigned short vid);
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 			   uint8_t *dst);
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv);
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
-					uint8_t *addr);
+					uint8_t *addr, unsigned short vid);
 bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv,
-				       uint8_t *addr);
+				       uint8_t *addr, unsigned short vid);
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
-					  const unsigned char *addr);
+					  const unsigned char *addr,
+					  unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 5cbb0d0..99029c5 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -715,6 +715,7 @@ struct batadv_bla_claim {
 /**
  * struct batadv_tt_common_entry - tt local & tt global common data
  * @addr: mac address of non-mesh client
+ * @vid: VLAN identifier
  * @hash_entry: hlist node for batadv_priv_tt::local_hash or for
  *  batadv_priv_tt::global_hash
  * @flags: various state handling flags (see batadv_tt_client_flags)
@@ -724,6 +725,7 @@ struct batadv_bla_claim {
  */
 struct batadv_tt_common_entry {
 	uint8_t addr[ETH_ALEN];
+	unsigned short vid;
 	struct hlist_node hash_entry;
 	uint16_t flags;
 	unsigned long added_at;
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 06/18] batman-adv: use vid when computing local and global TT CRC
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

now that each TT entry is characterised by a VLAN ID, the
latter has to be taken into consideration when computing the
local/global table CRC as it would be theoretically possible
to have the same client in two different VLANs

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/translation-table.c | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 63adb97..c8fc303 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1506,6 +1506,24 @@ out:
  * batadv_tt_global_crc - calculates the checksum of the local table belonging
  *  to the given orig_node
  * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: originator for which the CRC should be computed
+ *
+ * This function computes the checksum for the global table corresponding to a
+ * specific originator. In particular, the checksum is computed as follows: For
+ * each client connected to the originator the CRC32C of the MAC address and the
+ * VID is computed and then all the CRC32Cs of the various clients are xor'ed
+ * together.
+ *
+ * The idea behind is that CRC32C should be used as much as possible in order to
+ * produce a unique hash of the table, but since the order which is used to feed
+ * the CRC32C function affects the result and since every node in the network
+ * probably sorts the clients differently, the hash function cannot be directly
+ * computed over the entire table. Hence the CRC32C is used only on
+ * the single client entry, while all the results are then xor'ed together
+ * because the XOR operation can combine them all while trying to reduce the
+ * noise as much as possible.
+ *
+ * Returns the checksum of the global table of a given originator.
  */
 static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 				     struct batadv_orig_node *orig_node)
@@ -1514,7 +1532,7 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *tt_common;
 	struct batadv_tt_global_entry *tt_global;
 	struct hlist_head *head;
-	uint32_t i, crc = 0;
+	uint32_t i, crc_tmp, crc = 0;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1545,7 +1563,9 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 							     orig_node))
 				continue;
 
-			crc ^= crc32c(0, tt_common->addr, ETH_ALEN);
+			crc_tmp = crc32c(0, &tt_common->vid,
+					 sizeof(tt_common->vid));
+			crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN);
 		}
 		rcu_read_unlock();
 	}
@@ -1556,13 +1576,18 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 /**
  * batadv_tt_local_crc - calculates the checksum of the local table
  * @bat_priv: the bat priv with all the soft interface information
+ *
+ * For details about the computation, please refer to the documentation for
+ * batadv_tt_global_crc().
+ *
+ * Returns the checksum of the local table
  */
 static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
 	struct batadv_tt_common_entry *tt_common;
 	struct hlist_head *head;
-	uint32_t i, crc = 0;
+	uint32_t i, crc_tmp, crc = 0;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1575,7 +1600,9 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 			if (tt_common->flags & BATADV_TT_CLIENT_NEW)
 				continue;
 
-			crc ^= crc32c(0, tt_common->addr, ETH_ALEN);
+			crc_tmp = crc32c(0, &tt_common->vid,
+					 sizeof(tt_common->vid));
+			crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN);
 		}
 		rcu_read_unlock();
 	}
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 06/18] batman-adv: use vid when computing local and global TT CRC
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

now that each TT entry is characterised by a VLAN ID, the
latter has to be taken into consideration when computing the
local/global table CRC as it would be theoretically possible
to have the same client in two different VLANs

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/translation-table.c | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 63adb97..c8fc303 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1506,6 +1506,24 @@ out:
  * batadv_tt_global_crc - calculates the checksum of the local table belonging
  *  to the given orig_node
  * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: originator for which the CRC should be computed
+ *
+ * This function computes the checksum for the global table corresponding to a
+ * specific originator. In particular, the checksum is computed as follows: For
+ * each client connected to the originator the CRC32C of the MAC address and the
+ * VID is computed and then all the CRC32Cs of the various clients are xor'ed
+ * together.
+ *
+ * The idea behind is that CRC32C should be used as much as possible in order to
+ * produce a unique hash of the table, but since the order which is used to feed
+ * the CRC32C function affects the result and since every node in the network
+ * probably sorts the clients differently, the hash function cannot be directly
+ * computed over the entire table. Hence the CRC32C is used only on
+ * the single client entry, while all the results are then xor'ed together
+ * because the XOR operation can combine them all while trying to reduce the
+ * noise as much as possible.
+ *
+ * Returns the checksum of the global table of a given originator.
  */
 static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 				     struct batadv_orig_node *orig_node)
@@ -1514,7 +1532,7 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *tt_common;
 	struct batadv_tt_global_entry *tt_global;
 	struct hlist_head *head;
-	uint32_t i, crc = 0;
+	uint32_t i, crc_tmp, crc = 0;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1545,7 +1563,9 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 							     orig_node))
 				continue;
 
-			crc ^= crc32c(0, tt_common->addr, ETH_ALEN);
+			crc_tmp = crc32c(0, &tt_common->vid,
+					 sizeof(tt_common->vid));
+			crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN);
 		}
 		rcu_read_unlock();
 	}
@@ -1556,13 +1576,18 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 /**
  * batadv_tt_local_crc - calculates the checksum of the local table
  * @bat_priv: the bat priv with all the soft interface information
+ *
+ * For details about the computation, please refer to the documentation for
+ * batadv_tt_global_crc().
+ *
+ * Returns the checksum of the local table
  */
 static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
 	struct batadv_tt_common_entry *tt_common;
 	struct hlist_head *head;
-	uint32_t i, crc = 0;
+	uint32_t i, crc_tmp, crc = 0;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1575,7 +1600,9 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 			if (tt_common->flags & BATADV_TT_CLIENT_NEW)
 				continue;
 
-			crc ^= crc32c(0, tt_common->addr, ETH_ALEN);
+			crc_tmp = crc32c(0, &tt_common->vid,
+					 sizeof(tt_common->vid));
+			crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN);
 		}
 		rcu_read_unlock();
 	}
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 07/18] batman-adv: print the VID together with the TT entries
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:21   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/main.h              |  2 +
 net/batman-adv/translation-table.c | 82 +++++++++++++++++++++++---------------
 2 files changed, 52 insertions(+), 32 deletions(-)

diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 2774d7f..d7dfafe 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -167,6 +167,8 @@ enum batadv_uev_type {
 #include <net/rtnetlink.h>
 #include <linux/jiffies.h>
 #include <linux/seq_file.h>
+#include <linux/if_vlan.h>
+
 #include "types.h"
 
 #define BATADV_PRINT_VID(vid) (vid & BATADV_VLAN_HAS_TAG ? \
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index c8fc303..9bf928c 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -328,8 +328,9 @@ static void batadv_tt_global_free(struct batadv_priv *bat_priv,
 				  const char *message)
 {
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Deleting global tt entry %pM: %s\n",
-		   tt_global->common.addr, message);
+		   "Deleting global tt entry %pM (vid: %d): %s\n",
+		   tt_global->common.addr,
+		   BATADV_PRINT_VID(tt_global->common.vid), message);
 
 	batadv_hash_remove(bat_priv->tt.global_hash, batadv_compare_tt,
 			   batadv_choose_tt, &tt_global->common);
@@ -363,7 +364,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		tt_local->last_seen = jiffies;
 		if (tt_local->common.flags & BATADV_TT_CLIENT_PENDING) {
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Re-adding pending client %pM\n", addr);
+				   "Re-adding pending client %pM (vid: %d)\n",
+				   addr, BATADV_PRINT_VID(vid));
 			/* whatever the reason why the PENDING flag was set,
 			 * this is a client which was enqueued to be removed in
 			 * this orig_interval. Since it popped up again, the
@@ -375,8 +377,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 
 		if (tt_local->common.flags & BATADV_TT_CLIENT_ROAM) {
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Roaming client %pM came back to its original location\n",
-				   addr);
+				   "Roaming client %pM (vid: %d) came back to its original location\n",
+				   addr, BATADV_PRINT_VID(vid));
 			/* the ROAM flag is set because this client roamed away
 			 * and the node got a roaming_advertisement message. Now
 			 * that the client popped up again at its original
@@ -393,7 +395,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Creating new local tt entry: %pM (ttvn: %d)\n", addr,
+		   "Creating new local tt entry: %pM (vid: %d, ttvn: %d)\n",
+		   addr, BATADV_PRINT_VID(vid),
 		   (uint8_t)atomic_read(&bat_priv->tt.vn));
 
 	memcpy(tt_local->common.addr, addr, ETH_ALEN);
@@ -562,8 +565,8 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u CRC: %#.8x):\n",
 		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn),
 		   bat_priv->tt.local_crc);
-	seq_printf(seq, "       %-13s %-7s %-10s\n", "Client", "Flags",
-		   "Last seen");
+	seq_printf(seq, "       %-13s  %s %-7s %-10s\n", "Client", "VID",
+		   "Flags", "Last seen");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -581,8 +584,9 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 
 			no_purge = tt_common_entry->flags & np_flag;
 
-			seq_printf(seq, " * %pM [%c%c%c%c%c] %3u.%03u\n",
+			seq_printf(seq, " * %pM %4i [%c%c%c%c%c] %3u.%03u\n",
 				   tt_common_entry->addr,
+				   BATADV_PRINT_VID(tt_common_entry->vid),
 				   (tt_common_entry->flags &
 				    BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 				   no_purge ? 'P' : '.',
@@ -617,8 +621,9 @@ batadv_tt_local_set_pending(struct batadv_priv *bat_priv,
 	tt_local_entry->common.flags |= BATADV_TT_CLIENT_PENDING;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Local tt entry (%pM) pending to be removed: %s\n",
-		   tt_local_entry->common.addr, message);
+		   "Local tt entry (%pM, vid: %d) pending to be removed: %s\n",
+		   tt_local_entry->common.addr,
+		   BATADV_PRINT_VID(tt_local_entry->common.vid), message);
 }
 
 /**
@@ -996,8 +1001,9 @@ add_orig_entry:
 	batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn);
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Creating new global tt entry: %pM (via %pM)\n",
-		   common->addr, orig_node->orig);
+		   "Creating new global tt entry: %pM (vid: %d, via %pM)\n",
+		   common->addr, BATADV_PRINT_VID(common->vid),
+		   orig_node->orig);
 	ret = true;
 
 out_remove:
@@ -1077,8 +1083,9 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 	if (best_entry) {
 		last_ttvn = atomic_read(&best_entry->orig_node->last_ttvn);
 		seq_printf(seq,
-			   " %c %pM  (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
+			   " %c %pM %4i   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '*', tt_global_entry->common.addr,
+			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   best_entry->ttvn, best_entry->orig_node->orig,
 			   last_ttvn, best_entry->orig_node->tt_crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
@@ -1093,8 +1100,10 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 			continue;
 
 		last_ttvn = atomic_read(&orig_entry->orig_node->last_ttvn);
-		seq_printf(seq,	" %c %pM  (%3u) via %pM     (%3u)   [%c%c%c]\n",
+		seq_printf(seq,
+			   " %c %pM %4d   (%3u) via %pM     (%3u)   [%c%c%c]\n",
 			   '+', tt_global_entry->common.addr,
+			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   orig_entry->ttvn, orig_entry->orig_node->orig,
 			   last_ttvn,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
@@ -1121,9 +1130,9 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
 	seq_printf(seq,
 		   "Globally announced TT entries received via the mesh %s\n",
 		   net_dev->name);
-	seq_printf(seq, "       %-13s %s       %-15s %s (%-10s) %s\n",
-		   "Client", "(TTVN)", "Originator", "(Curr TTVN)", "CRC",
-		   "Flags");
+	seq_printf(seq, "       %-13s  %s  %s       %-15s %s (%-10s) %s\n",
+		   "Client", "VID", "(TTVN)", "Originator", "(Curr TTVN)",
+		   "CRC", "Flags");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1170,15 +1179,18 @@ batadv_tt_global_del_orig_entry(struct batadv_priv *bat_priv,
 	struct hlist_head *head;
 	struct hlist_node *safe;
 	struct batadv_tt_orig_list_entry *orig_entry;
+	unsigned short vid;
 
 	spin_lock_bh(&tt_global_entry->list_lock);
 	head = &tt_global_entry->orig_list;
 	hlist_for_each_entry_safe(orig_entry, safe, head, list) {
 		if (orig_entry->orig_node == orig_node) {
+			vid = tt_global_entry->common.vid;
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting %pM from global tt entry %pM: %s\n",
+				   "Deleting %pM from global tt entry %pM (vid: %d): %s\n",
 				   orig_node->orig,
-				   tt_global_entry->common.addr, message);
+				   tt_global_entry->common.addr,
+				   BATADV_PRINT_VID(vid), message);
 			hlist_del_rcu(&orig_entry->list);
 			batadv_tt_orig_list_entry_free_ref(orig_entry);
 		}
@@ -1303,6 +1315,7 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 	struct hlist_node *safe;
 	struct hlist_head *head;
 	spinlock_t *list_lock; /* protects write access to the hash lists */
+	unsigned short vid;
 
 	if (!hash)
 		return;
@@ -1322,9 +1335,11 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 							orig_node, message);
 
 			if (hlist_empty(&tt_global->orig_list)) {
+				vid = tt_global->common.vid;
 				batadv_dbg(BATADV_DBG_TT, bat_priv,
-					   "Deleting global tt entry %pM: %s\n",
-					   tt_global->common.addr, message);
+					   "Deleting global tt entry %pM (vid: %d): %s\n",
+					   tt_global->common.addr,
+					   BATADV_PRINT_VID(vid), message);
 				hlist_del_rcu(&tt_common_entry->hash_entry);
 				batadv_tt_global_entry_free_ref(tt_global);
 			}
@@ -1382,8 +1397,10 @@ static void batadv_tt_global_purge(struct batadv_priv *bat_priv)
 				continue;
 
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting global tt entry (%pM): %s\n",
-				   tt_global->common.addr, msg);
+				   "Deleting global tt entry %pM (vid: %d): %s\n",
+				   tt_global->common.addr,
+				   BATADV_PRINT_VID(tt_global->common.vid),
+				   msg);
 
 			hlist_del_rcu(&tt_common->hash_entry);
 
@@ -2366,8 +2383,8 @@ static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Sending ROAMING_ADV to %pM (client %pM)\n",
-		   orig_node->orig, client);
+		   "Sending ROAMING_ADV to %pM (client %pM, vid: %d)\n",
+		   orig_node->orig, client, BATADV_PRINT_VID(vid));
 
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_TX);
 
@@ -2480,8 +2497,9 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
 				continue;
 
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting local tt entry (%pM): pending\n",
-				   tt_common->addr);
+				   "Deleting local tt entry (%pM, vid: %d): pending\n",
+				   tt_common->addr,
+				   BATADV_PRINT_VID(tt_common->vid));
 
 			atomic_dec(&bat_priv->tt.local_entry_num);
 			hlist_del_rcu(&tt_common->hash_entry);
@@ -2694,7 +2712,7 @@ out:
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
 					  const unsigned char *addr,
-					  unsigned short vlan)
+					  unsigned short vid)
 {
 	bool ret = false;
 
@@ -2705,14 +2723,14 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		goto out;
 
-	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vlan,
+	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Added temporary global client (addr: %pM orig: %pM)\n",
-		   addr, orig_node->orig);
+		   "Added temporary global client (addr: %pM, vid: %d, orig: %pM)\n",
+		   addr, BATADV_PRINT_VID(vid), orig_node->orig);
 	ret = true;
 out:
 	return ret;
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 07/18] batman-adv: print the VID together with the TT entries
@ 2013-10-19 22:21   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:21 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/main.h              |  2 +
 net/batman-adv/translation-table.c | 82 +++++++++++++++++++++++---------------
 2 files changed, 52 insertions(+), 32 deletions(-)

diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 2774d7f..d7dfafe 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -167,6 +167,8 @@ enum batadv_uev_type {
 #include <net/rtnetlink.h>
 #include <linux/jiffies.h>
 #include <linux/seq_file.h>
+#include <linux/if_vlan.h>
+
 #include "types.h"
 
 #define BATADV_PRINT_VID(vid) (vid & BATADV_VLAN_HAS_TAG ? \
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index c8fc303..9bf928c 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -328,8 +328,9 @@ static void batadv_tt_global_free(struct batadv_priv *bat_priv,
 				  const char *message)
 {
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Deleting global tt entry %pM: %s\n",
-		   tt_global->common.addr, message);
+		   "Deleting global tt entry %pM (vid: %d): %s\n",
+		   tt_global->common.addr,
+		   BATADV_PRINT_VID(tt_global->common.vid), message);
 
 	batadv_hash_remove(bat_priv->tt.global_hash, batadv_compare_tt,
 			   batadv_choose_tt, &tt_global->common);
@@ -363,7 +364,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		tt_local->last_seen = jiffies;
 		if (tt_local->common.flags & BATADV_TT_CLIENT_PENDING) {
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Re-adding pending client %pM\n", addr);
+				   "Re-adding pending client %pM (vid: %d)\n",
+				   addr, BATADV_PRINT_VID(vid));
 			/* whatever the reason why the PENDING flag was set,
 			 * this is a client which was enqueued to be removed in
 			 * this orig_interval. Since it popped up again, the
@@ -375,8 +377,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 
 		if (tt_local->common.flags & BATADV_TT_CLIENT_ROAM) {
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Roaming client %pM came back to its original location\n",
-				   addr);
+				   "Roaming client %pM (vid: %d) came back to its original location\n",
+				   addr, BATADV_PRINT_VID(vid));
 			/* the ROAM flag is set because this client roamed away
 			 * and the node got a roaming_advertisement message. Now
 			 * that the client popped up again at its original
@@ -393,7 +395,8 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Creating new local tt entry: %pM (ttvn: %d)\n", addr,
+		   "Creating new local tt entry: %pM (vid: %d, ttvn: %d)\n",
+		   addr, BATADV_PRINT_VID(vid),
 		   (uint8_t)atomic_read(&bat_priv->tt.vn));
 
 	memcpy(tt_local->common.addr, addr, ETH_ALEN);
@@ -562,8 +565,8 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u CRC: %#.8x):\n",
 		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn),
 		   bat_priv->tt.local_crc);
-	seq_printf(seq, "       %-13s %-7s %-10s\n", "Client", "Flags",
-		   "Last seen");
+	seq_printf(seq, "       %-13s  %s %-7s %-10s\n", "Client", "VID",
+		   "Flags", "Last seen");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -581,8 +584,9 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 
 			no_purge = tt_common_entry->flags & np_flag;
 
-			seq_printf(seq, " * %pM [%c%c%c%c%c] %3u.%03u\n",
+			seq_printf(seq, " * %pM %4i [%c%c%c%c%c] %3u.%03u\n",
 				   tt_common_entry->addr,
+				   BATADV_PRINT_VID(tt_common_entry->vid),
 				   (tt_common_entry->flags &
 				    BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 				   no_purge ? 'P' : '.',
@@ -617,8 +621,9 @@ batadv_tt_local_set_pending(struct batadv_priv *bat_priv,
 	tt_local_entry->common.flags |= BATADV_TT_CLIENT_PENDING;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Local tt entry (%pM) pending to be removed: %s\n",
-		   tt_local_entry->common.addr, message);
+		   "Local tt entry (%pM, vid: %d) pending to be removed: %s\n",
+		   tt_local_entry->common.addr,
+		   BATADV_PRINT_VID(tt_local_entry->common.vid), message);
 }
 
 /**
@@ -996,8 +1001,9 @@ add_orig_entry:
 	batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn);
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Creating new global tt entry: %pM (via %pM)\n",
-		   common->addr, orig_node->orig);
+		   "Creating new global tt entry: %pM (vid: %d, via %pM)\n",
+		   common->addr, BATADV_PRINT_VID(common->vid),
+		   orig_node->orig);
 	ret = true;
 
 out_remove:
@@ -1077,8 +1083,9 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 	if (best_entry) {
 		last_ttvn = atomic_read(&best_entry->orig_node->last_ttvn);
 		seq_printf(seq,
-			   " %c %pM  (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
+			   " %c %pM %4i   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '*', tt_global_entry->common.addr,
+			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   best_entry->ttvn, best_entry->orig_node->orig,
 			   last_ttvn, best_entry->orig_node->tt_crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
@@ -1093,8 +1100,10 @@ batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 			continue;
 
 		last_ttvn = atomic_read(&orig_entry->orig_node->last_ttvn);
-		seq_printf(seq,	" %c %pM  (%3u) via %pM     (%3u)   [%c%c%c]\n",
+		seq_printf(seq,
+			   " %c %pM %4d   (%3u) via %pM     (%3u)   [%c%c%c]\n",
 			   '+', tt_global_entry->common.addr,
+			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   orig_entry->ttvn, orig_entry->orig_node->orig,
 			   last_ttvn,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
@@ -1121,9 +1130,9 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
 	seq_printf(seq,
 		   "Globally announced TT entries received via the mesh %s\n",
 		   net_dev->name);
-	seq_printf(seq, "       %-13s %s       %-15s %s (%-10s) %s\n",
-		   "Client", "(TTVN)", "Originator", "(Curr TTVN)", "CRC",
-		   "Flags");
+	seq_printf(seq, "       %-13s  %s  %s       %-15s %s (%-10s) %s\n",
+		   "Client", "VID", "(TTVN)", "Originator", "(Curr TTVN)",
+		   "CRC", "Flags");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -1170,15 +1179,18 @@ batadv_tt_global_del_orig_entry(struct batadv_priv *bat_priv,
 	struct hlist_head *head;
 	struct hlist_node *safe;
 	struct batadv_tt_orig_list_entry *orig_entry;
+	unsigned short vid;
 
 	spin_lock_bh(&tt_global_entry->list_lock);
 	head = &tt_global_entry->orig_list;
 	hlist_for_each_entry_safe(orig_entry, safe, head, list) {
 		if (orig_entry->orig_node == orig_node) {
+			vid = tt_global_entry->common.vid;
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting %pM from global tt entry %pM: %s\n",
+				   "Deleting %pM from global tt entry %pM (vid: %d): %s\n",
 				   orig_node->orig,
-				   tt_global_entry->common.addr, message);
+				   tt_global_entry->common.addr,
+				   BATADV_PRINT_VID(vid), message);
 			hlist_del_rcu(&orig_entry->list);
 			batadv_tt_orig_list_entry_free_ref(orig_entry);
 		}
@@ -1303,6 +1315,7 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 	struct hlist_node *safe;
 	struct hlist_head *head;
 	spinlock_t *list_lock; /* protects write access to the hash lists */
+	unsigned short vid;
 
 	if (!hash)
 		return;
@@ -1322,9 +1335,11 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 							orig_node, message);
 
 			if (hlist_empty(&tt_global->orig_list)) {
+				vid = tt_global->common.vid;
 				batadv_dbg(BATADV_DBG_TT, bat_priv,
-					   "Deleting global tt entry %pM: %s\n",
-					   tt_global->common.addr, message);
+					   "Deleting global tt entry %pM (vid: %d): %s\n",
+					   tt_global->common.addr,
+					   BATADV_PRINT_VID(vid), message);
 				hlist_del_rcu(&tt_common_entry->hash_entry);
 				batadv_tt_global_entry_free_ref(tt_global);
 			}
@@ -1382,8 +1397,10 @@ static void batadv_tt_global_purge(struct batadv_priv *bat_priv)
 				continue;
 
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting global tt entry (%pM): %s\n",
-				   tt_global->common.addr, msg);
+				   "Deleting global tt entry %pM (vid: %d): %s\n",
+				   tt_global->common.addr,
+				   BATADV_PRINT_VID(tt_global->common.vid),
+				   msg);
 
 			hlist_del_rcu(&tt_common->hash_entry);
 
@@ -2366,8 +2383,8 @@ static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client,
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Sending ROAMING_ADV to %pM (client %pM)\n",
-		   orig_node->orig, client);
+		   "Sending ROAMING_ADV to %pM (client %pM, vid: %d)\n",
+		   orig_node->orig, client, BATADV_PRINT_VID(vid));
 
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_ROAM_ADV_TX);
 
@@ -2480,8 +2497,9 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
 				continue;
 
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "Deleting local tt entry (%pM): pending\n",
-				   tt_common->addr);
+				   "Deleting local tt entry (%pM, vid: %d): pending\n",
+				   tt_common->addr,
+				   BATADV_PRINT_VID(tt_common->vid));
 
 			atomic_dec(&bat_priv->tt.local_entry_num);
 			hlist_del_rcu(&tt_common->hash_entry);
@@ -2694,7 +2712,7 @@ out:
 bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig_node,
 					  const unsigned char *addr,
-					  unsigned short vlan)
+					  unsigned short vid)
 {
 	bool ret = false;
 
@@ -2705,14 +2723,14 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		goto out;
 
-	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vlan,
+	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
 		goto out;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
-		   "Added temporary global client (addr: %pM orig: %pM)\n",
-		   addr, orig_node->orig);
+		   "Added temporary global client (addr: %pM, vid: %d, orig: %pM)\n",
+		   addr, BATADV_PRINT_VID(vid), orig_node->orig);
 	ret = true;
 out:
 	return ret;
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 08/18] batman-adv: make the GW module correctly talk to the new VLAN-TT
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

The gateway code is now adapted in order to correctly
interact with the Translation Table component by using the
vlan ID

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/gateway_client.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index a920946..4ed410f 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -726,7 +726,20 @@ bool batadv_gw_is_dhcp_target(struct sk_buff *skb, unsigned int *header_len)
 	return true;
 }
 
-/* this call might reallocate skb data */
+/**
+ * batadv_gw_out_of_range - check if the dhcp request destination is the best gw
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: the outgoing packet
+ *
+ * Check if the skb is a DHCP request and if it is sent to the current best GW
+ * server. Due to topology changes it may be the case that the GW server
+ * previously selected is not the best one anymore.
+ *
+ * Returns true if the packet destination is unicast and it is not the best gw,
+ * false otherwise.
+ *
+ * This call might reallocate skb data.
+ */
 bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 			    struct sk_buff *skb)
 {
@@ -737,6 +750,9 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 	bool ret, out_of_range = false;
 	unsigned int header_len = 0;
 	uint8_t curr_tq_avg;
+	unsigned short vid;
+
+	vid = batadv_get_vid(skb, 0);
 
 	ret = batadv_gw_is_dhcp_target(skb, &header_len);
 	if (!ret)
@@ -744,8 +760,7 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 
 	ethhdr = (struct ethhdr *)skb->data;
 	orig_dst_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						 ethhdr->h_dest,
-						 BATADV_NO_FLAGS);
+						 ethhdr->h_dest, vid);
 	if (!orig_dst_node)
 		goto out;
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 08/18] batman-adv: make the GW module correctly talk to the new VLAN-TT
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

The gateway code is now adapted in order to correctly
interact with the Translation Table component by using the
vlan ID

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/gateway_client.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index a920946..4ed410f 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -726,7 +726,20 @@ bool batadv_gw_is_dhcp_target(struct sk_buff *skb, unsigned int *header_len)
 	return true;
 }
 
-/* this call might reallocate skb data */
+/**
+ * batadv_gw_out_of_range - check if the dhcp request destination is the best gw
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: the outgoing packet
+ *
+ * Check if the skb is a DHCP request and if it is sent to the current best GW
+ * server. Due to topology changes it may be the case that the GW server
+ * previously selected is not the best one anymore.
+ *
+ * Returns true if the packet destination is unicast and it is not the best gw,
+ * false otherwise.
+ *
+ * This call might reallocate skb data.
+ */
 bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 			    struct sk_buff *skb)
 {
@@ -737,6 +750,9 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 	bool ret, out_of_range = false;
 	unsigned int header_len = 0;
 	uint8_t curr_tq_avg;
+	unsigned short vid;
+
+	vid = batadv_get_vid(skb, 0);
 
 	ret = batadv_gw_is_dhcp_target(skb, &header_len);
 	if (!ret)
@@ -744,8 +760,7 @@ bool batadv_gw_out_of_range(struct batadv_priv *bat_priv,
 
 	ethhdr = (struct ethhdr *)skb->data;
 	orig_dst_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						 ethhdr->h_dest,
-						 BATADV_NO_FLAGS);
+						 ethhdr->h_dest, vid);
 	if (!orig_dst_node)
 		goto out;
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 09/18] batman-adv: make the Distributed ARP Table vlan aware
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

The same IP subnet can be used on different VLANs, therefore
DAT has to differentiate whether the IP to resolve belongs
to one or the other virtual LAN.
To accomplish this task DAT has to deal with the VLAN tag
and store it together with each ARP entry.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/distributed-arp-table.c | 153 ++++++++++++++++++++++-----------
 net/batman-adv/types.h                 |   2 +
 2 files changed, 107 insertions(+), 48 deletions(-)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 1b590f0..47dbe9a 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -19,6 +19,7 @@
 
 #include <linux/if_ether.h>
 #include <linux/if_arp.h>
+#include <linux/if_vlan.h>
 #include <net/arp.h>
 
 #include "main.h"
@@ -205,15 +206,11 @@ static __be32 batadv_arp_ip_dst(struct sk_buff *skb, int hdr_size)
  */
 static uint32_t batadv_hash_dat(const void *data, uint32_t size)
 {
-	const unsigned char *key = data;
 	uint32_t hash = 0;
-	size_t i;
+	const struct batadv_dat_entry *dat = data;
 
-	for (i = 0; i < 4; i++) {
-		hash += key[i];
-		hash += (hash << 10);
-		hash ^= (hash >> 6);
-	}
+	hash = batadv_hash_bytes(hash, &dat->ip, sizeof(dat->ip));
+	hash = batadv_hash_bytes(hash, &dat->vid, sizeof(dat->vid));
 
 	hash += (hash << 3);
 	hash ^= (hash >> 11);
@@ -227,21 +224,26 @@ static uint32_t batadv_hash_dat(const void *data, uint32_t size)
  * table
  * @bat_priv: the bat priv with all the soft interface information
  * @ip: search key
+ * @vid: VLAN identifier
  *
  * Returns the dat_entry if found, NULL otherwise.
  */
 static struct batadv_dat_entry *
-batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
+batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip,
+			   unsigned short vid)
 {
 	struct hlist_head *head;
-	struct batadv_dat_entry *dat_entry, *dat_entry_tmp = NULL;
+	struct batadv_dat_entry to_find, *dat_entry, *dat_entry_tmp = NULL;
 	struct batadv_hashtable *hash = bat_priv->dat.hash;
 	uint32_t index;
 
 	if (!hash)
 		return NULL;
 
-	index = batadv_hash_dat(&ip, hash->size);
+	to_find.ip = ip;
+	to_find.vid = vid;
+
+	index = batadv_hash_dat(&to_find, hash->size);
 	head = &hash->table[index];
 
 	rcu_read_lock();
@@ -265,22 +267,24 @@ batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
  * @bat_priv: the bat priv with all the soft interface information
  * @ip: ipv4 to add/edit
  * @mac_addr: mac address to assign to the given ipv4
+ * @vid: VLAN identifier
  */
 static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
-				 uint8_t *mac_addr)
+				 uint8_t *mac_addr, unsigned short vid)
 {
 	struct batadv_dat_entry *dat_entry;
 	int hash_added;
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip, vid);
 	/* if this entry is already known, just update it */
 	if (dat_entry) {
 		if (!batadv_compare_eth(dat_entry->mac_addr, mac_addr))
 			memcpy(dat_entry->mac_addr, mac_addr, ETH_ALEN);
 		dat_entry->last_update = jiffies;
 		batadv_dbg(BATADV_DBG_DAT, bat_priv,
-			   "Entry updated: %pI4 %pM\n", &dat_entry->ip,
-			   dat_entry->mac_addr);
+			   "Entry updated: %pI4 %pM (vid: %d)\n",
+			   &dat_entry->ip, dat_entry->mac_addr,
+			   BATADV_PRINT_VID(vid));
 		goto out;
 	}
 
@@ -289,12 +293,13 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
 		goto out;
 
 	dat_entry->ip = ip;
+	dat_entry->vid = vid;
 	memcpy(dat_entry->mac_addr, mac_addr, ETH_ALEN);
 	dat_entry->last_update = jiffies;
 	atomic_set(&dat_entry->refcount, 2);
 
 	hash_added = batadv_hash_add(bat_priv->dat.hash, batadv_compare_dat,
-				     batadv_hash_dat, &dat_entry->ip,
+				     batadv_hash_dat, dat_entry,
 				     &dat_entry->hash_entry);
 
 	if (unlikely(hash_added != 0)) {
@@ -303,8 +308,8 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
 		goto out;
 	}
 
-	batadv_dbg(BATADV_DBG_DAT, bat_priv, "New entry added: %pI4 %pM\n",
-		   &dat_entry->ip, dat_entry->mac_addr);
+	batadv_dbg(BATADV_DBG_DAT, bat_priv, "New entry added: %pI4 %pM (vid: %d)\n",
+		   &dat_entry->ip, dat_entry->mac_addr, BATADV_PRINT_VID(vid));
 
 out:
 	if (dat_entry)
@@ -756,8 +761,8 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
 		goto out;
 
 	seq_printf(seq, "Distributed ARP Table (%s):\n", net_dev->name);
-	seq_printf(seq, "          %-7s          %-13s %5s\n", "IPv4", "MAC",
-		   "last-seen");
+	seq_printf(seq, "          %-7s          %-9s %4s %11s\n", "IPv4",
+		   "MAC", "VID", "last-seen");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -770,8 +775,9 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
 			last_seen_msecs = last_seen_msecs % 60000;
 			last_seen_secs = last_seen_msecs / 1000;
 
-			seq_printf(seq, " * %15pI4 %14pM %6i:%02i\n",
+			seq_printf(seq, " * %15pI4 %14pM %4i %6i:%02i\n",
 				   &dat_entry->ip, dat_entry->mac_addr,
+				   BATADV_PRINT_VID(dat_entry->vid),
 				   last_seen_mins, last_seen_secs);
 		}
 		rcu_read_unlock();
@@ -858,6 +864,31 @@ out:
 }
 
 /**
+ * batadv_dat_get_vid - extract the VLAN identifier from skb if any
+ * @skb: the buffer containing the packet to extract the VID from
+ * @hdr_size: the size of the batman-adv header encapsulating the packet
+ *
+ * If the packet embedded in the skb is vlan tagged this function returns the
+ * VID with the BATADV_VLAN_HAS_TAG flag. Otherwise BATADV_NO_FLAGS is returned.
+ */
+static unsigned short batadv_dat_get_vid(struct sk_buff *skb, int *hdr_size)
+{
+	unsigned short vid;
+
+	vid = batadv_get_vid(skb, *hdr_size);
+
+	/* ARP parsing functions jump forward of hdr_size + ETH_HLEN.
+	 * If the header contained in the packet is a VLAN one (which is longer)
+	 * hdr_size is updated so that the functions will still skip the
+	 * correct amount of bytes.
+	 */
+	if (vid & BATADV_VLAN_HAS_TAG)
+		*hdr_size += VLAN_HLEN;
+
+	return vid;
+}
+
+/**
  * batadv_dat_snoop_outgoing_arp_request - snoop the ARP request and try to
  * answer using DAT
  * @bat_priv: the bat priv with all the soft interface information
@@ -876,26 +907,31 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 	bool ret = false;
 	struct batadv_dat_entry *dat_entry = NULL;
 	struct sk_buff *skb_new;
+	int hdr_size = 0;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
-	type = batadv_arp_get_type(bat_priv, skb, 0);
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	/* If the node gets an ARP_REQUEST it has to send a DHT_GET unicast
 	 * message to the selected DHT candidates
 	 */
 	if (type != ARPOP_REQUEST)
 		goto out;
 
-	batadv_dbg_arp(bat_priv, skb, type, 0, "Parsing outgoing ARP REQUEST");
+	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
+		       "Parsing outgoing ARP REQUEST");
 
-	ip_src = batadv_arp_ip_src(skb, 0);
-	hw_src = batadv_arp_hw_src(skb, 0);
-	ip_dst = batadv_arp_ip_dst(skb, 0);
+	ip_src = batadv_arp_ip_src(skb, hdr_size);
+	hw_src = batadv_arp_hw_src(skb, hdr_size);
+	ip_dst = batadv_arp_ip_dst(skb, hdr_size);
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	if (dat_entry) {
 		/* If the ARP request is destined for a local client the local
 		 * client will answer itself. DAT would only generate a
@@ -917,11 +953,15 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 		if (!skb_new)
 			goto out;
 
+		if (vid & BATADV_VLAN_HAS_TAG)
+			skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
+						  vid & VLAN_VID_MASK);
+
 		skb_reset_mac_header(skb_new);
 		skb_new->protocol = eth_type_trans(skb_new,
 						   bat_priv->soft_iface);
 		bat_priv->stats.rx_packets++;
-		bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
+		bat_priv->stats.rx_bytes += skb->len + ETH_HLEN + hdr_size;
 		bat_priv->soft_iface->last_rx = jiffies;
 
 		netif_rx(skb_new);
@@ -956,11 +996,14 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	struct sk_buff *skb_new;
 	struct batadv_dat_entry *dat_entry = NULL;
 	bool ret = false;
+	unsigned short vid;
 	int err;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
 	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REQUEST)
 		goto out;
@@ -972,9 +1015,9 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
 		       "Parsing incoming ARP REQUEST");
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	if (!dat_entry)
 		goto out;
 
@@ -985,6 +1028,10 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	if (!skb_new)
 		goto out;
 
+	if (vid & BATADV_VLAN_HAS_TAG)
+		skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
+					  vid & VLAN_VID_MASK);
+
 	/* To preserve backwards compatibility, the node has choose the outgoing
 	 * format based on the incoming request packet type. The assumption is
 	 * that a node not using the 4addr packet format doesn't support it.
@@ -992,10 +1039,9 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
 		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
 						    BATADV_P_DAT_CACHE_REPLY,
-						    BATADV_NO_FLAGS);
+						    vid);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new,
-					      BATADV_NO_FLAGS);
+		err = batadv_send_skb_unicast(bat_priv, skb_new, vid);
 
 	if (!err) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
@@ -1020,23 +1066,28 @@ void batadv_dat_snoop_outgoing_arp_reply(struct batadv_priv *bat_priv,
 	uint16_t type;
 	__be32 ip_src, ip_dst;
 	uint8_t *hw_src, *hw_dst;
+	int hdr_size = 0;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		return;
 
-	type = batadv_arp_get_type(bat_priv, skb, 0);
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REPLY)
 		return;
 
-	batadv_dbg_arp(bat_priv, skb, type, 0, "Parsing outgoing ARP REPLY");
+	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
+		       "Parsing outgoing ARP REPLY");
 
-	hw_src = batadv_arp_hw_src(skb, 0);
-	ip_src = batadv_arp_ip_src(skb, 0);
-	hw_dst = batadv_arp_hw_dst(skb, 0);
-	ip_dst = batadv_arp_ip_dst(skb, 0);
+	hw_src = batadv_arp_hw_src(skb, hdr_size);
+	ip_src = batadv_arp_ip_src(skb, hdr_size);
+	hw_dst = batadv_arp_hw_dst(skb, hdr_size);
+	ip_dst = batadv_arp_ip_dst(skb, hdr_size);
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
-	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
+	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst, vid);
 
 	/* Send the ARP reply to the candidates for both the IP addresses that
 	 * the node obtained from the ARP reply
@@ -1058,10 +1109,13 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	__be32 ip_src, ip_dst;
 	uint8_t *hw_src, *hw_dst;
 	bool ret = false;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
 	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REPLY)
 		goto out;
@@ -1077,13 +1131,13 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	/* Update our internal cache with both the IP addresses the node got
 	 * within the ARP reply
 	 */
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
-	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
+	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst, vid);
 
 	/* if this REPLY is directed to a client of mine, let's deliver the
 	 * packet to the interface
 	 */
-	ret = !batadv_is_my_client(bat_priv, hw_dst, BATADV_NO_FLAGS);
+	ret = !batadv_is_my_client(bat_priv, hw_dst, vid);
 out:
 	if (ret)
 		kfree_skb(skb);
@@ -1106,7 +1160,8 @@ bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv,
 	__be32 ip_dst;
 	struct batadv_dat_entry *dat_entry = NULL;
 	bool ret = false;
-	const size_t bcast_len = sizeof(struct batadv_bcast_packet);
+	int hdr_size = sizeof(struct batadv_bcast_packet);
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
@@ -1117,12 +1172,14 @@ bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv,
 	if (forw_packet->num_packets)
 		goto out;
 
-	type = batadv_arp_get_type(bat_priv, forw_packet->skb, bcast_len);
+	vid = batadv_dat_get_vid(forw_packet->skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, forw_packet->skb, hdr_size);
 	if (type != ARPOP_REQUEST)
 		goto out;
 
-	ip_dst = batadv_arp_ip_dst(forw_packet->skb, bcast_len);
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	ip_dst = batadv_arp_ip_dst(forw_packet->skb, hdr_size);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	/* check if the node already got this entry */
 	if (!dat_entry) {
 		batadv_dbg(BATADV_DBG_DAT, bat_priv,
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 99029c5..6954a5d 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -933,6 +933,7 @@ struct batadv_algo_ops {
  * is used to stored ARP entries needed for the global DAT cache
  * @ip: the IPv4 corresponding to this DAT/ARP entry
  * @mac_addr: the MAC address associated to the stored IPv4
+ * @vid: the vlan ID associated to this entry
  * @last_update: time in jiffies when this entry was refreshed last time
  * @hash_entry: hlist node for batadv_priv_dat::hash
  * @refcount: number of contexts the object is used
@@ -941,6 +942,7 @@ struct batadv_algo_ops {
 struct batadv_dat_entry {
 	__be32 ip;
 	uint8_t mac_addr[ETH_ALEN];
+	unsigned short vid;
 	unsigned long last_update;
 	struct hlist_node hash_entry;
 	atomic_t refcount;
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 09/18] batman-adv: make the Distributed ARP Table vlan aware
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

The same IP subnet can be used on different VLANs, therefore
DAT has to differentiate whether the IP to resolve belongs
to one or the other virtual LAN.
To accomplish this task DAT has to deal with the VLAN tag
and store it together with each ARP entry.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/distributed-arp-table.c | 153 ++++++++++++++++++++++-----------
 net/batman-adv/types.h                 |   2 +
 2 files changed, 107 insertions(+), 48 deletions(-)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 1b590f0..47dbe9a 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -19,6 +19,7 @@
 
 #include <linux/if_ether.h>
 #include <linux/if_arp.h>
+#include <linux/if_vlan.h>
 #include <net/arp.h>
 
 #include "main.h"
@@ -205,15 +206,11 @@ static __be32 batadv_arp_ip_dst(struct sk_buff *skb, int hdr_size)
  */
 static uint32_t batadv_hash_dat(const void *data, uint32_t size)
 {
-	const unsigned char *key = data;
 	uint32_t hash = 0;
-	size_t i;
+	const struct batadv_dat_entry *dat = data;
 
-	for (i = 0; i < 4; i++) {
-		hash += key[i];
-		hash += (hash << 10);
-		hash ^= (hash >> 6);
-	}
+	hash = batadv_hash_bytes(hash, &dat->ip, sizeof(dat->ip));
+	hash = batadv_hash_bytes(hash, &dat->vid, sizeof(dat->vid));
 
 	hash += (hash << 3);
 	hash ^= (hash >> 11);
@@ -227,21 +224,26 @@ static uint32_t batadv_hash_dat(const void *data, uint32_t size)
  * table
  * @bat_priv: the bat priv with all the soft interface information
  * @ip: search key
+ * @vid: VLAN identifier
  *
  * Returns the dat_entry if found, NULL otherwise.
  */
 static struct batadv_dat_entry *
-batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
+batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip,
+			   unsigned short vid)
 {
 	struct hlist_head *head;
-	struct batadv_dat_entry *dat_entry, *dat_entry_tmp = NULL;
+	struct batadv_dat_entry to_find, *dat_entry, *dat_entry_tmp = NULL;
 	struct batadv_hashtable *hash = bat_priv->dat.hash;
 	uint32_t index;
 
 	if (!hash)
 		return NULL;
 
-	index = batadv_hash_dat(&ip, hash->size);
+	to_find.ip = ip;
+	to_find.vid = vid;
+
+	index = batadv_hash_dat(&to_find, hash->size);
 	head = &hash->table[index];
 
 	rcu_read_lock();
@@ -265,22 +267,24 @@ batadv_dat_entry_hash_find(struct batadv_priv *bat_priv, __be32 ip)
  * @bat_priv: the bat priv with all the soft interface information
  * @ip: ipv4 to add/edit
  * @mac_addr: mac address to assign to the given ipv4
+ * @vid: VLAN identifier
  */
 static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
-				 uint8_t *mac_addr)
+				 uint8_t *mac_addr, unsigned short vid)
 {
 	struct batadv_dat_entry *dat_entry;
 	int hash_added;
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip, vid);
 	/* if this entry is already known, just update it */
 	if (dat_entry) {
 		if (!batadv_compare_eth(dat_entry->mac_addr, mac_addr))
 			memcpy(dat_entry->mac_addr, mac_addr, ETH_ALEN);
 		dat_entry->last_update = jiffies;
 		batadv_dbg(BATADV_DBG_DAT, bat_priv,
-			   "Entry updated: %pI4 %pM\n", &dat_entry->ip,
-			   dat_entry->mac_addr);
+			   "Entry updated: %pI4 %pM (vid: %d)\n",
+			   &dat_entry->ip, dat_entry->mac_addr,
+			   BATADV_PRINT_VID(vid));
 		goto out;
 	}
 
@@ -289,12 +293,13 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
 		goto out;
 
 	dat_entry->ip = ip;
+	dat_entry->vid = vid;
 	memcpy(dat_entry->mac_addr, mac_addr, ETH_ALEN);
 	dat_entry->last_update = jiffies;
 	atomic_set(&dat_entry->refcount, 2);
 
 	hash_added = batadv_hash_add(bat_priv->dat.hash, batadv_compare_dat,
-				     batadv_hash_dat, &dat_entry->ip,
+				     batadv_hash_dat, dat_entry,
 				     &dat_entry->hash_entry);
 
 	if (unlikely(hash_added != 0)) {
@@ -303,8 +308,8 @@ static void batadv_dat_entry_add(struct batadv_priv *bat_priv, __be32 ip,
 		goto out;
 	}
 
-	batadv_dbg(BATADV_DBG_DAT, bat_priv, "New entry added: %pI4 %pM\n",
-		   &dat_entry->ip, dat_entry->mac_addr);
+	batadv_dbg(BATADV_DBG_DAT, bat_priv, "New entry added: %pI4 %pM (vid: %d)\n",
+		   &dat_entry->ip, dat_entry->mac_addr, BATADV_PRINT_VID(vid));
 
 out:
 	if (dat_entry)
@@ -756,8 +761,8 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
 		goto out;
 
 	seq_printf(seq, "Distributed ARP Table (%s):\n", net_dev->name);
-	seq_printf(seq, "          %-7s          %-13s %5s\n", "IPv4", "MAC",
-		   "last-seen");
+	seq_printf(seq, "          %-7s          %-9s %4s %11s\n", "IPv4",
+		   "MAC", "VID", "last-seen");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -770,8 +775,9 @@ int batadv_dat_cache_seq_print_text(struct seq_file *seq, void *offset)
 			last_seen_msecs = last_seen_msecs % 60000;
 			last_seen_secs = last_seen_msecs / 1000;
 
-			seq_printf(seq, " * %15pI4 %14pM %6i:%02i\n",
+			seq_printf(seq, " * %15pI4 %14pM %4i %6i:%02i\n",
 				   &dat_entry->ip, dat_entry->mac_addr,
+				   BATADV_PRINT_VID(dat_entry->vid),
 				   last_seen_mins, last_seen_secs);
 		}
 		rcu_read_unlock();
@@ -858,6 +864,31 @@ out:
 }
 
 /**
+ * batadv_dat_get_vid - extract the VLAN identifier from skb if any
+ * @skb: the buffer containing the packet to extract the VID from
+ * @hdr_size: the size of the batman-adv header encapsulating the packet
+ *
+ * If the packet embedded in the skb is vlan tagged this function returns the
+ * VID with the BATADV_VLAN_HAS_TAG flag. Otherwise BATADV_NO_FLAGS is returned.
+ */
+static unsigned short batadv_dat_get_vid(struct sk_buff *skb, int *hdr_size)
+{
+	unsigned short vid;
+
+	vid = batadv_get_vid(skb, *hdr_size);
+
+	/* ARP parsing functions jump forward of hdr_size + ETH_HLEN.
+	 * If the header contained in the packet is a VLAN one (which is longer)
+	 * hdr_size is updated so that the functions will still skip the
+	 * correct amount of bytes.
+	 */
+	if (vid & BATADV_VLAN_HAS_TAG)
+		*hdr_size += VLAN_HLEN;
+
+	return vid;
+}
+
+/**
  * batadv_dat_snoop_outgoing_arp_request - snoop the ARP request and try to
  * answer using DAT
  * @bat_priv: the bat priv with all the soft interface information
@@ -876,26 +907,31 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 	bool ret = false;
 	struct batadv_dat_entry *dat_entry = NULL;
 	struct sk_buff *skb_new;
+	int hdr_size = 0;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
-	type = batadv_arp_get_type(bat_priv, skb, 0);
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	/* If the node gets an ARP_REQUEST it has to send a DHT_GET unicast
 	 * message to the selected DHT candidates
 	 */
 	if (type != ARPOP_REQUEST)
 		goto out;
 
-	batadv_dbg_arp(bat_priv, skb, type, 0, "Parsing outgoing ARP REQUEST");
+	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
+		       "Parsing outgoing ARP REQUEST");
 
-	ip_src = batadv_arp_ip_src(skb, 0);
-	hw_src = batadv_arp_hw_src(skb, 0);
-	ip_dst = batadv_arp_ip_dst(skb, 0);
+	ip_src = batadv_arp_ip_src(skb, hdr_size);
+	hw_src = batadv_arp_hw_src(skb, hdr_size);
+	ip_dst = batadv_arp_ip_dst(skb, hdr_size);
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	if (dat_entry) {
 		/* If the ARP request is destined for a local client the local
 		 * client will answer itself. DAT would only generate a
@@ -917,11 +953,15 @@ bool batadv_dat_snoop_outgoing_arp_request(struct batadv_priv *bat_priv,
 		if (!skb_new)
 			goto out;
 
+		if (vid & BATADV_VLAN_HAS_TAG)
+			skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
+						  vid & VLAN_VID_MASK);
+
 		skb_reset_mac_header(skb_new);
 		skb_new->protocol = eth_type_trans(skb_new,
 						   bat_priv->soft_iface);
 		bat_priv->stats.rx_packets++;
-		bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
+		bat_priv->stats.rx_bytes += skb->len + ETH_HLEN + hdr_size;
 		bat_priv->soft_iface->last_rx = jiffies;
 
 		netif_rx(skb_new);
@@ -956,11 +996,14 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	struct sk_buff *skb_new;
 	struct batadv_dat_entry *dat_entry = NULL;
 	bool ret = false;
+	unsigned short vid;
 	int err;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
 	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REQUEST)
 		goto out;
@@ -972,9 +1015,9 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
 		       "Parsing incoming ARP REQUEST");
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
 
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	if (!dat_entry)
 		goto out;
 
@@ -985,6 +1028,10 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	if (!skb_new)
 		goto out;
 
+	if (vid & BATADV_VLAN_HAS_TAG)
+		skb_new = vlan_insert_tag(skb_new, htons(ETH_P_8021Q),
+					  vid & VLAN_VID_MASK);
+
 	/* To preserve backwards compatibility, the node has choose the outgoing
 	 * format based on the incoming request packet type. The assumption is
 	 * that a node not using the 4addr packet format doesn't support it.
@@ -992,10 +1039,9 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
 		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
 						    BATADV_P_DAT_CACHE_REPLY,
-						    BATADV_NO_FLAGS);
+						    vid);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new,
-					      BATADV_NO_FLAGS);
+		err = batadv_send_skb_unicast(bat_priv, skb_new, vid);
 
 	if (!err) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
@@ -1020,23 +1066,28 @@ void batadv_dat_snoop_outgoing_arp_reply(struct batadv_priv *bat_priv,
 	uint16_t type;
 	__be32 ip_src, ip_dst;
 	uint8_t *hw_src, *hw_dst;
+	int hdr_size = 0;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		return;
 
-	type = batadv_arp_get_type(bat_priv, skb, 0);
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REPLY)
 		return;
 
-	batadv_dbg_arp(bat_priv, skb, type, 0, "Parsing outgoing ARP REPLY");
+	batadv_dbg_arp(bat_priv, skb, type, hdr_size,
+		       "Parsing outgoing ARP REPLY");
 
-	hw_src = batadv_arp_hw_src(skb, 0);
-	ip_src = batadv_arp_ip_src(skb, 0);
-	hw_dst = batadv_arp_hw_dst(skb, 0);
-	ip_dst = batadv_arp_ip_dst(skb, 0);
+	hw_src = batadv_arp_hw_src(skb, hdr_size);
+	ip_src = batadv_arp_ip_src(skb, hdr_size);
+	hw_dst = batadv_arp_hw_dst(skb, hdr_size);
+	ip_dst = batadv_arp_ip_dst(skb, hdr_size);
 
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
-	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
+	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst, vid);
 
 	/* Send the ARP reply to the candidates for both the IP addresses that
 	 * the node obtained from the ARP reply
@@ -1058,10 +1109,13 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	__be32 ip_src, ip_dst;
 	uint8_t *hw_src, *hw_dst;
 	bool ret = false;
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
 
+	vid = batadv_dat_get_vid(skb, &hdr_size);
+
 	type = batadv_arp_get_type(bat_priv, skb, hdr_size);
 	if (type != ARPOP_REPLY)
 		goto out;
@@ -1077,13 +1131,13 @@ bool batadv_dat_snoop_incoming_arp_reply(struct batadv_priv *bat_priv,
 	/* Update our internal cache with both the IP addresses the node got
 	 * within the ARP reply
 	 */
-	batadv_dat_entry_add(bat_priv, ip_src, hw_src);
-	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst);
+	batadv_dat_entry_add(bat_priv, ip_src, hw_src, vid);
+	batadv_dat_entry_add(bat_priv, ip_dst, hw_dst, vid);
 
 	/* if this REPLY is directed to a client of mine, let's deliver the
 	 * packet to the interface
 	 */
-	ret = !batadv_is_my_client(bat_priv, hw_dst, BATADV_NO_FLAGS);
+	ret = !batadv_is_my_client(bat_priv, hw_dst, vid);
 out:
 	if (ret)
 		kfree_skb(skb);
@@ -1106,7 +1160,8 @@ bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv,
 	__be32 ip_dst;
 	struct batadv_dat_entry *dat_entry = NULL;
 	bool ret = false;
-	const size_t bcast_len = sizeof(struct batadv_bcast_packet);
+	int hdr_size = sizeof(struct batadv_bcast_packet);
+	unsigned short vid;
 
 	if (!atomic_read(&bat_priv->distributed_arp_table))
 		goto out;
@@ -1117,12 +1172,14 @@ bool batadv_dat_drop_broadcast_packet(struct batadv_priv *bat_priv,
 	if (forw_packet->num_packets)
 		goto out;
 
-	type = batadv_arp_get_type(bat_priv, forw_packet->skb, bcast_len);
+	vid = batadv_dat_get_vid(forw_packet->skb, &hdr_size);
+
+	type = batadv_arp_get_type(bat_priv, forw_packet->skb, hdr_size);
 	if (type != ARPOP_REQUEST)
 		goto out;
 
-	ip_dst = batadv_arp_ip_dst(forw_packet->skb, bcast_len);
-	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst);
+	ip_dst = batadv_arp_ip_dst(forw_packet->skb, hdr_size);
+	dat_entry = batadv_dat_entry_hash_find(bat_priv, ip_dst, vid);
 	/* check if the node already got this entry */
 	if (!dat_entry) {
 		batadv_dbg(BATADV_DBG_DAT, bat_priv,
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 99029c5..6954a5d 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -933,6 +933,7 @@ struct batadv_algo_ops {
  * is used to stored ARP entries needed for the global DAT cache
  * @ip: the IPv4 corresponding to this DAT/ARP entry
  * @mac_addr: the MAC address associated to the stored IPv4
+ * @vid: the vlan ID associated to this entry
  * @last_update: time in jiffies when this entry was refreshed last time
  * @hash_entry: hlist node for batadv_priv_dat::hash
  * @refcount: number of contexts the object is used
@@ -941,6 +942,7 @@ struct batadv_algo_ops {
 struct batadv_dat_entry {
 	__be32 ip;
 	uint8_t mac_addr[ETH_ALEN];
+	unsigned short vid;
 	unsigned long last_update;
 	struct hlist_node hash_entry;
 	atomic_t refcount;
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 10/18] batman-adv: add per VLAN interface attribute framework
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

Since batman-adv is now fully VLAN-aware, a proper framework
able to handle per-vlan-interface attributes is needed.

Those attributes will affect the associated VLAN interface
only, rather than the real soft_iface (which would result
in every vlan interface having the same attribute
configuration).

To make the code simpler and easier to extend, attributes
associated to the standalone soft_iface are now treated
like belonging to yet another vlan having a special vid.
This vid is different from the others because it is made up
by all zeros and the VLAN_HAS_TAG bit is not set.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/hard-interface.c |   2 +
 net/batman-adv/main.c           |   5 +-
 net/batman-adv/soft-interface.c | 171 ++++++++++++++++++++++++++++++++++++++++
 net/batman-adv/soft-interface.h |   1 +
 net/batman-adv/types.h          |  21 +++++
 5 files changed, 197 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index d564af2..c5f871f 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -643,6 +643,8 @@ static int batadv_hard_if_event(struct notifier_block *this,
 
 	if (batadv_softif_is_valid(net_dev) && event == NETDEV_REGISTER) {
 		batadv_sysfs_add_meshif(net_dev);
+		bat_priv = netdev_priv(net_dev);
+		batadv_softif_create_vlan(bat_priv, BATADV_NO_FLAGS);
 		return NOTIFY_DONE;
 	}
 
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 80f60d1..2207551 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -113,6 +113,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	spin_lock_init(&bat_priv->gw.list_lock);
 	spin_lock_init(&bat_priv->tvlv.container_list_lock);
 	spin_lock_init(&bat_priv->tvlv.handler_list_lock);
+	spin_lock_init(&bat_priv->softif_vlan_list_lock);
 
 	INIT_HLIST_HEAD(&bat_priv->forw_bat_list);
 	INIT_HLIST_HEAD(&bat_priv->forw_bcast_list);
@@ -122,6 +123,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	INIT_LIST_HEAD(&bat_priv->tt.roam_list);
 	INIT_HLIST_HEAD(&bat_priv->tvlv.container_list);
 	INIT_HLIST_HEAD(&bat_priv->tvlv.handler_list);
+	INIT_HLIST_HEAD(&bat_priv->softif_vlan_list);
 
 	ret = batadv_originator_init(bat_priv);
 	if (ret < 0)
@@ -131,9 +133,6 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	if (ret < 0)
 		goto err;
 
-	batadv_tt_local_add(soft_iface, soft_iface->dev_addr,
-			    BATADV_NO_FLAGS, BATADV_NULL_IFINDEX);
-
 	ret = batadv_bla_init(bat_priv);
 	if (ret < 0)
 		goto err;
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 279e91d..936b83b 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -393,6 +393,166 @@ out:
 	return;
 }
 
+/**
+ * batadv_softif_vlan_free_ref - decrease the vlan object refcounter and
+ *  possibly free it
+ * @softif_vlan: the vlan object to release
+ */
+static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
+{
+	if (atomic_dec_and_test(&softif_vlan->refcount))
+		kfree_rcu(softif_vlan, rcu);
+}
+
+/**
+ * batadv_softif_vlan_get - get the vlan object for a specific vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the identifier of the vlan object to retrieve
+ *
+ * Returns the private data of the vlan matching the vid passed as argument or
+ * NULL otherwise. The refcounter of the returned object is incremented by 1.
+ */
+static struct batadv_softif_vlan *
+batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
+{
+	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
+		if (vlan_tmp->vid != vid)
+			continue;
+
+		if (!atomic_inc_not_zero(&vlan_tmp->refcount))
+			continue;
+
+		vlan = vlan_tmp;
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
+/**
+ * batadv_create_vlan - allocate the needed resources for a new vlan
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ *
+ * Returns 0 on success, a negative error otherwise.
+ */
+int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
+{
+	struct batadv_softif_vlan *vlan;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (vlan) {
+		batadv_softif_vlan_free_ref(vlan);
+		return -EEXIST;
+	}
+
+	vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+	if (!vlan)
+		return -ENOMEM;
+
+	vlan->vid = vid;
+	atomic_set(&vlan->refcount, 1);
+
+	/* add a new TT local entry. This one will be marked with the NOPURGE
+	 * flag
+	 */
+	batadv_tt_local_add(bat_priv->soft_iface,
+			    bat_priv->soft_iface->dev_addr, vid,
+			    BATADV_NULL_IFINDEX);
+
+	spin_lock_bh(&bat_priv->softif_vlan_list_lock);
+	hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list);
+	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
+
+	return 0;
+}
+
+/**
+ * batadv_softif_destroy_vlan - remove and destroy a softif_vlan object
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vlan: the object to remove
+ */
+static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
+				       struct batadv_softif_vlan *vlan)
+{
+	spin_lock_bh(&bat_priv->softif_vlan_list_lock);
+	hlist_del_rcu(&vlan->list);
+	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
+
+	/* explicitly remove the associated TT local entry because it is marked
+	 * with the NOPURGE flag
+	 */
+	batadv_tt_local_remove(bat_priv, bat_priv->soft_iface->dev_addr,
+			       vlan->vid, "vlan interface destroyed", false);
+
+	batadv_softif_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_interface_add_vid - ndo_add_vid API implementation
+ * @dev: the netdev of the mesh interface
+ * @vid: identifier of the new vlan
+ *
+ * Set up all the internal structures for handling the new vlan on top of the
+ * mesh interface
+ *
+ * Returns 0 on success or a negative error code in case of failure.
+ */
+static int batadv_interface_add_vid(struct net_device *dev, __be16 proto,
+				    unsigned short vid)
+{
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+
+	/* only 802.1Q vlans are supported.
+	 * batman-adv does not know how to handle other types
+	 */
+	if (proto != htons(ETH_P_8021Q))
+		return -EINVAL;
+
+	vid |= BATADV_VLAN_HAS_TAG;
+
+	return batadv_softif_create_vlan(bat_priv, vid);
+}
+
+/**
+ * batadv_interface_kill_vid - ndo_kill_vid API implementation
+ * @dev: the netdev of the mesh interface
+ * @vid: identifier of the deleted vlan
+ *
+ * Destroy all the internal structures used to handle the vlan identified by vid
+ * on top of the mesh interface
+ *
+ * Returns 0 on success, -EINVAL if the specified prototype is not ETH_P_8021Q
+ * or -ENOENT if the specified vlan id wasn't registered.
+ */
+static int batadv_interface_kill_vid(struct net_device *dev, __be16 proto,
+				     unsigned short vid)
+{
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+	struct batadv_softif_vlan *vlan;
+
+	/* only 802.1Q vlans are supported. batman-adv does not know how to
+	 * handle other types
+	 */
+	if (proto != htons(ETH_P_8021Q))
+		return -EINVAL;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG);
+	if (!vlan)
+		return -ENOENT;
+
+	batadv_softif_destroy_vlan(bat_priv, vlan);
+
+	/* finally free the vlan object */
+	batadv_softif_vlan_free_ref(vlan);
+
+	return 0;
+}
+
 /* batman-adv network devices have devices nesting below it and are a special
  * "super class" of normal network devices; split their locks off into a
  * separate class since they always nest.
@@ -432,6 +592,7 @@ static void batadv_set_lockdep_class(struct net_device *dev)
  */
 static void batadv_softif_destroy_finish(struct work_struct *work)
 {
+	struct batadv_softif_vlan *vlan;
 	struct batadv_priv *bat_priv;
 	struct net_device *soft_iface;
 
@@ -439,6 +600,13 @@ static void batadv_softif_destroy_finish(struct work_struct *work)
 				cleanup_work);
 	soft_iface = bat_priv->soft_iface;
 
+	/* destroy the "untagged" VLAN */
+	vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS);
+	if (vlan) {
+		batadv_softif_destroy_vlan(bat_priv, vlan);
+		batadv_softif_vlan_free_ref(vlan);
+	}
+
 	batadv_sysfs_del_meshif(soft_iface);
 
 	rtnl_lock();
@@ -594,6 +762,8 @@ static const struct net_device_ops batadv_netdev_ops = {
 	.ndo_open = batadv_interface_open,
 	.ndo_stop = batadv_interface_release,
 	.ndo_get_stats = batadv_interface_stats,
+	.ndo_vlan_rx_add_vid = batadv_interface_add_vid,
+	.ndo_vlan_rx_kill_vid = batadv_interface_kill_vid,
 	.ndo_set_mac_address = batadv_interface_set_mac_addr,
 	.ndo_change_mtu = batadv_interface_change_mtu,
 	.ndo_set_rx_mode = batadv_interface_set_rx_mode,
@@ -633,6 +803,7 @@ static void batadv_softif_init_early(struct net_device *dev)
 
 	dev->netdev_ops = &batadv_netdev_ops;
 	dev->destructor = batadv_softif_free;
+	dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
 	dev->tx_queue_len = 0;
 
 	/* can't call min_mtu, because the needed variables
diff --git a/net/batman-adv/soft-interface.h b/net/batman-adv/soft-interface.h
index 2f2472c..16d9be6 100644
--- a/net/batman-adv/soft-interface.h
+++ b/net/batman-adv/soft-interface.h
@@ -28,5 +28,6 @@ struct net_device *batadv_softif_create(const char *name);
 void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
 int batadv_softif_is_valid(const struct net_device *net_dev);
 extern struct rtnl_link_ops batadv_link_ops;
+int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 6954a5d..e5fecd4 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -531,6 +531,22 @@ struct batadv_priv_nc {
 };
 
 /**
+ * struct batadv_softif_vlan - per VLAN attributes set
+ * @vid: VLAN identifier
+ * @kobj: kobject for sysfs vlan subdirectory
+ * @list: list node for bat_priv::softif_vlan_list
+ * @refcount: number of context where this object is currently in use
+ * @rcu: struct used for freeing in a RCU-safe manner
+ */
+struct batadv_softif_vlan {
+	unsigned short vid;
+	struct kobject *kobj;
+	struct hlist_node list;
+	atomic_t refcount;
+	struct rcu_head rcu;
+};
+
+/**
  * struct batadv_priv - per mesh interface data
  * @mesh_state: current status of the mesh (inactive/active/deactivating)
  * @soft_iface: net device which holds this struct as private data
@@ -566,6 +582,9 @@ struct batadv_priv_nc {
  * @primary_if: one of the hard interfaces assigned to this mesh interface
  *  becomes the primary interface
  * @bat_algo_ops: routing algorithm used by this mesh interface
+ * @softif_vlan_list: a list of softif_vlan structs, one per VLAN created on top
+ *  of the mesh interface represented by this object
+ * @softif_vlan_list_lock: lock protecting softif_vlan_list
  * @bla: bridge loope avoidance data
  * @debug_log: holding debug logging relevant data
  * @gw: gateway data
@@ -613,6 +632,8 @@ struct batadv_priv {
 	struct work_struct cleanup_work;
 	struct batadv_hard_iface __rcu *primary_if;  /* rcu protected pointer */
 	struct batadv_algo_ops *bat_algo_ops;
+	struct hlist_head softif_vlan_list;
+	spinlock_t softif_vlan_list_lock; /* protects softif_vlan_list */
 #ifdef CONFIG_BATMAN_ADV_BLA
 	struct batadv_priv_bla bla;
 #endif
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 10/18] batman-adv: add per VLAN interface attribute framework
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

Since batman-adv is now fully VLAN-aware, a proper framework
able to handle per-vlan-interface attributes is needed.

Those attributes will affect the associated VLAN interface
only, rather than the real soft_iface (which would result
in every vlan interface having the same attribute
configuration).

To make the code simpler and easier to extend, attributes
associated to the standalone soft_iface are now treated
like belonging to yet another vlan having a special vid.
This vid is different from the others because it is made up
by all zeros and the VLAN_HAS_TAG bit is not set.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/hard-interface.c |   2 +
 net/batman-adv/main.c           |   5 +-
 net/batman-adv/soft-interface.c | 171 ++++++++++++++++++++++++++++++++++++++++
 net/batman-adv/soft-interface.h |   1 +
 net/batman-adv/types.h          |  21 +++++
 5 files changed, 197 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index d564af2..c5f871f 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -643,6 +643,8 @@ static int batadv_hard_if_event(struct notifier_block *this,
 
 	if (batadv_softif_is_valid(net_dev) && event == NETDEV_REGISTER) {
 		batadv_sysfs_add_meshif(net_dev);
+		bat_priv = netdev_priv(net_dev);
+		batadv_softif_create_vlan(bat_priv, BATADV_NO_FLAGS);
 		return NOTIFY_DONE;
 	}
 
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 80f60d1..2207551 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -113,6 +113,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	spin_lock_init(&bat_priv->gw.list_lock);
 	spin_lock_init(&bat_priv->tvlv.container_list_lock);
 	spin_lock_init(&bat_priv->tvlv.handler_list_lock);
+	spin_lock_init(&bat_priv->softif_vlan_list_lock);
 
 	INIT_HLIST_HEAD(&bat_priv->forw_bat_list);
 	INIT_HLIST_HEAD(&bat_priv->forw_bcast_list);
@@ -122,6 +123,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	INIT_LIST_HEAD(&bat_priv->tt.roam_list);
 	INIT_HLIST_HEAD(&bat_priv->tvlv.container_list);
 	INIT_HLIST_HEAD(&bat_priv->tvlv.handler_list);
+	INIT_HLIST_HEAD(&bat_priv->softif_vlan_list);
 
 	ret = batadv_originator_init(bat_priv);
 	if (ret < 0)
@@ -131,9 +133,6 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	if (ret < 0)
 		goto err;
 
-	batadv_tt_local_add(soft_iface, soft_iface->dev_addr,
-			    BATADV_NO_FLAGS, BATADV_NULL_IFINDEX);
-
 	ret = batadv_bla_init(bat_priv);
 	if (ret < 0)
 		goto err;
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 279e91d..936b83b 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -393,6 +393,166 @@ out:
 	return;
 }
 
+/**
+ * batadv_softif_vlan_free_ref - decrease the vlan object refcounter and
+ *  possibly free it
+ * @softif_vlan: the vlan object to release
+ */
+static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
+{
+	if (atomic_dec_and_test(&softif_vlan->refcount))
+		kfree_rcu(softif_vlan, rcu);
+}
+
+/**
+ * batadv_softif_vlan_get - get the vlan object for a specific vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the identifier of the vlan object to retrieve
+ *
+ * Returns the private data of the vlan matching the vid passed as argument or
+ * NULL otherwise. The refcounter of the returned object is incremented by 1.
+ */
+static struct batadv_softif_vlan *
+batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
+{
+	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
+		if (vlan_tmp->vid != vid)
+			continue;
+
+		if (!atomic_inc_not_zero(&vlan_tmp->refcount))
+			continue;
+
+		vlan = vlan_tmp;
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
+/**
+ * batadv_create_vlan - allocate the needed resources for a new vlan
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ *
+ * Returns 0 on success, a negative error otherwise.
+ */
+int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
+{
+	struct batadv_softif_vlan *vlan;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (vlan) {
+		batadv_softif_vlan_free_ref(vlan);
+		return -EEXIST;
+	}
+
+	vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+	if (!vlan)
+		return -ENOMEM;
+
+	vlan->vid = vid;
+	atomic_set(&vlan->refcount, 1);
+
+	/* add a new TT local entry. This one will be marked with the NOPURGE
+	 * flag
+	 */
+	batadv_tt_local_add(bat_priv->soft_iface,
+			    bat_priv->soft_iface->dev_addr, vid,
+			    BATADV_NULL_IFINDEX);
+
+	spin_lock_bh(&bat_priv->softif_vlan_list_lock);
+	hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list);
+	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
+
+	return 0;
+}
+
+/**
+ * batadv_softif_destroy_vlan - remove and destroy a softif_vlan object
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vlan: the object to remove
+ */
+static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
+				       struct batadv_softif_vlan *vlan)
+{
+	spin_lock_bh(&bat_priv->softif_vlan_list_lock);
+	hlist_del_rcu(&vlan->list);
+	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
+
+	/* explicitly remove the associated TT local entry because it is marked
+	 * with the NOPURGE flag
+	 */
+	batadv_tt_local_remove(bat_priv, bat_priv->soft_iface->dev_addr,
+			       vlan->vid, "vlan interface destroyed", false);
+
+	batadv_softif_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_interface_add_vid - ndo_add_vid API implementation
+ * @dev: the netdev of the mesh interface
+ * @vid: identifier of the new vlan
+ *
+ * Set up all the internal structures for handling the new vlan on top of the
+ * mesh interface
+ *
+ * Returns 0 on success or a negative error code in case of failure.
+ */
+static int batadv_interface_add_vid(struct net_device *dev, __be16 proto,
+				    unsigned short vid)
+{
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+
+	/* only 802.1Q vlans are supported.
+	 * batman-adv does not know how to handle other types
+	 */
+	if (proto != htons(ETH_P_8021Q))
+		return -EINVAL;
+
+	vid |= BATADV_VLAN_HAS_TAG;
+
+	return batadv_softif_create_vlan(bat_priv, vid);
+}
+
+/**
+ * batadv_interface_kill_vid - ndo_kill_vid API implementation
+ * @dev: the netdev of the mesh interface
+ * @vid: identifier of the deleted vlan
+ *
+ * Destroy all the internal structures used to handle the vlan identified by vid
+ * on top of the mesh interface
+ *
+ * Returns 0 on success, -EINVAL if the specified prototype is not ETH_P_8021Q
+ * or -ENOENT if the specified vlan id wasn't registered.
+ */
+static int batadv_interface_kill_vid(struct net_device *dev, __be16 proto,
+				     unsigned short vid)
+{
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+	struct batadv_softif_vlan *vlan;
+
+	/* only 802.1Q vlans are supported. batman-adv does not know how to
+	 * handle other types
+	 */
+	if (proto != htons(ETH_P_8021Q))
+		return -EINVAL;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid | BATADV_VLAN_HAS_TAG);
+	if (!vlan)
+		return -ENOENT;
+
+	batadv_softif_destroy_vlan(bat_priv, vlan);
+
+	/* finally free the vlan object */
+	batadv_softif_vlan_free_ref(vlan);
+
+	return 0;
+}
+
 /* batman-adv network devices have devices nesting below it and are a special
  * "super class" of normal network devices; split their locks off into a
  * separate class since they always nest.
@@ -432,6 +592,7 @@ static void batadv_set_lockdep_class(struct net_device *dev)
  */
 static void batadv_softif_destroy_finish(struct work_struct *work)
 {
+	struct batadv_softif_vlan *vlan;
 	struct batadv_priv *bat_priv;
 	struct net_device *soft_iface;
 
@@ -439,6 +600,13 @@ static void batadv_softif_destroy_finish(struct work_struct *work)
 				cleanup_work);
 	soft_iface = bat_priv->soft_iface;
 
+	/* destroy the "untagged" VLAN */
+	vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS);
+	if (vlan) {
+		batadv_softif_destroy_vlan(bat_priv, vlan);
+		batadv_softif_vlan_free_ref(vlan);
+	}
+
 	batadv_sysfs_del_meshif(soft_iface);
 
 	rtnl_lock();
@@ -594,6 +762,8 @@ static const struct net_device_ops batadv_netdev_ops = {
 	.ndo_open = batadv_interface_open,
 	.ndo_stop = batadv_interface_release,
 	.ndo_get_stats = batadv_interface_stats,
+	.ndo_vlan_rx_add_vid = batadv_interface_add_vid,
+	.ndo_vlan_rx_kill_vid = batadv_interface_kill_vid,
 	.ndo_set_mac_address = batadv_interface_set_mac_addr,
 	.ndo_change_mtu = batadv_interface_change_mtu,
 	.ndo_set_rx_mode = batadv_interface_set_rx_mode,
@@ -633,6 +803,7 @@ static void batadv_softif_init_early(struct net_device *dev)
 
 	dev->netdev_ops = &batadv_netdev_ops;
 	dev->destructor = batadv_softif_free;
+	dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
 	dev->tx_queue_len = 0;
 
 	/* can't call min_mtu, because the needed variables
diff --git a/net/batman-adv/soft-interface.h b/net/batman-adv/soft-interface.h
index 2f2472c..16d9be6 100644
--- a/net/batman-adv/soft-interface.h
+++ b/net/batman-adv/soft-interface.h
@@ -28,5 +28,6 @@ struct net_device *batadv_softif_create(const char *name);
 void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
 int batadv_softif_is_valid(const struct net_device *net_dev);
 extern struct rtnl_link_ops batadv_link_ops;
+int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 6954a5d..e5fecd4 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -531,6 +531,22 @@ struct batadv_priv_nc {
 };
 
 /**
+ * struct batadv_softif_vlan - per VLAN attributes set
+ * @vid: VLAN identifier
+ * @kobj: kobject for sysfs vlan subdirectory
+ * @list: list node for bat_priv::softif_vlan_list
+ * @refcount: number of context where this object is currently in use
+ * @rcu: struct used for freeing in a RCU-safe manner
+ */
+struct batadv_softif_vlan {
+	unsigned short vid;
+	struct kobject *kobj;
+	struct hlist_node list;
+	atomic_t refcount;
+	struct rcu_head rcu;
+};
+
+/**
  * struct batadv_priv - per mesh interface data
  * @mesh_state: current status of the mesh (inactive/active/deactivating)
  * @soft_iface: net device which holds this struct as private data
@@ -566,6 +582,9 @@ struct batadv_priv_nc {
  * @primary_if: one of the hard interfaces assigned to this mesh interface
  *  becomes the primary interface
  * @bat_algo_ops: routing algorithm used by this mesh interface
+ * @softif_vlan_list: a list of softif_vlan structs, one per VLAN created on top
+ *  of the mesh interface represented by this object
+ * @softif_vlan_list_lock: lock protecting softif_vlan_list
  * @bla: bridge loope avoidance data
  * @debug_log: holding debug logging relevant data
  * @gw: gateway data
@@ -613,6 +632,8 @@ struct batadv_priv {
 	struct work_struct cleanup_work;
 	struct batadv_hard_iface __rcu *primary_if;  /* rcu protected pointer */
 	struct batadv_algo_ops *bat_algo_ops;
+	struct hlist_head softif_vlan_list;
+	spinlock_t softif_vlan_list_lock; /* protects softif_vlan_list */
 #ifdef CONFIG_BATMAN_ADV_BLA
 	struct batadv_priv_bla bla;
 #endif
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 11/18] batman-adv: add sysfs framework for VLAN
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

Each VLAN can now have its own set of attributes which are
exported through a new subfolder in the sysfs tree.
Each VLAN created on top of a soft_iface will have its own
subfolder.

The subfolder is named "vlan%VID" and it is created inside
the "mesh" sysfs folder belonging to batman-adv.

Attributes corresponding to the untagged LAN are stored in
the root sysfs folder as before.

This patch also creates all the needed macros and data
structures to easily handle new VLAN spacific attributes.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/soft-interface.c |  15 +++-
 net/batman-adv/soft-interface.h |   3 +
 net/batman-adv/sysfs.c          | 173 ++++++++++++++++++++++++++++++++++++++++
 net/batman-adv/sysfs.h          |  10 +++
 4 files changed, 198 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 936b83b..f74200c 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -398,7 +398,7 @@ out:
  *  possibly free it
  * @softif_vlan: the vlan object to release
  */
-static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
+void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
 {
 	if (atomic_dec_and_test(&softif_vlan->refcount))
 		kfree_rcu(softif_vlan, rcu);
@@ -412,8 +412,8 @@ static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
  * Returns the private data of the vlan matching the vid passed as argument or
  * NULL otherwise. The refcounter of the returned object is incremented by 1.
  */
-static struct batadv_softif_vlan *
-batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
+struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
+						  unsigned short vid)
 {
 	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
 
@@ -443,6 +443,7 @@ batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 {
 	struct batadv_softif_vlan *vlan;
+	int err;
 
 	vlan = batadv_softif_vlan_get(bat_priv, vid);
 	if (vlan) {
@@ -457,6 +458,12 @@ int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 	vlan->vid = vid;
 	atomic_set(&vlan->refcount, 1);
 
+	err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
+	if (err) {
+		kfree(vlan);
+		return err;
+	}
+
 	/* add a new TT local entry. This one will be marked with the NOPURGE
 	 * flag
 	 */
@@ -483,6 +490,8 @@ static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
 	hlist_del_rcu(&vlan->list);
 	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
 
+	batadv_sysfs_del_vlan(bat_priv, vlan);
+
 	/* explicitly remove the associated TT local entry because it is marked
 	 * with the NOPURGE flag
 	 */
diff --git a/net/batman-adv/soft-interface.h b/net/batman-adv/soft-interface.h
index 16d9be6..06fc91f 100644
--- a/net/batman-adv/soft-interface.h
+++ b/net/batman-adv/soft-interface.h
@@ -29,5 +29,8 @@ void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
 int batadv_softif_is_valid(const struct net_device *net_dev);
 extern struct rtnl_link_ops batadv_link_ops;
 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid);
+void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan);
+struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
+						  unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index 869eb46..f419d21 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -24,6 +24,7 @@
 #include "network-coding.h"
 #include "originator.h"
 #include "hard-interface.h"
+#include "soft-interface.h"
 #include "gateway_common.h"
 #include "gateway_client.h"
 
@@ -39,6 +40,53 @@ static struct batadv_priv *batadv_kobj_to_batpriv(struct kobject *obj)
 	return netdev_priv(net_dev);
 }
 
+/**
+ * batadv_vlan_kobj_to_batpriv - convert a vlan kobj in the associated batpriv
+ * @obj: kobject to covert
+ *
+ * Returns the associated batadv_priv struct.
+ */
+static struct batadv_priv *batadv_vlan_kobj_to_batpriv(struct kobject *obj)
+{
+	/* VLAN specific attributes are located in the root sysfs folder if they
+	 * refer to the untagged VLAN..
+	 */
+	if (!strcmp(BATADV_SYSFS_IF_MESH_SUBDIR, obj->name))
+		return batadv_kobj_to_batpriv(obj);
+
+	/* ..while the attributes for the tagged vlans are located in
+	 * the in the corresponding "vlan%VID" subfolder
+	 */
+	return batadv_kobj_to_batpriv(obj->parent);
+}
+
+/**
+ * batadv_kobj_to_vlan - convert a kobj in the associated softif_vlan struct
+ * @obj: kobject to covert
+ *
+ * Returns the associated softif_vlan struct if found, NULL otherwise.
+ */
+static struct batadv_softif_vlan *
+batadv_kobj_to_vlan(struct batadv_priv *bat_priv, struct kobject *obj)
+{
+	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
+		if (vlan_tmp->kobj != obj)
+			continue;
+
+		if (!atomic_inc_not_zero(&vlan_tmp->refcount))
+			continue;
+
+		vlan = vlan_tmp;
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
 #define BATADV_UEV_TYPE_VAR	"BATTYPE="
 #define BATADV_UEV_ACTION_VAR	"BATACTION="
 #define BATADV_UEV_DATA_VAR	"BATDATA="
@@ -53,6 +101,15 @@ static char *batadv_uev_type_str[] = {
 	"gw"
 };
 
+/* Use this, if you have customized show and store functions for vlan attrs */
+#define BATADV_ATTR_VLAN(_name, _mode, _show, _store)	\
+struct batadv_attribute batadv_attr_vlan_##_name = {	\
+	.attr = {.name = __stringify(_name),		\
+		 .mode = _mode },			\
+	.show   = _show,				\
+	.store  = _store,				\
+};
+
 /* Use this, if you have customized show and store functions */
 #define BATADV_ATTR(_name, _mode, _show, _store)	\
 struct batadv_attribute batadv_attr_##_name = {		\
@@ -122,6 +179,41 @@ ssize_t batadv_show_##_name(struct kobject *kobj,			\
 	static BATADV_ATTR(_name, _mode, batadv_show_##_name,		\
 			   batadv_store_##_name)
 
+#define BATADV_ATTR_VLAN_STORE_BOOL(_name, _post_func)			\
+ssize_t batadv_store_vlan_##_name(struct kobject *kobj,			\
+				  struct attribute *attr, char *buff,	\
+				  size_t count)				\
+{									\
+	struct batadv_priv *bat_priv = batadv_vlan_kobj_to_batpriv(kobj);\
+	struct batadv_softif_vlan *vlan = batadv_kobj_to_vlan(bat_priv,	\
+							      kobj);	\
+	size_t res = __batadv_store_bool_attr(buff, count, _post_func,	\
+					      attr, &vlan->_name,	\
+					      bat_priv->soft_iface);	\
+	batadv_softif_vlan_free_ref(vlan);				\
+	return res;							\
+}
+
+#define BATADV_ATTR_VLAN_SHOW_BOOL(_name)				\
+ssize_t batadv_show_vlan_##_name(struct kobject *kobj,			\
+				 struct attribute *attr, char *buff)	\
+{									\
+	struct batadv_priv *bat_priv = batadv_vlan_kobj_to_batpriv(kobj);\
+	struct batadv_softif_vlan *vlan = batadv_kobj_to_vlan(bat_priv,	\
+							      kobj);	\
+	size_t res = sprintf(buff, "%s\n",				\
+			     atomic_read(&vlan->_name) == 0 ?		\
+			     "disabled" : "enabled");			\
+	batadv_softif_vlan_free_ref(vlan);				\
+	return res;							\
+}
+
+/* Use this, if you are going to turn a [name] in the vlan struct on or off */
+#define BATADV_ATTR_VLAN_BOOL(_name, _mode, _post_func)			\
+	static BATADV_ATTR_VLAN_STORE_BOOL(_name, _post_func)		\
+	static BATADV_ATTR_VLAN_SHOW_BOOL(_name)			\
+	static BATADV_ATTR_VLAN(_name, _mode, batadv_show_vlan_##_name,	\
+				batadv_store_vlan_##_name)
 
 static int batadv_store_bool_attr(char *buff, size_t count,
 				  struct net_device *net_dev,
@@ -407,6 +499,13 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	NULL,
 };
 
+/**
+ * batadv_vlan_attrs - array of vlan specific sysfs attributes
+ */
+static struct batadv_attribute *batadv_vlan_attrs[] = {
+	NULL,
+};
+
 int batadv_sysfs_add_meshif(struct net_device *dev)
 {
 	struct kobject *batif_kobject = &dev->dev.kobj;
@@ -457,6 +556,80 @@ void batadv_sysfs_del_meshif(struct net_device *dev)
 	bat_priv->mesh_obj = NULL;
 }
 
+/**
+ * batadv_sysfs_add_vlan - add all the needed sysfs objects for the new vlan
+ * @dev: netdev of the mesh interface
+ * @vlan: private data of the newly added VLAN interface
+ *
+ * Returns 0 on success and -ENOMEM if any of the structure allocations fails.
+ */
+int batadv_sysfs_add_vlan(struct net_device *dev,
+			  struct batadv_softif_vlan *vlan)
+{
+	char vlan_subdir[sizeof(BATADV_SYSFS_VLAN_SUBDIR_PREFIX) + 5];
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+	struct batadv_attribute **bat_attr;
+	int err;
+
+	if (vlan->vid & BATADV_VLAN_HAS_TAG) {
+		sprintf(vlan_subdir, BATADV_SYSFS_VLAN_SUBDIR_PREFIX "%hu",
+			vlan->vid & VLAN_VID_MASK);
+
+		vlan->kobj = kobject_create_and_add(vlan_subdir,
+						    bat_priv->mesh_obj);
+		if (!vlan->kobj) {
+			batadv_err(dev, "Can't add sysfs directory: %s/%s\n",
+				   dev->name, vlan_subdir);
+			goto out;
+		}
+	} else {
+		/* the untagged LAN uses the root folder to store its "VLAN
+		 * specific attributes"
+		 */
+		vlan->kobj = bat_priv->mesh_obj;
+		kobject_get(bat_priv->mesh_obj);
+	}
+
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr) {
+		err = sysfs_create_file(vlan->kobj,
+					&((*bat_attr)->attr));
+		if (err) {
+			batadv_err(dev, "Can't add sysfs file: %s/%s/%s\n",
+				   dev->name, vlan_subdir,
+				   ((*bat_attr)->attr).name);
+			goto rem_attr;
+		}
+	}
+
+	return 0;
+
+rem_attr:
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr)
+		sysfs_remove_file(vlan->kobj, &((*bat_attr)->attr));
+
+	kobject_put(vlan->kobj);
+	vlan->kobj = NULL;
+out:
+	return -ENOMEM;
+}
+
+/**
+ * batadv_sysfs_del_vlan - remove all the sysfs objects for a given VLAN
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vlan: the private data of the VLAN to destroy
+ */
+void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv,
+			   struct batadv_softif_vlan *vlan)
+{
+	struct batadv_attribute **bat_attr;
+
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr)
+		sysfs_remove_file(vlan->kobj, &((*bat_attr)->attr));
+
+	kobject_put(vlan->kobj);
+	vlan->kobj = NULL;
+}
+
 static ssize_t batadv_show_mesh_iface(struct kobject *kobj,
 				      struct attribute *attr, char *buff)
 {
diff --git a/net/batman-adv/sysfs.h b/net/batman-adv/sysfs.h
index 479acf4..c7d725d 100644
--- a/net/batman-adv/sysfs.h
+++ b/net/batman-adv/sysfs.h
@@ -22,6 +22,12 @@
 
 #define BATADV_SYSFS_IF_MESH_SUBDIR "mesh"
 #define BATADV_SYSFS_IF_BAT_SUBDIR "batman_adv"
+/**
+ * BATADV_SYSFS_VLAN_SUBDIR_PREFIX - prefix of the subfolder that will be
+ *  created in the sysfs hierarchy for each VLAN interface. The subfolder will
+ *  be named "BATADV_SYSFS_VLAN_SUBDIR_PREFIX%vid".
+ */
+#define BATADV_SYSFS_VLAN_SUBDIR_PREFIX "vlan"
 
 struct batadv_attribute {
 	struct attribute attr;
@@ -36,6 +42,10 @@ void batadv_sysfs_del_meshif(struct net_device *dev);
 int batadv_sysfs_add_hardif(struct kobject **hardif_obj,
 			    struct net_device *dev);
 void batadv_sysfs_del_hardif(struct kobject **hardif_obj);
+int batadv_sysfs_add_vlan(struct net_device *dev,
+			  struct batadv_softif_vlan *vlan);
+void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv,
+			   struct batadv_softif_vlan *vlan);
 int batadv_throw_uevent(struct batadv_priv *bat_priv, enum batadv_uev_type type,
 			enum batadv_uev_action action, const char *data);
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 11/18] batman-adv: add sysfs framework for VLAN
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

Each VLAN can now have its own set of attributes which are
exported through a new subfolder in the sysfs tree.
Each VLAN created on top of a soft_iface will have its own
subfolder.

The subfolder is named "vlan%VID" and it is created inside
the "mesh" sysfs folder belonging to batman-adv.

Attributes corresponding to the untagged LAN are stored in
the root sysfs folder as before.

This patch also creates all the needed macros and data
structures to easily handle new VLAN spacific attributes.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/soft-interface.c |  15 +++-
 net/batman-adv/soft-interface.h |   3 +
 net/batman-adv/sysfs.c          | 173 ++++++++++++++++++++++++++++++++++++++++
 net/batman-adv/sysfs.h          |  10 +++
 4 files changed, 198 insertions(+), 3 deletions(-)

diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 936b83b..f74200c 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -398,7 +398,7 @@ out:
  *  possibly free it
  * @softif_vlan: the vlan object to release
  */
-static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
+void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
 {
 	if (atomic_dec_and_test(&softif_vlan->refcount))
 		kfree_rcu(softif_vlan, rcu);
@@ -412,8 +412,8 @@ static void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan)
  * Returns the private data of the vlan matching the vid passed as argument or
  * NULL otherwise. The refcounter of the returned object is incremented by 1.
  */
-static struct batadv_softif_vlan *
-batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
+struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
+						  unsigned short vid)
 {
 	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
 
@@ -443,6 +443,7 @@ batadv_softif_vlan_get(struct batadv_priv *bat_priv, unsigned short vid)
 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 {
 	struct batadv_softif_vlan *vlan;
+	int err;
 
 	vlan = batadv_softif_vlan_get(bat_priv, vid);
 	if (vlan) {
@@ -457,6 +458,12 @@ int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 	vlan->vid = vid;
 	atomic_set(&vlan->refcount, 1);
 
+	err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
+	if (err) {
+		kfree(vlan);
+		return err;
+	}
+
 	/* add a new TT local entry. This one will be marked with the NOPURGE
 	 * flag
 	 */
@@ -483,6 +490,8 @@ static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
 	hlist_del_rcu(&vlan->list);
 	spin_unlock_bh(&bat_priv->softif_vlan_list_lock);
 
+	batadv_sysfs_del_vlan(bat_priv, vlan);
+
 	/* explicitly remove the associated TT local entry because it is marked
 	 * with the NOPURGE flag
 	 */
diff --git a/net/batman-adv/soft-interface.h b/net/batman-adv/soft-interface.h
index 16d9be6..06fc91f 100644
--- a/net/batman-adv/soft-interface.h
+++ b/net/batman-adv/soft-interface.h
@@ -29,5 +29,8 @@ void batadv_softif_destroy_sysfs(struct net_device *soft_iface);
 int batadv_softif_is_valid(const struct net_device *net_dev);
 extern struct rtnl_link_ops batadv_link_ops;
 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid);
+void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *softif_vlan);
+struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
+						  unsigned short vid);
 
 #endif /* _NET_BATMAN_ADV_SOFT_INTERFACE_H_ */
diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index 869eb46..f419d21 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -24,6 +24,7 @@
 #include "network-coding.h"
 #include "originator.h"
 #include "hard-interface.h"
+#include "soft-interface.h"
 #include "gateway_common.h"
 #include "gateway_client.h"
 
@@ -39,6 +40,53 @@ static struct batadv_priv *batadv_kobj_to_batpriv(struct kobject *obj)
 	return netdev_priv(net_dev);
 }
 
+/**
+ * batadv_vlan_kobj_to_batpriv - convert a vlan kobj in the associated batpriv
+ * @obj: kobject to covert
+ *
+ * Returns the associated batadv_priv struct.
+ */
+static struct batadv_priv *batadv_vlan_kobj_to_batpriv(struct kobject *obj)
+{
+	/* VLAN specific attributes are located in the root sysfs folder if they
+	 * refer to the untagged VLAN..
+	 */
+	if (!strcmp(BATADV_SYSFS_IF_MESH_SUBDIR, obj->name))
+		return batadv_kobj_to_batpriv(obj);
+
+	/* ..while the attributes for the tagged vlans are located in
+	 * the in the corresponding "vlan%VID" subfolder
+	 */
+	return batadv_kobj_to_batpriv(obj->parent);
+}
+
+/**
+ * batadv_kobj_to_vlan - convert a kobj in the associated softif_vlan struct
+ * @obj: kobject to covert
+ *
+ * Returns the associated softif_vlan struct if found, NULL otherwise.
+ */
+static struct batadv_softif_vlan *
+batadv_kobj_to_vlan(struct batadv_priv *bat_priv, struct kobject *obj)
+{
+	struct batadv_softif_vlan *vlan_tmp, *vlan = NULL;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan_tmp, &bat_priv->softif_vlan_list, list) {
+		if (vlan_tmp->kobj != obj)
+			continue;
+
+		if (!atomic_inc_not_zero(&vlan_tmp->refcount))
+			continue;
+
+		vlan = vlan_tmp;
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
 #define BATADV_UEV_TYPE_VAR	"BATTYPE="
 #define BATADV_UEV_ACTION_VAR	"BATACTION="
 #define BATADV_UEV_DATA_VAR	"BATDATA="
@@ -53,6 +101,15 @@ static char *batadv_uev_type_str[] = {
 	"gw"
 };
 
+/* Use this, if you have customized show and store functions for vlan attrs */
+#define BATADV_ATTR_VLAN(_name, _mode, _show, _store)	\
+struct batadv_attribute batadv_attr_vlan_##_name = {	\
+	.attr = {.name = __stringify(_name),		\
+		 .mode = _mode },			\
+	.show   = _show,				\
+	.store  = _store,				\
+};
+
 /* Use this, if you have customized show and store functions */
 #define BATADV_ATTR(_name, _mode, _show, _store)	\
 struct batadv_attribute batadv_attr_##_name = {		\
@@ -122,6 +179,41 @@ ssize_t batadv_show_##_name(struct kobject *kobj,			\
 	static BATADV_ATTR(_name, _mode, batadv_show_##_name,		\
 			   batadv_store_##_name)
 
+#define BATADV_ATTR_VLAN_STORE_BOOL(_name, _post_func)			\
+ssize_t batadv_store_vlan_##_name(struct kobject *kobj,			\
+				  struct attribute *attr, char *buff,	\
+				  size_t count)				\
+{									\
+	struct batadv_priv *bat_priv = batadv_vlan_kobj_to_batpriv(kobj);\
+	struct batadv_softif_vlan *vlan = batadv_kobj_to_vlan(bat_priv,	\
+							      kobj);	\
+	size_t res = __batadv_store_bool_attr(buff, count, _post_func,	\
+					      attr, &vlan->_name,	\
+					      bat_priv->soft_iface);	\
+	batadv_softif_vlan_free_ref(vlan);				\
+	return res;							\
+}
+
+#define BATADV_ATTR_VLAN_SHOW_BOOL(_name)				\
+ssize_t batadv_show_vlan_##_name(struct kobject *kobj,			\
+				 struct attribute *attr, char *buff)	\
+{									\
+	struct batadv_priv *bat_priv = batadv_vlan_kobj_to_batpriv(kobj);\
+	struct batadv_softif_vlan *vlan = batadv_kobj_to_vlan(bat_priv,	\
+							      kobj);	\
+	size_t res = sprintf(buff, "%s\n",				\
+			     atomic_read(&vlan->_name) == 0 ?		\
+			     "disabled" : "enabled");			\
+	batadv_softif_vlan_free_ref(vlan);				\
+	return res;							\
+}
+
+/* Use this, if you are going to turn a [name] in the vlan struct on or off */
+#define BATADV_ATTR_VLAN_BOOL(_name, _mode, _post_func)			\
+	static BATADV_ATTR_VLAN_STORE_BOOL(_name, _post_func)		\
+	static BATADV_ATTR_VLAN_SHOW_BOOL(_name)			\
+	static BATADV_ATTR_VLAN(_name, _mode, batadv_show_vlan_##_name,	\
+				batadv_store_vlan_##_name)
 
 static int batadv_store_bool_attr(char *buff, size_t count,
 				  struct net_device *net_dev,
@@ -407,6 +499,13 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	NULL,
 };
 
+/**
+ * batadv_vlan_attrs - array of vlan specific sysfs attributes
+ */
+static struct batadv_attribute *batadv_vlan_attrs[] = {
+	NULL,
+};
+
 int batadv_sysfs_add_meshif(struct net_device *dev)
 {
 	struct kobject *batif_kobject = &dev->dev.kobj;
@@ -457,6 +556,80 @@ void batadv_sysfs_del_meshif(struct net_device *dev)
 	bat_priv->mesh_obj = NULL;
 }
 
+/**
+ * batadv_sysfs_add_vlan - add all the needed sysfs objects for the new vlan
+ * @dev: netdev of the mesh interface
+ * @vlan: private data of the newly added VLAN interface
+ *
+ * Returns 0 on success and -ENOMEM if any of the structure allocations fails.
+ */
+int batadv_sysfs_add_vlan(struct net_device *dev,
+			  struct batadv_softif_vlan *vlan)
+{
+	char vlan_subdir[sizeof(BATADV_SYSFS_VLAN_SUBDIR_PREFIX) + 5];
+	struct batadv_priv *bat_priv = netdev_priv(dev);
+	struct batadv_attribute **bat_attr;
+	int err;
+
+	if (vlan->vid & BATADV_VLAN_HAS_TAG) {
+		sprintf(vlan_subdir, BATADV_SYSFS_VLAN_SUBDIR_PREFIX "%hu",
+			vlan->vid & VLAN_VID_MASK);
+
+		vlan->kobj = kobject_create_and_add(vlan_subdir,
+						    bat_priv->mesh_obj);
+		if (!vlan->kobj) {
+			batadv_err(dev, "Can't add sysfs directory: %s/%s\n",
+				   dev->name, vlan_subdir);
+			goto out;
+		}
+	} else {
+		/* the untagged LAN uses the root folder to store its "VLAN
+		 * specific attributes"
+		 */
+		vlan->kobj = bat_priv->mesh_obj;
+		kobject_get(bat_priv->mesh_obj);
+	}
+
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr) {
+		err = sysfs_create_file(vlan->kobj,
+					&((*bat_attr)->attr));
+		if (err) {
+			batadv_err(dev, "Can't add sysfs file: %s/%s/%s\n",
+				   dev->name, vlan_subdir,
+				   ((*bat_attr)->attr).name);
+			goto rem_attr;
+		}
+	}
+
+	return 0;
+
+rem_attr:
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr)
+		sysfs_remove_file(vlan->kobj, &((*bat_attr)->attr));
+
+	kobject_put(vlan->kobj);
+	vlan->kobj = NULL;
+out:
+	return -ENOMEM;
+}
+
+/**
+ * batadv_sysfs_del_vlan - remove all the sysfs objects for a given VLAN
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vlan: the private data of the VLAN to destroy
+ */
+void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv,
+			   struct batadv_softif_vlan *vlan)
+{
+	struct batadv_attribute **bat_attr;
+
+	for (bat_attr = batadv_vlan_attrs; *bat_attr; ++bat_attr)
+		sysfs_remove_file(vlan->kobj, &((*bat_attr)->attr));
+
+	kobject_put(vlan->kobj);
+	vlan->kobj = NULL;
+}
+
 static ssize_t batadv_show_mesh_iface(struct kobject *kobj,
 				      struct attribute *attr, char *buff)
 {
diff --git a/net/batman-adv/sysfs.h b/net/batman-adv/sysfs.h
index 479acf4..c7d725d 100644
--- a/net/batman-adv/sysfs.h
+++ b/net/batman-adv/sysfs.h
@@ -22,6 +22,12 @@
 
 #define BATADV_SYSFS_IF_MESH_SUBDIR "mesh"
 #define BATADV_SYSFS_IF_BAT_SUBDIR "batman_adv"
+/**
+ * BATADV_SYSFS_VLAN_SUBDIR_PREFIX - prefix of the subfolder that will be
+ *  created in the sysfs hierarchy for each VLAN interface. The subfolder will
+ *  be named "BATADV_SYSFS_VLAN_SUBDIR_PREFIX%vid".
+ */
+#define BATADV_SYSFS_VLAN_SUBDIR_PREFIX "vlan"
 
 struct batadv_attribute {
 	struct attribute attr;
@@ -36,6 +42,10 @@ void batadv_sysfs_del_meshif(struct net_device *dev);
 int batadv_sysfs_add_hardif(struct kobject **hardif_obj,
 			    struct net_device *dev);
 void batadv_sysfs_del_hardif(struct kobject **hardif_obj);
+int batadv_sysfs_add_vlan(struct net_device *dev,
+			  struct batadv_softif_vlan *vlan);
+void batadv_sysfs_del_vlan(struct batadv_priv *bat_priv,
+			   struct batadv_softif_vlan *vlan);
 int batadv_throw_uevent(struct batadv_priv *bat_priv, enum batadv_uev_type type,
 			enum batadv_uev_action action, const char *data);
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 12/18] batman-adv: make the AP isolation attribute VLAN specific
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

AP isolation has to be enabled on one VLAN interface only.
This patch moves the AP isolation attribute to the per-vlan
interface attribute set, enabling it to have a different
value depending on the selected vlan.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 Documentation/ABI/testing/sysfs-class-net-mesh |  5 +++--
 net/batman-adv/soft-interface.c                |  6 ++++--
 net/batman-adv/sysfs.c                         |  5 +++--
 net/batman-adv/translation-table.c             | 27 +++++++++++++++++++-------
 net/batman-adv/translation-table.h             |  2 +-
 net/batman-adv/types.h                         |  4 ++--
 6 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index dfdea2b..0baa657 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -6,13 +6,14 @@ Description:
                 Indicates whether the batman protocol messages of the
                 mesh <mesh_iface> shall be aggregated or not.
 
-What:           /sys/class/net/<mesh_iface>/mesh/ap_isolation
+What:           /sys/class/net/<mesh_iface>/mesh/<vlan_subdir>/ap_isolation
 Date:           May 2011
 Contact:        Antonio Quartulli <antonio@meshcoding.com>
 Description:
                 Indicates whether the data traffic going from a
                 wireless client to another wireless client will be
-                silently dropped.
+                silently dropped. <vlan_subdir> is empty when referring
+		to the untagged lan.
 
 What:           /sys/class/net/<mesh_iface>/mesh/bonding
 Date:           June 2010
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index f74200c..baa74b9 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -381,7 +381,8 @@ void batadv_interface_rx(struct net_device *soft_iface,
 		batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
 						     ethhdr->h_source, vid);
 
-	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
+	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest,
+				  vid))
 		goto dropped;
 
 	netif_rx(skb);
@@ -458,6 +459,8 @@ int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 	vlan->vid = vid;
 	atomic_set(&vlan->refcount, 1);
 
+	atomic_set(&vlan->ap_isolation, 0);
+
 	err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
 	if (err) {
 		kfree(vlan);
@@ -657,7 +660,6 @@ static int batadv_softif_init_late(struct net_device *dev)
 #ifdef CONFIG_BATMAN_ADV_DAT
 	atomic_set(&bat_priv->distributed_arp_table, 1);
 #endif
-	atomic_set(&bat_priv->ap_isolation, 0);
 	atomic_set(&bat_priv->gw_mode, BATADV_GW_MODE_OFF);
 	atomic_set(&bat_priv->gw_sel_class, 20);
 	atomic_set(&bat_priv->gw.bandwidth_down, 100);
diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index f419d21..6335433 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -453,7 +453,6 @@ BATADV_ATTR_SIF_BOOL(distributed_arp_table, S_IRUGO | S_IWUSR,
 		     batadv_dat_status_update);
 #endif
 BATADV_ATTR_SIF_BOOL(fragmentation, S_IRUGO | S_IWUSR, batadv_update_min_mtu);
-BATADV_ATTR_SIF_BOOL(ap_isolation, S_IRUGO | S_IWUSR, NULL);
 static BATADV_ATTR(routing_algo, S_IRUGO, batadv_show_bat_algo, NULL);
 static BATADV_ATTR(gw_mode, S_IRUGO | S_IWUSR, batadv_show_gw_mode,
 		   batadv_store_gw_mode);
@@ -483,7 +482,6 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	&batadv_attr_distributed_arp_table,
 #endif
 	&batadv_attr_fragmentation,
-	&batadv_attr_ap_isolation,
 	&batadv_attr_routing_algo,
 	&batadv_attr_gw_mode,
 	&batadv_attr_orig_interval,
@@ -499,10 +497,13 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	NULL,
 };
 
+BATADV_ATTR_VLAN_BOOL(ap_isolation, S_IRUGO | S_IWUSR, NULL);
+
 /**
  * batadv_vlan_attrs - array of vlan specific sysfs attributes
  */
 static struct batadv_attribute *batadv_vlan_attrs[] = {
+	&batadv_attr_vlan_ap_isolation,
 	NULL,
 };
 
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 9bf928c..58794c4 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1482,8 +1482,19 @@ struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tt_orig_list_entry *best_entry;
+	bool ap_isolation_enabled = false;
+	struct batadv_softif_vlan *vlan;
 
-	if (src && atomic_read(&bat_priv->ap_isolation)) {
+	/* if the AP isolation is requested on a VLAN, then check for its
+	 * setting in the proper VLAN private data structure
+	 */
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (vlan) {
+		ap_isolation_enabled = atomic_read(&vlan->ap_isolation);
+		batadv_softif_vlan_free_ref(vlan);
+	}
+
+	if (src && ap_isolation_enabled) {
 		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src, vid);
 		if (!tt_local_entry ||
 		    (tt_local_entry->common.flags & BATADV_TT_CLIENT_PENDING))
@@ -2547,22 +2558,22 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 }
 
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
-			   uint8_t *dst)
+			   uint8_t *dst, unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
+	struct batadv_softif_vlan *vlan;
 	bool ret = false;
 
-	if (!atomic_read(&bat_priv->ap_isolation))
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (!vlan || !atomic_read(&vlan->ap_isolation))
 		goto out;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst,
-						   BATADV_NO_FLAGS);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst, vid);
 	if (!tt_local_entry)
 		goto out;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src,
-						     BATADV_NO_FLAGS);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2572,6 +2583,8 @@ bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 	ret = true;
 
 out:
+	if (vlan)
+		batadv_softif_vlan_free_ref(vlan);
 	if (tt_global_entry)
 		batadv_tt_global_entry_free_ref(tt_global_entry);
 	if (tt_local_entry)
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index 1d9506d..c6bf33c 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -39,7 +39,7 @@ void batadv_tt_free(struct batadv_priv *bat_priv);
 bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
 			 unsigned short vid);
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
-			   uint8_t *dst);
+			   uint8_t *dst, unsigned short vid);
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv);
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
 					uint8_t *addr, unsigned short vid);
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index e5fecd4..04a0da6 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -534,6 +534,7 @@ struct batadv_priv_nc {
  * struct batadv_softif_vlan - per VLAN attributes set
  * @vid: VLAN identifier
  * @kobj: kobject for sysfs vlan subdirectory
+ * @ap_isolation: AP isolation state
  * @list: list node for bat_priv::softif_vlan_list
  * @refcount: number of context where this object is currently in use
  * @rcu: struct used for freeing in a RCU-safe manner
@@ -541,6 +542,7 @@ struct batadv_priv_nc {
 struct batadv_softif_vlan {
 	unsigned short vid;
 	struct kobject *kobj;
+	atomic_t ap_isolation;		/* boolean */
 	struct hlist_node list;
 	atomic_t refcount;
 	struct rcu_head rcu;
@@ -556,7 +558,6 @@ struct batadv_softif_vlan {
  * @bonding: bool indicating whether traffic bonding is enabled
  * @fragmentation: bool indicating whether traffic fragmentation is enabled
  * @frag_seqno: incremental counter to identify chains of egress fragments
- * @ap_isolation: bool indicating whether ap isolation is enabled
  * @bridge_loop_avoidance: bool indicating whether bridge loop avoidance is
  *  enabled
  * @distributed_arp_table: bool indicating whether distributed ARP table is
@@ -603,7 +604,6 @@ struct batadv_priv {
 	atomic_t bonding;
 	atomic_t fragmentation;
 	atomic_t frag_seqno;
-	atomic_t ap_isolation;
 #ifdef CONFIG_BATMAN_ADV_BLA
 	atomic_t bridge_loop_avoidance;
 #endif
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 12/18] batman-adv: make the AP isolation attribute VLAN specific
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

AP isolation has to be enabled on one VLAN interface only.
This patch moves the AP isolation attribute to the per-vlan
interface attribute set, enabling it to have a different
value depending on the selected vlan.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 Documentation/ABI/testing/sysfs-class-net-mesh |  5 +++--
 net/batman-adv/soft-interface.c                |  6 ++++--
 net/batman-adv/sysfs.c                         |  5 +++--
 net/batman-adv/translation-table.c             | 27 +++++++++++++++++++-------
 net/batman-adv/translation-table.h             |  2 +-
 net/batman-adv/types.h                         |  4 ++--
 6 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-class-net-mesh b/Documentation/ABI/testing/sysfs-class-net-mesh
index dfdea2b..0baa657 100644
--- a/Documentation/ABI/testing/sysfs-class-net-mesh
+++ b/Documentation/ABI/testing/sysfs-class-net-mesh
@@ -6,13 +6,14 @@ Description:
                 Indicates whether the batman protocol messages of the
                 mesh <mesh_iface> shall be aggregated or not.
 
-What:           /sys/class/net/<mesh_iface>/mesh/ap_isolation
+What:           /sys/class/net/<mesh_iface>/mesh/<vlan_subdir>/ap_isolation
 Date:           May 2011
 Contact:        Antonio Quartulli <antonio@meshcoding.com>
 Description:
                 Indicates whether the data traffic going from a
                 wireless client to another wireless client will be
-                silently dropped.
+                silently dropped. <vlan_subdir> is empty when referring
+		to the untagged lan.
 
 What:           /sys/class/net/<mesh_iface>/mesh/bonding
 Date:           June 2010
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index f74200c..baa74b9 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -381,7 +381,8 @@ void batadv_interface_rx(struct net_device *soft_iface,
 		batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
 						     ethhdr->h_source, vid);
 
-	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest))
+	if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest,
+				  vid))
 		goto dropped;
 
 	netif_rx(skb);
@@ -458,6 +459,8 @@ int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 	vlan->vid = vid;
 	atomic_set(&vlan->refcount, 1);
 
+	atomic_set(&vlan->ap_isolation, 0);
+
 	err = batadv_sysfs_add_vlan(bat_priv->soft_iface, vlan);
 	if (err) {
 		kfree(vlan);
@@ -657,7 +660,6 @@ static int batadv_softif_init_late(struct net_device *dev)
 #ifdef CONFIG_BATMAN_ADV_DAT
 	atomic_set(&bat_priv->distributed_arp_table, 1);
 #endif
-	atomic_set(&bat_priv->ap_isolation, 0);
 	atomic_set(&bat_priv->gw_mode, BATADV_GW_MODE_OFF);
 	atomic_set(&bat_priv->gw_sel_class, 20);
 	atomic_set(&bat_priv->gw.bandwidth_down, 100);
diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index f419d21..6335433 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -453,7 +453,6 @@ BATADV_ATTR_SIF_BOOL(distributed_arp_table, S_IRUGO | S_IWUSR,
 		     batadv_dat_status_update);
 #endif
 BATADV_ATTR_SIF_BOOL(fragmentation, S_IRUGO | S_IWUSR, batadv_update_min_mtu);
-BATADV_ATTR_SIF_BOOL(ap_isolation, S_IRUGO | S_IWUSR, NULL);
 static BATADV_ATTR(routing_algo, S_IRUGO, batadv_show_bat_algo, NULL);
 static BATADV_ATTR(gw_mode, S_IRUGO | S_IWUSR, batadv_show_gw_mode,
 		   batadv_store_gw_mode);
@@ -483,7 +482,6 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	&batadv_attr_distributed_arp_table,
 #endif
 	&batadv_attr_fragmentation,
-	&batadv_attr_ap_isolation,
 	&batadv_attr_routing_algo,
 	&batadv_attr_gw_mode,
 	&batadv_attr_orig_interval,
@@ -499,10 +497,13 @@ static struct batadv_attribute *batadv_mesh_attrs[] = {
 	NULL,
 };
 
+BATADV_ATTR_VLAN_BOOL(ap_isolation, S_IRUGO | S_IWUSR, NULL);
+
 /**
  * batadv_vlan_attrs - array of vlan specific sysfs attributes
  */
 static struct batadv_attribute *batadv_vlan_attrs[] = {
+	&batadv_attr_vlan_ap_isolation,
 	NULL,
 };
 
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 9bf928c..58794c4 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1482,8 +1482,19 @@ struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tt_orig_list_entry *best_entry;
+	bool ap_isolation_enabled = false;
+	struct batadv_softif_vlan *vlan;
 
-	if (src && atomic_read(&bat_priv->ap_isolation)) {
+	/* if the AP isolation is requested on a VLAN, then check for its
+	 * setting in the proper VLAN private data structure
+	 */
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (vlan) {
+		ap_isolation_enabled = atomic_read(&vlan->ap_isolation);
+		batadv_softif_vlan_free_ref(vlan);
+	}
+
+	if (src && ap_isolation_enabled) {
 		tt_local_entry = batadv_tt_local_hash_find(bat_priv, src, vid);
 		if (!tt_local_entry ||
 		    (tt_local_entry->common.flags & BATADV_TT_CLIENT_PENDING))
@@ -2547,22 +2558,22 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 }
 
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
-			   uint8_t *dst)
+			   uint8_t *dst, unsigned short vid)
 {
 	struct batadv_tt_local_entry *tt_local_entry = NULL;
 	struct batadv_tt_global_entry *tt_global_entry = NULL;
+	struct batadv_softif_vlan *vlan;
 	bool ret = false;
 
-	if (!atomic_read(&bat_priv->ap_isolation))
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (!vlan || !atomic_read(&vlan->ap_isolation))
 		goto out;
 
-	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst,
-						   BATADV_NO_FLAGS);
+	tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst, vid);
 	if (!tt_local_entry)
 		goto out;
 
-	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src,
-						     BATADV_NO_FLAGS);
+	tt_global_entry = batadv_tt_global_hash_find(bat_priv, src, vid);
 	if (!tt_global_entry)
 		goto out;
 
@@ -2572,6 +2583,8 @@ bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
 	ret = true;
 
 out:
+	if (vlan)
+		batadv_softif_vlan_free_ref(vlan);
 	if (tt_global_entry)
 		batadv_tt_global_entry_free_ref(tt_global_entry);
 	if (tt_local_entry)
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index 1d9506d..c6bf33c 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -39,7 +39,7 @@ void batadv_tt_free(struct batadv_priv *bat_priv);
 bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr,
 			 unsigned short vid);
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
-			   uint8_t *dst);
+			   uint8_t *dst, unsigned short vid);
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv);
 bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
 					uint8_t *addr, unsigned short vid);
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index e5fecd4..04a0da6 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -534,6 +534,7 @@ struct batadv_priv_nc {
  * struct batadv_softif_vlan - per VLAN attributes set
  * @vid: VLAN identifier
  * @kobj: kobject for sysfs vlan subdirectory
+ * @ap_isolation: AP isolation state
  * @list: list node for bat_priv::softif_vlan_list
  * @refcount: number of context where this object is currently in use
  * @rcu: struct used for freeing in a RCU-safe manner
@@ -541,6 +542,7 @@ struct batadv_priv_nc {
 struct batadv_softif_vlan {
 	unsigned short vid;
 	struct kobject *kobj;
+	atomic_t ap_isolation;		/* boolean */
 	struct hlist_node list;
 	atomic_t refcount;
 	struct rcu_head rcu;
@@ -556,7 +558,6 @@ struct batadv_softif_vlan {
  * @bonding: bool indicating whether traffic bonding is enabled
  * @fragmentation: bool indicating whether traffic fragmentation is enabled
  * @frag_seqno: incremental counter to identify chains of egress fragments
- * @ap_isolation: bool indicating whether ap isolation is enabled
  * @bridge_loop_avoidance: bool indicating whether bridge loop avoidance is
  *  enabled
  * @distributed_arp_table: bool indicating whether distributed ARP table is
@@ -603,7 +604,6 @@ struct batadv_priv {
 	atomic_t bonding;
 	atomic_t fragmentation;
 	atomic_t frag_seqno;
-	atomic_t ap_isolation;
 #ifdef CONFIG_BATMAN_ADV_BLA
 	atomic_t bridge_loop_avoidance;
 #endif
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 13/18] batman-adv: refine API calls for unicast transmissions of SKBs
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem
  Cc: netdev, b.a.t.m.a.n, Linus Lüssing, Marek Lindner,
	Antonio Quartulli

From: Linus Lüssing <linus.luessing@web.de>

With this patch the functions batadv_send_skb_unicast() and
batadv_send_skb_unicast_4addr() are further refined into
batadv_send_skb_via_tt(), batadv_send_skb_via_tt_4addr() and
batadv_send_skb_via_gw(). This way we avoid any "guessing" about where to send
a packet in the unicast forwarding methods and let the callers decide.

This is going to be useful for the upcoming multicast related patches in
particular.

Further, the return values were polished a little to use the more
appropriate NET_XMIT_* defines.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Acked-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 net/batman-adv/distributed-arp-table.c | 10 ++--
 net/batman-adv/send.c                  | 87 ++++++++++++++++++++++++++--------
 net/batman-adv/send.h                  | 51 ++++++++++++--------
 net/batman-adv/soft-interface.c        |  8 +++-
 4 files changed, 108 insertions(+), 48 deletions(-)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 47dbe9a..6c8c393 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -1037,13 +1037,13 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	 * that a node not using the 4addr packet format doesn't support it.
 	 */
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
-		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
-						    BATADV_P_DAT_CACHE_REPLY,
-						    vid);
+		err = batadv_send_skb_via_tt_4addr(bat_priv, skb_new,
+						   BATADV_P_DAT_CACHE_REPLY,
+						   vid);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new, vid);
+		err = batadv_send_skb_via_tt(bat_priv, skb_new, vid);
 
-	if (!err) {
+	if (err != NET_XMIT_DROP) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
 		ret = true;
 	}
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index acaa7ff..c83be5e 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -234,35 +234,31 @@ out:
 }
 
 /**
- * batadv_send_generic_unicast_skb - send an skb as unicast
+ * batadv_send_skb_unicast - encapsulate and send an skb via unicast
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: payload to send
  * @packet_type: the batman unicast packet type to use
  * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
  *  4addr packets)
+ * @orig_node: the originator to send the packet to
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Wrap the given skb into a batman-adv unicast or unicast-4addr header
+ * depending on whether BATADV_UNICAST or BATADV_UNICAST_4ADDR was supplied
+ * as packet_type. Then send this frame to the given orig_node and release a
+ * reference to this orig_node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
-				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype,
-				    unsigned short vid)
+static int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype,
+				   struct batadv_orig_node *orig_node,
+				   unsigned short vid)
 {
 	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
 	struct batadv_unicast_packet *unicast_packet;
-	struct batadv_orig_node *orig_node;
-	int ret = NET_RX_DROP;
-
-	/* get routing information */
-	if (is_multicast_ether_addr(ethhdr->h_dest))
-		orig_node = batadv_gw_get_selected_orig(bat_priv);
-	else
-		/* check for tt host - increases orig_node refcount.
-		 * returns NULL in case of AP isolation
-		 */
-		orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						     ethhdr->h_dest, vid);
+	int ret = NET_XMIT_DROP;
 
 	if (!orig_node)
 		goto out;
@@ -296,16 +292,67 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 		unicast_packet->ttvn = unicast_packet->ttvn - 1;
 
 	if (batadv_send_skb_to_orig(skb, orig_node, NULL) != NET_XMIT_DROP)
-		ret = 0;
+		ret = NET_XMIT_SUCCESS;
 
 out:
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
-	if (ret == NET_RX_DROP)
+	if (ret == NET_XMIT_DROP)
 		kfree_skb(skb);
 	return ret;
 }
 
+/**
+ * batadv_send_skb_via_tt_generic - send an skb via TT lookup
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: payload to send
+ * @packet_type: the batman unicast packet type to use
+ * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
+ *  4addr packets)
+ * @vid: the vid to be used to search the translation table
+ *
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast or unicast-4addr header depending on whether BATADV_UNICAST or
+ * BATADV_UNICAST_4ADDR was supplied as packet_type. Then send this frame
+ * to the according destination node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
+ */
+int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype, unsigned short vid)
+{
+	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
+	struct batadv_orig_node *orig_node;
+
+	orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
+					     ethhdr->h_dest, vid);
+	return batadv_send_skb_unicast(bat_priv, skb, packet_type,
+				       packet_subtype, orig_node, vid);
+}
+
+/**
+ * batadv_send_skb_via_gw - send an skb via gateway lookup
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: payload to send
+ * @vid: the vid to be used to search the translation table
+ *
+ * Look up the currently selected gateway. Wrap the given skb into a batman-adv
+ * unicast header and send this frame to this gateway node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
+ */
+int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
+			   unsigned short vid)
+{
+	struct batadv_orig_node *orig_node;
+
+	orig_node = batadv_gw_get_selected_orig(bat_priv);
+	return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0,
+				       orig_node, vid);
+}
+
 void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)
 {
 	struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
diff --git a/net/batman-adv/send.h b/net/batman-adv/send.h
index c030cb7..aa2e253 100644
--- a/net/batman-adv/send.h
+++ b/net/batman-adv/send.h
@@ -38,45 +38,54 @@ bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
 					   struct sk_buff *skb,
 					   struct batadv_orig_node *orig_node,
 					   int packet_subtype);
-int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
-				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype,
-				    unsigned short vid);
+int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype, unsigned short vid);
+int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
+			   unsigned short vid);
 
 /**
- * batadv_send_unicast_skb - send the skb encapsulated in a unicast packet
+ * batadv_send_skb_via_tt - send an skb via TT lookup
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast header. Then send this frame to the according destination node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
-					  struct sk_buff *skb,
-					  unsigned short vid)
+static inline int batadv_send_skb_via_tt(struct batadv_priv *bat_priv,
+					 struct sk_buff *skb,
+					 unsigned short vid)
 {
-	return batadv_send_skb_generic_unicast(bat_priv, skb, BATADV_UNICAST,
-					       0, vid);
+	return batadv_send_skb_via_tt_generic(bat_priv, skb, BATADV_UNICAST, 0,
+					      vid);
 }
 
 /**
- * batadv_send_4addr_unicast_skb - send the skb encapsulated in a unicast 4addr
- *  packet
+ * batadv_send_skb_via_tt_4addr - send an skb via TT lookup
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @packet_subtype: the unicast 4addr packet subtype to use
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast-4addr header. Then send this frame to the according destination
+ * node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-static inline int batadv_send_skb_unicast_4addr(struct batadv_priv *bat_priv,
-						struct sk_buff *skb,
-						int packet_subtype,
-						unsigned short vid)
+static inline int batadv_send_skb_via_tt_4addr(struct batadv_priv *bat_priv,
+					       struct sk_buff *skb,
+					       int packet_subtype,
+					       unsigned short vid)
 {
-	return batadv_send_skb_generic_unicast(bat_priv, skb,
-					       BATADV_UNICAST_4ADDR,
-					       packet_subtype, vid);
+	return batadv_send_skb_via_tt_generic(bat_priv, skb,
+					      BATADV_UNICAST_4ADDR,
+					      packet_subtype, vid);
 }
 
 #endif /* _NET_BATMAN_ADV_SEND_H_ */
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index baa74b9..e70f530 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -298,8 +298,12 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 		batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
 
-		ret = batadv_send_skb_unicast(bat_priv, skb, vid);
-		if (ret != 0)
+		if (is_multicast_ether_addr(ethhdr->h_dest))
+			ret = batadv_send_skb_via_gw(bat_priv, skb, vid);
+		else
+			ret = batadv_send_skb_via_tt(bat_priv, skb, vid);
+
+		if (ret == NET_XMIT_DROP)
 			goto dropped_freed;
 	}
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 13/18] batman-adv: refine API calls for unicast transmissions of SKBs
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Linus Lüssing <linus.luessing@web.de>

With this patch the functions batadv_send_skb_unicast() and
batadv_send_skb_unicast_4addr() are further refined into
batadv_send_skb_via_tt(), batadv_send_skb_via_tt_4addr() and
batadv_send_skb_via_gw(). This way we avoid any "guessing" about where to send
a packet in the unicast forwarding methods and let the callers decide.

This is going to be useful for the upcoming multicast related patches in
particular.

Further, the return values were polished a little to use the more
appropriate NET_XMIT_* defines.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Acked-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
---
 net/batman-adv/distributed-arp-table.c | 10 ++--
 net/batman-adv/send.c                  | 87 ++++++++++++++++++++++++++--------
 net/batman-adv/send.h                  | 51 ++++++++++++--------
 net/batman-adv/soft-interface.c        |  8 +++-
 4 files changed, 108 insertions(+), 48 deletions(-)

diff --git a/net/batman-adv/distributed-arp-table.c b/net/batman-adv/distributed-arp-table.c
index 47dbe9a..6c8c393 100644
--- a/net/batman-adv/distributed-arp-table.c
+++ b/net/batman-adv/distributed-arp-table.c
@@ -1037,13 +1037,13 @@ bool batadv_dat_snoop_incoming_arp_request(struct batadv_priv *bat_priv,
 	 * that a node not using the 4addr packet format doesn't support it.
 	 */
 	if (hdr_size == sizeof(struct batadv_unicast_4addr_packet))
-		err = batadv_send_skb_unicast_4addr(bat_priv, skb_new,
-						    BATADV_P_DAT_CACHE_REPLY,
-						    vid);
+		err = batadv_send_skb_via_tt_4addr(bat_priv, skb_new,
+						   BATADV_P_DAT_CACHE_REPLY,
+						   vid);
 	else
-		err = batadv_send_skb_unicast(bat_priv, skb_new, vid);
+		err = batadv_send_skb_via_tt(bat_priv, skb_new, vid);
 
-	if (!err) {
+	if (err != NET_XMIT_DROP) {
 		batadv_inc_counter(bat_priv, BATADV_CNT_DAT_CACHED_REPLY_TX);
 		ret = true;
 	}
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index acaa7ff..c83be5e 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -234,35 +234,31 @@ out:
 }
 
 /**
- * batadv_send_generic_unicast_skb - send an skb as unicast
+ * batadv_send_skb_unicast - encapsulate and send an skb via unicast
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: payload to send
  * @packet_type: the batman unicast packet type to use
  * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
  *  4addr packets)
+ * @orig_node: the originator to send the packet to
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Wrap the given skb into a batman-adv unicast or unicast-4addr header
+ * depending on whether BATADV_UNICAST or BATADV_UNICAST_4ADDR was supplied
+ * as packet_type. Then send this frame to the given orig_node and release a
+ * reference to this orig_node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
-				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype,
-				    unsigned short vid)
+static int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype,
+				   struct batadv_orig_node *orig_node,
+				   unsigned short vid)
 {
 	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
 	struct batadv_unicast_packet *unicast_packet;
-	struct batadv_orig_node *orig_node;
-	int ret = NET_RX_DROP;
-
-	/* get routing information */
-	if (is_multicast_ether_addr(ethhdr->h_dest))
-		orig_node = batadv_gw_get_selected_orig(bat_priv);
-	else
-		/* check for tt host - increases orig_node refcount.
-		 * returns NULL in case of AP isolation
-		 */
-		orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-						     ethhdr->h_dest, vid);
+	int ret = NET_XMIT_DROP;
 
 	if (!orig_node)
 		goto out;
@@ -296,16 +292,67 @@ int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
 		unicast_packet->ttvn = unicast_packet->ttvn - 1;
 
 	if (batadv_send_skb_to_orig(skb, orig_node, NULL) != NET_XMIT_DROP)
-		ret = 0;
+		ret = NET_XMIT_SUCCESS;
 
 out:
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
-	if (ret == NET_RX_DROP)
+	if (ret == NET_XMIT_DROP)
 		kfree_skb(skb);
 	return ret;
 }
 
+/**
+ * batadv_send_skb_via_tt_generic - send an skb via TT lookup
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: payload to send
+ * @packet_type: the batman unicast packet type to use
+ * @packet_subtype: the unicast 4addr packet subtype (only relevant for unicast
+ *  4addr packets)
+ * @vid: the vid to be used to search the translation table
+ *
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast or unicast-4addr header depending on whether BATADV_UNICAST or
+ * BATADV_UNICAST_4ADDR was supplied as packet_type. Then send this frame
+ * to the according destination node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
+ */
+int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype, unsigned short vid)
+{
+	struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
+	struct batadv_orig_node *orig_node;
+
+	orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
+					     ethhdr->h_dest, vid);
+	return batadv_send_skb_unicast(bat_priv, skb, packet_type,
+				       packet_subtype, orig_node, vid);
+}
+
+/**
+ * batadv_send_skb_via_gw - send an skb via gateway lookup
+ * @bat_priv: the bat priv with all the soft interface information
+ * @skb: payload to send
+ * @vid: the vid to be used to search the translation table
+ *
+ * Look up the currently selected gateway. Wrap the given skb into a batman-adv
+ * unicast header and send this frame to this gateway node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
+ */
+int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
+			   unsigned short vid)
+{
+	struct batadv_orig_node *orig_node;
+
+	orig_node = batadv_gw_get_selected_orig(bat_priv);
+	return batadv_send_skb_unicast(bat_priv, skb, BATADV_UNICAST, 0,
+				       orig_node, vid);
+}
+
 void batadv_schedule_bat_ogm(struct batadv_hard_iface *hard_iface)
 {
 	struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface);
diff --git a/net/batman-adv/send.h b/net/batman-adv/send.h
index c030cb7..aa2e253 100644
--- a/net/batman-adv/send.h
+++ b/net/batman-adv/send.h
@@ -38,45 +38,54 @@ bool batadv_send_skb_prepare_unicast_4addr(struct batadv_priv *bat_priv,
 					   struct sk_buff *skb,
 					   struct batadv_orig_node *orig_node,
 					   int packet_subtype);
-int batadv_send_skb_generic_unicast(struct batadv_priv *bat_priv,
-				    struct sk_buff *skb, int packet_type,
-				    int packet_subtype,
-				    unsigned short vid);
+int batadv_send_skb_via_tt_generic(struct batadv_priv *bat_priv,
+				   struct sk_buff *skb, int packet_type,
+				   int packet_subtype, unsigned short vid);
+int batadv_send_skb_via_gw(struct batadv_priv *bat_priv, struct sk_buff *skb,
+			   unsigned short vid);
 
 /**
- * batadv_send_unicast_skb - send the skb encapsulated in a unicast packet
+ * batadv_send_skb_via_tt - send an skb via TT lookup
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast header. Then send this frame to the according destination node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-static inline int batadv_send_skb_unicast(struct batadv_priv *bat_priv,
-					  struct sk_buff *skb,
-					  unsigned short vid)
+static inline int batadv_send_skb_via_tt(struct batadv_priv *bat_priv,
+					 struct sk_buff *skb,
+					 unsigned short vid)
 {
-	return batadv_send_skb_generic_unicast(bat_priv, skb, BATADV_UNICAST,
-					       0, vid);
+	return batadv_send_skb_via_tt_generic(bat_priv, skb, BATADV_UNICAST, 0,
+					      vid);
 }
 
 /**
- * batadv_send_4addr_unicast_skb - send the skb encapsulated in a unicast 4addr
- *  packet
+ * batadv_send_skb_via_tt_4addr - send an skb via TT lookup
  * @bat_priv: the bat priv with all the soft interface information
  * @skb: the payload to send
  * @packet_subtype: the unicast 4addr packet subtype to use
  * @vid: the vid to be used to search the translation table
  *
- * Returns 1 in case of error or 0 otherwise.
+ * Look up the recipient node for the destination address in the ethernet
+ * header via the translation table. Wrap the given skb into a batman-adv
+ * unicast-4addr header. Then send this frame to the according destination
+ * node.
+ *
+ * Returns NET_XMIT_DROP in case of error or NET_XMIT_SUCCESS otherwise.
  */
-static inline int batadv_send_skb_unicast_4addr(struct batadv_priv *bat_priv,
-						struct sk_buff *skb,
-						int packet_subtype,
-						unsigned short vid)
+static inline int batadv_send_skb_via_tt_4addr(struct batadv_priv *bat_priv,
+					       struct sk_buff *skb,
+					       int packet_subtype,
+					       unsigned short vid)
 {
-	return batadv_send_skb_generic_unicast(bat_priv, skb,
-					       BATADV_UNICAST_4ADDR,
-					       packet_subtype, vid);
+	return batadv_send_skb_via_tt_generic(bat_priv, skb,
+					      BATADV_UNICAST_4ADDR,
+					      packet_subtype, vid);
 }
 
 #endif /* _NET_BATMAN_ADV_SEND_H_ */
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index baa74b9..e70f530 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -298,8 +298,12 @@ static int batadv_interface_tx(struct sk_buff *skb,
 
 		batadv_dat_snoop_outgoing_arp_reply(bat_priv, skb);
 
-		ret = batadv_send_skb_unicast(bat_priv, skb, vid);
-		if (ret != 0)
+		if (is_multicast_ether_addr(ethhdr->h_dest))
+			ret = batadv_send_skb_via_gw(bat_priv, skb, vid);
+		else
+			ret = batadv_send_skb_via_tt(bat_priv, skb, vid);
+
+		if (ret == NET_XMIT_DROP)
 			goto dropped_freed;
 	}
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 14/18] batman-adv: remove bogus comment
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

this comment refers to the old batmand codebase and does
not make sense anymore. Remove it

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/gateway_client.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 4ed410f..20fa053 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -221,11 +221,6 @@ void batadv_gw_election(struct batadv_priv *bat_priv)
 	struct batadv_neigh_node *router = NULL;
 	char gw_addr[18] = { '\0' };
 
-	/* The batman daemon checks here if we already passed a full originator
-	 * cycle in order to make sure we don't choose the first gateway we
-	 * hear about. This check is based on the daemon's uptime which we
-	 * don't have.
-	 */
 	if (atomic_read(&bat_priv->gw_mode) != BATADV_GW_MODE_CLIENT)
 		goto out;
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 14/18] batman-adv: remove bogus comment
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

this comment refers to the old batmand codebase and does
not make sense anymore. Remove it

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/gateway_client.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c
index 4ed410f..20fa053 100644
--- a/net/batman-adv/gateway_client.c
+++ b/net/batman-adv/gateway_client.c
@@ -221,11 +221,6 @@ void batadv_gw_election(struct batadv_priv *bat_priv)
 	struct batadv_neigh_node *router = NULL;
 	char gw_addr[18] = { '\0' };
 
-	/* The batman daemon checks here if we already passed a full originator
-	 * cycle in order to make sure we don't choose the first gateway we
-	 * hear about. This check is based on the daemon's uptime which we
-	 * don't have.
-	 */
 	if (atomic_read(&bat_priv->gw_mode) != BATADV_GW_MODE_CLIENT)
 		goto out;
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 15/18] batman-adv: lock around TT operations to avoid sending inconsistent data
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

A TT response may be prepared and sent while the local or
global translation table is getting updated.

The worst case is when one of the tables is accessed after
its content has been recently updated but the metadata
(TTVN/CRC) has not yet. In this case the reader will get a
table content which does not match the TTVN/CRC.
This will lead to an inconsistent state and so to a TT
recovery.

To avoid entering this situation, put a lock around those TT
operations recomputing the metadata and around the TT
Response creation (the latter is the only reader that
accesses the metadata together with the table).

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/main.c              |  1 +
 net/batman-adv/originator.c        |  1 +
 net/batman-adv/translation-table.c | 37 ++++++++++++++++++++++++++-----------
 net/batman-adv/types.h             | 13 +++++++++++++
 4 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 2207551..3159a14 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -110,6 +110,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	spin_lock_init(&bat_priv->tt.req_list_lock);
 	spin_lock_init(&bat_priv->tt.roam_list_lock);
 	spin_lock_init(&bat_priv->tt.last_changeset_lock);
+	spin_lock_init(&bat_priv->tt.commit_lock);
 	spin_lock_init(&bat_priv->gw.list_lock);
 	spin_lock_init(&bat_priv->tvlv.container_list_lock);
 	spin_lock_init(&bat_priv->tvlv.handler_list_lock);
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index a591dc5..867778e 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -239,6 +239,7 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 	spin_lock_init(&orig_node->bcast_seqno_lock);
 	spin_lock_init(&orig_node->neigh_list_lock);
 	spin_lock_init(&orig_node->tt_buff_lock);
+	spin_lock_init(&orig_node->tt_lock);
 
 	batadv_nc_init_orig(orig_node);
 
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 58794c4..00f4faa 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -2019,6 +2019,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 		   req_src, tt_data->ttvn,
 		   (tt_data->flags & BATADV_TT_FULL_TABLE ? 'F' : '.'));
 
+	spin_lock_bh(&bat_priv->tt.commit_lock);
 
 	my_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 	req_ttvn = tt_data->ttvn;
@@ -2091,6 +2092,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 unlock:
 	spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
 out:
+	spin_unlock_bh(&bat_priv->tt.commit_lock);
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
 	if (primary_if)
@@ -2259,6 +2261,8 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	if (!orig_node)
 		goto out;
 
+	spin_lock_bh(&orig_node->tt_lock);
+
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
 		batadv_tt_fill_gtable(bat_priv, tt_data, resp_src, num_entries);
 	} else {
@@ -2267,18 +2271,20 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 					 tt_data->ttvn, tt_change);
 	}
 
-	/* Delete the tt_req_node from pending tt_requests list */
-	spin_lock_bh(&bat_priv->tt.req_list_lock);
-	list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) {
-		if (!batadv_compare_eth(node->addr, resp_src))
-			continue;
-		list_del(&node->list);
-		kfree(node);
-	}
-	spin_unlock_bh(&bat_priv->tt.req_list_lock);
-
 	/* Recalculate the CRC for this orig_node and store it */
 	orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+
+	spin_unlock_bh(&orig_node->tt_lock);
+
+	/* Delete the tt_req_node from pending tt_requests list */
+	spin_lock_bh(&bat_priv->tt.req_list_lock);
+	list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) {
+		if (!batadv_compare_eth(node->addr, resp_src))
+			continue;
+		list_del(&node->list);
+		kfree(node);
+	}
+	spin_unlock_bh(&bat_priv->tt.req_list_lock);
 out:
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
@@ -2532,10 +2538,12 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 {
 	uint16_t changed_num = 0;
 
+	spin_lock_bh(&bat_priv->tt.commit_lock);
+
 	if (atomic_read(&bat_priv->tt.local_changes) < 1) {
 		if (!batadv_atomic_dec_not_zero(&bat_priv->tt.ogm_append_cnt))
 			batadv_tt_tvlv_container_update(bat_priv);
-		return;
+		goto out;
 	}
 
 	changed_num = batadv_tt_set_flags(bat_priv->tt.local_hash,
@@ -2555,6 +2563,9 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 	/* reset the sending counter */
 	atomic_set(&bat_priv->tt.ogm_append_cnt, BATADV_TT_OGM_APPEND_MAX);
 	batadv_tt_tvlv_container_update(bat_priv);
+
+out:
+	spin_unlock_bh(&bat_priv->tt.commit_lock);
 }
 
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
@@ -2631,6 +2642,8 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 			goto request_table;
 		}
 
+		spin_lock_bh(&orig_node->tt_lock);
+
 		tt_change = (struct batadv_tvlv_tt_change *)tt_buff;
 		batadv_tt_update_changes(bat_priv, orig_node, tt_num_changes,
 					 ttvn, tt_change);
@@ -2641,6 +2654,8 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 */
 		orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
 
+		spin_unlock_bh(&orig_node->tt_lock);
+
 		/* The ttvn alone is not enough to guarantee consistency
 		 * because a single value could represent different states
 		 * (due to the wrap around). Thus a node has to check whether
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 04a0da6..bd95d61 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -128,6 +128,10 @@ struct batadv_frag_list_entry {
  * @tt_size: number of global TT entries announced by the orig node
  * @tt_initialised: bool keeping track of whether or not this node have received
  *  any translation table information from the orig node yet
+ * @tt_lock: prevents from updating the table while reading it. Table update is
+ *  made up by two operations (data structure update and metdata -CRC/TTVN-
+ *  recalculation) and they have to be executed atomically in order to avoid
+ *  another thread to read the table/metadata between those.
  * @last_real_seqno: last and best known sequence number
  * @last_ttl: ttl of last received packet
  * @bcast_bits: bitfield containing the info which payload broadcast originated
@@ -171,6 +175,8 @@ struct batadv_orig_node {
 	spinlock_t tt_buff_lock; /* protects tt_buff & tt_buff_len */
 	atomic_t tt_size;
 	bool tt_initialised;
+	/* prevents from changing the table while reading it */
+	spinlock_t tt_lock;
 	uint32_t last_real_seqno;
 	uint8_t last_ttl;
 	DECLARE_BITMAP(bcast_bits, BATADV_TQ_LOCAL_WINDOW_SIZE);
@@ -388,6 +394,11 @@ enum batadv_counters {
  * @last_changeset: last tt changeset this host has generated
  * @last_changeset_len: length of last tt changeset this host has generated
  * @last_changeset_lock: lock protecting last_changeset & last_changeset_len
+ * @commit_lock: prevents from executing a local TT commit while reading the
+ *  local table. The local TT commit is made up by two operations (data
+ *  structure update and metdata -CRC/TTVN- recalculation) and they have to be
+ *  executed atomically in order to avoid another thread to read the
+ *  table/metadata between those.
  * @work: work queue callback item for translation table purging
  */
 struct batadv_priv_tt {
@@ -408,6 +419,8 @@ struct batadv_priv_tt {
 	int16_t last_changeset_len;
 	/* protects last_changeset & last_changeset_len */
 	spinlock_t last_changeset_lock;
+	/* prevents from executing a commit while reading the table */
+	spinlock_t commit_lock;
 	struct delayed_work work;
 };
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 15/18] batman-adv: lock around TT operations to avoid sending inconsistent data
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

A TT response may be prepared and sent while the local or
global translation table is getting updated.

The worst case is when one of the tables is accessed after
its content has been recently updated but the metadata
(TTVN/CRC) has not yet. In this case the reader will get a
table content which does not match the TTVN/CRC.
This will lead to an inconsistent state and so to a TT
recovery.

To avoid entering this situation, put a lock around those TT
operations recomputing the metadata and around the TT
Response creation (the latter is the only reader that
accesses the metadata together with the table).

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/main.c              |  1 +
 net/batman-adv/originator.c        |  1 +
 net/batman-adv/translation-table.c | 37 ++++++++++++++++++++++++++-----------
 net/batman-adv/types.h             | 13 +++++++++++++
 4 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 2207551..3159a14 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -110,6 +110,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
 	spin_lock_init(&bat_priv->tt.req_list_lock);
 	spin_lock_init(&bat_priv->tt.roam_list_lock);
 	spin_lock_init(&bat_priv->tt.last_changeset_lock);
+	spin_lock_init(&bat_priv->tt.commit_lock);
 	spin_lock_init(&bat_priv->gw.list_lock);
 	spin_lock_init(&bat_priv->tvlv.container_list_lock);
 	spin_lock_init(&bat_priv->tvlv.handler_list_lock);
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index a591dc5..867778e 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -239,6 +239,7 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 	spin_lock_init(&orig_node->bcast_seqno_lock);
 	spin_lock_init(&orig_node->neigh_list_lock);
 	spin_lock_init(&orig_node->tt_buff_lock);
+	spin_lock_init(&orig_node->tt_lock);
 
 	batadv_nc_init_orig(orig_node);
 
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 58794c4..00f4faa 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -2019,6 +2019,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 		   req_src, tt_data->ttvn,
 		   (tt_data->flags & BATADV_TT_FULL_TABLE ? 'F' : '.'));
 
+	spin_lock_bh(&bat_priv->tt.commit_lock);
 
 	my_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 	req_ttvn = tt_data->ttvn;
@@ -2091,6 +2092,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 unlock:
 	spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
 out:
+	spin_unlock_bh(&bat_priv->tt.commit_lock);
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
 	if (primary_if)
@@ -2259,6 +2261,8 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	if (!orig_node)
 		goto out;
 
+	spin_lock_bh(&orig_node->tt_lock);
+
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
 		batadv_tt_fill_gtable(bat_priv, tt_data, resp_src, num_entries);
 	} else {
@@ -2267,18 +2271,20 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 					 tt_data->ttvn, tt_change);
 	}
 
-	/* Delete the tt_req_node from pending tt_requests list */
-	spin_lock_bh(&bat_priv->tt.req_list_lock);
-	list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) {
-		if (!batadv_compare_eth(node->addr, resp_src))
-			continue;
-		list_del(&node->list);
-		kfree(node);
-	}
-	spin_unlock_bh(&bat_priv->tt.req_list_lock);
-
 	/* Recalculate the CRC for this orig_node and store it */
 	orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+
+	spin_unlock_bh(&orig_node->tt_lock);
+
+	/* Delete the tt_req_node from pending tt_requests list */
+	spin_lock_bh(&bat_priv->tt.req_list_lock);
+	list_for_each_entry_safe(node, safe, &bat_priv->tt.req_list, list) {
+		if (!batadv_compare_eth(node->addr, resp_src))
+			continue;
+		list_del(&node->list);
+		kfree(node);
+	}
+	spin_unlock_bh(&bat_priv->tt.req_list_lock);
 out:
 	if (orig_node)
 		batadv_orig_node_free_ref(orig_node);
@@ -2532,10 +2538,12 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 {
 	uint16_t changed_num = 0;
 
+	spin_lock_bh(&bat_priv->tt.commit_lock);
+
 	if (atomic_read(&bat_priv->tt.local_changes) < 1) {
 		if (!batadv_atomic_dec_not_zero(&bat_priv->tt.ogm_append_cnt))
 			batadv_tt_tvlv_container_update(bat_priv);
-		return;
+		goto out;
 	}
 
 	changed_num = batadv_tt_set_flags(bat_priv->tt.local_hash,
@@ -2555,6 +2563,9 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 	/* reset the sending counter */
 	atomic_set(&bat_priv->tt.ogm_append_cnt, BATADV_TT_OGM_APPEND_MAX);
 	batadv_tt_tvlv_container_update(bat_priv);
+
+out:
+	spin_unlock_bh(&bat_priv->tt.commit_lock);
 }
 
 bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src,
@@ -2631,6 +2642,8 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 			goto request_table;
 		}
 
+		spin_lock_bh(&orig_node->tt_lock);
+
 		tt_change = (struct batadv_tvlv_tt_change *)tt_buff;
 		batadv_tt_update_changes(bat_priv, orig_node, tt_num_changes,
 					 ttvn, tt_change);
@@ -2641,6 +2654,8 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 */
 		orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
 
+		spin_unlock_bh(&orig_node->tt_lock);
+
 		/* The ttvn alone is not enough to guarantee consistency
 		 * because a single value could represent different states
 		 * (due to the wrap around). Thus a node has to check whether
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 04a0da6..bd95d61 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -128,6 +128,10 @@ struct batadv_frag_list_entry {
  * @tt_size: number of global TT entries announced by the orig node
  * @tt_initialised: bool keeping track of whether or not this node have received
  *  any translation table information from the orig node yet
+ * @tt_lock: prevents from updating the table while reading it. Table update is
+ *  made up by two operations (data structure update and metdata -CRC/TTVN-
+ *  recalculation) and they have to be executed atomically in order to avoid
+ *  another thread to read the table/metadata between those.
  * @last_real_seqno: last and best known sequence number
  * @last_ttl: ttl of last received packet
  * @bcast_bits: bitfield containing the info which payload broadcast originated
@@ -171,6 +175,8 @@ struct batadv_orig_node {
 	spinlock_t tt_buff_lock; /* protects tt_buff & tt_buff_len */
 	atomic_t tt_size;
 	bool tt_initialised;
+	/* prevents from changing the table while reading it */
+	spinlock_t tt_lock;
 	uint32_t last_real_seqno;
 	uint8_t last_ttl;
 	DECLARE_BITMAP(bcast_bits, BATADV_TQ_LOCAL_WINDOW_SIZE);
@@ -388,6 +394,11 @@ enum batadv_counters {
  * @last_changeset: last tt changeset this host has generated
  * @last_changeset_len: length of last tt changeset this host has generated
  * @last_changeset_lock: lock protecting last_changeset & last_changeset_len
+ * @commit_lock: prevents from executing a local TT commit while reading the
+ *  local table. The local TT commit is made up by two operations (data
+ *  structure update and metdata -CRC/TTVN- recalculation) and they have to be
+ *  executed atomically in order to avoid another thread to read the
+ *  table/metadata between those.
  * @work: work queue callback item for translation table purging
  */
 struct batadv_priv_tt {
@@ -408,6 +419,8 @@ struct batadv_priv_tt {
 	int16_t last_changeset_len;
 	/* protects last_changeset & last_changeset_len */
 	spinlock_t last_changeset_lock;
+	/* prevents from executing a commit while reading the table */
+	spinlock_t commit_lock;
 	struct delayed_work work;
 };
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 16/18] batman-adv: make the TT CRC logic VLAN specific
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

This change allows nodes to handle the TT table on a
per-VLAN basis. This is needed because nodes may have to
store only some of the global entries advertised by another
node.

In this scenario such nodes would re-create only a partial
global table and would not be able to compute a correct CRC
anymore.

This patch splits the logic and introduces one CRC per VLAN.
In this way a node fetching only some entries belonging to
some VLANs is still able to compute the needed CRCs and
still check the table correctness.

With this patch the shape of the TVLV-TT is changed too
because now a node needs to advertise all the CRCs of all
the VLANs that it is wired to.

The debug output of the local Translation Table now shows
the CRC along with each entry since there is not a common
value for the entire table anymore.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/originator.c        | 101 +++++-
 net/batman-adv/originator.h        |   7 +
 net/batman-adv/packet.h            |  18 +-
 net/batman-adv/translation-table.c | 720 +++++++++++++++++++++++++++++--------
 net/batman-adv/types.h             |  41 ++-
 5 files changed, 730 insertions(+), 157 deletions(-)

diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 867778e..7a499da 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -44,6 +44,88 @@ static int batadv_compare_orig(const struct hlist_node *node, const void *data2)
 	return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
 }
 
+/**
+ * batadv_orig_node_vlan_get - get an orig_node_vlan object
+ * @orig_node: the originator serving the VLAN
+ * @vid: the VLAN identifier
+ *
+ * Returns the vlan object identified by vid and belonging to orig_node or NULL
+ * if it does not exist.
+ */
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_get(struct batadv_orig_node *orig_node,
+			  unsigned short vid)
+{
+	struct batadv_orig_node_vlan *vlan = NULL, *tmp;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(tmp, &orig_node->vlan_list, list) {
+		if (tmp->vid != vid)
+			continue;
+
+		if (!atomic_inc_not_zero(&tmp->refcount))
+			continue;
+
+		vlan = tmp;
+
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
+/**
+ * batadv_orig_node_vlan_new - search and possibly create an orig_node_vlan
+ *  object
+ * @orig_node: the originator serving the VLAN
+ * @vid: the VLAN identifier
+ *
+ * Returns NULL in case of failure or the vlan object identified by vid and
+ * belonging to orig_node otherwise. The object is created and added to the list
+ * if it does not exist.
+ *
+ * The object is returned with refcounter increased by 1.
+ */
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_new(struct batadv_orig_node *orig_node,
+			  unsigned short vid)
+{
+	struct batadv_orig_node_vlan *vlan;
+
+	spin_lock_bh(&orig_node->vlan_list_lock);
+
+	/* first look if an object for this vid already exists */
+	vlan = batadv_orig_node_vlan_get(orig_node, vid);
+	if (vlan)
+		goto out;
+
+	vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+	if (!vlan)
+		goto out;
+
+	atomic_set(&vlan->refcount, 2);
+	vlan->vid = vid;
+
+	list_add_rcu(&vlan->list, &orig_node->vlan_list);
+
+out:
+	spin_unlock_bh(&orig_node->vlan_list_lock);
+
+	return vlan;
+}
+
+/**
+ * batadv_orig_node_vlan_free_ref - decrement the refcounter and possibly free
+ *  the originator-vlan object
+ * @orig_vlan: the originator-vlan object to release
+ */
+void batadv_orig_node_vlan_free_ref(struct batadv_orig_node_vlan *orig_vlan)
+{
+	if (atomic_dec_and_test(&orig_vlan->refcount))
+		kfree_rcu(orig_vlan, rcu);
+}
+
 int batadv_originator_init(struct batadv_priv *bat_priv)
 {
 	if (bat_priv->orig_hash)
@@ -218,6 +300,7 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 					      const uint8_t *addr)
 {
 	struct batadv_orig_node *orig_node;
+	struct batadv_orig_node_vlan *vlan;
 	int size, i;
 	int hash_added;
 	unsigned long reset_time;
@@ -235,11 +318,13 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 
 	INIT_HLIST_HEAD(&orig_node->neigh_list);
 	INIT_LIST_HEAD(&orig_node->bond_list);
+	INIT_LIST_HEAD(&orig_node->vlan_list);
 	spin_lock_init(&orig_node->ogm_cnt_lock);
 	spin_lock_init(&orig_node->bcast_seqno_lock);
 	spin_lock_init(&orig_node->neigh_list_lock);
 	spin_lock_init(&orig_node->tt_buff_lock);
 	spin_lock_init(&orig_node->tt_lock);
+	spin_lock_init(&orig_node->vlan_list_lock);
 
 	batadv_nc_init_orig(orig_node);
 
@@ -251,22 +336,30 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 	memcpy(orig_node->orig, addr, ETH_ALEN);
 	batadv_dat_init_orig_node_addr(orig_node);
 	orig_node->router = NULL;
-	orig_node->tt_crc = 0;
 	atomic_set(&orig_node->last_ttvn, 0);
 	orig_node->tt_buff = NULL;
 	orig_node->tt_buff_len = 0;
-	atomic_set(&orig_node->tt_size, 0);
 	reset_time = jiffies - 1 - msecs_to_jiffies(BATADV_RESET_PROTECTION_MS);
 	orig_node->bcast_seqno_reset = reset_time;
 	orig_node->batman_seqno_reset = reset_time;
 
 	atomic_set(&orig_node->bond_candidates, 0);
 
+	/* create a vlan object for the "untagged" LAN */
+	vlan = batadv_orig_node_vlan_new(orig_node, BATADV_NO_FLAGS);
+	if (!vlan)
+		goto free_orig_node;
+	/* batadv_orig_node_vlan_new() increases the refcounter.
+	 * Immediately release vlan since it is not needed anymore in this
+	 * context
+	 */
+	batadv_orig_node_vlan_free_ref(vlan);
+
 	size = bat_priv->num_ifaces * sizeof(unsigned long) * BATADV_NUM_WORDS;
 
 	orig_node->bcast_own = kzalloc(size, GFP_ATOMIC);
 	if (!orig_node->bcast_own)
-		goto free_orig_node;
+		goto free_vlan;
 
 	size = bat_priv->num_ifaces * sizeof(uint8_t);
 	orig_node->bcast_own_sum = kzalloc(size, GFP_ATOMIC);
@@ -291,6 +384,8 @@ free_bcast_own_sum:
 	kfree(orig_node->bcast_own_sum);
 free_bcast_own:
 	kfree(orig_node->bcast_own);
+free_vlan:
+	batadv_orig_node_vlan_free_ref(vlan);
 free_orig_node:
 	kfree(orig_node);
 	return NULL;
diff --git a/net/batman-adv/originator.h b/net/batman-adv/originator.h
index 7887b84..cc6d686 100644
--- a/net/batman-adv/originator.h
+++ b/net/batman-adv/originator.h
@@ -40,6 +40,13 @@ int batadv_orig_hash_add_if(struct batadv_hard_iface *hard_iface,
 			    int max_if_num);
 int batadv_orig_hash_del_if(struct batadv_hard_iface *hard_iface,
 			    int max_if_num);
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_new(struct batadv_orig_node *orig_node,
+			  unsigned short vid);
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_get(struct batadv_orig_node *orig_node,
+			  unsigned short vid);
+void batadv_orig_node_vlan_free_ref(struct batadv_orig_node_vlan *orig_vlan);
 
 
 /* hashfunction to choose an entry in a hash table of given size
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index 6311642..9fbcaac 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -391,14 +391,26 @@ struct batadv_tvlv_gateway_data {
  * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
  * @flags: translation table flags (see batadv_tt_data_flags)
  * @ttvn: translation table version number
- * @reserved: field reserved for future use
- * @crc: crc32 checksum of the local translation table
+ * @vlan_num: number of announced VLANs. In the TVLV this struct is followed by
+ *  one batadv_tvlv_tt_vlan_data object per announced vlan
  */
 struct batadv_tvlv_tt_data {
 	uint8_t flags;
 	uint8_t ttvn;
+	__be16  num_vlan;
+};
+
+/**
+ * struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through
+ *  the tt tvlv container
+ * @crc: crc32 checksum of the entries belonging to this vlan
+ * @vid: vlan identifier
+ * @reserved: unused, useful for alignment purposes
+ */
+struct batadv_tvlv_tt_vlan_data {
+	__be32	crc;
+	__be16	vid;
 	uint16_t reserved;
-	__be32  crc;
 };
 
 /**
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 00f4faa..41a8387 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -208,13 +208,107 @@ static void batadv_tt_orig_list_entry_free_rcu(struct rcu_head *rcu)
 	kfree(orig_entry);
 }
 
+/**
+ * batadv_tt_local_size_mod - change the size by v of the local table identified
+ *  by vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier of the sub-table to change
+ * @v: the amount to sum to the local table size
+ */
+static void batadv_tt_local_size_mod(struct batadv_priv *bat_priv,
+				     unsigned short vid, int v)
+{
+	struct batadv_softif_vlan *vlan;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (!vlan)
+		return;
+
+	atomic_add(v, &vlan->tt.num_entries);
+
+	batadv_softif_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_tt_local_size_inc - increase by one the local table size for the given
+ *  vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ */
+static void batadv_tt_local_size_inc(struct batadv_priv *bat_priv,
+				     unsigned short vid)
+{
+	batadv_tt_local_size_mod(bat_priv, vid, 1);
+}
+
+/**
+ * batadv_tt_local_size_dec - decrease by one the local table size for the given
+ *  vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ */
+static void batadv_tt_local_size_dec(struct batadv_priv *bat_priv,
+				     unsigned short vid)
+{
+	batadv_tt_local_size_mod(bat_priv, vid, -1);
+}
+
+/**
+ * batadv_tt_global_size_mod - change the size by v of the local table
+ *  identified by vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ * @v: the amount to sum to the global table size
+ */
+static void batadv_tt_global_size_mod(struct batadv_orig_node *orig_node,
+				      unsigned short vid, int v)
+{
+	struct batadv_orig_node_vlan *vlan;
+
+	vlan = batadv_orig_node_vlan_new(orig_node, vid);
+	if (!vlan)
+		return;
+
+	if (atomic_add_return(v, &vlan->tt.num_entries) == 0) {
+		spin_lock_bh(&orig_node->vlan_list_lock);
+		list_del_rcu(&vlan->list);
+		spin_unlock_bh(&orig_node->vlan_list_lock);
+		batadv_orig_node_vlan_free_ref(vlan);
+	}
+
+	batadv_orig_node_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_tt_global_size_inc - increase by one the global table size for the
+ *  given vid
+ * @orig_node: the originator which global table size has to be decreased
+ * @vid: the vlan identifier
+ */
+static void batadv_tt_global_size_inc(struct batadv_orig_node *orig_node,
+				      unsigned short vid)
+{
+	batadv_tt_global_size_mod(orig_node, vid, 1);
+}
+
+/**
+ * batadv_tt_global_size_dec - decrease by one the global table size for the
+ *  given vid
+ * @orig_node: the originator which global table size has to be decreased
+ * @vid: the vlan identifier
+ */
+static void batadv_tt_global_size_dec(struct batadv_orig_node *orig_node,
+				      unsigned short vid)
+{
+	batadv_tt_global_size_mod(orig_node, vid, -1);
+}
+
 static void
 batadv_tt_orig_list_entry_free_ref(struct batadv_tt_orig_list_entry *orig_entry)
 {
 	if (!atomic_dec_and_test(&orig_entry->refcount))
 		return;
-	/* to avoid race conditions, immediately decrease the tt counter */
-	atomic_dec(&orig_entry->orig_node->tt_size);
+
 	call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
 }
 
@@ -464,6 +558,149 @@ out:
 }
 
 /**
+ * batadv_tt_prepare_tvlv_global_data - prepare the TVLV TT header to send
+ *  within a TT Response directed to another node
+ * @orig_node: originator for which the TT data has to be prepared
+ * @tt_data: uninitialised pointer to the address of the TVLV buffer
+ * @tt_change: uninitialised pointer to the address of the area where the TT
+ *  changed can be stored
+ * @tt_len: pointer to the length to reserve to the tt_change. if -1 this
+ *  function reserves the amount of space needed to send the entire global TT
+ *  table. In case of success the value is updated with the real amount of
+ *  reserved bytes
+
+ * Allocate the needed amount of memory for the entire TT TVLV and write its
+ * header made up by one tvlv_tt_data object and a series of tvlv_tt_vlan_data
+ * objects, one per active VLAN served by the originator node.
+ *
+ * Return the size of the allocated buffer or 0 in case of failure.
+ */
+static uint16_t
+batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
+				   struct batadv_tvlv_tt_data **tt_data,
+				   struct batadv_tvlv_tt_change **tt_change,
+				   int32_t *tt_len)
+{
+	uint16_t num_vlan = 0, num_entries = 0, change_offset, tvlv_len;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_orig_node_vlan *vlan;
+	uint8_t *tt_change_ptr;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		num_vlan++;
+		num_entries += atomic_read(&vlan->tt.num_entries);
+	}
+
+	change_offset = sizeof(**tt_data);
+	change_offset += num_vlan * sizeof(*tt_vlan);
+
+	/* if tt_len is negative, allocate the space needed by the full table */
+	if (*tt_len < 0)
+		*tt_len = batadv_tt_len(num_entries);
+
+	tvlv_len = *tt_len;
+	tvlv_len += change_offset;
+
+	*tt_data = kmalloc(tvlv_len, GFP_ATOMIC);
+	if (!*tt_data) {
+		*tt_len = 0;
+		goto out;
+	}
+
+	(*tt_data)->flags = BATADV_NO_FLAGS;
+	(*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
+	(*tt_data)->num_vlan = htons(num_vlan);
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		tt_vlan->vid = htons(vlan->vid);
+		tt_vlan->crc = htonl(vlan->tt.crc);
+
+		tt_vlan++;
+	}
+
+	tt_change_ptr = (uint8_t *)*tt_data + change_offset;
+	*tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
+
+out:
+	rcu_read_unlock();
+	return tvlv_len;
+}
+
+/**
+ * batadv_tt_prepare_tvlv_local_data - allocate and prepare the TT TVLV for this
+ *  node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @tt_data: uninitialised pointer to the address of the TVLV buffer
+ * @tt_change: uninitialised pointer to the address of the area where the TT
+ *  changes can be stored
+ * @tt_len: pointer to the length to reserve to the tt_change. if -1 this
+ *  function reserves the amount of space needed to send the entire local TT
+ *  table. In case of success the value is updated with the real amount of
+ *  reserved bytes
+ *
+ * Allocate the needed amount of memory for the entire TT TVLV and write its
+ * header made up by one tvlv_tt_data object and a series of tvlv_tt_vlan_data
+ * objects, one per active VLAN.
+ *
+ * Return the size of the allocated buffer or 0 in case of failure.
+ */
+static uint16_t
+batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
+				  struct batadv_tvlv_tt_data **tt_data,
+				  struct batadv_tvlv_tt_change **tt_change,
+				  int32_t *tt_len)
+{
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_softif_vlan *vlan;
+	uint16_t num_vlan = 0, num_entries = 0, tvlv_len;
+	uint8_t *tt_change_ptr;
+	int change_offset;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		num_vlan++;
+		num_entries += atomic_read(&vlan->tt.num_entries);
+	}
+
+	change_offset = sizeof(**tt_data);
+	change_offset += num_vlan * sizeof(*tt_vlan);
+
+	/* if tt_len is negative, allocate the space needed by the full table */
+	if (*tt_len < 0)
+		*tt_len = batadv_tt_len(num_entries);
+
+	tvlv_len = *tt_len;
+	tvlv_len += change_offset;
+
+	*tt_data = kmalloc(tvlv_len, GFP_ATOMIC);
+	if (!*tt_data) {
+		tvlv_len = 0;
+		goto out;
+	}
+
+	(*tt_data)->flags = BATADV_NO_FLAGS;
+	(*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn);
+	(*tt_data)->num_vlan = htons(num_vlan);
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		tt_vlan->vid = htons(vlan->vid);
+		tt_vlan->crc = htonl(vlan->tt.crc);
+
+		tt_vlan++;
+	}
+
+	tt_change_ptr = (uint8_t *)*tt_data + change_offset;
+	*tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
+
+out:
+	rcu_read_unlock();
+	return tvlv_len;
+}
+
+/**
  * batadv_tt_tvlv_container_update - update the translation table tvlv container
  *  after local tt changes have been committed
  * @bat_priv: the bat priv with all the soft interface information
@@ -473,10 +710,12 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 	struct batadv_tt_change_node *entry, *safe;
 	struct batadv_tvlv_tt_data *tt_data;
 	struct batadv_tvlv_tt_change *tt_change;
-	int tt_diff_len = 0, tt_change_len = 0;
+	int tt_diff_len, tt_change_len = 0;
 	int tt_diff_entries_num = 0, tt_diff_entries_count = 0;
+	uint16_t tvlv_len;
 
-	tt_diff_len += batadv_tt_len(atomic_read(&bat_priv->tt.local_changes));
+	tt_diff_entries_num = atomic_read(&bat_priv->tt.local_changes);
+	tt_diff_len = batadv_tt_len(tt_diff_entries_num);
 
 	/* if we have too many changes for one packet don't send any
 	 * and wait for the tt table request which will be fragmented
@@ -484,24 +723,19 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 	if (tt_diff_len > bat_priv->soft_iface->mtu)
 		tt_diff_len = 0;
 
-	tt_data = kzalloc(sizeof(*tt_data) + tt_diff_len, GFP_ATOMIC);
-	if (!tt_data)
+	tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv, &tt_data,
+						     &tt_change, &tt_diff_len);
+	if (!tvlv_len)
 		return;
 
 	tt_data->flags = BATADV_TT_OGM_DIFF;
-	tt_data->ttvn = atomic_read(&bat_priv->tt.vn);
-	tt_data->crc = htonl(bat_priv->tt.local_crc);
 
 	if (tt_diff_len == 0)
 		goto container_register;
 
-	tt_diff_entries_num = batadv_tt_entries(tt_diff_len);
-
 	spin_lock_bh(&bat_priv->tt.changes_list_lock);
 	atomic_set(&bat_priv->tt.local_changes, 0);
 
-	tt_change = (struct batadv_tvlv_tt_change *)(tt_data + 1);
-
 	list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list,
 				 list) {
 		if (tt_diff_entries_count < tt_diff_entries_num) {
@@ -537,7 +771,7 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 
 container_register:
 	batadv_tvlv_container_register(bat_priv, BATADV_TVLV_TT, 1, tt_data,
-				       sizeof(*tt_data) + tt_change_len);
+				       tvlv_len);
 	kfree(tt_data);
 }
 
@@ -549,7 +783,9 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_local_entry *tt_local;
 	struct batadv_hard_iface *primary_if;
+	struct batadv_softif_vlan *vlan;
 	struct hlist_head *head;
+	unsigned short vid;
 	uint32_t i;
 	int last_seen_secs;
 	int last_seen_msecs;
@@ -562,11 +798,10 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 		goto out;
 
 	seq_printf(seq,
-		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u CRC: %#.8x):\n",
-		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn),
-		   bat_priv->tt.local_crc);
-	seq_printf(seq, "       %-13s  %s %-7s %-10s\n", "Client", "VID",
-		   "Flags", "Last seen");
+		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u):\n",
+		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn));
+	seq_printf(seq, "       %-13s  %s %-7s %-9s (%-10s)\n", "Client", "VID",
+		   "Flags", "Last seen", "CRC");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -577,6 +812,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 			tt_local = container_of(tt_common_entry,
 						struct batadv_tt_local_entry,
 						common);
+			vid = tt_common_entry->vid;
 			last_seen_jiffies = jiffies - tt_local->last_seen;
 			last_seen_msecs = jiffies_to_msecs(last_seen_jiffies);
 			last_seen_secs = last_seen_msecs / 1000;
@@ -584,7 +820,15 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 
 			no_purge = tt_common_entry->flags & np_flag;
 
-			seq_printf(seq, " * %pM %4i [%c%c%c%c%c] %3u.%03u\n",
+			vlan = batadv_softif_vlan_get(bat_priv, vid);
+			if (!vlan) {
+				seq_printf(seq, "Cannot retrieve VLAN %d\n",
+					   BATADV_PRINT_VID(vid));
+				continue;
+			}
+
+			seq_printf(seq,
+				   " * %pM %4i [%c%c%c%c%c] %3u.%03u   (%#.8x)\n",
 				   tt_common_entry->addr,
 				   BATADV_PRINT_VID(tt_common_entry->vid),
 				   (tt_common_entry->flags &
@@ -597,7 +841,10 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 				   (tt_common_entry->flags &
 				    BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 				   no_purge ? 0 : last_seen_secs,
-				   no_purge ? 0 : last_seen_msecs);
+				   no_purge ? 0 : last_seen_msecs,
+				   vlan->tt.crc);
+
+			batadv_softif_vlan_free_ref(vlan);
 		}
 		rcu_read_unlock();
 	}
@@ -860,7 +1107,7 @@ batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
 
 	INIT_HLIST_NODE(&orig_entry->list);
 	atomic_inc(&orig_node->refcount);
-	atomic_inc(&orig_node->tt_size);
+	batadv_tt_global_size_inc(orig_node, tt_global->common.vid);
 	orig_entry->orig_node = orig_node;
 	orig_entry->ttvn = ttvn;
 	atomic_set(&orig_entry->refcount, 2);
@@ -1070,45 +1317,71 @@ static void
 batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 			     struct seq_file *seq)
 {
-	struct hlist_head *head;
 	struct batadv_tt_orig_list_entry *orig_entry, *best_entry;
 	struct batadv_tt_common_entry *tt_common_entry;
-	uint16_t flags;
+	struct batadv_orig_node_vlan *vlan;
+	struct hlist_head *head;
 	uint8_t last_ttvn;
+	uint16_t flags;
 
 	tt_common_entry = &tt_global_entry->common;
 	flags = tt_common_entry->flags;
 
 	best_entry = batadv_transtable_best_orig(tt_global_entry);
 	if (best_entry) {
+		vlan = batadv_orig_node_vlan_get(best_entry->orig_node,
+						 tt_common_entry->vid);
+		if (!vlan) {
+			seq_printf(seq,
+				   " * Cannot retrieve VLAN %d for originator %pM\n",
+				   BATADV_PRINT_VID(tt_common_entry->vid),
+				   best_entry->orig_node->orig);
+			goto print_list;
+		}
+
 		last_ttvn = atomic_read(&best_entry->orig_node->last_ttvn);
 		seq_printf(seq,
 			   " %c %pM %4i   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '*', tt_global_entry->common.addr,
 			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   best_entry->ttvn, best_entry->orig_node->orig,
-			   last_ttvn, best_entry->orig_node->tt_crc,
+			   last_ttvn, vlan->tt.crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 			   (flags & BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 			   (flags & BATADV_TT_CLIENT_TEMP ? 'T' : '.'));
+
+		batadv_orig_node_vlan_free_ref(vlan);
 	}
 
+print_list:
 	head = &tt_global_entry->orig_list;
 
 	hlist_for_each_entry_rcu(orig_entry, head, list) {
 		if (best_entry == orig_entry)
 			continue;
 
+		vlan = batadv_orig_node_vlan_get(orig_entry->orig_node,
+						 tt_common_entry->vid);
+		if (!vlan) {
+			seq_printf(seq,
+				   " + Cannot retrieve VLAN %d for originator %pM\n",
+				   BATADV_PRINT_VID(tt_common_entry->vid),
+				   orig_entry->orig_node->orig);
+			continue;
+		}
+
 		last_ttvn = atomic_read(&orig_entry->orig_node->last_ttvn);
 		seq_printf(seq,
-			   " %c %pM %4d   (%3u) via %pM     (%3u)   [%c%c%c]\n",
+			   " %c %pM %4d   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '+', tt_global_entry->common.addr,
 			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   orig_entry->ttvn, orig_entry->orig_node->orig,
-			   last_ttvn,
+			   last_ttvn, vlan->tt.crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 			   (flags & BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 			   (flags & BATADV_TT_CLIENT_TEMP ? 'T' : '.'));
+
+		batadv_orig_node_vlan_free_ref(vlan);
 	}
 }
 
@@ -1165,6 +1438,8 @@ batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry)
 	head = &tt_global_entry->orig_list;
 	hlist_for_each_entry_safe(orig_entry, safe, head, list) {
 		hlist_del_rcu(&orig_entry->list);
+		batadv_tt_global_size_dec(orig_entry->orig_node,
+					  tt_global_entry->common.vid);
 		batadv_tt_orig_list_entry_free_ref(orig_entry);
 	}
 	spin_unlock_bh(&tt_global_entry->list_lock);
@@ -1192,6 +1467,8 @@ batadv_tt_global_del_orig_entry(struct batadv_priv *bat_priv,
 				   tt_global_entry->common.addr,
 				   BATADV_PRINT_VID(vid), message);
 			hlist_del_rcu(&orig_entry->list);
+			batadv_tt_global_size_dec(orig_node,
+						  tt_global_entry->common.vid);
 			batadv_tt_orig_list_entry_free_ref(orig_entry);
 		}
 	}
@@ -1535,6 +1812,7 @@ out:
  *  to the given orig_node
  * @bat_priv: the bat priv with all the soft interface information
  * @orig_node: originator for which the CRC should be computed
+ * @vid: VLAN identifier for which the CRC32 has to be computed
  *
  * This function computes the checksum for the global table corresponding to a
  * specific originator. In particular, the checksum is computed as follows: For
@@ -1554,7 +1832,8 @@ out:
  * Returns the checksum of the global table of a given originator.
  */
 static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
-				     struct batadv_orig_node *orig_node)
+				     struct batadv_orig_node *orig_node,
+				     unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.global_hash;
 	struct batadv_tt_common_entry *tt_common;
@@ -1570,6 +1849,12 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 			tt_global = container_of(tt_common,
 						 struct batadv_tt_global_entry,
 						 common);
+			/* compute the CRC only for entries belonging to the
+			 * VLAN identified by the vid passed as parameter
+			 */
+			if (tt_common->vid != vid)
+				continue;
+
 			/* Roaming clients are in the global table for
 			 * consistency only. They don't have to be
 			 * taken into account while computing the
@@ -1604,13 +1889,15 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 /**
  * batadv_tt_local_crc - calculates the checksum of the local table
  * @bat_priv: the bat priv with all the soft interface information
+ * @vid: VLAN identifier for which the CRC32 has to be computed
  *
  * For details about the computation, please refer to the documentation for
  * batadv_tt_global_crc().
  *
  * Returns the checksum of the local table
  */
-static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
+static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv,
+				    unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
 	struct batadv_tt_common_entry *tt_common;
@@ -1622,6 +1909,12 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(tt_common, head, hash_entry) {
+			/* compute the CRC only for entries belonging to the
+			 * VLAN identified by vid
+			 */
+			if (tt_common->vid != vid)
+				continue;
+
 			/* not yet committed clients have not to be taken into
 			 * account while computing the CRC
 			 */
@@ -1753,44 +2046,29 @@ static int batadv_tt_global_valid(const void *entry_ptr,
 }
 
 /**
- * batadv_tt_tvlv_generate - creates tvlv tt data buffer to fill it with the
- *  tt entries from the specified tt hash
+ * batadv_tt_tvlv_generate - fill the tvlv buff with the tt entries from the
+ *  specified tt hash
  * @bat_priv: the bat priv with all the soft interface information
  * @hash: hash table containing the tt entries
  * @tt_len: expected tvlv tt data buffer length in number of bytes
+ * @tvlv_buff: pointer to the buffer to fill with the TT data
  * @valid_cb: function to filter tt change entries
  * @cb_data: data passed to the filter function as argument
- *
- * Returns pointer to allocated tvlv tt data buffer if operation was
- * successful or NULL otherwise.
  */
-static struct batadv_tvlv_tt_data *
-batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
-			struct batadv_hashtable *hash, uint16_t tt_len,
-			int (*valid_cb)(const void *, const void *),
-			void *cb_data)
+static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
+				    struct batadv_hashtable *hash,
+				    void *tvlv_buff, uint16_t tt_len,
+				    int (*valid_cb)(const void *, const void *),
+				    void *cb_data)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
-	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct hlist_head *head;
 	uint16_t tt_tot, tt_num_entries = 0;
-	ssize_t tvlv_tt_size = sizeof(struct batadv_tvlv_tt_data);
 	uint32_t i;
 
-	if (tvlv_tt_size + tt_len > bat_priv->soft_iface->mtu) {
-		tt_len = bat_priv->soft_iface->mtu - tvlv_tt_size;
-		tt_len -= tt_len % sizeof(struct batadv_tvlv_tt_change);
-	}
-
 	tt_tot = batadv_tt_entries(tt_len);
-
-	tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-			       GFP_ATOMIC);
-	if (!tvlv_tt_data)
-		goto out;
-
-	tt_change = (struct batadv_tvlv_tt_change *)(tvlv_tt_data + 1);
+	tt_change = (struct batadv_tvlv_tt_change *)tvlv_buff;
 
 	rcu_read_lock();
 	for (i = 0; i < hash->size; i++) {
@@ -1815,9 +2093,89 @@ batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
 		}
 	}
 	rcu_read_unlock();
+}
 
-out:
-	return tvlv_tt_data;
+/**
+ * batadv_tt_global_check_crc - check if all the CRCs are correct
+ * @orig_node: originator for which the CRCs have to be checked
+ * @tt_vlan: pointer to the first tvlv VLAN entry
+ * @num_vlan: number of tvlv VLAN entries
+ * @create: if true, create VLAN objects if not found
+ *
+ * Return true if all the received CRCs match the locally stored ones, false
+ * otherwise
+ */
+static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
+				       struct batadv_tvlv_tt_vlan_data *tt_vlan,
+				       uint16_t num_vlan)
+{
+	struct batadv_tvlv_tt_vlan_data *tt_vlan_tmp;
+	struct batadv_orig_node_vlan *vlan;
+	int i;
+
+	/* check if each received CRC matches the locally stored one */
+	for (i = 0; i < num_vlan; i++) {
+		tt_vlan_tmp = tt_vlan + i;
+
+		/* if orig_node is a backbone node for this VLAN, don't check
+		 * the CRC as we ignore all the global entries over it
+		 */
+		if (batadv_bla_is_backbone_gw_orig(orig_node->bat_priv,
+						   orig_node->orig))
+			continue;
+
+		vlan = batadv_orig_node_vlan_get(orig_node,
+						 ntohs(tt_vlan_tmp->vid));
+		if (!vlan)
+			return false;
+
+		if (vlan->tt.crc != ntohl(tt_vlan_tmp->crc))
+			return false;
+	}
+
+	return true;
+}
+
+/**
+ * batadv_tt_local_update_crc - update all the local CRCs
+ * @bat_priv: the bat priv with all the soft interface information
+ */
+static void batadv_tt_local_update_crc(struct batadv_priv *bat_priv)
+{
+	struct batadv_softif_vlan *vlan;
+
+	/* recompute the global CRC for each VLAN */
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		vlan->tt.crc = batadv_tt_local_crc(bat_priv, vlan->vid);
+	}
+	rcu_read_unlock();
+}
+
+/**
+ * batadv_tt_global_update_crc - update all the global CRCs for this orig_node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: the orig_node for which the CRCs have to be updated
+ */
+static void batadv_tt_global_update_crc(struct batadv_priv *bat_priv,
+					struct batadv_orig_node *orig_node)
+{
+	struct batadv_orig_node_vlan *vlan;
+	uint32_t crc;
+
+	/* recompute the global CRC for each VLAN */
+	rcu_read_lock();
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		/* if orig_node is a backbone node for this VLAN, don't compute
+		 * the CRC as we ignore all the global entries over it
+		 */
+		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
+			continue;
+
+		crc = batadv_tt_global_crc(bat_priv, orig_node, vlan->vid);
+		vlan->tt.crc = crc;
+	}
+	rcu_read_unlock();
 }
 
 /**
@@ -1825,19 +2183,23 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @dst_orig_node: the destination of the message
  * @ttvn: the version number that the source of the message is looking for
- * @tt_crc: the CRC associated with the version number
+ * @tt_vlan: pointer to the first tvlv VLAN object to request
+ * @num_vlan: number of tvlv VLAN entries
  * @full_table: ask for the entire translation table if true, while only for the
  *  last TT diff otherwise
  */
 static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 				  struct batadv_orig_node *dst_orig_node,
-				  uint8_t ttvn, uint32_t tt_crc,
-				  bool full_table)
+				  uint8_t ttvn,
+				  struct batadv_tvlv_tt_vlan_data *tt_vlan,
+				  uint16_t num_vlan, bool full_table)
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_hard_iface *primary_if;
 	struct batadv_tt_req_node *tt_req_node = NULL;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan_req;
+	struct batadv_hard_iface *primary_if;
 	bool ret = false;
+	int i, size;
 
 	primary_if = batadv_primary_if_get_selected(bat_priv);
 	if (!primary_if)
@@ -1850,13 +2212,26 @@ static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 	if (!tt_req_node)
 		goto out;
 
-	tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data), GFP_ATOMIC);
+	size = sizeof(*tvlv_tt_data) + sizeof(*tt_vlan_req) * num_vlan;
+	tvlv_tt_data = kzalloc(size, GFP_ATOMIC);
 	if (!tvlv_tt_data)
 		goto out;
 
 	tvlv_tt_data->flags = BATADV_TT_REQUEST;
 	tvlv_tt_data->ttvn = ttvn;
-	tvlv_tt_data->crc = htonl(tt_crc);
+	tvlv_tt_data->num_vlan = htons(num_vlan);
+
+	/* send all the CRCs within the request. This is needed by intermediate
+	 * nodes to ensure they have the correct table before replying
+	 */
+	tt_vlan_req = (struct batadv_tvlv_tt_vlan_data *)(tvlv_tt_data + 1);
+	for (i = 0; i < num_vlan; i++) {
+		tt_vlan_req->vid = tt_vlan->vid;
+		tt_vlan_req->crc = tt_vlan->crc;
+
+		tt_vlan_req++;
+		tt_vlan++;
+	}
 
 	if (full_table)
 		tvlv_tt_data->flags |= BATADV_TT_FULL_TABLE;
@@ -1867,7 +2242,7 @@ static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_REQUEST_TX);
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
 				 dst_orig_node->orig, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data));
+				 tvlv_tt_data, size);
 	ret = true;
 
 out:
@@ -1899,10 +2274,13 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 {
 	struct batadv_orig_node *req_dst_orig_node;
 	struct batadv_orig_node *res_dst_orig_node = NULL;
+	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	uint8_t orig_ttvn, req_ttvn;
-	uint16_t tt_len;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool ret = false, full_table;
+	uint8_t orig_ttvn, req_ttvn;
+	uint16_t tvlv_len;
+	int32_t tt_len;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_REQUEST from %pM for ttvn: %u (%pM) [%c]\n",
@@ -1921,9 +2299,11 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	orig_ttvn = (uint8_t)atomic_read(&req_dst_orig_node->last_ttvn);
 	req_ttvn = tt_data->ttvn;
 
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
 	/* this node doesn't have the requested data */
 	if (orig_ttvn != req_ttvn ||
-	    tt_data->crc != htonl(req_dst_orig_node->tt_crc))
+	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_vlan,
+					ntohs(tt_data->num_vlan)))
 		goto out;
 
 	/* If the full table has been explicitly requested */
@@ -1940,26 +2320,34 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 		spin_lock_bh(&req_dst_orig_node->tt_buff_lock);
 		tt_len = req_dst_orig_node->tt_buff_len;
 
-		tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-				       GFP_ATOMIC);
-		if (!tvlv_tt_data)
+		tvlv_len = batadv_tt_prepare_tvlv_global_data(req_dst_orig_node,
+							      &tvlv_tt_data,
+							      &tt_change,
+							      &tt_len);
+		if (!tt_len)
 			goto unlock;
 
 		/* Copy the last orig_node's OGM buffer */
-		memcpy(tvlv_tt_data + 1, req_dst_orig_node->tt_buff,
+		memcpy(tt_change, req_dst_orig_node->tt_buff,
 		       req_dst_orig_node->tt_buff_len);
 		spin_unlock_bh(&req_dst_orig_node->tt_buff_lock);
 	} else {
-		tt_len = (uint16_t)atomic_read(&req_dst_orig_node->tt_size);
-		tt_len = batadv_tt_len(tt_len);
-
-		tvlv_tt_data = batadv_tt_tvlv_generate(bat_priv,
-						       bat_priv->tt.global_hash,
-						       tt_len,
-						       batadv_tt_global_valid,
-						       req_dst_orig_node);
-		if (!tvlv_tt_data)
+		/* allocate the tvlv, put the tt_data and all the tt_vlan_data
+		 * in the initial part
+		 */
+		tt_len = -1;
+		tvlv_len = batadv_tt_prepare_tvlv_global_data(req_dst_orig_node,
+							      &tvlv_tt_data,
+							      &tt_change,
+							      &tt_len);
+		if (!tt_len)
 			goto out;
+
+		/* fill the rest of the tvlv with the real TT entries */
+		batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.global_hash,
+					tt_change, tt_len,
+					batadv_tt_global_valid,
+					req_dst_orig_node);
 	}
 
 	tvlv_tt_data->flags = BATADV_TT_RESPONSE;
@@ -1976,8 +2364,8 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_RESPONSE_TX);
 
 	batadv_tvlv_unicast_send(bat_priv, req_dst_orig_node->orig,
-				 req_src, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data) + tt_len);
+				 req_src, BATADV_TVLV_TT, 1, tvlv_tt_data,
+				 tvlv_len);
 
 	ret = true;
 	goto out;
@@ -2008,11 +2396,13 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 				       uint8_t *req_src)
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_orig_node *orig_node;
 	struct batadv_hard_iface *primary_if = NULL;
+	struct batadv_tvlv_tt_change *tt_change;
+	struct batadv_orig_node *orig_node;
 	uint8_t my_ttvn, req_ttvn;
+	uint16_t tvlv_len;
 	bool full_table;
-	uint16_t tt_len;
+	int32_t tt_len;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_REQUEST from %pM for ttvn: %u (me) [%c]\n",
@@ -2046,29 +2436,37 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 	 */
 	if (!full_table) {
 		spin_lock_bh(&bat_priv->tt.last_changeset_lock);
+
 		tt_len = bat_priv->tt.last_changeset_len;
-
-		tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-				       GFP_ATOMIC);
-		if (!tvlv_tt_data)
+		tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv,
+							     &tvlv_tt_data,
+							     &tt_change,
+							     &tt_len);
+		if (!tt_len)
 			goto unlock;
 
 		/* Copy the last orig_node's OGM buffer */
-		memcpy(tvlv_tt_data + 1, bat_priv->tt.last_changeset,
+		memcpy(tt_change, bat_priv->tt.last_changeset,
 		       bat_priv->tt.last_changeset_len);
 		spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
 	} else {
-		tt_len = (uint16_t)atomic_read(&bat_priv->tt.local_entry_num);
-		tt_len = batadv_tt_len(tt_len);
 		req_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 
-		tvlv_tt_data = batadv_tt_tvlv_generate(bat_priv,
-						       bat_priv->tt.local_hash,
-						       tt_len,
-						       batadv_tt_local_valid,
-						       NULL);
-		if (!tvlv_tt_data)
+		/* allocate the tvlv, put the tt_data and all the tt_vlan_data
+		 * in the initial part
+		 */
+		tt_len = -1;
+		tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv,
+							     &tvlv_tt_data,
+							     &tt_change,
+							     &tt_len);
+		if (!tt_len)
 			goto out;
+
+		/* fill the rest of the tvlv with the real TT entries */
+		batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.local_hash,
+					tt_change, tt_len,
+					batadv_tt_local_valid, NULL);
 	}
 
 	tvlv_tt_data->flags = BATADV_TT_RESPONSE;
@@ -2084,8 +2482,8 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_RESPONSE_TX);
 
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
-				 req_src, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data) + tt_len);
+				 req_src, BATADV_TVLV_TT, 1, tvlv_tt_data,
+				 tvlv_len);
 
 	goto out;
 
@@ -2161,8 +2559,9 @@ static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
 }
 
 static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
-				  struct batadv_tvlv_tt_data *tt_data,
-				  uint8_t *resp_src, uint16_t num_entries)
+				  struct batadv_tvlv_tt_change *tt_change,
+				  uint8_t ttvn, uint8_t *resp_src,
+				  uint16_t num_entries)
 {
 	struct batadv_orig_node *orig_node;
 
@@ -2173,9 +2572,8 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 	/* Purge the old table first.. */
 	batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table");
 
-	_batadv_tt_update_changes(bat_priv, orig_node,
-				  (struct batadv_tvlv_tt_change *)(tt_data + 1),
-				  num_entries, tt_data->ttvn);
+	_batadv_tt_update_changes(bat_priv, orig_node, tt_change, num_entries,
+				  ttvn);
 
 	spin_lock_bh(&orig_node->tt_buff_lock);
 	kfree(orig_node->tt_buff);
@@ -2183,7 +2581,7 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 	orig_node->tt_buff = NULL;
 	spin_unlock_bh(&orig_node->tt_buff_lock);
 
-	atomic_set(&orig_node->last_ttvn, tt_data->ttvn);
+	atomic_set(&orig_node->last_ttvn, ttvn);
 
 out:
 	if (orig_node)
@@ -2247,6 +2645,8 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_tt_req_node *node, *safe;
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
+	uint8_t *tvlv_ptr = (uint8_t *)tt_data;
+	uint16_t change_offset;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_RESPONSE from %pM for ttvn %d t_size: %d [%c]\n",
@@ -2263,16 +2663,22 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 
 	spin_lock_bh(&orig_node->tt_lock);
 
+	change_offset = sizeof(struct batadv_tvlv_tt_vlan_data);
+	change_offset *= ntohs(tt_data->num_vlan);
+	change_offset += sizeof(*tt_data);
+	tvlv_ptr += change_offset;
+
+	tt_change = (struct batadv_tvlv_tt_change *)tvlv_ptr;
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
-		batadv_tt_fill_gtable(bat_priv, tt_data, resp_src, num_entries);
+		batadv_tt_fill_gtable(bat_priv, tt_change, tt_data->ttvn,
+				      resp_src, num_entries);
 	} else {
-		tt_change = (struct batadv_tvlv_tt_change *)(tt_data + 1);
 		batadv_tt_update_changes(bat_priv, orig_node, num_entries,
 					 tt_data->ttvn, tt_change);
 	}
 
 	/* Recalculate the CRC for this orig_node and store it */
-	orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+	batadv_tt_global_update_crc(bat_priv, orig_node);
 
 	spin_unlock_bh(&orig_node->tt_lock);
 
@@ -2284,6 +2690,7 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 		list_del(&node->list);
 		kfree(node);
 	}
+
 	spin_unlock_bh(&bat_priv->tt.req_list_lock);
 out:
 	if (orig_node)
@@ -2452,19 +2859,25 @@ void batadv_tt_free(struct batadv_priv *bat_priv)
 	kfree(bat_priv->tt.last_changeset);
 }
 
-/* This function will enable or disable the specified flags for all the entries
- * in the given hash table and returns the number of modified entries
+/**
+ * batadv_tt_local_set_flags - set or unset the specified flags on the local
+ *  table and possibly count them in the TT size
+ * @bat_priv: the bat priv with all the soft interface information
+ * @flags: the flag to switch
+ * @enable: whether to set or unset the flag
+ * @count: whether to increase the TT size by the number of changed entries
  */
-static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
-				    uint16_t flags, bool enable)
+static void batadv_tt_local_set_flags(struct batadv_priv *bat_priv,
+				      uint16_t flags, bool enable, bool count)
 {
-	uint32_t i;
+	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
+	struct batadv_tt_common_entry *tt_common_entry;
 	uint16_t changed_num = 0;
 	struct hlist_head *head;
-	struct batadv_tt_common_entry *tt_common_entry;
+	uint32_t i;
 
 	if (!hash)
-		goto out;
+		return;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -2482,11 +2895,15 @@ static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
 				tt_common_entry->flags &= ~flags;
 			}
 			changed_num++;
+
+			if (!count)
+				continue;
+
+			batadv_tt_local_size_inc(bat_priv,
+						 tt_common_entry->vid);
 		}
 		rcu_read_unlock();
 	}
-out:
-	return changed_num;
 }
 
 /* Purge out all the tt local entries marked with BATADV_TT_CLIENT_PENDING */
@@ -2518,7 +2935,7 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
 				   tt_common->addr,
 				   BATADV_PRINT_VID(tt_common->vid));
 
-			atomic_dec(&bat_priv->tt.local_entry_num);
+			batadv_tt_local_size_dec(bat_priv, tt_common->vid);
 			hlist_del_rcu(&tt_common->hash_entry);
 			tt_local = container_of(tt_common,
 						struct batadv_tt_local_entry,
@@ -2536,8 +2953,6 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
  */
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 {
-	uint16_t changed_num = 0;
-
 	spin_lock_bh(&bat_priv->tt.commit_lock);
 
 	if (atomic_read(&bat_priv->tt.local_changes) < 1) {
@@ -2546,13 +2961,10 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 		goto out;
 	}
 
-	changed_num = batadv_tt_set_flags(bat_priv->tt.local_hash,
-					  BATADV_TT_CLIENT_NEW, false);
+	batadv_tt_local_set_flags(bat_priv, BATADV_TT_CLIENT_NEW, false, true);
 
-	/* all reset entries have to be counted as local entries */
-	atomic_add(changed_num, &bat_priv->tt.local_entry_num);
 	batadv_tt_local_purge_pending_clients(bat_priv);
-	bat_priv->tt.local_crc = batadv_tt_local_crc(bat_priv);
+	batadv_tt_local_update_crc(bat_priv);
 
 	/* Increment the TTVN only once per OGM interval */
 	atomic_inc(&bat_priv->tt.vn);
@@ -2608,25 +3020,28 @@ out:
  *  information received via ogms
  * @bat_priv: the bat priv with all the soft interface information
  * @orig: the orig_node of the ogm
- * @tt_buff: buffer holding the tt information
+ * @tt_vlan: pointer to the first tvlv VLAN entry
+ * @tt_num_vlan: number of tvlv VLAN entries
+ * @tt_change: pointer to the first entry in the TT buffer
  * @tt_num_changes: number of tt changes inside the tt buffer
  * @ttvn: translation table version number of this changeset
  * @tt_crc: crc32 checksum of orig node's translation table
  */
 static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 				  struct batadv_orig_node *orig_node,
-				  const unsigned char *tt_buff,
-				  uint16_t tt_num_changes, uint8_t ttvn,
-				  uint32_t tt_crc)
+				  const void *tt_buff, uint16_t tt_num_vlan,
+				  struct batadv_tvlv_tt_change *tt_change,
+				  uint16_t tt_num_changes, uint8_t ttvn)
 {
 	uint8_t orig_ttvn = (uint8_t)atomic_read(&orig_node->last_ttvn);
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool full_table = true;
-	struct batadv_tvlv_tt_change *tt_change;
 
 	/* don't care about a backbone gateways updates. */
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		return;
 
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)tt_buff;
 	/* orig table not initialised AND first diff is in the OGM OR the ttvn
 	 * increased by one -> we can apply the attached changes
 	 */
@@ -2652,7 +3067,7 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 * prefer to recompute it to spot any possible inconsistency
 		 * in the global table
 		 */
-		orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+		batadv_tt_global_update_crc(bat_priv, orig_node);
 
 		spin_unlock_bh(&orig_node->tt_lock);
 
@@ -2665,21 +3080,24 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 * checking the CRC value is mandatory to detect the
 		 * inconsistency
 		 */
-		if (orig_node->tt_crc != tt_crc)
+		if (!batadv_tt_global_check_crc(orig_node, tt_vlan,
+						tt_num_vlan))
 			goto request_table;
 	} else {
 		/* if we missed more than one change or our tables are not
 		 * in sync anymore -> request fresh tt data
 		 */
 		if (!orig_node->tt_initialised || ttvn != orig_ttvn ||
-		    orig_node->tt_crc != tt_crc) {
+		    !batadv_tt_global_check_crc(orig_node, tt_vlan,
+						tt_num_vlan)) {
 request_table:
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u crc: %#.8x last_crc: %#.8x num_changes: %u)\n",
-				   orig_node->orig, ttvn, orig_ttvn, tt_crc,
-				   orig_node->tt_crc, tt_num_changes);
+				   "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u num_changes: %u)\n",
+				   orig_node->orig, ttvn, orig_ttvn,
+				   tt_num_changes);
 			batadv_send_tt_request(bat_priv, orig_node, ttvn,
-					       tt_crc, full_table);
+					       tt_vlan, tt_num_vlan,
+					       full_table);
 			return;
 		}
 	}
@@ -2774,12 +3192,13 @@ out:
  */
 static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig,
-					  uint8_t flags,
-					  void *tvlv_value,
+					  uint8_t flags, void *tvlv_value,
 					  uint16_t tvlv_value_len)
 {
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tt_data;
-	uint16_t num_entries;
+	uint16_t num_entries, num_vlan;
 
 	if (tvlv_value_len < sizeof(*tt_data))
 		return;
@@ -2787,11 +3206,19 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = (struct batadv_tvlv_tt_data *)tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
+	num_vlan = ntohs(tt_data->num_vlan);
+
+	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
+		return;
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
+	tt_change = (struct batadv_tvlv_tt_change *)(tt_vlan + num_vlan);
+	tvlv_value_len -= sizeof(*tt_vlan) * num_vlan;
+
 	num_entries = batadv_tt_entries(tvlv_value_len);
 
-	batadv_tt_update_orig(bat_priv, orig,
-			      (unsigned char *)(tt_data + 1),
-			      num_entries, tt_data->ttvn, ntohl(tt_data->crc));
+	batadv_tt_update_orig(bat_priv, orig, tt_vlan, num_vlan, tt_change,
+			      num_entries, tt_data->ttvn);
 }
 
 /**
@@ -2812,7 +3239,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 					     uint16_t tvlv_value_len)
 {
 	struct batadv_tvlv_tt_data *tt_data;
-	uint16_t num_entries;
+	uint16_t tt_vlan_len, tt_num_entries;
 	char tt_flag;
 	bool ret;
 
@@ -2822,7 +3249,14 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = (struct batadv_tvlv_tt_data *)tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
-	num_entries = batadv_tt_entries(tvlv_value_len);
+	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
+	tt_vlan_len *= ntohs(tt_data->num_vlan);
+
+	if (tvlv_value_len < tt_vlan_len)
+		return NET_RX_SUCCESS;
+
+	tvlv_value_len -= tt_vlan_len;
+	tt_num_entries = batadv_tt_entries(tvlv_value_len);
 
 	switch (tt_data->flags & BATADV_TT_DATA_TYPE_MASK) {
 	case BATADV_TT_REQUEST:
@@ -2850,7 +3284,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 
 		if (batadv_is_my_mac(bat_priv, dst)) {
 			batadv_handle_tt_response(bat_priv, tt_data,
-						  src, num_entries);
+						  src, tt_num_entries);
 			return NET_RX_SUCCESS;
 		}
 
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index bd95d61..ff53933 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -107,6 +107,32 @@ struct batadv_frag_list_entry {
 };
 
 /**
+ * struct batadv_vlan_tt - VLAN specific TT attributes
+ * @crc: CRC32 checksum of the entries belonging to this vlan
+ * @num_entries: number of TT entries for this VLAN
+ */
+struct batadv_vlan_tt {
+	uint32_t crc;
+	atomic_t num_entries;
+};
+
+/**
+ * batadv_orig_node_vlan - VLAN specific data per orig_node
+ * @vid: the VLAN identifier
+ * @tt: VLAN specific TT attributes
+ * @list: list node for orig_node::vlan_list
+ * @refcount: number of context where this object is currently in use
+ * @rcu: struct used for freeing in a RCU-safe manner
+ */
+struct batadv_orig_node_vlan {
+	unsigned short vid;
+	struct batadv_vlan_tt tt;
+	struct list_head list;
+	atomic_t refcount;
+	struct rcu_head rcu;
+};
+
+/**
  * struct batadv_orig_node - structure for orig_list maintaining nodes of mesh
  * @orig: originator ethernet address
  * @primary_addr: hosts primary interface address
@@ -120,12 +146,10 @@ struct batadv_frag_list_entry {
  * @batman_seqno_reset: time when the batman seqno window was reset
  * @capabilities: announced capabilities of this originator
  * @last_ttvn: last seen translation table version number
- * @tt_crc: CRC of the translation table
  * @tt_buff: last tt changeset this node received from the orig node
  * @tt_buff_len: length of the last tt changeset this node received from the
  *  orig node
  * @tt_buff_lock: lock that protects tt_buff and tt_buff_len
- * @tt_size: number of global TT entries announced by the orig node
  * @tt_initialised: bool keeping track of whether or not this node have received
  *  any translation table information from the orig node yet
  * @tt_lock: prevents from updating the table while reading it. Table update is
@@ -154,6 +178,9 @@ struct batadv_frag_list_entry {
  * @in_coding_list_lock: protects in_coding_list
  * @out_coding_list_lock: protects out_coding_list
  * @fragments: array with heads for fragment chains
+ * @vlan_list: a list of orig_node_vlan structs, one per VLAN served by the
+ *  originator represented by this object
+ * @vlan_list_lock: lock protecting vlan_list
  */
 struct batadv_orig_node {
 	uint8_t orig[ETH_ALEN];
@@ -169,11 +196,9 @@ struct batadv_orig_node {
 	unsigned long batman_seqno_reset;
 	uint8_t capabilities;
 	atomic_t last_ttvn;
-	uint32_t tt_crc;
 	unsigned char *tt_buff;
 	int16_t tt_buff_len;
 	spinlock_t tt_buff_lock; /* protects tt_buff & tt_buff_len */
-	atomic_t tt_size;
 	bool tt_initialised;
 	/* prevents from changing the table while reading it */
 	spinlock_t tt_lock;
@@ -203,6 +228,8 @@ struct batadv_orig_node {
 	spinlock_t out_coding_list_lock; /* Protects out_coding_list */
 #endif
 	struct batadv_frag_table_entry fragments[BATADV_FRAG_BUFFER_COUNT];
+	struct list_head vlan_list;
+	spinlock_t vlan_list_lock; /* protects vlan_list */
 };
 
 /**
@@ -389,8 +416,6 @@ enum batadv_counters {
  * @changes_list_lock: lock protecting changes_list
  * @req_list_lock: lock protecting req_list
  * @roam_list_lock: lock protecting roam_list
- * @local_entry_num: number of entries in the local hash table
- * @local_crc: Checksum of the local table, recomputed before sending a new OGM
  * @last_changeset: last tt changeset this host has generated
  * @last_changeset_len: length of last tt changeset this host has generated
  * @last_changeset_lock: lock protecting last_changeset & last_changeset_len
@@ -413,8 +438,6 @@ struct batadv_priv_tt {
 	spinlock_t changes_list_lock; /* protects changes */
 	spinlock_t req_list_lock; /* protects req_list */
 	spinlock_t roam_list_lock; /* protects roam_list */
-	atomic_t local_entry_num;
-	uint32_t local_crc;
 	unsigned char *last_changeset;
 	int16_t last_changeset_len;
 	/* protects last_changeset & last_changeset_len */
@@ -548,6 +571,7 @@ struct batadv_priv_nc {
  * @vid: VLAN identifier
  * @kobj: kobject for sysfs vlan subdirectory
  * @ap_isolation: AP isolation state
+ * @tt: TT private attributes (VLAN specific)
  * @list: list node for bat_priv::softif_vlan_list
  * @refcount: number of context where this object is currently in use
  * @rcu: struct used for freeing in a RCU-safe manner
@@ -556,6 +580,7 @@ struct batadv_softif_vlan {
 	unsigned short vid;
 	struct kobject *kobj;
 	atomic_t ap_isolation;		/* boolean */
+	struct batadv_vlan_tt tt;
 	struct hlist_node list;
 	atomic_t refcount;
 	struct rcu_head rcu;
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 16/18] batman-adv: make the TT CRC logic VLAN specific
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

This change allows nodes to handle the TT table on a
per-VLAN basis. This is needed because nodes may have to
store only some of the global entries advertised by another
node.

In this scenario such nodes would re-create only a partial
global table and would not be able to compute a correct CRC
anymore.

This patch splits the logic and introduces one CRC per VLAN.
In this way a node fetching only some entries belonging to
some VLANs is still able to compute the needed CRCs and
still check the table correctness.

With this patch the shape of the TVLV-TT is changed too
because now a node needs to advertise all the CRCs of all
the VLANs that it is wired to.

The debug output of the local Translation Table now shows
the CRC along with each entry since there is not a common
value for the entire table anymore.

Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/originator.c        | 101 +++++-
 net/batman-adv/originator.h        |   7 +
 net/batman-adv/packet.h            |  18 +-
 net/batman-adv/translation-table.c | 720 +++++++++++++++++++++++++++++--------
 net/batman-adv/types.h             |  41 ++-
 5 files changed, 730 insertions(+), 157 deletions(-)

diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 867778e..7a499da 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -44,6 +44,88 @@ static int batadv_compare_orig(const struct hlist_node *node, const void *data2)
 	return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
 }
 
+/**
+ * batadv_orig_node_vlan_get - get an orig_node_vlan object
+ * @orig_node: the originator serving the VLAN
+ * @vid: the VLAN identifier
+ *
+ * Returns the vlan object identified by vid and belonging to orig_node or NULL
+ * if it does not exist.
+ */
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_get(struct batadv_orig_node *orig_node,
+			  unsigned short vid)
+{
+	struct batadv_orig_node_vlan *vlan = NULL, *tmp;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(tmp, &orig_node->vlan_list, list) {
+		if (tmp->vid != vid)
+			continue;
+
+		if (!atomic_inc_not_zero(&tmp->refcount))
+			continue;
+
+		vlan = tmp;
+
+		break;
+	}
+	rcu_read_unlock();
+
+	return vlan;
+}
+
+/**
+ * batadv_orig_node_vlan_new - search and possibly create an orig_node_vlan
+ *  object
+ * @orig_node: the originator serving the VLAN
+ * @vid: the VLAN identifier
+ *
+ * Returns NULL in case of failure or the vlan object identified by vid and
+ * belonging to orig_node otherwise. The object is created and added to the list
+ * if it does not exist.
+ *
+ * The object is returned with refcounter increased by 1.
+ */
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_new(struct batadv_orig_node *orig_node,
+			  unsigned short vid)
+{
+	struct batadv_orig_node_vlan *vlan;
+
+	spin_lock_bh(&orig_node->vlan_list_lock);
+
+	/* first look if an object for this vid already exists */
+	vlan = batadv_orig_node_vlan_get(orig_node, vid);
+	if (vlan)
+		goto out;
+
+	vlan = kzalloc(sizeof(*vlan), GFP_ATOMIC);
+	if (!vlan)
+		goto out;
+
+	atomic_set(&vlan->refcount, 2);
+	vlan->vid = vid;
+
+	list_add_rcu(&vlan->list, &orig_node->vlan_list);
+
+out:
+	spin_unlock_bh(&orig_node->vlan_list_lock);
+
+	return vlan;
+}
+
+/**
+ * batadv_orig_node_vlan_free_ref - decrement the refcounter and possibly free
+ *  the originator-vlan object
+ * @orig_vlan: the originator-vlan object to release
+ */
+void batadv_orig_node_vlan_free_ref(struct batadv_orig_node_vlan *orig_vlan)
+{
+	if (atomic_dec_and_test(&orig_vlan->refcount))
+		kfree_rcu(orig_vlan, rcu);
+}
+
 int batadv_originator_init(struct batadv_priv *bat_priv)
 {
 	if (bat_priv->orig_hash)
@@ -218,6 +300,7 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 					      const uint8_t *addr)
 {
 	struct batadv_orig_node *orig_node;
+	struct batadv_orig_node_vlan *vlan;
 	int size, i;
 	int hash_added;
 	unsigned long reset_time;
@@ -235,11 +318,13 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 
 	INIT_HLIST_HEAD(&orig_node->neigh_list);
 	INIT_LIST_HEAD(&orig_node->bond_list);
+	INIT_LIST_HEAD(&orig_node->vlan_list);
 	spin_lock_init(&orig_node->ogm_cnt_lock);
 	spin_lock_init(&orig_node->bcast_seqno_lock);
 	spin_lock_init(&orig_node->neigh_list_lock);
 	spin_lock_init(&orig_node->tt_buff_lock);
 	spin_lock_init(&orig_node->tt_lock);
+	spin_lock_init(&orig_node->vlan_list_lock);
 
 	batadv_nc_init_orig(orig_node);
 
@@ -251,22 +336,30 @@ struct batadv_orig_node *batadv_get_orig_node(struct batadv_priv *bat_priv,
 	memcpy(orig_node->orig, addr, ETH_ALEN);
 	batadv_dat_init_orig_node_addr(orig_node);
 	orig_node->router = NULL;
-	orig_node->tt_crc = 0;
 	atomic_set(&orig_node->last_ttvn, 0);
 	orig_node->tt_buff = NULL;
 	orig_node->tt_buff_len = 0;
-	atomic_set(&orig_node->tt_size, 0);
 	reset_time = jiffies - 1 - msecs_to_jiffies(BATADV_RESET_PROTECTION_MS);
 	orig_node->bcast_seqno_reset = reset_time;
 	orig_node->batman_seqno_reset = reset_time;
 
 	atomic_set(&orig_node->bond_candidates, 0);
 
+	/* create a vlan object for the "untagged" LAN */
+	vlan = batadv_orig_node_vlan_new(orig_node, BATADV_NO_FLAGS);
+	if (!vlan)
+		goto free_orig_node;
+	/* batadv_orig_node_vlan_new() increases the refcounter.
+	 * Immediately release vlan since it is not needed anymore in this
+	 * context
+	 */
+	batadv_orig_node_vlan_free_ref(vlan);
+
 	size = bat_priv->num_ifaces * sizeof(unsigned long) * BATADV_NUM_WORDS;
 
 	orig_node->bcast_own = kzalloc(size, GFP_ATOMIC);
 	if (!orig_node->bcast_own)
-		goto free_orig_node;
+		goto free_vlan;
 
 	size = bat_priv->num_ifaces * sizeof(uint8_t);
 	orig_node->bcast_own_sum = kzalloc(size, GFP_ATOMIC);
@@ -291,6 +384,8 @@ free_bcast_own_sum:
 	kfree(orig_node->bcast_own_sum);
 free_bcast_own:
 	kfree(orig_node->bcast_own);
+free_vlan:
+	batadv_orig_node_vlan_free_ref(vlan);
 free_orig_node:
 	kfree(orig_node);
 	return NULL;
diff --git a/net/batman-adv/originator.h b/net/batman-adv/originator.h
index 7887b84..cc6d686 100644
--- a/net/batman-adv/originator.h
+++ b/net/batman-adv/originator.h
@@ -40,6 +40,13 @@ int batadv_orig_hash_add_if(struct batadv_hard_iface *hard_iface,
 			    int max_if_num);
 int batadv_orig_hash_del_if(struct batadv_hard_iface *hard_iface,
 			    int max_if_num);
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_new(struct batadv_orig_node *orig_node,
+			  unsigned short vid);
+struct batadv_orig_node_vlan *
+batadv_orig_node_vlan_get(struct batadv_orig_node *orig_node,
+			  unsigned short vid);
+void batadv_orig_node_vlan_free_ref(struct batadv_orig_node_vlan *orig_vlan);
 
 
 /* hashfunction to choose an entry in a hash table of given size
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index 6311642..9fbcaac 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -391,14 +391,26 @@ struct batadv_tvlv_gateway_data {
  * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
  * @flags: translation table flags (see batadv_tt_data_flags)
  * @ttvn: translation table version number
- * @reserved: field reserved for future use
- * @crc: crc32 checksum of the local translation table
+ * @vlan_num: number of announced VLANs. In the TVLV this struct is followed by
+ *  one batadv_tvlv_tt_vlan_data object per announced vlan
  */
 struct batadv_tvlv_tt_data {
 	uint8_t flags;
 	uint8_t ttvn;
+	__be16  num_vlan;
+};
+
+/**
+ * struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through
+ *  the tt tvlv container
+ * @crc: crc32 checksum of the entries belonging to this vlan
+ * @vid: vlan identifier
+ * @reserved: unused, useful for alignment purposes
+ */
+struct batadv_tvlv_tt_vlan_data {
+	__be32	crc;
+	__be16	vid;
 	uint16_t reserved;
-	__be32  crc;
 };
 
 /**
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 00f4faa..41a8387 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -208,13 +208,107 @@ static void batadv_tt_orig_list_entry_free_rcu(struct rcu_head *rcu)
 	kfree(orig_entry);
 }
 
+/**
+ * batadv_tt_local_size_mod - change the size by v of the local table identified
+ *  by vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier of the sub-table to change
+ * @v: the amount to sum to the local table size
+ */
+static void batadv_tt_local_size_mod(struct batadv_priv *bat_priv,
+				     unsigned short vid, int v)
+{
+	struct batadv_softif_vlan *vlan;
+
+	vlan = batadv_softif_vlan_get(bat_priv, vid);
+	if (!vlan)
+		return;
+
+	atomic_add(v, &vlan->tt.num_entries);
+
+	batadv_softif_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_tt_local_size_inc - increase by one the local table size for the given
+ *  vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ */
+static void batadv_tt_local_size_inc(struct batadv_priv *bat_priv,
+				     unsigned short vid)
+{
+	batadv_tt_local_size_mod(bat_priv, vid, 1);
+}
+
+/**
+ * batadv_tt_local_size_dec - decrease by one the local table size for the given
+ *  vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ */
+static void batadv_tt_local_size_dec(struct batadv_priv *bat_priv,
+				     unsigned short vid)
+{
+	batadv_tt_local_size_mod(bat_priv, vid, -1);
+}
+
+/**
+ * batadv_tt_global_size_mod - change the size by v of the local table
+ *  identified by vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @vid: the VLAN identifier
+ * @v: the amount to sum to the global table size
+ */
+static void batadv_tt_global_size_mod(struct batadv_orig_node *orig_node,
+				      unsigned short vid, int v)
+{
+	struct batadv_orig_node_vlan *vlan;
+
+	vlan = batadv_orig_node_vlan_new(orig_node, vid);
+	if (!vlan)
+		return;
+
+	if (atomic_add_return(v, &vlan->tt.num_entries) == 0) {
+		spin_lock_bh(&orig_node->vlan_list_lock);
+		list_del_rcu(&vlan->list);
+		spin_unlock_bh(&orig_node->vlan_list_lock);
+		batadv_orig_node_vlan_free_ref(vlan);
+	}
+
+	batadv_orig_node_vlan_free_ref(vlan);
+}
+
+/**
+ * batadv_tt_global_size_inc - increase by one the global table size for the
+ *  given vid
+ * @orig_node: the originator which global table size has to be decreased
+ * @vid: the vlan identifier
+ */
+static void batadv_tt_global_size_inc(struct batadv_orig_node *orig_node,
+				      unsigned short vid)
+{
+	batadv_tt_global_size_mod(orig_node, vid, 1);
+}
+
+/**
+ * batadv_tt_global_size_dec - decrease by one the global table size for the
+ *  given vid
+ * @orig_node: the originator which global table size has to be decreased
+ * @vid: the vlan identifier
+ */
+static void batadv_tt_global_size_dec(struct batadv_orig_node *orig_node,
+				      unsigned short vid)
+{
+	batadv_tt_global_size_mod(orig_node, vid, -1);
+}
+
 static void
 batadv_tt_orig_list_entry_free_ref(struct batadv_tt_orig_list_entry *orig_entry)
 {
 	if (!atomic_dec_and_test(&orig_entry->refcount))
 		return;
-	/* to avoid race conditions, immediately decrease the tt counter */
-	atomic_dec(&orig_entry->orig_node->tt_size);
+
 	call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
 }
 
@@ -464,6 +558,149 @@ out:
 }
 
 /**
+ * batadv_tt_prepare_tvlv_global_data - prepare the TVLV TT header to send
+ *  within a TT Response directed to another node
+ * @orig_node: originator for which the TT data has to be prepared
+ * @tt_data: uninitialised pointer to the address of the TVLV buffer
+ * @tt_change: uninitialised pointer to the address of the area where the TT
+ *  changed can be stored
+ * @tt_len: pointer to the length to reserve to the tt_change. if -1 this
+ *  function reserves the amount of space needed to send the entire global TT
+ *  table. In case of success the value is updated with the real amount of
+ *  reserved bytes
+
+ * Allocate the needed amount of memory for the entire TT TVLV and write its
+ * header made up by one tvlv_tt_data object and a series of tvlv_tt_vlan_data
+ * objects, one per active VLAN served by the originator node.
+ *
+ * Return the size of the allocated buffer or 0 in case of failure.
+ */
+static uint16_t
+batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
+				   struct batadv_tvlv_tt_data **tt_data,
+				   struct batadv_tvlv_tt_change **tt_change,
+				   int32_t *tt_len)
+{
+	uint16_t num_vlan = 0, num_entries = 0, change_offset, tvlv_len;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_orig_node_vlan *vlan;
+	uint8_t *tt_change_ptr;
+
+	rcu_read_lock();
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		num_vlan++;
+		num_entries += atomic_read(&vlan->tt.num_entries);
+	}
+
+	change_offset = sizeof(**tt_data);
+	change_offset += num_vlan * sizeof(*tt_vlan);
+
+	/* if tt_len is negative, allocate the space needed by the full table */
+	if (*tt_len < 0)
+		*tt_len = batadv_tt_len(num_entries);
+
+	tvlv_len = *tt_len;
+	tvlv_len += change_offset;
+
+	*tt_data = kmalloc(tvlv_len, GFP_ATOMIC);
+	if (!*tt_data) {
+		*tt_len = 0;
+		goto out;
+	}
+
+	(*tt_data)->flags = BATADV_NO_FLAGS;
+	(*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
+	(*tt_data)->num_vlan = htons(num_vlan);
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		tt_vlan->vid = htons(vlan->vid);
+		tt_vlan->crc = htonl(vlan->tt.crc);
+
+		tt_vlan++;
+	}
+
+	tt_change_ptr = (uint8_t *)*tt_data + change_offset;
+	*tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
+
+out:
+	rcu_read_unlock();
+	return tvlv_len;
+}
+
+/**
+ * batadv_tt_prepare_tvlv_local_data - allocate and prepare the TT TVLV for this
+ *  node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @tt_data: uninitialised pointer to the address of the TVLV buffer
+ * @tt_change: uninitialised pointer to the address of the area where the TT
+ *  changes can be stored
+ * @tt_len: pointer to the length to reserve to the tt_change. if -1 this
+ *  function reserves the amount of space needed to send the entire local TT
+ *  table. In case of success the value is updated with the real amount of
+ *  reserved bytes
+ *
+ * Allocate the needed amount of memory for the entire TT TVLV and write its
+ * header made up by one tvlv_tt_data object and a series of tvlv_tt_vlan_data
+ * objects, one per active VLAN.
+ *
+ * Return the size of the allocated buffer or 0 in case of failure.
+ */
+static uint16_t
+batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
+				  struct batadv_tvlv_tt_data **tt_data,
+				  struct batadv_tvlv_tt_change **tt_change,
+				  int32_t *tt_len)
+{
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_softif_vlan *vlan;
+	uint16_t num_vlan = 0, num_entries = 0, tvlv_len;
+	uint8_t *tt_change_ptr;
+	int change_offset;
+
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		num_vlan++;
+		num_entries += atomic_read(&vlan->tt.num_entries);
+	}
+
+	change_offset = sizeof(**tt_data);
+	change_offset += num_vlan * sizeof(*tt_vlan);
+
+	/* if tt_len is negative, allocate the space needed by the full table */
+	if (*tt_len < 0)
+		*tt_len = batadv_tt_len(num_entries);
+
+	tvlv_len = *tt_len;
+	tvlv_len += change_offset;
+
+	*tt_data = kmalloc(tvlv_len, GFP_ATOMIC);
+	if (!*tt_data) {
+		tvlv_len = 0;
+		goto out;
+	}
+
+	(*tt_data)->flags = BATADV_NO_FLAGS;
+	(*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn);
+	(*tt_data)->num_vlan = htons(num_vlan);
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		tt_vlan->vid = htons(vlan->vid);
+		tt_vlan->crc = htonl(vlan->tt.crc);
+
+		tt_vlan++;
+	}
+
+	tt_change_ptr = (uint8_t *)*tt_data + change_offset;
+	*tt_change = (struct batadv_tvlv_tt_change *)tt_change_ptr;
+
+out:
+	rcu_read_unlock();
+	return tvlv_len;
+}
+
+/**
  * batadv_tt_tvlv_container_update - update the translation table tvlv container
  *  after local tt changes have been committed
  * @bat_priv: the bat priv with all the soft interface information
@@ -473,10 +710,12 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 	struct batadv_tt_change_node *entry, *safe;
 	struct batadv_tvlv_tt_data *tt_data;
 	struct batadv_tvlv_tt_change *tt_change;
-	int tt_diff_len = 0, tt_change_len = 0;
+	int tt_diff_len, tt_change_len = 0;
 	int tt_diff_entries_num = 0, tt_diff_entries_count = 0;
+	uint16_t tvlv_len;
 
-	tt_diff_len += batadv_tt_len(atomic_read(&bat_priv->tt.local_changes));
+	tt_diff_entries_num = atomic_read(&bat_priv->tt.local_changes);
+	tt_diff_len = batadv_tt_len(tt_diff_entries_num);
 
 	/* if we have too many changes for one packet don't send any
 	 * and wait for the tt table request which will be fragmented
@@ -484,24 +723,19 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 	if (tt_diff_len > bat_priv->soft_iface->mtu)
 		tt_diff_len = 0;
 
-	tt_data = kzalloc(sizeof(*tt_data) + tt_diff_len, GFP_ATOMIC);
-	if (!tt_data)
+	tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv, &tt_data,
+						     &tt_change, &tt_diff_len);
+	if (!tvlv_len)
 		return;
 
 	tt_data->flags = BATADV_TT_OGM_DIFF;
-	tt_data->ttvn = atomic_read(&bat_priv->tt.vn);
-	tt_data->crc = htonl(bat_priv->tt.local_crc);
 
 	if (tt_diff_len == 0)
 		goto container_register;
 
-	tt_diff_entries_num = batadv_tt_entries(tt_diff_len);
-
 	spin_lock_bh(&bat_priv->tt.changes_list_lock);
 	atomic_set(&bat_priv->tt.local_changes, 0);
 
-	tt_change = (struct batadv_tvlv_tt_change *)(tt_data + 1);
-
 	list_for_each_entry_safe(entry, safe, &bat_priv->tt.changes_list,
 				 list) {
 		if (tt_diff_entries_count < tt_diff_entries_num) {
@@ -537,7 +771,7 @@ static void batadv_tt_tvlv_container_update(struct batadv_priv *bat_priv)
 
 container_register:
 	batadv_tvlv_container_register(bat_priv, BATADV_TVLV_TT, 1, tt_data,
-				       sizeof(*tt_data) + tt_change_len);
+				       tvlv_len);
 	kfree(tt_data);
 }
 
@@ -549,7 +783,9 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 	struct batadv_tt_common_entry *tt_common_entry;
 	struct batadv_tt_local_entry *tt_local;
 	struct batadv_hard_iface *primary_if;
+	struct batadv_softif_vlan *vlan;
 	struct hlist_head *head;
+	unsigned short vid;
 	uint32_t i;
 	int last_seen_secs;
 	int last_seen_msecs;
@@ -562,11 +798,10 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 		goto out;
 
 	seq_printf(seq,
-		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u CRC: %#.8x):\n",
-		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn),
-		   bat_priv->tt.local_crc);
-	seq_printf(seq, "       %-13s  %s %-7s %-10s\n", "Client", "VID",
-		   "Flags", "Last seen");
+		   "Locally retrieved addresses (from %s) announced via TT (TTVN: %u):\n",
+		   net_dev->name, (uint8_t)atomic_read(&bat_priv->tt.vn));
+	seq_printf(seq, "       %-13s  %s %-7s %-9s (%-10s)\n", "Client", "VID",
+		   "Flags", "Last seen", "CRC");
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -577,6 +812,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 			tt_local = container_of(tt_common_entry,
 						struct batadv_tt_local_entry,
 						common);
+			vid = tt_common_entry->vid;
 			last_seen_jiffies = jiffies - tt_local->last_seen;
 			last_seen_msecs = jiffies_to_msecs(last_seen_jiffies);
 			last_seen_secs = last_seen_msecs / 1000;
@@ -584,7 +820,15 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 
 			no_purge = tt_common_entry->flags & np_flag;
 
-			seq_printf(seq, " * %pM %4i [%c%c%c%c%c] %3u.%03u\n",
+			vlan = batadv_softif_vlan_get(bat_priv, vid);
+			if (!vlan) {
+				seq_printf(seq, "Cannot retrieve VLAN %d\n",
+					   BATADV_PRINT_VID(vid));
+				continue;
+			}
+
+			seq_printf(seq,
+				   " * %pM %4i [%c%c%c%c%c] %3u.%03u   (%#.8x)\n",
 				   tt_common_entry->addr,
 				   BATADV_PRINT_VID(tt_common_entry->vid),
 				   (tt_common_entry->flags &
@@ -597,7 +841,10 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
 				   (tt_common_entry->flags &
 				    BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 				   no_purge ? 0 : last_seen_secs,
-				   no_purge ? 0 : last_seen_msecs);
+				   no_purge ? 0 : last_seen_msecs,
+				   vlan->tt.crc);
+
+			batadv_softif_vlan_free_ref(vlan);
 		}
 		rcu_read_unlock();
 	}
@@ -860,7 +1107,7 @@ batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
 
 	INIT_HLIST_NODE(&orig_entry->list);
 	atomic_inc(&orig_node->refcount);
-	atomic_inc(&orig_node->tt_size);
+	batadv_tt_global_size_inc(orig_node, tt_global->common.vid);
 	orig_entry->orig_node = orig_node;
 	orig_entry->ttvn = ttvn;
 	atomic_set(&orig_entry->refcount, 2);
@@ -1070,45 +1317,71 @@ static void
 batadv_tt_global_print_entry(struct batadv_tt_global_entry *tt_global_entry,
 			     struct seq_file *seq)
 {
-	struct hlist_head *head;
 	struct batadv_tt_orig_list_entry *orig_entry, *best_entry;
 	struct batadv_tt_common_entry *tt_common_entry;
-	uint16_t flags;
+	struct batadv_orig_node_vlan *vlan;
+	struct hlist_head *head;
 	uint8_t last_ttvn;
+	uint16_t flags;
 
 	tt_common_entry = &tt_global_entry->common;
 	flags = tt_common_entry->flags;
 
 	best_entry = batadv_transtable_best_orig(tt_global_entry);
 	if (best_entry) {
+		vlan = batadv_orig_node_vlan_get(best_entry->orig_node,
+						 tt_common_entry->vid);
+		if (!vlan) {
+			seq_printf(seq,
+				   " * Cannot retrieve VLAN %d for originator %pM\n",
+				   BATADV_PRINT_VID(tt_common_entry->vid),
+				   best_entry->orig_node->orig);
+			goto print_list;
+		}
+
 		last_ttvn = atomic_read(&best_entry->orig_node->last_ttvn);
 		seq_printf(seq,
 			   " %c %pM %4i   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '*', tt_global_entry->common.addr,
 			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   best_entry->ttvn, best_entry->orig_node->orig,
-			   last_ttvn, best_entry->orig_node->tt_crc,
+			   last_ttvn, vlan->tt.crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 			   (flags & BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 			   (flags & BATADV_TT_CLIENT_TEMP ? 'T' : '.'));
+
+		batadv_orig_node_vlan_free_ref(vlan);
 	}
 
+print_list:
 	head = &tt_global_entry->orig_list;
 
 	hlist_for_each_entry_rcu(orig_entry, head, list) {
 		if (best_entry == orig_entry)
 			continue;
 
+		vlan = batadv_orig_node_vlan_get(orig_entry->orig_node,
+						 tt_common_entry->vid);
+		if (!vlan) {
+			seq_printf(seq,
+				   " + Cannot retrieve VLAN %d for originator %pM\n",
+				   BATADV_PRINT_VID(tt_common_entry->vid),
+				   orig_entry->orig_node->orig);
+			continue;
+		}
+
 		last_ttvn = atomic_read(&orig_entry->orig_node->last_ttvn);
 		seq_printf(seq,
-			   " %c %pM %4d   (%3u) via %pM     (%3u)   [%c%c%c]\n",
+			   " %c %pM %4d   (%3u) via %pM     (%3u)   (%#.8x) [%c%c%c]\n",
 			   '+', tt_global_entry->common.addr,
 			   BATADV_PRINT_VID(tt_global_entry->common.vid),
 			   orig_entry->ttvn, orig_entry->orig_node->orig,
-			   last_ttvn,
+			   last_ttvn, vlan->tt.crc,
 			   (flags & BATADV_TT_CLIENT_ROAM ? 'R' : '.'),
 			   (flags & BATADV_TT_CLIENT_WIFI ? 'W' : '.'),
 			   (flags & BATADV_TT_CLIENT_TEMP ? 'T' : '.'));
+
+		batadv_orig_node_vlan_free_ref(vlan);
 	}
 }
 
@@ -1165,6 +1438,8 @@ batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry)
 	head = &tt_global_entry->orig_list;
 	hlist_for_each_entry_safe(orig_entry, safe, head, list) {
 		hlist_del_rcu(&orig_entry->list);
+		batadv_tt_global_size_dec(orig_entry->orig_node,
+					  tt_global_entry->common.vid);
 		batadv_tt_orig_list_entry_free_ref(orig_entry);
 	}
 	spin_unlock_bh(&tt_global_entry->list_lock);
@@ -1192,6 +1467,8 @@ batadv_tt_global_del_orig_entry(struct batadv_priv *bat_priv,
 				   tt_global_entry->common.addr,
 				   BATADV_PRINT_VID(vid), message);
 			hlist_del_rcu(&orig_entry->list);
+			batadv_tt_global_size_dec(orig_node,
+						  tt_global_entry->common.vid);
 			batadv_tt_orig_list_entry_free_ref(orig_entry);
 		}
 	}
@@ -1535,6 +1812,7 @@ out:
  *  to the given orig_node
  * @bat_priv: the bat priv with all the soft interface information
  * @orig_node: originator for which the CRC should be computed
+ * @vid: VLAN identifier for which the CRC32 has to be computed
  *
  * This function computes the checksum for the global table corresponding to a
  * specific originator. In particular, the checksum is computed as follows: For
@@ -1554,7 +1832,8 @@ out:
  * Returns the checksum of the global table of a given originator.
  */
 static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
-				     struct batadv_orig_node *orig_node)
+				     struct batadv_orig_node *orig_node,
+				     unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.global_hash;
 	struct batadv_tt_common_entry *tt_common;
@@ -1570,6 +1849,12 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 			tt_global = container_of(tt_common,
 						 struct batadv_tt_global_entry,
 						 common);
+			/* compute the CRC only for entries belonging to the
+			 * VLAN identified by the vid passed as parameter
+			 */
+			if (tt_common->vid != vid)
+				continue;
+
 			/* Roaming clients are in the global table for
 			 * consistency only. They don't have to be
 			 * taken into account while computing the
@@ -1604,13 +1889,15 @@ static uint32_t batadv_tt_global_crc(struct batadv_priv *bat_priv,
 /**
  * batadv_tt_local_crc - calculates the checksum of the local table
  * @bat_priv: the bat priv with all the soft interface information
+ * @vid: VLAN identifier for which the CRC32 has to be computed
  *
  * For details about the computation, please refer to the documentation for
  * batadv_tt_global_crc().
  *
  * Returns the checksum of the local table
  */
-static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
+static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv,
+				    unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
 	struct batadv_tt_common_entry *tt_common;
@@ -1622,6 +1909,12 @@ static uint32_t batadv_tt_local_crc(struct batadv_priv *bat_priv)
 
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(tt_common, head, hash_entry) {
+			/* compute the CRC only for entries belonging to the
+			 * VLAN identified by vid
+			 */
+			if (tt_common->vid != vid)
+				continue;
+
 			/* not yet committed clients have not to be taken into
 			 * account while computing the CRC
 			 */
@@ -1753,44 +2046,29 @@ static int batadv_tt_global_valid(const void *entry_ptr,
 }
 
 /**
- * batadv_tt_tvlv_generate - creates tvlv tt data buffer to fill it with the
- *  tt entries from the specified tt hash
+ * batadv_tt_tvlv_generate - fill the tvlv buff with the tt entries from the
+ *  specified tt hash
  * @bat_priv: the bat priv with all the soft interface information
  * @hash: hash table containing the tt entries
  * @tt_len: expected tvlv tt data buffer length in number of bytes
+ * @tvlv_buff: pointer to the buffer to fill with the TT data
  * @valid_cb: function to filter tt change entries
  * @cb_data: data passed to the filter function as argument
- *
- * Returns pointer to allocated tvlv tt data buffer if operation was
- * successful or NULL otherwise.
  */
-static struct batadv_tvlv_tt_data *
-batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
-			struct batadv_hashtable *hash, uint16_t tt_len,
-			int (*valid_cb)(const void *, const void *),
-			void *cb_data)
+static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
+				    struct batadv_hashtable *hash,
+				    void *tvlv_buff, uint16_t tt_len,
+				    int (*valid_cb)(const void *, const void *),
+				    void *cb_data)
 {
 	struct batadv_tt_common_entry *tt_common_entry;
-	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct hlist_head *head;
 	uint16_t tt_tot, tt_num_entries = 0;
-	ssize_t tvlv_tt_size = sizeof(struct batadv_tvlv_tt_data);
 	uint32_t i;
 
-	if (tvlv_tt_size + tt_len > bat_priv->soft_iface->mtu) {
-		tt_len = bat_priv->soft_iface->mtu - tvlv_tt_size;
-		tt_len -= tt_len % sizeof(struct batadv_tvlv_tt_change);
-	}
-
 	tt_tot = batadv_tt_entries(tt_len);
-
-	tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-			       GFP_ATOMIC);
-	if (!tvlv_tt_data)
-		goto out;
-
-	tt_change = (struct batadv_tvlv_tt_change *)(tvlv_tt_data + 1);
+	tt_change = (struct batadv_tvlv_tt_change *)tvlv_buff;
 
 	rcu_read_lock();
 	for (i = 0; i < hash->size; i++) {
@@ -1815,9 +2093,89 @@ batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
 		}
 	}
 	rcu_read_unlock();
+}
 
-out:
-	return tvlv_tt_data;
+/**
+ * batadv_tt_global_check_crc - check if all the CRCs are correct
+ * @orig_node: originator for which the CRCs have to be checked
+ * @tt_vlan: pointer to the first tvlv VLAN entry
+ * @num_vlan: number of tvlv VLAN entries
+ * @create: if true, create VLAN objects if not found
+ *
+ * Return true if all the received CRCs match the locally stored ones, false
+ * otherwise
+ */
+static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
+				       struct batadv_tvlv_tt_vlan_data *tt_vlan,
+				       uint16_t num_vlan)
+{
+	struct batadv_tvlv_tt_vlan_data *tt_vlan_tmp;
+	struct batadv_orig_node_vlan *vlan;
+	int i;
+
+	/* check if each received CRC matches the locally stored one */
+	for (i = 0; i < num_vlan; i++) {
+		tt_vlan_tmp = tt_vlan + i;
+
+		/* if orig_node is a backbone node for this VLAN, don't check
+		 * the CRC as we ignore all the global entries over it
+		 */
+		if (batadv_bla_is_backbone_gw_orig(orig_node->bat_priv,
+						   orig_node->orig))
+			continue;
+
+		vlan = batadv_orig_node_vlan_get(orig_node,
+						 ntohs(tt_vlan_tmp->vid));
+		if (!vlan)
+			return false;
+
+		if (vlan->tt.crc != ntohl(tt_vlan_tmp->crc))
+			return false;
+	}
+
+	return true;
+}
+
+/**
+ * batadv_tt_local_update_crc - update all the local CRCs
+ * @bat_priv: the bat priv with all the soft interface information
+ */
+static void batadv_tt_local_update_crc(struct batadv_priv *bat_priv)
+{
+	struct batadv_softif_vlan *vlan;
+
+	/* recompute the global CRC for each VLAN */
+	rcu_read_lock();
+	hlist_for_each_entry_rcu(vlan, &bat_priv->softif_vlan_list, list) {
+		vlan->tt.crc = batadv_tt_local_crc(bat_priv, vlan->vid);
+	}
+	rcu_read_unlock();
+}
+
+/**
+ * batadv_tt_global_update_crc - update all the global CRCs for this orig_node
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: the orig_node for which the CRCs have to be updated
+ */
+static void batadv_tt_global_update_crc(struct batadv_priv *bat_priv,
+					struct batadv_orig_node *orig_node)
+{
+	struct batadv_orig_node_vlan *vlan;
+	uint32_t crc;
+
+	/* recompute the global CRC for each VLAN */
+	rcu_read_lock();
+	list_for_each_entry_rcu(vlan, &orig_node->vlan_list, list) {
+		/* if orig_node is a backbone node for this VLAN, don't compute
+		 * the CRC as we ignore all the global entries over it
+		 */
+		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
+			continue;
+
+		crc = batadv_tt_global_crc(bat_priv, orig_node, vlan->vid);
+		vlan->tt.crc = crc;
+	}
+	rcu_read_unlock();
 }
 
 /**
@@ -1825,19 +2183,23 @@ out:
  * @bat_priv: the bat priv with all the soft interface information
  * @dst_orig_node: the destination of the message
  * @ttvn: the version number that the source of the message is looking for
- * @tt_crc: the CRC associated with the version number
+ * @tt_vlan: pointer to the first tvlv VLAN object to request
+ * @num_vlan: number of tvlv VLAN entries
  * @full_table: ask for the entire translation table if true, while only for the
  *  last TT diff otherwise
  */
 static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 				  struct batadv_orig_node *dst_orig_node,
-				  uint8_t ttvn, uint32_t tt_crc,
-				  bool full_table)
+				  uint8_t ttvn,
+				  struct batadv_tvlv_tt_vlan_data *tt_vlan,
+				  uint16_t num_vlan, bool full_table)
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_hard_iface *primary_if;
 	struct batadv_tt_req_node *tt_req_node = NULL;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan_req;
+	struct batadv_hard_iface *primary_if;
 	bool ret = false;
+	int i, size;
 
 	primary_if = batadv_primary_if_get_selected(bat_priv);
 	if (!primary_if)
@@ -1850,13 +2212,26 @@ static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 	if (!tt_req_node)
 		goto out;
 
-	tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data), GFP_ATOMIC);
+	size = sizeof(*tvlv_tt_data) + sizeof(*tt_vlan_req) * num_vlan;
+	tvlv_tt_data = kzalloc(size, GFP_ATOMIC);
 	if (!tvlv_tt_data)
 		goto out;
 
 	tvlv_tt_data->flags = BATADV_TT_REQUEST;
 	tvlv_tt_data->ttvn = ttvn;
-	tvlv_tt_data->crc = htonl(tt_crc);
+	tvlv_tt_data->num_vlan = htons(num_vlan);
+
+	/* send all the CRCs within the request. This is needed by intermediate
+	 * nodes to ensure they have the correct table before replying
+	 */
+	tt_vlan_req = (struct batadv_tvlv_tt_vlan_data *)(tvlv_tt_data + 1);
+	for (i = 0; i < num_vlan; i++) {
+		tt_vlan_req->vid = tt_vlan->vid;
+		tt_vlan_req->crc = tt_vlan->crc;
+
+		tt_vlan_req++;
+		tt_vlan++;
+	}
 
 	if (full_table)
 		tvlv_tt_data->flags |= BATADV_TT_FULL_TABLE;
@@ -1867,7 +2242,7 @@ static int batadv_send_tt_request(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_REQUEST_TX);
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
 				 dst_orig_node->orig, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data));
+				 tvlv_tt_data, size);
 	ret = true;
 
 out:
@@ -1899,10 +2274,13 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 {
 	struct batadv_orig_node *req_dst_orig_node;
 	struct batadv_orig_node *res_dst_orig_node = NULL;
+	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	uint8_t orig_ttvn, req_ttvn;
-	uint16_t tt_len;
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool ret = false, full_table;
+	uint8_t orig_ttvn, req_ttvn;
+	uint16_t tvlv_len;
+	int32_t tt_len;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_REQUEST from %pM for ttvn: %u (%pM) [%c]\n",
@@ -1921,9 +2299,11 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	orig_ttvn = (uint8_t)atomic_read(&req_dst_orig_node->last_ttvn);
 	req_ttvn = tt_data->ttvn;
 
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
 	/* this node doesn't have the requested data */
 	if (orig_ttvn != req_ttvn ||
-	    tt_data->crc != htonl(req_dst_orig_node->tt_crc))
+	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_vlan,
+					ntohs(tt_data->num_vlan)))
 		goto out;
 
 	/* If the full table has been explicitly requested */
@@ -1940,26 +2320,34 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 		spin_lock_bh(&req_dst_orig_node->tt_buff_lock);
 		tt_len = req_dst_orig_node->tt_buff_len;
 
-		tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-				       GFP_ATOMIC);
-		if (!tvlv_tt_data)
+		tvlv_len = batadv_tt_prepare_tvlv_global_data(req_dst_orig_node,
+							      &tvlv_tt_data,
+							      &tt_change,
+							      &tt_len);
+		if (!tt_len)
 			goto unlock;
 
 		/* Copy the last orig_node's OGM buffer */
-		memcpy(tvlv_tt_data + 1, req_dst_orig_node->tt_buff,
+		memcpy(tt_change, req_dst_orig_node->tt_buff,
 		       req_dst_orig_node->tt_buff_len);
 		spin_unlock_bh(&req_dst_orig_node->tt_buff_lock);
 	} else {
-		tt_len = (uint16_t)atomic_read(&req_dst_orig_node->tt_size);
-		tt_len = batadv_tt_len(tt_len);
-
-		tvlv_tt_data = batadv_tt_tvlv_generate(bat_priv,
-						       bat_priv->tt.global_hash,
-						       tt_len,
-						       batadv_tt_global_valid,
-						       req_dst_orig_node);
-		if (!tvlv_tt_data)
+		/* allocate the tvlv, put the tt_data and all the tt_vlan_data
+		 * in the initial part
+		 */
+		tt_len = -1;
+		tvlv_len = batadv_tt_prepare_tvlv_global_data(req_dst_orig_node,
+							      &tvlv_tt_data,
+							      &tt_change,
+							      &tt_len);
+		if (!tt_len)
 			goto out;
+
+		/* fill the rest of the tvlv with the real TT entries */
+		batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.global_hash,
+					tt_change, tt_len,
+					batadv_tt_global_valid,
+					req_dst_orig_node);
 	}
 
 	tvlv_tt_data->flags = BATADV_TT_RESPONSE;
@@ -1976,8 +2364,8 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_RESPONSE_TX);
 
 	batadv_tvlv_unicast_send(bat_priv, req_dst_orig_node->orig,
-				 req_src, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data) + tt_len);
+				 req_src, BATADV_TVLV_TT, 1, tvlv_tt_data,
+				 tvlv_len);
 
 	ret = true;
 	goto out;
@@ -2008,11 +2396,13 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 				       uint8_t *req_src)
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_orig_node *orig_node;
 	struct batadv_hard_iface *primary_if = NULL;
+	struct batadv_tvlv_tt_change *tt_change;
+	struct batadv_orig_node *orig_node;
 	uint8_t my_ttvn, req_ttvn;
+	uint16_t tvlv_len;
 	bool full_table;
-	uint16_t tt_len;
+	int32_t tt_len;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_REQUEST from %pM for ttvn: %u (me) [%c]\n",
@@ -2046,29 +2436,37 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 	 */
 	if (!full_table) {
 		spin_lock_bh(&bat_priv->tt.last_changeset_lock);
+
 		tt_len = bat_priv->tt.last_changeset_len;
-
-		tvlv_tt_data = kzalloc(sizeof(*tvlv_tt_data) + tt_len,
-				       GFP_ATOMIC);
-		if (!tvlv_tt_data)
+		tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv,
+							     &tvlv_tt_data,
+							     &tt_change,
+							     &tt_len);
+		if (!tt_len)
 			goto unlock;
 
 		/* Copy the last orig_node's OGM buffer */
-		memcpy(tvlv_tt_data + 1, bat_priv->tt.last_changeset,
+		memcpy(tt_change, bat_priv->tt.last_changeset,
 		       bat_priv->tt.last_changeset_len);
 		spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
 	} else {
-		tt_len = (uint16_t)atomic_read(&bat_priv->tt.local_entry_num);
-		tt_len = batadv_tt_len(tt_len);
 		req_ttvn = (uint8_t)atomic_read(&bat_priv->tt.vn);
 
-		tvlv_tt_data = batadv_tt_tvlv_generate(bat_priv,
-						       bat_priv->tt.local_hash,
-						       tt_len,
-						       batadv_tt_local_valid,
-						       NULL);
-		if (!tvlv_tt_data)
+		/* allocate the tvlv, put the tt_data and all the tt_vlan_data
+		 * in the initial part
+		 */
+		tt_len = -1;
+		tvlv_len = batadv_tt_prepare_tvlv_local_data(bat_priv,
+							     &tvlv_tt_data,
+							     &tt_change,
+							     &tt_len);
+		if (!tt_len)
 			goto out;
+
+		/* fill the rest of the tvlv with the real TT entries */
+		batadv_tt_tvlv_generate(bat_priv, bat_priv->tt.local_hash,
+					tt_change, tt_len,
+					batadv_tt_local_valid, NULL);
 	}
 
 	tvlv_tt_data->flags = BATADV_TT_RESPONSE;
@@ -2084,8 +2482,8 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
 	batadv_inc_counter(bat_priv, BATADV_CNT_TT_RESPONSE_TX);
 
 	batadv_tvlv_unicast_send(bat_priv, primary_if->net_dev->dev_addr,
-				 req_src, BATADV_TVLV_TT, 1,
-				 tvlv_tt_data, sizeof(*tvlv_tt_data) + tt_len);
+				 req_src, BATADV_TVLV_TT, 1, tvlv_tt_data,
+				 tvlv_len);
 
 	goto out;
 
@@ -2161,8 +2559,9 @@ static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
 }
 
 static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
-				  struct batadv_tvlv_tt_data *tt_data,
-				  uint8_t *resp_src, uint16_t num_entries)
+				  struct batadv_tvlv_tt_change *tt_change,
+				  uint8_t ttvn, uint8_t *resp_src,
+				  uint16_t num_entries)
 {
 	struct batadv_orig_node *orig_node;
 
@@ -2173,9 +2572,8 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 	/* Purge the old table first.. */
 	batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table");
 
-	_batadv_tt_update_changes(bat_priv, orig_node,
-				  (struct batadv_tvlv_tt_change *)(tt_data + 1),
-				  num_entries, tt_data->ttvn);
+	_batadv_tt_update_changes(bat_priv, orig_node, tt_change, num_entries,
+				  ttvn);
 
 	spin_lock_bh(&orig_node->tt_buff_lock);
 	kfree(orig_node->tt_buff);
@@ -2183,7 +2581,7 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 	orig_node->tt_buff = NULL;
 	spin_unlock_bh(&orig_node->tt_buff_lock);
 
-	atomic_set(&orig_node->last_ttvn, tt_data->ttvn);
+	atomic_set(&orig_node->last_ttvn, ttvn);
 
 out:
 	if (orig_node)
@@ -2247,6 +2645,8 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_tt_req_node *node, *safe;
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
+	uint8_t *tvlv_ptr = (uint8_t *)tt_data;
+	uint16_t change_offset;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_RESPONSE from %pM for ttvn %d t_size: %d [%c]\n",
@@ -2263,16 +2663,22 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 
 	spin_lock_bh(&orig_node->tt_lock);
 
+	change_offset = sizeof(struct batadv_tvlv_tt_vlan_data);
+	change_offset *= ntohs(tt_data->num_vlan);
+	change_offset += sizeof(*tt_data);
+	tvlv_ptr += change_offset;
+
+	tt_change = (struct batadv_tvlv_tt_change *)tvlv_ptr;
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
-		batadv_tt_fill_gtable(bat_priv, tt_data, resp_src, num_entries);
+		batadv_tt_fill_gtable(bat_priv, tt_change, tt_data->ttvn,
+				      resp_src, num_entries);
 	} else {
-		tt_change = (struct batadv_tvlv_tt_change *)(tt_data + 1);
 		batadv_tt_update_changes(bat_priv, orig_node, num_entries,
 					 tt_data->ttvn, tt_change);
 	}
 
 	/* Recalculate the CRC for this orig_node and store it */
-	orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+	batadv_tt_global_update_crc(bat_priv, orig_node);
 
 	spin_unlock_bh(&orig_node->tt_lock);
 
@@ -2284,6 +2690,7 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 		list_del(&node->list);
 		kfree(node);
 	}
+
 	spin_unlock_bh(&bat_priv->tt.req_list_lock);
 out:
 	if (orig_node)
@@ -2452,19 +2859,25 @@ void batadv_tt_free(struct batadv_priv *bat_priv)
 	kfree(bat_priv->tt.last_changeset);
 }
 
-/* This function will enable or disable the specified flags for all the entries
- * in the given hash table and returns the number of modified entries
+/**
+ * batadv_tt_local_set_flags - set or unset the specified flags on the local
+ *  table and possibly count them in the TT size
+ * @bat_priv: the bat priv with all the soft interface information
+ * @flags: the flag to switch
+ * @enable: whether to set or unset the flag
+ * @count: whether to increase the TT size by the number of changed entries
  */
-static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
-				    uint16_t flags, bool enable)
+static void batadv_tt_local_set_flags(struct batadv_priv *bat_priv,
+				      uint16_t flags, bool enable, bool count)
 {
-	uint32_t i;
+	struct batadv_hashtable *hash = bat_priv->tt.local_hash;
+	struct batadv_tt_common_entry *tt_common_entry;
 	uint16_t changed_num = 0;
 	struct hlist_head *head;
-	struct batadv_tt_common_entry *tt_common_entry;
+	uint32_t i;
 
 	if (!hash)
-		goto out;
+		return;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
@@ -2482,11 +2895,15 @@ static uint16_t batadv_tt_set_flags(struct batadv_hashtable *hash,
 				tt_common_entry->flags &= ~flags;
 			}
 			changed_num++;
+
+			if (!count)
+				continue;
+
+			batadv_tt_local_size_inc(bat_priv,
+						 tt_common_entry->vid);
 		}
 		rcu_read_unlock();
 	}
-out:
-	return changed_num;
 }
 
 /* Purge out all the tt local entries marked with BATADV_TT_CLIENT_PENDING */
@@ -2518,7 +2935,7 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
 				   tt_common->addr,
 				   BATADV_PRINT_VID(tt_common->vid));
 
-			atomic_dec(&bat_priv->tt.local_entry_num);
+			batadv_tt_local_size_dec(bat_priv, tt_common->vid);
 			hlist_del_rcu(&tt_common->hash_entry);
 			tt_local = container_of(tt_common,
 						struct batadv_tt_local_entry,
@@ -2536,8 +2953,6 @@ static void batadv_tt_local_purge_pending_clients(struct batadv_priv *bat_priv)
  */
 void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 {
-	uint16_t changed_num = 0;
-
 	spin_lock_bh(&bat_priv->tt.commit_lock);
 
 	if (atomic_read(&bat_priv->tt.local_changes) < 1) {
@@ -2546,13 +2961,10 @@ void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv)
 		goto out;
 	}
 
-	changed_num = batadv_tt_set_flags(bat_priv->tt.local_hash,
-					  BATADV_TT_CLIENT_NEW, false);
+	batadv_tt_local_set_flags(bat_priv, BATADV_TT_CLIENT_NEW, false, true);
 
-	/* all reset entries have to be counted as local entries */
-	atomic_add(changed_num, &bat_priv->tt.local_entry_num);
 	batadv_tt_local_purge_pending_clients(bat_priv);
-	bat_priv->tt.local_crc = batadv_tt_local_crc(bat_priv);
+	batadv_tt_local_update_crc(bat_priv);
 
 	/* Increment the TTVN only once per OGM interval */
 	atomic_inc(&bat_priv->tt.vn);
@@ -2608,25 +3020,28 @@ out:
  *  information received via ogms
  * @bat_priv: the bat priv with all the soft interface information
  * @orig: the orig_node of the ogm
- * @tt_buff: buffer holding the tt information
+ * @tt_vlan: pointer to the first tvlv VLAN entry
+ * @tt_num_vlan: number of tvlv VLAN entries
+ * @tt_change: pointer to the first entry in the TT buffer
  * @tt_num_changes: number of tt changes inside the tt buffer
  * @ttvn: translation table version number of this changeset
  * @tt_crc: crc32 checksum of orig node's translation table
  */
 static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 				  struct batadv_orig_node *orig_node,
-				  const unsigned char *tt_buff,
-				  uint16_t tt_num_changes, uint8_t ttvn,
-				  uint32_t tt_crc)
+				  const void *tt_buff, uint16_t tt_num_vlan,
+				  struct batadv_tvlv_tt_change *tt_change,
+				  uint16_t tt_num_changes, uint8_t ttvn)
 {
 	uint8_t orig_ttvn = (uint8_t)atomic_read(&orig_node->last_ttvn);
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool full_table = true;
-	struct batadv_tvlv_tt_change *tt_change;
 
 	/* don't care about a backbone gateways updates. */
 	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
 		return;
 
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)tt_buff;
 	/* orig table not initialised AND first diff is in the OGM OR the ttvn
 	 * increased by one -> we can apply the attached changes
 	 */
@@ -2652,7 +3067,7 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 * prefer to recompute it to spot any possible inconsistency
 		 * in the global table
 		 */
-		orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
+		batadv_tt_global_update_crc(bat_priv, orig_node);
 
 		spin_unlock_bh(&orig_node->tt_lock);
 
@@ -2665,21 +3080,24 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 		 * checking the CRC value is mandatory to detect the
 		 * inconsistency
 		 */
-		if (orig_node->tt_crc != tt_crc)
+		if (!batadv_tt_global_check_crc(orig_node, tt_vlan,
+						tt_num_vlan))
 			goto request_table;
 	} else {
 		/* if we missed more than one change or our tables are not
 		 * in sync anymore -> request fresh tt data
 		 */
 		if (!orig_node->tt_initialised || ttvn != orig_ttvn ||
-		    orig_node->tt_crc != tt_crc) {
+		    !batadv_tt_global_check_crc(orig_node, tt_vlan,
+						tt_num_vlan)) {
 request_table:
 			batadv_dbg(BATADV_DBG_TT, bat_priv,
-				   "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u crc: %#.8x last_crc: %#.8x num_changes: %u)\n",
-				   orig_node->orig, ttvn, orig_ttvn, tt_crc,
-				   orig_node->tt_crc, tt_num_changes);
+				   "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u num_changes: %u)\n",
+				   orig_node->orig, ttvn, orig_ttvn,
+				   tt_num_changes);
 			batadv_send_tt_request(bat_priv, orig_node, ttvn,
-					       tt_crc, full_table);
+					       tt_vlan, tt_num_vlan,
+					       full_table);
 			return;
 		}
 	}
@@ -2774,12 +3192,13 @@ out:
  */
 static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 					  struct batadv_orig_node *orig,
-					  uint8_t flags,
-					  void *tvlv_value,
+					  uint8_t flags, void *tvlv_value,
 					  uint16_t tvlv_value_len)
 {
+	struct batadv_tvlv_tt_vlan_data *tt_vlan;
+	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tt_data;
-	uint16_t num_entries;
+	uint16_t num_entries, num_vlan;
 
 	if (tvlv_value_len < sizeof(*tt_data))
 		return;
@@ -2787,11 +3206,19 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = (struct batadv_tvlv_tt_data *)tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
+	num_vlan = ntohs(tt_data->num_vlan);
+
+	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
+		return;
+
+	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
+	tt_change = (struct batadv_tvlv_tt_change *)(tt_vlan + num_vlan);
+	tvlv_value_len -= sizeof(*tt_vlan) * num_vlan;
+
 	num_entries = batadv_tt_entries(tvlv_value_len);
 
-	batadv_tt_update_orig(bat_priv, orig,
-			      (unsigned char *)(tt_data + 1),
-			      num_entries, tt_data->ttvn, ntohl(tt_data->crc));
+	batadv_tt_update_orig(bat_priv, orig, tt_vlan, num_vlan, tt_change,
+			      num_entries, tt_data->ttvn);
 }
 
 /**
@@ -2812,7 +3239,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 					     uint16_t tvlv_value_len)
 {
 	struct batadv_tvlv_tt_data *tt_data;
-	uint16_t num_entries;
+	uint16_t tt_vlan_len, tt_num_entries;
 	char tt_flag;
 	bool ret;
 
@@ -2822,7 +3249,14 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = (struct batadv_tvlv_tt_data *)tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
-	num_entries = batadv_tt_entries(tvlv_value_len);
+	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
+	tt_vlan_len *= ntohs(tt_data->num_vlan);
+
+	if (tvlv_value_len < tt_vlan_len)
+		return NET_RX_SUCCESS;
+
+	tvlv_value_len -= tt_vlan_len;
+	tt_num_entries = batadv_tt_entries(tvlv_value_len);
 
 	switch (tt_data->flags & BATADV_TT_DATA_TYPE_MASK) {
 	case BATADV_TT_REQUEST:
@@ -2850,7 +3284,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 
 		if (batadv_is_my_mac(bat_priv, dst)) {
 			batadv_handle_tt_response(bat_priv, tt_data,
-						  src, num_entries);
+						  src, tt_num_entries);
 			return NET_RX_SUCCESS;
 		}
 
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index bd95d61..ff53933 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -107,6 +107,32 @@ struct batadv_frag_list_entry {
 };
 
 /**
+ * struct batadv_vlan_tt - VLAN specific TT attributes
+ * @crc: CRC32 checksum of the entries belonging to this vlan
+ * @num_entries: number of TT entries for this VLAN
+ */
+struct batadv_vlan_tt {
+	uint32_t crc;
+	atomic_t num_entries;
+};
+
+/**
+ * batadv_orig_node_vlan - VLAN specific data per orig_node
+ * @vid: the VLAN identifier
+ * @tt: VLAN specific TT attributes
+ * @list: list node for orig_node::vlan_list
+ * @refcount: number of context where this object is currently in use
+ * @rcu: struct used for freeing in a RCU-safe manner
+ */
+struct batadv_orig_node_vlan {
+	unsigned short vid;
+	struct batadv_vlan_tt tt;
+	struct list_head list;
+	atomic_t refcount;
+	struct rcu_head rcu;
+};
+
+/**
  * struct batadv_orig_node - structure for orig_list maintaining nodes of mesh
  * @orig: originator ethernet address
  * @primary_addr: hosts primary interface address
@@ -120,12 +146,10 @@ struct batadv_frag_list_entry {
  * @batman_seqno_reset: time when the batman seqno window was reset
  * @capabilities: announced capabilities of this originator
  * @last_ttvn: last seen translation table version number
- * @tt_crc: CRC of the translation table
  * @tt_buff: last tt changeset this node received from the orig node
  * @tt_buff_len: length of the last tt changeset this node received from the
  *  orig node
  * @tt_buff_lock: lock that protects tt_buff and tt_buff_len
- * @tt_size: number of global TT entries announced by the orig node
  * @tt_initialised: bool keeping track of whether or not this node have received
  *  any translation table information from the orig node yet
  * @tt_lock: prevents from updating the table while reading it. Table update is
@@ -154,6 +178,9 @@ struct batadv_frag_list_entry {
  * @in_coding_list_lock: protects in_coding_list
  * @out_coding_list_lock: protects out_coding_list
  * @fragments: array with heads for fragment chains
+ * @vlan_list: a list of orig_node_vlan structs, one per VLAN served by the
+ *  originator represented by this object
+ * @vlan_list_lock: lock protecting vlan_list
  */
 struct batadv_orig_node {
 	uint8_t orig[ETH_ALEN];
@@ -169,11 +196,9 @@ struct batadv_orig_node {
 	unsigned long batman_seqno_reset;
 	uint8_t capabilities;
 	atomic_t last_ttvn;
-	uint32_t tt_crc;
 	unsigned char *tt_buff;
 	int16_t tt_buff_len;
 	spinlock_t tt_buff_lock; /* protects tt_buff & tt_buff_len */
-	atomic_t tt_size;
 	bool tt_initialised;
 	/* prevents from changing the table while reading it */
 	spinlock_t tt_lock;
@@ -203,6 +228,8 @@ struct batadv_orig_node {
 	spinlock_t out_coding_list_lock; /* Protects out_coding_list */
 #endif
 	struct batadv_frag_table_entry fragments[BATADV_FRAG_BUFFER_COUNT];
+	struct list_head vlan_list;
+	spinlock_t vlan_list_lock; /* protects vlan_list */
 };
 
 /**
@@ -389,8 +416,6 @@ enum batadv_counters {
  * @changes_list_lock: lock protecting changes_list
  * @req_list_lock: lock protecting req_list
  * @roam_list_lock: lock protecting roam_list
- * @local_entry_num: number of entries in the local hash table
- * @local_crc: Checksum of the local table, recomputed before sending a new OGM
  * @last_changeset: last tt changeset this host has generated
  * @last_changeset_len: length of last tt changeset this host has generated
  * @last_changeset_lock: lock protecting last_changeset & last_changeset_len
@@ -413,8 +438,6 @@ struct batadv_priv_tt {
 	spinlock_t changes_list_lock; /* protects changes */
 	spinlock_t req_list_lock; /* protects req_list */
 	spinlock_t roam_list_lock; /* protects roam_list */
-	atomic_t local_entry_num;
-	uint32_t local_crc;
 	unsigned char *last_changeset;
 	int16_t last_changeset_len;
 	/* protects last_changeset & last_changeset_len */
@@ -548,6 +571,7 @@ struct batadv_priv_nc {
  * @vid: VLAN identifier
  * @kobj: kobject for sysfs vlan subdirectory
  * @ap_isolation: AP isolation state
+ * @tt: TT private attributes (VLAN specific)
  * @list: list node for bat_priv::softif_vlan_list
  * @refcount: number of context where this object is currently in use
  * @rcu: struct used for freeing in a RCU-safe manner
@@ -556,6 +580,7 @@ struct batadv_softif_vlan {
 	unsigned short vid;
 	struct kobject *kobj;
 	atomic_t ap_isolation;		/* boolean */
+	struct batadv_vlan_tt tt;
 	struct hlist_node list;
 	atomic_t refcount;
 	struct rcu_head rcu;
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 17/18] batman-adv: make the TT global purge routine VLAN specific
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem
  Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Simon Wunderlich, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

Instead of unconditionally removing all the TT entries
served by a given originator, make tt_global_orig_del()
remove only entries matching a given VLAN identifier
provided as argument.

If such argument is negative all the global entries
served by the originator are removed.

This change is used into the BLA code to purge entries
served by a newly discovered Backbone node, but limiting
the operation only to those connected to the VLAN where the
backbone has been discovered.

Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c |  4 ++--
 net/batman-adv/originator.c            |  2 +-
 net/batman-adv/routing.c               |  2 +-
 net/batman-adv/translation-table.c     | 17 ++++++++++++++++-
 net/batman-adv/translation-table.h     |  2 +-
 5 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index e8a6458..3b3867db 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -411,10 +411,10 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, uint8_t *orig,
 		return NULL;
 	}
 
-	/* this is a gateway now, remove any tt entries */
+	/* this is a gateway now, remove any TT entry on this VLAN */
 	orig_node = batadv_orig_hash_find(bat_priv, orig);
 	if (orig_node) {
-		batadv_tt_global_del_orig(bat_priv, orig_node,
+		batadv_tt_global_del_orig(bat_priv, orig_node, vid,
 					  "became a backbone gateway");
 		batadv_orig_node_free_ref(orig_node);
 	}
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 7a499da..ee1d847 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -230,7 +230,7 @@ static void batadv_orig_node_free_rcu(struct rcu_head *rcu)
 
 	batadv_frag_purge_orig(orig_node, NULL);
 
-	batadv_tt_global_del_orig(orig_node->bat_priv, orig_node,
+	batadv_tt_global_del_orig(orig_node->bat_priv, orig_node, -1,
 				  "originator timed out");
 
 	kfree(orig_node->tt_buff);
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 149ef57..4bcf221 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -47,7 +47,7 @@ static void _batadv_update_route(struct batadv_priv *bat_priv,
 	if ((curr_router) && (!neigh_node)) {
 		batadv_dbg(BATADV_DBG_ROUTES, bat_priv,
 			   "Deleting route towards: %pM\n", orig_node->orig);
-		batadv_tt_global_del_orig(bat_priv, orig_node,
+		batadv_tt_global_del_orig(bat_priv, orig_node, -1,
 					  "Deleted route towards originator");
 
 	/* route added */
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 41a8387..4c313ff 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1581,8 +1581,18 @@ out:
 		batadv_tt_local_entry_free_ref(local_entry);
 }
 
+/**
+ * batadv_tt_global_del_orig - remove all the TT global entries belonging to the
+ *  given originator matching the provided vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: the originator owning the entries to remove
+ * @match_vid: the VLAN identifier to match. If negative all the entries will be
+ *  removed
+ * @message: debug message to print as "reason"
+ */
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       struct batadv_orig_node *orig_node,
+			       int32_t match_vid,
 			       const char *message)
 {
 	struct batadv_tt_global_entry *tt_global;
@@ -1604,6 +1614,10 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 		spin_lock_bh(list_lock);
 		hlist_for_each_entry_safe(tt_common_entry, safe,
 					  head, hash_entry) {
+			/* remove only matching entries */
+			if (match_vid >= 0 && tt_common_entry->vid != match_vid)
+				continue;
+
 			tt_global = container_of(tt_common_entry,
 						 struct batadv_tt_global_entry,
 						 common);
@@ -2570,7 +2584,8 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 		goto out;
 
 	/* Purge the old table first.. */
-	batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table");
+	batadv_tt_global_del_orig(bat_priv, orig_node, -1,
+				  "Received full table");
 
 	_batadv_tt_update_changes(bat_priv, orig_node, tt_change, num_entries,
 				  ttvn);
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index c6bf33c..dc6db4e 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -30,7 +30,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset);
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       struct batadv_orig_node *orig_node,
-			       const char *message);
+			       int32_t match_vid, const char *message);
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
 						  const uint8_t *addr,
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 17/18] batman-adv: make the TT global purge routine VLAN specific
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem
  Cc: netdev, b.a.t.m.a.n, Marek Lindner, Simon Wunderlich, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

Instead of unconditionally removing all the TT entries
served by a given originator, make tt_global_orig_del()
remove only entries matching a given VLAN identifier
provided as argument.

If such argument is negative all the global entries
served by the originator are removed.

This change is used into the BLA code to purge entries
served by a newly discovered Backbone node, but limiting
the operation only to those connected to the VLAN where the
backbone has been discovered.

Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c |  4 ++--
 net/batman-adv/originator.c            |  2 +-
 net/batman-adv/routing.c               |  2 +-
 net/batman-adv/translation-table.c     | 17 ++++++++++++++++-
 net/batman-adv/translation-table.h     |  2 +-
 5 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index e8a6458..3b3867db 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -411,10 +411,10 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, uint8_t *orig,
 		return NULL;
 	}
 
-	/* this is a gateway now, remove any tt entries */
+	/* this is a gateway now, remove any TT entry on this VLAN */
 	orig_node = batadv_orig_hash_find(bat_priv, orig);
 	if (orig_node) {
-		batadv_tt_global_del_orig(bat_priv, orig_node,
+		batadv_tt_global_del_orig(bat_priv, orig_node, vid,
 					  "became a backbone gateway");
 		batadv_orig_node_free_ref(orig_node);
 	}
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 7a499da..ee1d847 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -230,7 +230,7 @@ static void batadv_orig_node_free_rcu(struct rcu_head *rcu)
 
 	batadv_frag_purge_orig(orig_node, NULL);
 
-	batadv_tt_global_del_orig(orig_node->bat_priv, orig_node,
+	batadv_tt_global_del_orig(orig_node->bat_priv, orig_node, -1,
 				  "originator timed out");
 
 	kfree(orig_node->tt_buff);
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index 149ef57..4bcf221 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -47,7 +47,7 @@ static void _batadv_update_route(struct batadv_priv *bat_priv,
 	if ((curr_router) && (!neigh_node)) {
 		batadv_dbg(BATADV_DBG_ROUTES, bat_priv,
 			   "Deleting route towards: %pM\n", orig_node->orig);
-		batadv_tt_global_del_orig(bat_priv, orig_node,
+		batadv_tt_global_del_orig(bat_priv, orig_node, -1,
 					  "Deleted route towards originator");
 
 	/* route added */
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 41a8387..4c313ff 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1581,8 +1581,18 @@ out:
 		batadv_tt_local_entry_free_ref(local_entry);
 }
 
+/**
+ * batadv_tt_global_del_orig - remove all the TT global entries belonging to the
+ *  given originator matching the provided vid
+ * @bat_priv: the bat priv with all the soft interface information
+ * @orig_node: the originator owning the entries to remove
+ * @match_vid: the VLAN identifier to match. If negative all the entries will be
+ *  removed
+ * @message: debug message to print as "reason"
+ */
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       struct batadv_orig_node *orig_node,
+			       int32_t match_vid,
 			       const char *message)
 {
 	struct batadv_tt_global_entry *tt_global;
@@ -1604,6 +1614,10 @@ void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 		spin_lock_bh(list_lock);
 		hlist_for_each_entry_safe(tt_common_entry, safe,
 					  head, hash_entry) {
+			/* remove only matching entries */
+			if (match_vid >= 0 && tt_common_entry->vid != match_vid)
+				continue;
+
 			tt_global = container_of(tt_common_entry,
 						 struct batadv_tt_global_entry,
 						 common);
@@ -2570,7 +2584,8 @@ static void batadv_tt_fill_gtable(struct batadv_priv *bat_priv,
 		goto out;
 
 	/* Purge the old table first.. */
-	batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table");
+	batadv_tt_global_del_orig(bat_priv, orig_node, -1,
+				  "Received full table");
 
 	_batadv_tt_update_changes(bat_priv, orig_node, tt_change, num_entries,
 				  ttvn);
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index c6bf33c..dc6db4e 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -30,7 +30,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset);
 void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
 			       struct batadv_orig_node *orig_node,
-			       const char *message);
+			       int32_t match_vid, const char *message);
 struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
 						  const uint8_t *src,
 						  const uint8_t *addr,
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [PATCH 18/18] batman-adv: make the backbone gw check VLAN specific
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-19 22:22   ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem
  Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Simon Wunderlich, Marek Lindner

From: Antonio Quartulli <antonio@open-mesh.com>

The backbone gw check has to be VLAN specific so that code
using it can specify VID where the check has to be done.

In the TT code, the check has been moved into the
tt_global_add() function so that it can be performed on a
per-entry basis instead of ignoring all the TT data received
from another backbone node. Only TT global entries belonging
to the VLAN where the backbone node is connected to are
skipped.
All the other spots where the TT code was checking whether a
node is a backbone have been removed.

Moreover, batadv_bla_is_backbone_gw_orig() now returns bool
since it used to return only 1 or 0.

Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c | 19 +++++++++-------
 net/batman-adv/bridge_loop_avoidance.h | 10 +++++----
 net/batman-adv/translation-table.c     | 41 +++++++++-------------------------
 3 files changed, 27 insertions(+), 43 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 3b3867db..28eb5e6 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -1315,12 +1315,14 @@ out:
 
 /* @bat_priv: the bat priv with all the soft interface information
  * @orig: originator mac address
+ * @vid: VLAN identifier
  *
- * check if the originator is a gateway for any VLAN ID.
+ * Check if the originator is a gateway for the VLAN identified by vid.
  *
- * returns 1 if it is found, 0 otherwise
+ * Returns true if orig is a backbone for this vid, false otherwise.
  */
-int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
+bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig,
+				    unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->bla.backbone_hash;
 	struct hlist_head *head;
@@ -1328,25 +1330,26 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
 	int i;
 
 	if (!atomic_read(&bat_priv->bridge_loop_avoidance))
-		return 0;
+		return false;
 
 	if (!hash)
-		return 0;
+		return false;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
 
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-			if (batadv_compare_eth(backbone_gw->orig, orig)) {
+			if (batadv_compare_eth(backbone_gw->orig, orig) &&
+			    backbone_gw->vid == vid) {
 				rcu_read_unlock();
-				return 1;
+				return true;
 			}
 		}
 		rcu_read_unlock();
 	}
 
-	return 0;
+	return false;
 }
 
 
diff --git a/net/batman-adv/bridge_loop_avoidance.h b/net/batman-adv/bridge_loop_avoidance.h
index 4b102e7..da173e7 100644
--- a/net/batman-adv/bridge_loop_avoidance.h
+++ b/net/batman-adv/bridge_loop_avoidance.h
@@ -30,7 +30,8 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
 					     void *offset);
-int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig);
+bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig,
+				    unsigned short vid);
 int batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
 				   struct sk_buff *skb);
 void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
@@ -74,10 +75,11 @@ static inline int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
 	return 0;
 }
 
-static inline int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
-						 uint8_t *orig)
+static inline bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
+						  uint8_t *orig,
+						  unsigned short vid)
 {
-	return 0;
+	return false;
 }
 
 static inline int
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 4c313ff..7731eae 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1153,6 +1153,10 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *common;
 	uint16_t local_flags;
 
+	/* ignore global entries from backbone nodes */
+	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig, vid))
+		return true;
+
 	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr, vid);
 	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr, vid);
 
@@ -2135,7 +2139,8 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
 		 * the CRC as we ignore all the global entries over it
 		 */
 		if (batadv_bla_is_backbone_gw_orig(orig_node->bat_priv,
-						   orig_node->orig))
+						   orig_node->orig,
+						   ntohs(tt_vlan_tmp->vid)))
 			continue;
 
 		vlan = batadv_orig_node_vlan_get(orig_node,
@@ -2183,7 +2188,8 @@ static void batadv_tt_global_update_crc(struct batadv_priv *bat_priv,
 		/* if orig_node is a backbone node for this VLAN, don't compute
 		 * the CRC as we ignore all the global entries over it
 		 */
-		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
+		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig,
+						   vlan->vid))
 			continue;
 
 		crc = batadv_tt_global_crc(bat_priv, orig_node, vlan->vid);
@@ -2527,16 +2533,11 @@ static bool batadv_send_tt_response(struct batadv_priv *bat_priv,
 				    struct batadv_tvlv_tt_data *tt_data,
 				    uint8_t *req_src, uint8_t *req_dst)
 {
-	if (batadv_is_my_mac(bat_priv, req_dst)) {
-		/* don't answer backbone gws! */
-		if (batadv_bla_is_backbone_gw_orig(bat_priv, req_src))
-			return true;
-
+	if (batadv_is_my_mac(bat_priv, req_dst))
 		return batadv_send_my_tt_response(bat_priv, tt_data, req_src);
-	} else {
+	else
 		return batadv_send_other_tt_response(bat_priv, tt_data,
 						     req_src, req_dst);
-	}
 }
 
 static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
@@ -2668,10 +2669,6 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 		   resp_src, tt_data->ttvn, num_entries,
 		   (tt_data->flags & BATADV_TT_FULL_TABLE ? 'F' : '.'));
 
-	/* we should have never asked a backbone gw */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, resp_src))
-		goto out;
-
 	orig_node = batadv_orig_hash_find(bat_priv, resp_src);
 	if (!orig_node)
 		goto out;
@@ -3052,10 +3049,6 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool full_table = true;
 
-	/* don't care about a backbone gateways updates. */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
-		return;
-
 	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)tt_buff;
 	/* orig table not initialised AND first diff is in the OGM OR the ttvn
 	 * increased by one -> we can apply the attached changes
@@ -3177,13 +3170,6 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 {
 	bool ret = false;
 
-	/* if the originator is a backbone node (meaning it belongs to the same
-	 * LAN of this node) the temporary client must not be added because to
-	 * reach such destination the node must use the LAN instead of the mesh
-	 */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
-		goto out;
-
 	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
@@ -3344,13 +3330,6 @@ static int batadv_roam_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	if (!batadv_is_my_mac(bat_priv, dst))
 		return NET_RX_DROP;
 
-	/* check if it is a backbone gateway. we don't accept
-	 * roaming advertisement from it, as it has the same
-	 * entries as we have.
-	 */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, src))
-		goto out;
-
 	if (tvlv_value_len < sizeof(*roaming_adv))
 		goto out;
 
-- 
1.8.4

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] [PATCH 18/18] batman-adv: make the backbone gw check VLAN specific
@ 2013-10-19 22:22   ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-19 22:22 UTC (permalink / raw)
  To: davem
  Cc: netdev, b.a.t.m.a.n, Marek Lindner, Simon Wunderlich, Antonio Quartulli

From: Antonio Quartulli <antonio@open-mesh.com>

The backbone gw check has to be VLAN specific so that code
using it can specify VID where the check has to be done.

In the TT code, the check has been moved into the
tt_global_add() function so that it can be performed on a
per-entry basis instead of ignoring all the TT data received
from another backbone node. Only TT global entries belonging
to the VLAN where the backbone node is connected to are
skipped.
All the other spots where the TT code was checking whether a
node is a backbone have been removed.

Moreover, batadv_bla_is_backbone_gw_orig() now returns bool
since it used to return only 1 or 0.

Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/bridge_loop_avoidance.c | 19 +++++++++-------
 net/batman-adv/bridge_loop_avoidance.h | 10 +++++----
 net/batman-adv/translation-table.c     | 41 +++++++++-------------------------
 3 files changed, 27 insertions(+), 43 deletions(-)

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 3b3867db..28eb5e6 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -1315,12 +1315,14 @@ out:
 
 /* @bat_priv: the bat priv with all the soft interface information
  * @orig: originator mac address
+ * @vid: VLAN identifier
  *
- * check if the originator is a gateway for any VLAN ID.
+ * Check if the originator is a gateway for the VLAN identified by vid.
  *
- * returns 1 if it is found, 0 otherwise
+ * Returns true if orig is a backbone for this vid, false otherwise.
  */
-int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
+bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig,
+				    unsigned short vid)
 {
 	struct batadv_hashtable *hash = bat_priv->bla.backbone_hash;
 	struct hlist_head *head;
@@ -1328,25 +1330,26 @@ int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig)
 	int i;
 
 	if (!atomic_read(&bat_priv->bridge_loop_avoidance))
-		return 0;
+		return false;
 
 	if (!hash)
-		return 0;
+		return false;
 
 	for (i = 0; i < hash->size; i++) {
 		head = &hash->table[i];
 
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(backbone_gw, head, hash_entry) {
-			if (batadv_compare_eth(backbone_gw->orig, orig)) {
+			if (batadv_compare_eth(backbone_gw->orig, orig) &&
+			    backbone_gw->vid == vid) {
 				rcu_read_unlock();
-				return 1;
+				return true;
 			}
 		}
 		rcu_read_unlock();
 	}
 
-	return 0;
+	return false;
 }
 
 
diff --git a/net/batman-adv/bridge_loop_avoidance.h b/net/batman-adv/bridge_loop_avoidance.h
index 4b102e7..da173e7 100644
--- a/net/batman-adv/bridge_loop_avoidance.h
+++ b/net/batman-adv/bridge_loop_avoidance.h
@@ -30,7 +30,8 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb,
 int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
 int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
 					     void *offset);
-int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig);
+bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig,
+				    unsigned short vid);
 int batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
 				   struct sk_buff *skb);
 void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
@@ -74,10 +75,11 @@ static inline int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
 	return 0;
 }
 
-static inline int batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
-						 uint8_t *orig)
+static inline bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
+						  uint8_t *orig,
+						  unsigned short vid)
 {
-	return 0;
+	return false;
 }
 
 static inline int
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 4c313ff..7731eae 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1153,6 +1153,10 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
 	struct batadv_tt_common_entry *common;
 	uint16_t local_flags;
 
+	/* ignore global entries from backbone nodes */
+	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig, vid))
+		return true;
+
 	tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr, vid);
 	tt_local_entry = batadv_tt_local_hash_find(bat_priv, tt_addr, vid);
 
@@ -2135,7 +2139,8 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
 		 * the CRC as we ignore all the global entries over it
 		 */
 		if (batadv_bla_is_backbone_gw_orig(orig_node->bat_priv,
-						   orig_node->orig))
+						   orig_node->orig,
+						   ntohs(tt_vlan_tmp->vid)))
 			continue;
 
 		vlan = batadv_orig_node_vlan_get(orig_node,
@@ -2183,7 +2188,8 @@ static void batadv_tt_global_update_crc(struct batadv_priv *bat_priv,
 		/* if orig_node is a backbone node for this VLAN, don't compute
 		 * the CRC as we ignore all the global entries over it
 		 */
-		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
+		if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig,
+						   vlan->vid))
 			continue;
 
 		crc = batadv_tt_global_crc(bat_priv, orig_node, vlan->vid);
@@ -2527,16 +2533,11 @@ static bool batadv_send_tt_response(struct batadv_priv *bat_priv,
 				    struct batadv_tvlv_tt_data *tt_data,
 				    uint8_t *req_src, uint8_t *req_dst)
 {
-	if (batadv_is_my_mac(bat_priv, req_dst)) {
-		/* don't answer backbone gws! */
-		if (batadv_bla_is_backbone_gw_orig(bat_priv, req_src))
-			return true;
-
+	if (batadv_is_my_mac(bat_priv, req_dst))
 		return batadv_send_my_tt_response(bat_priv, tt_data, req_src);
-	} else {
+	else
 		return batadv_send_other_tt_response(bat_priv, tt_data,
 						     req_src, req_dst);
-	}
 }
 
 static void _batadv_tt_update_changes(struct batadv_priv *bat_priv,
@@ -2668,10 +2669,6 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 		   resp_src, tt_data->ttvn, num_entries,
 		   (tt_data->flags & BATADV_TT_FULL_TABLE ? 'F' : '.'));
 
-	/* we should have never asked a backbone gw */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, resp_src))
-		goto out;
-
 	orig_node = batadv_orig_hash_find(bat_priv, resp_src);
 	if (!orig_node)
 		goto out;
@@ -3052,10 +3049,6 @@ static void batadv_tt_update_orig(struct batadv_priv *bat_priv,
 	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool full_table = true;
 
-	/* don't care about a backbone gateways updates. */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
-		return;
-
 	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)tt_buff;
 	/* orig table not initialised AND first diff is in the OGM OR the ttvn
 	 * increased by one -> we can apply the attached changes
@@ -3177,13 +3170,6 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 {
 	bool ret = false;
 
-	/* if the originator is a backbone node (meaning it belongs to the same
-	 * LAN of this node) the temporary client must not be added because to
-	 * reach such destination the node must use the LAN instead of the mesh
-	 */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
-		goto out;
-
 	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))
@@ -3344,13 +3330,6 @@ static int batadv_roam_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	if (!batadv_is_my_mac(bat_priv, dst))
 		return NET_RX_DROP;
 
-	/* check if it is a backbone gateway. we don't accept
-	 * roaming advertisement from it, as it has the same
-	 * entries as we have.
-	 */
-	if (batadv_bla_is_backbone_gw_orig(bat_priv, src))
-		goto out;
-
 	if (tvlv_value_len < sizeof(*roaming_adv))
 		goto out;
 
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
  2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
@ 2013-10-20  0:15   ` David Miller
  -1 siblings, 0 replies; 3395+ messages in thread
From: David Miller @ 2013-10-20  0:15 UTC (permalink / raw)
  To: antonio; +Cc: netdev, b.a.t.m.a.n

From: Antonio Quartulli <antonio@meshcoding.com>
Date: Sun, 20 Oct 2013 00:21:52 +0200

> this is another batch intended for net-next/linux-3.13.

Looks good, pulled, thanks a lot Antonio.

Please don't use empty subject lines in the future, lots of
sites block such emails and I see all of those bounces as
vger postmaster :-/

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* [B.A.T.M.A.N.] (no subject)
@ 2013-10-20  0:15   ` David Miller
  0 siblings, 0 replies; 3395+ messages in thread
From: David Miller @ 2013-10-20  0:15 UTC (permalink / raw)
  To: antonio; +Cc: netdev, b.a.t.m.a.n

From: Antonio Quartulli <antonio@meshcoding.com>
Date: Sun, 20 Oct 2013 00:21:52 +0200

> this is another batch intended for net-next/linux-3.13.

Looks good, pulled, thanks a lot Antonio.

Please don't use empty subject lines in the future, lots of
sites block such emails and I see all of those bounces as
vger postmaster :-/

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: your mail
  2013-10-20  0:15   ` [B.A.T.M.A.N.] (no subject) David Miller
@ 2013-10-20  7:57     ` Antonio Quartulli
  -1 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-20  7:57 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 539 bytes --]

On Sat, Oct 19, 2013 at 08:15:11PM -0400, David Miller wrote:
> From: Antonio Quartulli <antonio@meshcoding.com>
> Date: Sun, 20 Oct 2013 00:21:52 +0200
> 
> > this is another batch intended for net-next/linux-3.13.
> 
> Looks good, pulled, thanks a lot Antonio.
> 
> Please don't use empty subject lines in the future, lots of
> sites block such emails and I see all of those bounces as
> vger postmaster :-/
> 

Ops, my bad. I won't do it again in the future!
Thanks a lot David.


Regards,


-- 
Antonio Quartulli

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: [B.A.T.M.A.N.] your mail
@ 2013-10-20  7:57     ` Antonio Quartulli
  0 siblings, 0 replies; 3395+ messages in thread
From: Antonio Quartulli @ 2013-10-20  7:57 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, b.a.t.m.a.n

[-- Attachment #1: Type: text/plain, Size: 539 bytes --]

On Sat, Oct 19, 2013 at 08:15:11PM -0400, David Miller wrote:
> From: Antonio Quartulli <antonio@meshcoding.com>
> Date: Sun, 20 Oct 2013 00:21:52 +0200
> 
> > this is another batch intended for net-next/linux-3.13.
> 
> Looks good, pulled, thanks a lot Antonio.
> 
> Please don't use empty subject lines in the future, lots of
> sites block such emails and I see all of those bounces as
> vger postmaster :-/
> 

Ops, my bad. I won't do it again in the future!
Thanks a lot David.


Regards,


-- 
Antonio Quartulli

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-07-22  5:32 Darlehen Bedienung
  0 siblings, 0 replies; 3395+ messages in thread
From: Darlehen Bedienung @ 2020-07-22  5:32 UTC (permalink / raw)




Schönen Tag,Wir sind zuverlässige, vertrauenswürdige Kreditgeber, Wir bieten Darlehen an Unternehmen und Privatpersonen zu niedrigen und günstigen Zinssatz von 2%. Sind Sie auf der Suche nach einem Business-Darlehen, persönliche Darlehen, Schuldenkonsolidierung, unbesicherte Darlehen, Venture Capital. Kontaktieren Sie uns mit Name, Land, Darlehensbetrag, Dauer und Telefonnummer.GrüßeHerr DA COSTA DARREN FAY

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-07-22  5:32 Darlehen Bedienung
  0 siblings, 0 replies; 3395+ messages in thread
From: Darlehen Bedienung @ 2020-07-22  5:32 UTC (permalink / raw)




Schönen Tag,Wir sind zuverlässige, vertrauenswürdige Kreditgeber, Wir bieten Darlehen an Unternehmen und Privatpersonen zu niedrigen und günstigen Zinssatz von 2%. Sind Sie auf der Suche nach einem Business-Darlehen, persönliche Darlehen, Schuldenkonsolidierung, unbesicherte Darlehen, Venture Capital. Kontaktieren Sie uns mit Name, Land, Darlehensbetrag, Dauer und Telefonnummer.GrüßeHerr DA COSTA DARREN FAY

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-07-22  5:32 Darlehen Bedienung
  0 siblings, 0 replies; 3395+ messages in thread
From: Darlehen Bedienung @ 2020-07-22  5:32 UTC (permalink / raw)




Schönen Tag,Wir sind zuverlässige, vertrauenswürdige Kreditgeber, Wir bieten Darlehen an Unternehmen und Privatpersonen zu niedrigen und günstigen Zinssatz von 2%. Sind Sie auf der Suche nach einem Business-Darlehen, persönliche Darlehen, Schuldenkonsolidierung, unbesicherte Darlehen, Venture Capital. Kontaktieren Sie uns mit Name, Land, Darlehensbetrag, Dauer und Telefonnummer.GrüßeHerr DA COSTA DARREN FAY

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-07-22  4:45 Darlehen Bedienung
  0 siblings, 0 replies; 3395+ messages in thread
From: Darlehen Bedienung @ 2020-07-22  4:45 UTC (permalink / raw)




Schönen Tag,Wir sind zuverlässige, vertrauenswürdige Kreditgeber, Wir bieten Darlehen an Unternehmen und Privatpersonen zu niedrigen und günstigen Zinssatz von 2%. Sind Sie auf der Suche nach einem Business-Darlehen, persönliche Darlehen, Schuldenkonsolidierung, unbesicherte Darlehen, Venture Capital. Kontaktieren Sie uns mit Name, Land, Darlehensbetrag, Dauer und Telefonnummer.GrüßeHerr DA COSTA DARREN FAY

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-07-02 19:43 Barr Anthony Calder
  0 siblings, 0 replies; 3395+ messages in thread
From: Barr Anthony Calder @ 2020-07-02 19:43 UTC (permalink / raw)


Dobrý den
Jsem Anthony Calder, právní zástupce z Toga. Obrátil jsem se na vás
ohledně mého pozdního klienta, Dr. Edwin, majetek fondu ve výši 2,5
milionu dolarů, který bude vrácen na váš účet. Kromě toho v této
transakci chci, abyste odpověděli důvěrně.
Anthony Calder

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-30 17:56 Vasiliy Kupriakov
  0 siblings, 0 replies; 3395+ messages in thread
From: Vasiliy Kupriakov @ 2020-06-30 17:56 UTC (permalink / raw)
  To: Corentin Chary, Darren Hart, Andy Shevchenko
  Cc: Vasiliy Kupriakov,
	open list:ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS,
	open list:ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS,
	open list

Subject: [PATCH] platform/x86: asus-wmi: allow BAT1 battery name

The battery on my laptop ASUS TUF Gaming FX706II is named BAT1.
This patch allows battery extension to load.

Signed-off-by: Vasiliy Kupriakov <rublag-ns@yandex.ru>
---
 drivers/platform/x86/asus-wmi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 877aade19497..8f4acdc06b13 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -441,6 +441,7 @@ static int asus_wmi_battery_add(struct power_supply *battery)
 	 * battery is named BATT.
 	 */
 	if (strcmp(battery->desc->name, "BAT0") != 0 &&
+	    strcmp(battery->desc->name, "BAT1") != 0 &&
 	    strcmp(battery->desc->name, "BATT") != 0)
 		return -ENODEV;
 
-- 
2.27.0

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-27 21:58 lookman joe
  0 siblings, 0 replies; 3395+ messages in thread
From: lookman joe @ 2020-06-27 21:58 UTC (permalink / raw)


MONEY-GRAM TRANSFERRED PAYMENT INFO:

Below is the sender’s information



1. MG. REFERENCE NO#: 36360857

2. SENDER'S NAME: Johnson Williams

3. AMOUNT TO PICKUP: US$10,000



Go to any Money Gram office near you and pick up the payment Track the

Reference Number by visiting and click the link below

(https://secure.moneygram.com/embed/track) and enter the Reference

Number: 36360857 and the Last Name: Williams, you will find the payment

available for pickup instantly.

Yours Sincerely,

Mrs. Helen Marvis
United Nations Liaison Office
Directorate for International Payments

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-27 21:58 lookman joe
  0 siblings, 0 replies; 3395+ messages in thread
From: lookman joe @ 2020-06-27 21:58 UTC (permalink / raw)


MONEY-GRAM TRANSFERRED PAYMENT INFO:

Below is the sender’s information



1. MG. REFERENCE NO#: 36360857

2. SENDER'S NAME: Johnson Williams

3. AMOUNT TO PICKUP: US$10,000



Go to any Money Gram office near you and pick up the payment Track the

Reference Number by visiting and click the link below

(https://secure.moneygram.com/embed/track) and enter the Reference

Number: 36360857 and the Last Name: Williams, you will find the payment

available for pickup instantly.

Yours Sincerely,

Mrs. Helen Marvis
United Nations Liaison Office
Directorate for International Payments

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-27 21:58 lookman joe
  0 siblings, 0 replies; 3395+ messages in thread
From: lookman joe @ 2020-06-27 21:58 UTC (permalink / raw)


MONEY-GRAM TRANSFERRED PAYMENT INFO:

Below is the sender’s information



1. MG. REFERENCE NO#: 36360857

2. SENDER'S NAME: Johnson Williams

3. AMOUNT TO PICKUP: US$10,000



Go to any Money Gram office near you and pick up the payment Track the

Reference Number by visiting and click the link below

(https://secure.moneygram.com/embed/track) and enter the Reference

Number: 36360857 and the Last Name: Williams, you will find the payment

available for pickup instantly.

Yours Sincerely,

Mrs. Helen Marvis
United Nations Liaison Office
Directorate for International Payments

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-27 21:54 helen
  0 siblings, 0 replies; 3395+ messages in thread
From: helen @ 2020-06-27 21:54 UTC (permalink / raw)
  To: zhang

MONEY-GRAM TRANSFERRED PAYMENT INFO:

Below is the sender’s information



1. MG. REFERENCE NO#: 36360857

2. SENDER'S NAME: Johnson Williams

3. AMOUNT TO PICKUP: US$10,000



Go to any Money Gram office near you and pick up the payment Track the

Reference Number by visiting and click the link below

(https://secure.moneygram.com/embed/track) and enter the Reference

Number: 36360857 and the Last Name: Williams, you will find the payment

available for pickup instantly.

Yours Sincerely,

Mrs. Helen Marvis
United Nations Liaison Office
Directorate for International Payments

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-27 21:52 helen
  0 siblings, 0 replies; 3395+ messages in thread
From: helen @ 2020-06-27 21:52 UTC (permalink / raw)
  To: ebkrumme

MONEY-GRAM TRANSFERRED PAYMENT INFO:

Below is the sender’s information



1. MG. REFERENCE NO#: 36360857

2. SENDER'S NAME: Johnson Williams

3. AMOUNT TO PICKUP: US$10,000



Go to any Money Gram office near you and pick up the payment Track the

Reference Number by visiting and click the link below

(https://secure.moneygram.com/embed/track) and enter the Reference

Number: 36360857 and the Last Name: Williams, you will find the payment

available for pickup instantly.

Yours Sincerely,

Mrs. Helen Marvis
United Nations Liaison Office
Directorate for International Payments

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
       [not found] <1327230475.528260.1591750200327.ref@mail.yahoo.com>
@ 2020-06-10  0:50 ` Celine Marchand
  0 siblings, 0 replies; 3395+ messages in thread
From: Celine Marchand @ 2020-06-10  0:50 UTC (permalink / raw)




Urgent attention please
Dearest, how are you? I am sorry for intruding your mailbox, but I need to talk to you. I got your email address in my dream and i wonder if it is correct because i emailed you earlier without any response. You should know that my contact to you is by the special grace of God. I am in urgent need of a reliable and reputable person and i believe you are a person of fine repute, hence the revelation of your email to me in the dream.
I am Mrs. Celine Marchand a citizen of France (French). But reside in Burkina Faso for business purposes. I need your collaboration to execute some projects worth € 2.800.000 Euro and it is very urgent as am presently in very critical condition.
Please reply through this email address ( celine88492-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org ) with your full contact information for more private and confidential communication.

Thank you as i wait for your reply.
Mrs. Celine Marchand

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-06-04 19:57 David Shine
  0 siblings, 0 replies; 3395+ messages in thread
From: David Shine @ 2020-06-04 19:57 UTC (permalink / raw)
  To: linux

 Linux


https://clck.ru/NnuZT



David Shine

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-05-08 23:51 Barbara D Wilkins
  0 siblings, 0 replies; 3395+ messages in thread
From: Barbara D Wilkins @ 2020-05-08 23:51 UTC (permalink / raw)




Hallo,          Wir sind eine christliche Organisation, die gegründet wurde, um Menschen zu helfen, die Hilfe benötigen, beispielsweise finanzielle Hilfe. Wenn Sie also finanzielle Schwierigkeiten haben oder sich in einem finanziellen Chaos befinden und Geld benötigen, um Ihr eigenes Unternehmen zu gründen, oder wenn Sie einen Kredit benötigen Begleichen Sie Ihre Schulden oder zahlen Sie Ihre Rechnungen ab, gründen Sie ein gutes Geschäft oder es fällt Ihnen schwer, einen Kapitalkredit von lokalen Banken zu erhalten. Kontaktieren Sie uns noch heute per E-Mail:  Lassen Sie sich diese Gelegenheit also nicht entgehen weil Jesus gestern, heute und für immer derselbe ist. Bitte, diese sind für ernsthafte und gottesfürchtige Menschen.Dein Name:Darlehensbetrag:Leihdauer:Gülti
 ge Handynummer:Vielen Dank für Ihr Verständnis für Ihren Kontakt, während wir warten: mrsbarbarawilkinsfunds.usagmail.comGrüßeVerwaltung

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-05-08 23:41 Barbara D Wilkins
  0 siblings, 0 replies; 3395+ messages in thread
From: Barbara D Wilkins @ 2020-05-08 23:41 UTC (permalink / raw)




Hallo,          Wir sind eine christliche Organisation, die gegründet wurde, um Menschen zu helfen, die Hilfe benötigen, beispielsweise finanzielle Hilfe. Wenn Sie also finanzielle Schwierigkeiten haben oder sich in einem finanziellen Chaos befinden und Geld benötigen, um Ihr eigenes Unternehmen zu gründen, oder wenn Sie einen Kredit benötigen Begleichen Sie Ihre Schulden oder zahlen Sie Ihre Rechnungen ab, gründen Sie ein gutes Geschäft oder es fällt Ihnen schwer, einen Kapitalkredit von lokalen Banken zu erhalten. Kontaktieren Sie uns noch heute per E-Mail:  Lassen Sie sich diese Gelegenheit also nicht entgehen weil Jesus gestern, heute und für immer derselbe ist. Bitte, diese sind für ernsthafte und gottesfürchtige Menschen.Dein Name:Darlehensbetrag:Leihdauer:Gülti
 ge Handynummer:Vielen Dank für Ihr Verständnis für Ihren Kontakt, während wir warten: mrsbarbarawilkinsfunds.usagmail.comGrüßeVerwaltung

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-05-08 22:58 Barbara D Wilkins
  0 siblings, 0 replies; 3395+ messages in thread
From: Barbara D Wilkins @ 2020-05-08 22:58 UTC (permalink / raw)




Hallo,          Wir sind eine christliche Organisation, die gegründet wurde, um Menschen zu helfen, die Hilfe benötigen, beispielsweise finanzielle Hilfe. Wenn Sie also finanzielle Schwierigkeiten haben oder sich in einem finanziellen Chaos befinden und Geld benötigen, um Ihr eigenes Unternehmen zu gründen, oder wenn Sie einen Kredit benötigen Begleichen Sie Ihre Schulden oder zahlen Sie Ihre Rechnungen ab, gründen Sie ein gutes Geschäft oder es fällt Ihnen schwer, einen Kapitalkredit von lokalen Banken zu erhalten. Kontaktieren Sie uns noch heute per E-Mail:  Lassen Sie sich diese Gelegenheit also nicht entgehen weil Jesus gestern, heute und für immer derselbe ist. Bitte, diese sind für ernsthafte und gottesfürchtige Menschen.Dein Name:Darlehensbetrag:Leihdauer:Gülti
 ge Handynummer:Vielen Dank für Ihr Verständnis für Ihren Kontakt, während wir warten: mrsbarbarawilkinsfunds.usagmail.comGrüßeVerwaltung

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-04-23 23:06 Azim Hashim Premji
  0 siblings, 0 replies; 3395+ messages in thread
From: Azim Hashim Premji @ 2020-04-23 23:06 UTC (permalink / raw)


-- 
Hallo,

Ich bin Azim Hashim Premji, ein indischer Wirtschaftsmagnat, Investor
und Philanthrop. Ich bin der Vorsitzende von Wipro Limited. Ich habe
25 Prozent meines persönlichen Vermögens für wohltätige Zwecke
verschenkt. Und ich habe auch zugesagt, den Rest von 25% in diesem
Jahr 2020 an Einzelpersonen COVID-19 Financial zu verschenken. Ich
habe beschlossen, 2.000.000 Euro an Sie zu spenden. Wenn Sie an meiner
Spende interessiert sind, kontaktieren Sie mich für weitere
Informationen.

Sie können auch mehr über mich über den unten stehenden Link lesen

http://en.wikipedia.org/wiki/Azim_Premji

Herzlicher Gruss
CEO Wipro Limited
Azim Hashim Premji
E-Mail: azimhashim011@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-04-23 23:06 Azim Hashim Premji
  0 siblings, 0 replies; 3395+ messages in thread
From: Azim Hashim Premji @ 2020-04-23 23:06 UTC (permalink / raw)


-- 
Hallo,

Ich bin Azim Hashim Premji, ein indischer Wirtschaftsmagnat, Investor
und Philanthrop. Ich bin der Vorsitzende von Wipro Limited. Ich habe
25 Prozent meines persönlichen Vermögens für wohltätige Zwecke
verschenkt. Und ich habe auch zugesagt, den Rest von 25% in diesem
Jahr 2020 an Einzelpersonen COVID-19 Financial zu verschenken. Ich
habe beschlossen, 2.000.000 Euro an Sie zu spenden. Wenn Sie an meiner
Spende interessiert sind, kontaktieren Sie mich für weitere
Informationen.

Sie können auch mehr über mich über den unten stehenden Link lesen

http://en.wikipedia.org/wiki/Azim_Premji

Herzlicher Gruss
CEO Wipro Limited
Azim Hashim Premji
E-Mail: azimhashim011@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-27  9:20 chenanqing
  0 siblings, 0 replies; 3395+ messages in thread
From: chenanqing @ 2020-03-27  9:20 UTC (permalink / raw)
  To: chenanqing, linux-kernel, linux-scsi, open-iscsi, ceph-devel,
	martin.petersen, jejb, cleech, lduncan

From: Chen Anqing <chenanqing@oppo.com>
To: Lee Duncan <lduncan@suse.com>
Cc: Chris Leech <cleech@redhat.com>,
        "James E . J . Bottomley" <jejb@linux.ibm.com>,
        "Martin K . Petersen" <martin.petersen@oracle.com>,
        ceph-devel@vger.kernel.org,
        open-iscsi@googlegroups.com,
        linux-scsi@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        chenanqing@oppo.com
Subject: [PATCH] scsi: libiscsi: we should take compound page into account also
Date: Fri, 27 Mar 2020 05:20:01 -0400
Message-Id: <20200327092001.56879-1-chenanqing@oppo.com>
X-Mailer: git-send-email 2.18.2

the patch is occur at a real crash,which slab is
come from a compound page,so we need take the compound page
into account also.
fixed commit 08b11eaccfcf ("scsi: libiscsi: fall back to
sendmsg for slab pages").

Signed-off-by: Chen Anqing <chenanqing@oppo.com>
---
 drivers/scsi/libiscsi_tcp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/libiscsi_tcp.c b/drivers/scsi/libiscsi_tcp.c
index 6ef93c7af954..98304e5e1f6f 100644
--- a/drivers/scsi/libiscsi_tcp.c
+++ b/drivers/scsi/libiscsi_tcp.c
@@ -128,7 +128,8 @@ static void iscsi_tcp_segment_map(struct iscsi_segment *segment, int recv)
         * coalescing neighboring slab objects into a single frag which
         * triggers one of hardened usercopy checks.
         */
-       if (!recv && page_count(sg_page(sg)) >= 1 && !PageSlab(sg_page(sg)))
+       if (!recv && page_count(sg_page(sg)) >= 1 &&
+           !PageSlab(compound_head(sg_page(sg))))
                return;

        if (recv) {
--
2.18.2

________________________________
OPPO

本电子邮件及其附件含有OPPO公司的保密信息,仅限于邮件指明的收件人使用(包含个人及群组)。禁止任何人在未经授权的情况下以任何形式使用。如果您错收了本邮件,请立即以电子邮件通知发件人并删除本邮件及其附件。

This e-mail and its attachments contain confidential information from OPPO, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-27  8:36 chenanqing
  0 siblings, 0 replies; 3395+ messages in thread
From: chenanqing @ 2020-03-27  8:36 UTC (permalink / raw)
  To: chenanqing, linux-kernel, netdev, ceph-devel, kuba, sage,
	jlayton, idryomov

From: Chen Anqing <chenanqing@oppo.com>
To: Ilya Dryomov <idryomov@gmail.com>
Cc: Jeff Layton <jlayton@kernel.org>,
        Sage Weil <sage@redhat.com>,
        Jakub Kicinski <kuba@kernel.org>,
        ceph-devel@vger.kernel.org,
        netdev@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        chenanqing@oppo.com
Subject: [PATCH] libceph: we should take compound page into account also
Date: Fri, 27 Mar 2020 04:36:30 -0400
Message-Id: <20200327083630.36296-1-chenanqing@oppo.com>
X-Mailer: git-send-email 2.18.2

the patch is occur at a real crash,which slab is
come from a compound page,so we need take the compound page
into account also.
fixed commit 7e241f647dc7 ("libceph: fall back to sendmsg for slab pages")'

Signed-off-by: Chen Anqing <chenanqing@oppo.com>
---
 net/ceph/messenger.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index f8ca5edc5f2c..e08c1c334cd9 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -582,7 +582,7 @@ static int ceph_tcp_sendpage(struct socket *sock, struct page *page,
         * coalescing neighboring slab objects into a single frag which
         * triggers one of hardened usercopy checks.
         */
-       if (page_count(page) >= 1 && !PageSlab(page))
+       if (page_count(page) >= 1 && !PageSlab(compound_head(page)))
                sendpage = sock->ops->sendpage;
        else
                sendpage = sock_no_sendpage;
--
2.18.2

________________________________
OPPO

本电子邮件及其附件含有OPPO公司的保密信息,仅限于邮件指明的收件人使用(包含个人及群组)。禁止任何人在未经授权的情况下以任何形式使用。如果您错收了本邮件,请立即以电子邮件通知发件人并删除本邮件及其附件。

This e-mail and its attachments contain confidential information from OPPO, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-17  0:11 David Ibe
  0 siblings, 0 replies; 3395+ messages in thread
From: David Ibe @ 2020-03-17  0:11 UTC (permalink / raw)




Good Day,                

I am Mr. David Ibe, I work with the International Standards on Auditing, I have seen on records, that several times people has divert your funds into their own personal accounts.

Now I am writing to you in respect of the amount which I have been able to send to you through our International United Nations accredited and approved Diplomat, who has arrived Africa, I want you to know that the diplomat would deliver the funds which I have packaged as a diplomatic compensation to you and the amount in the consignment is  $10,000,000.00 United State Dollars.

I did not disclose the contents to the diplomat, but I told him that it is your compensation from the Auditing Corporate Governance and Stewardship, Auditing and Assurance Standards Board. I want you to know that these funds would help with your financial status as I have seen in records that you have spent a lot trying to receive these funds and I am not demanding so much from you but only 30% for my stress and logistics.

I would like you to get back to me with your personal contact details, so that I can give you the contact information's of the diplomat who has arrived Africa and has been waiting to get your details so that he can proceed with the delivery to you.

Yours Sincerely,
Kindly forward your details to: mrdavidibe966@gmail.com
Mr. David Ibe
International Auditor,
Corporate Governance and Stewardship

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-17  0:11 David Ibe
  0 siblings, 0 replies; 3395+ messages in thread
From: David Ibe @ 2020-03-17  0:11 UTC (permalink / raw)




Good Day,                

I am Mr. David Ibe, I work with the International Standards on Auditing, I have seen on records, that several times people has divert your funds into their own personal accounts.

Now I am writing to you in respect of the amount which I have been able to send to you through our International United Nations accredited and approved Diplomat, who has arrived Africa, I want you to know that the diplomat would deliver the funds which I have packaged as a diplomatic compensation to you and the amount in the consignment is  $10,000,000.00 United State Dollars.

I did not disclose the contents to the diplomat, but I told him that it is your compensation from the Auditing Corporate Governance and Stewardship, Auditing and Assurance Standards Board. I want you to know that these funds would help with your financial status as I have seen in records that you have spent a lot trying to receive these funds and I am not demanding so much from you but only 30% for my stress and logistics.

I would like you to get back to me with your personal contact details, so that I can give you the contact information's of the diplomat who has arrived Africa and has been waiting to get your details so that he can proceed with the delivery to you.

Yours Sincerely,
Kindly forward your details to: mrdavidibe966@gmail.com
Mr. David Ibe
International Auditor,
Corporate Governance and Stewardship

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  8:43 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  8:43 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky@aol.com for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  7:37 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  7:37 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky@aol.com for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  7:34 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  7:34 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky-YDxpq3io04c@public.gmane.org for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  7:34 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  7:34 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky@aol.com for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  7:34 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  7:34 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky-YDxpq3io04c@public.gmane.org for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-09  7:34 Michael J. Weirsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael J. Weirsky @ 2020-03-09  7:34 UTC (permalink / raw)




-- 
My name is Michael J. Weirsky, I'm an unemployed Handy man , winner of 
$273million Jackpot in March 8, 2019. I donate $1.000.000,00 to you. 
Contact me via email: micjsky@aol.com for info / claim.
Continue reading: 
https://abcnews.go.com/WNT/video/jersey-handyman-forward-273m-lottery-winner-61544244

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:47 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:47 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7-Re5JQEeQqe/BREloi785ARduMeKFjlen@public.gmane.org Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05 10:46 Juanito S. Galang
  0 siblings, 0 replies; 3395+ messages in thread
From: Juanito S. Galang @ 2020-03-05 10:46 UTC (permalink / raw)




Herzlichen Glückwunsch Lieber Begünstigter,Sie erhalten diese E-Mail von der Robert Bailey Foundation. Ich bin ein pensionierter Regierungsangestellter aus Harlem und ein Gewinner des Powerball Lottery Jackpot im Wert von 343,8 Millionen US-Dollar. Ich bin der größte Jackpot-Gewinner in der Geschichte der New Yorker Lotterie im US-Bundesstaat Amerika. Ich habe diese Lotterie am 27. Oktober 2018 gewonnen und möchte Sie darüber informieren, dass Google in Zusammenarbeit mit Microsoft Ihre "E-Mail-Adresse" auf meine Bitte, einen Spendenbetrag von 3.000.000,00 Millionen Euro zu erhalten, übermittelt hat. Ich spende diese 3 Millionen Euro an Sie, um den Wohltätigkeitsheimen und armen Menschen in Ihrer Gemeinde zu helfen, damit wir die Welt für alle verbessern können.Weitere Informationen finden Sie auf der folgenden Website, damit Sie nicht skeptisch sind
Diese Spende von 3 Mio. EUR.https://nypost.com/2018/11/14/meet-the-winner-of-the-biggest-lottery-jackpot-in-new-york-history/Sie können auch mein YouTube für mehr Bestätigung aufpassen:
https://www.youtube.com/watch?v=H5vT18Ysavc
Bitte beachten Sie, dass alle Antworten an (robertdonation7@gmail.com  ) gesendet werden, damit wir das können
Fahren Sie fort, um das gespendete Geld an Sie zu überweisen.E-Mail: robertdonation7@gmail.comFreundliche Grüße,
Robert Bailey
* * * * * * * * * * * * * * * *
Powerball Jackpot Gewinner

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05  2:33 Maria Alessandra Filippi
  0 siblings, 0 replies; 3395+ messages in thread
From: Maria Alessandra Filippi @ 2020-03-05  2:33 UTC (permalink / raw)




Hallo,

Ich bin Frau Maria Elisabeth Schaeffler, eine deutsche Wirtschaftsmagnatin, Investorin und Philanthropin. Ich bin der Vorsitzende von Wipro Limited. Ich habe 25 Prozent meines pers&ouml;nlichen Verm&ouml;gens f&uuml;r wohlt&auml;tige Zwecke ausgegeben. Und ich habe auch versprochen, den Rest von 25% in diesem Jahr 2020 an Einzelpersonen zu verschenken. Ich habe beschlossen, 1.000.000,00 Euro an Sie zu spenden. Wenn Sie an meiner Spende interessiert sind, kontaktieren Sie mich f&uuml;r weitere Informationen.

Sie k&ouml;nnen auch mehr &uuml;ber mich &uuml;ber den Link unten lesen

https://en.wikipedia.org/wiki/Maria-Elisabeth_Schaeffler
Herzlicher Gruss
Gesch&auml;ftsf&uuml;hrer Wipro Limited
Maria-Elisabeth_Schaeffler
E-Mail: mrsmariaelisabethschaeffler11@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-05  0:26 Maria Alessandra Filippi
  0 siblings, 0 replies; 3395+ messages in thread
From: Maria Alessandra Filippi @ 2020-03-05  0:26 UTC (permalink / raw)




Hallo,

Ich bin Frau Maria Elisabeth Schaeffler, eine deutsche Wirtschaftsmagnatin, Investorin und Philanthropin. Ich bin der Vorsitzende von Wipro Limited. Ich habe 25 Prozent meines pers&ouml;nlichen Verm&ouml;gens f&uuml;r wohlt&auml;tige Zwecke ausgegeben. Und ich habe auch versprochen, den Rest von 25% in diesem Jahr 2020 an Einzelpersonen zu verschenken. Ich habe beschlossen, 1.000.000,00 Euro an Sie zu spenden. Wenn Sie an meiner Spende interessiert sind, kontaktieren Sie mich f&uuml;r weitere Informationen.

Sie k&ouml;nnen auch mehr &uuml;ber mich &uuml;ber den Link unten lesen

https://en.wikipedia.org/wiki/Maria-Elisabeth_Schaeffler
Herzlicher Gruss
Gesch&auml;ftsf&uuml;hrer Wipro Limited
Maria-Elisabeth_Schaeffler
E-Mail: mrsmariaelisabethschaeffler11@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-04 23:30 Maria Alessandra Filippi
  0 siblings, 0 replies; 3395+ messages in thread
From: Maria Alessandra Filippi @ 2020-03-04 23:30 UTC (permalink / raw)




Hallo,

Ich bin Frau Maria Elisabeth Schaeffler, eine deutsche Wirtschaftsmagnatin, Investorin und Philanthropin. Ich bin der Vorsitzende von Wipro Limited. Ich habe 25 Prozent meines pers&ouml;nlichen Verm&ouml;gens f&uuml;r wohlt&auml;tige Zwecke ausgegeben. Und ich habe auch versprochen, den Rest von 25% in diesem Jahr 2020 an Einzelpersonen zu verschenken. Ich habe beschlossen, 1.000.000,00 Euro an Sie zu spenden. Wenn Sie an meiner Spende interessiert sind, kontaktieren Sie mich f&uuml;r weitere Informationen.

Sie k&ouml;nnen auch mehr &uuml;ber mich &uuml;ber den Link unten lesen

https://en.wikipedia.org/wiki/Maria-Elisabeth_Schaeffler
Herzlicher Gruss
Gesch&auml;ftsf&uuml;hrer Wipro Limited
Maria-Elisabeth_Schaeffler
E-Mail: mrsmariaelisabethschaeffler11@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-03-04  9:42 Julie Leach
  0 siblings, 0 replies; 3395+ messages in thread
From: Julie Leach @ 2020-03-04  9:42 UTC (permalink / raw)




-- 
Hallo Liebes, ich habe eine Spende von 3,000,000.00 Euro, die ich Ihnen 
als Wohltätigkeitsorganisation zur Verfügung gestellt habe, um den 
weniger Privilegierten und Waisen in Ihrer Gemeinde zu helfen. Bitte 
antworten Sie über: julieleeach@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
       [not found]       ` <CAHC9VhQnbdJprbdTa_XcgUJaiwhzbnGMWJqHczU54UMk0AFCtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2020-02-27 15:39         ` Dmitry Vyukov via B.A.T.M.A.N
  0 siblings, 0 replies; 3395+ messages in thread
From: Dmitry Vyukov via B.A.T.M.A.N @ 2020-02-27 15:39 UTC (permalink / raw)
  To: Paul Moore, Tetsuo Handa
  Cc: Dmitry Vyukov, mareklindner-rVWd3aGhH2z5bpWLKbzFeg,
	Greg Kroah-Hartman, b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r,
	a, LKML, Eric Paris, David Miller, syzkaller-bugs,
	linux-audit-H+wXaHxf7aLQT0dZR+AlfA, syzkaller, netdev,
	john.hammond-ral2JQCrhuEAvxtiuMwx3w, fzago-WVYJKLFxKCc, syzbot,
	Dan Carpenter

[-- Attachment #1: Type: text/plain, Size: 243 bytes --]

The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.

[-- Attachment #2: Type: message/rfc822, Size: 11958 bytes --]

From: Dmitry Vyukov <dvyukov-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
To: Paul Moore <paul-r2n+y4ga6xFZroRs9YW3xA@public.gmane.org>, Tetsuo Handa <penguin-kernel-1yMVhJb1mP/7nzcFbJAaVXf5DAMn2ifp@public.gmane.org>
Cc: Eric Paris <eparis-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, syzbot <syzbot+9a5e789e4725b9ef1316-Pl5Pbv+GP7P466ipTTIvnc23WoclnBCfAL8bYrjMMd8@public.gmane.org>, a@unstable.cc, b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org, Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>, David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>, fzago-WVYJKLFxKCc@public.gmane.org, Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>, john.hammond-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-audit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, mareklindner-rVWd3aGhH2z5bpWLKbzFeg@public.gmane.org, netdev <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, sw-2YrNx6rUIHYiY0qSoAWiAoQuADTiUCJX@public.gmane.org, syzkaller-bugs <syzkaller-bugs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>, syzkaller <syzkaller-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: kernel panic: audit: backlog limit exceeded
Date: Thu, 27 Feb 2020 16:39:59 +0100
Message-ID: <CACT4Y+azQXLcPqtJG9zbj8hxqw4jE3dcwUj5T06bdL3uMaZk+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On Mon, Feb 24, 2020 at 11:47 PM Paul Moore <paul-r2n+y4ga6xFZroRs9YW3xA@public.gmane.org> wrote:
>
> On Mon, Feb 24, 2020 at 5:43 PM Eric Paris <eparis-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> > https://syzkaller.appspot.com/x/repro.syz?x=151b1109e00000 (the
> > reproducer listed) looks like it is literally fuzzing the AUDIT_SET.
> > Which seems like this is working as designed if it is setting the
> > failure mode to 2.
>
> So it is, good catch :)  I saw the panic and instinctively chalked
> that up to a mistaken config, not expecting that it was what was being
> tested.

Yes, this audit failure mode is quite unpleasant for fuzzing. And
since this is not a top-level syscall argument value, it's effectively
impossible to filter out in the fuzzer. Maybe another use case for the
"fuzer lockdown" feature +Tetsuo proposed.
With the current state of the things, I think we only have an option
to disable fuzzing of audit. Which is pity because it has found 5 or
so real bugs in audit too.
But this happened anyway because audit is only reachable from init pid
namespace and syzkaller always unshares pid namespace for sandboxing
reasons, that was removed accidentally and that's how it managed to
find the bugs. But the unshare is restored now:
https://github.com/google/syzkaller/commit/5e0e1d1450d7c3497338082fc28912fdd7f93a3c

As a side effect all other real bugs in audit will be auto-obsoleted
in future if not fixed because they will stop happening.

#syz invalid


> > On Mon, 2020-02-24 at 17:38 -0500, Paul Moore wrote:
> > > On Mon, Feb 24, 2020 at 3:18 AM syzbot
> > > <syzbot+9a5e789e4725b9ef1316-Pl5Pbv+GP7P466ipTTIvnc23WoclnBCfAL8bYrjMMd8@public.gmane.org> wrote:
> > > > Hello,
> > > >
> > > > syzbot found the following crash on:
> > > >
> > > > HEAD commit:    36a44bcd Merge branch 'bnxt_en-shutdown-and-kexec-
> > > > kdump-re..
> > > > git tree:       net
> > > > console output:
> > > > https://syzkaller.appspot.com/x/log.txt?x=148bfdd9e00000
> > > > kernel config:
> > > > https://syzkaller.appspot.com/x/.config?x=768cc3d3e277cc16
> > > > dashboard link:
> > > > https://syzkaller.appspot.com/bug?extid=9a5e789e4725b9ef1316
> > > > compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
> > > > syz repro:
> > > > https://syzkaller.appspot.com/x/repro.syz?x=151b1109e00000
> > > > C reproducer:
> > > > https://syzkaller.appspot.com/x/repro.c?x=128bfdd9e00000
> > > >
> > > > The bug was bisected to:
> > > >
> > > > commit 0c1b9970ddd4cc41002321c3877e7f91aacb896d
> > > > Author: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> > > > Date:   Fri Jul 28 14:42:27 2017 +0000
> > > >
> > > >     staging: lustre: lustre: Off by two in lmv_fid2path()
> > > >
> > > > bisection log:
> > > > https://syzkaller.appspot.com/x/bisect.txt?x=17e6c3e9e00000
> > > > final crash:
> > > > https://syzkaller.appspot.com/x/report.txt?x=1416c3e9e00000
> > > > console output:
> > > > https://syzkaller.appspot.com/x/log.txt?x=1016c3e9e00000
> > > >
> > > > IMPORTANT: if you fix the bug, please add the following tag to the
> > > > commit:
> > > > Reported-by: syzbot+9a5e789e4725b9ef1316-Pl5Pbv+GP7P466ipTTIvnc23WoclnBCfAL8bYrjMMd8@public.gmane.org
> > > > Fixes: 0c1b9970ddd4 ("staging: lustre: lustre: Off by two in
> > > > lmv_fid2path()")
> > > >
> > > > audit: audit_backlog=13 > audit_backlog_limit=7
> > > > audit: audit_lost=1 audit_rate_limit=0 audit_backlog_limit=7
> > > > Kernel panic - not syncing: audit: backlog limit exceeded
> > > > CPU: 1 PID: 9913 Comm: syz-executor024 Not tainted 5.6.0-rc1-
> > > > syzkaller #0
> > > > Hardware name: Google Google Compute Engine/Google Compute Engine,
> > > > BIOS Google 01/01/2011
> > > > Call Trace:
> > > >  __dump_stack lib/dump_stack.c:77 [inline]
> > > >  dump_stack+0x197/0x210 lib/dump_stack.c:118
> > > >  panic+0x2e3/0x75c kernel/panic.c:221
> > > >  audit_panic.cold+0x32/0x32 kernel/audit.c:307
> > > >  audit_log_lost kernel/audit.c:377 [inline]
> > > >  audit_log_lost+0x8b/0x180 kernel/audit.c:349
> > > >  audit_log_start kernel/audit.c:1788 [inline]
> > > >  audit_log_start+0x70e/0x7c0 kernel/audit.c:1745
> > > >  audit_log+0x95/0x120 kernel/audit.c:2345
> > > >  xt_replace_table+0x61d/0x830 net/netfilter/x_tables.c:1413
> > > >  __do_replace+0x1da/0x950 net/ipv6/netfilter/ip6_tables.c:1084
> > > >  do_replace net/ipv6/netfilter/ip6_tables.c:1157 [inline]
> > > >  do_ip6t_set_ctl+0x33a/0x4c8 net/ipv6/netfilter/ip6_tables.c:1681
> > > >  nf_sockopt net/netfilter/nf_sockopt.c:106 [inline]
> > > >  nf_setsockopt+0x77/0xd0 net/netfilter/nf_sockopt.c:115
> > > >  ipv6_setsockopt net/ipv6/ipv6_sockglue.c:949 [inline]
> > > >  ipv6_setsockopt+0x147/0x180 net/ipv6/ipv6_sockglue.c:933
> > > >  tcp_setsockopt net/ipv4/tcp.c:3165 [inline]
> > > >  tcp_setsockopt+0x8f/0xe0 net/ipv4/tcp.c:3159
> > > >  sock_common_setsockopt+0x94/0xd0 net/core/sock.c:3149
> > > >  __sys_setsockopt+0x261/0x4c0 net/socket.c:2130
> > > >  __do_sys_setsockopt net/socket.c:2146 [inline]
> > > >  __se_sys_setsockopt net/socket.c:2143 [inline]
> > > >  __x64_sys_setsockopt+0xbe/0x150 net/socket.c:2143
> > > >  do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294
> > > >  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> > > > RIP: 0033:0x44720a
> > > > Code: 49 89 ca b8 37 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 1a e0
> > > > fb ff c3 66 0f 1f 84 00 00 00 00 00 49 89 ca b8 36 00 00 00 0f 05
> > > > <48> 3d 01 f0 ff ff 0f 83 fa df fb ff c3 66 0f 1f 84 00 00 00 00 00
> > > > RSP: 002b:00007ffd032dec78 EFLAGS: 00000286 ORIG_RAX:
> > > > 0000000000000036
> > > > RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 000000000044720a
> > > > RDX: 0000000000000040 RSI: 0000000000000029 RDI: 0000000000000003
> > > > RBP: 00007ffd032deda0 R08: 00000000000003b8 R09: 0000000000004000
> > > > R10: 00000000006d7b40 R11: 0000000000000286 R12: 00007ffd032deca0
> > > > R13: 00000000006d9d60 R14: 0000000000000029 R15: 00000000006d7ba0
> > > > Kernel Offset: disabled
> > > > Rebooting in 86400 seconds..
> > > >
> > > >
> > > > ---
> > > > This bug is generated by a bot. It may contain errors.
> > > > See https://goo.gl/tpsmEJ for more information about syzbot.
> > > > syzbot engineers can be reached at syzkaller-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> > > >
> > > > syzbot will keep track of this bug report. See:
> > > > https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> > > > For information about bisection process see:
> > > > https://goo.gl/tpsmEJ#bisection
> > > > syzbot can test patches for this bug, for details see:
> > > > https://goo.gl/tpsmEJ#testing-patches
> > >
> > > Similar to syzbot report 72461ac44b36c98f58e5, see my comments there.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-02-15  3:25 mprim37 alcorta
  0 siblings, 0 replies; 3395+ messages in thread
From: mprim37 alcorta @ 2020-02-15  3:25 UTC (permalink / raw)




-- 
Hello, my name is Julie Leach, winner of the  Power Ball Jackpot in 
October 2015.I want to donate $3,000,000 for charity to help you and the 
poor children in your community. Send me an email to: 
julieleeach@yahoo.com for more information on how to receive my donation

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-02-11 22:34 Rajat Jain
  0 siblings, 0 replies; 3395+ messages in thread
From: Rajat Jain @ 2020-02-11 22:34 UTC (permalink / raw)
  To: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Mark Brown,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-spi-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA
  Cc: Evan Green, rajatja-hpIqsD4AKlfQT0dZR+AlfA,
	rajatxjain-Re5JQEeQqe8AvxtiuMwx3w,
	evgreen-hpIqsD4AKlfQT0dZR+AlfA,
	shobhit.srivastava-ral2JQCrhuEAvxtiuMwx3w,
	porselvan.muthukrishnan-ral2JQCrhuEAvxtiuMwx3w

From: Evan Green <evgreen-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>

Date: Wed, 29 Jan 2020 13:54:16 -0800
Subject: [PATCH] spi: pxa2xx: Add CS control clock quirk

In some circumstances on Intel LPSS controllers, toggling the LPSS
CS control register doesn't actually cause the CS line to toggle.
This seems to be failure of dynamic clock gating that occurs after
going through a suspend/resume transition, where the controller
is sent through a reset transition. This ruins SPI transactions
that either rely on delay_usecs, or toggle the CS line without
sending data.

Whenever CS is toggled, momentarily set the clock gating register
to "Force On" to poke the controller into acting on CS.

Signed-off-by: Evan Green <evgreen-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Signed-off-by: Rajat Jain <rajatja-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
---
 drivers/spi/spi-pxa2xx.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 4c7a71f0fb3e..2e318158fca9 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -70,6 +70,10 @@ MODULE_ALIAS("platform:pxa2xx-spi");
 #define LPSS_CAPS_CS_EN_SHIFT			9
 #define LPSS_CAPS_CS_EN_MASK			(0xf << LPSS_CAPS_CS_EN_SHIFT)
 
+#define LPSS_PRIV_CLOCK_GATE 0x38
+#define LPSS_PRIV_CLOCK_GATE_CLK_CTL_MASK 0x3
+#define LPSS_PRIV_CLOCK_GATE_CLK_CTL_FORCE_ON 0x3
+
 struct lpss_config {
 	/* LPSS offset from drv_data->ioaddr */
 	unsigned offset;
@@ -86,6 +90,8 @@ struct lpss_config {
 	unsigned cs_sel_shift;
 	unsigned cs_sel_mask;
 	unsigned cs_num;
+	/* Quirks */
+	unsigned cs_clk_stays_gated : 1;
 };
 
 /* Keep these sorted with enum pxa_ssp_type */
@@ -156,6 +162,7 @@ static const struct lpss_config lpss_platforms[] = {
 		.tx_threshold_hi = 56,
 		.cs_sel_shift = 8,
 		.cs_sel_mask = 3 << 8,
+		.cs_clk_stays_gated = true,
 	},
 };
 
@@ -383,6 +390,22 @@ static void lpss_ssp_cs_control(struct spi_device *spi, bool enable)
 	else
 		value |= LPSS_CS_CONTROL_CS_HIGH;
 	__lpss_ssp_write_priv(drv_data, config->reg_cs_ctrl, value);
+	if (config->cs_clk_stays_gated) {
+		u32 clkgate;
+
+		/*
+		 * Changing CS alone when dynamic clock gating is on won't
+		 * actually flip CS at that time. This ruins SPI transfers
+		 * that specify delays, or have no data. Toggle the clock mode
+		 * to force on briefly to poke the CS pin to move.
+		 */
+		clkgate = __lpss_ssp_read_priv(drv_data, LPSS_PRIV_CLOCK_GATE);
+		value = (clkgate & ~LPSS_PRIV_CLOCK_GATE_CLK_CTL_MASK) |
+			LPSS_PRIV_CLOCK_GATE_CLK_CTL_FORCE_ON;
+
+		__lpss_ssp_write_priv(drv_data, LPSS_PRIV_CLOCK_GATE, value);
+		__lpss_ssp_write_priv(drv_data, LPSS_PRIV_CLOCK_GATE, clkgate);
+	}
 }
 
 static void cs_assert(struct spi_device *spi)
-- 
2.25.0.225.g125e21ebc7-goog

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2020-02-05  8:23 Frau Huan Jlaying
  0 siblings, 0 replies; 3395+ messages in thread
From: Frau Huan Jlaying @ 2020-02-05  8:23 UTC (permalink / raw)


-- 
Schönen Tag,

     Ich bin Frau Huan Jlaying, eine Mitarbeiterin der Wing Hang Bank
hier in Hongkong. Kann ich einer Überweisung von 13.991.674 USD
vertrauen? Kontaktieren Sie mich per E-Mail: huanjlaying08@hotmail.com


Grüße

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
       [not found] <1187667350.235001.1580574902701.ref@mail.yahoo.com>
@ 2020-02-01 16:35 ` Mrs. Maureen Hinckley
  0 siblings, 0 replies; 3395+ messages in thread
From: Mrs. Maureen Hinckley @ 2020-02-01 16:35 UTC (permalink / raw)




I am Maureen Hinckley and my foundation is donating (Five hundred and fifty thousand USD) to you. Contact us via my email at (maurhinck6@gmail.com) for further details.

Best Regards,
Mrs. Maureen Hinckley,
Copyright ©2020 The Maureen Hinckley Foundation All Rights Reserved.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-12-12 15:50 周琰杰 (Zhou Yanjie)
  0 siblings, 0 replies; 3395+ messages in thread
From: 周琰杰 (Zhou Yanjie) @ 2019-12-12 15:50 UTC (permalink / raw)
  To: linux-mips
  Cc: linux-kernel, linux-i2c, devicetree, robh+dt, mark.rutland, paul,
	paul.burton, paulburton, sernia.zhou, zhenwenjin

Add support for probing i2c driver on the X1000 Soc from Ingenic.
call the corresponding fifo parameter according to the device
model obtained from the devicetree.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-09-12  8:09 Gene Chen
  0 siblings, 0 replies; 3395+ messages in thread
From: Gene Chen @ 2019-09-12  8:09 UTC (permalink / raw)
  To: matthias.bgg, gene_chen, Wilma.Wu
  Cc: linux-arm-kernel, linux-mediatek, linux-kernel

>From 66208ef7fcdb4176bf63cd130b3e3197086ac4b3 Mon Sep 17 00:00:00 2001
From: Gene Chen <gene_chen@mediatek.corp-partner.google.com>
Date: Thu, 22 Aug 2019 14:21:03 +0800
Subject: [PATCH] mfd: mt6360: add pmic mt6360 driver

---
 drivers/mfd/Kconfig       |  12 ++
 drivers/mfd/Makefile      |   1 +
 drivers/mfd/mt6360-core.c | 463 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 476 insertions(+)
 create mode 100644 drivers/mfd/mt6360-core.c

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index f129f96..a422c76 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -862,6 +862,18 @@ config MFD_MAX8998
 	  additional drivers must be enabled in order to use the functionality
 	  of the device.
 
+config MFD_MT6360
+	tristate "Mediatek MT6360 SubPMIC"
+	select MFD_CORE
+	select REGMAP_I2C
+	select REGMAP_IRQ
+	depends on I2C
+	help
+	  Say Y here to enable MT6360 PMU/PMIC/LDO functional support.
+	  PMU part include charger, flashlight, rgb led
+	  PMIC part include 2-channel BUCKs and 2-channel LDOs
+	  LDO part include 4-channel LDOs
+
 config MFD_MT6397
 	tristate "MediaTek MT6397 PMIC Support"
 	select MFD_CORE
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index f026ada..77a8f0b 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -241,6 +241,7 @@ obj-$(CONFIG_INTEL_SOC_PMIC)	+= intel-soc-pmic.o
 obj-$(CONFIG_INTEL_SOC_PMIC_BXTWC)	+= intel_soc_pmic_bxtwc.o
 obj-$(CONFIG_INTEL_SOC_PMIC_CHTWC)	+= intel_soc_pmic_chtwc.o
 obj-$(CONFIG_INTEL_SOC_PMIC_CHTDC_TI)	+= intel_soc_pmic_chtdc_ti.o
+obj-$(CONFIG_MFD_MT6360)	+= mt6360-core.o
 obj-$(CONFIG_MFD_MT6397)	+= mt6397-core.o
 
 obj-$(CONFIG_MFD_ALTERA_A10SR)	+= altera-a10sr.o
diff --git a/drivers/mfd/mt6360-core.c b/drivers/mfd/mt6360-core.c
new file mode 100644
index 0000000..d3580618
--- /dev/null
+++ b/drivers/mfd/mt6360-core.c
@@ -0,0 +1,463 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2019 MediaTek Inc.
+ */
+
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/mfd/core.h>
+#include <linux/module.h>
+#include <linux/of_irq.h>
+#include <linux/of_platform.h>
+#include <linux/version.h>
+
+#include <linux/mfd/mt6360.h>
+#include <linux/mfd/mt6360-private.h>
+
+/* reg 0 -> 0 ~ 7 */
+#define MT6360_CHG_TREG_EVT		(4)
+#define MT6360_CHG_AICR_EVT		(5)
+#define MT6360_CHG_MIVR_EVT		(6)
+#define MT6360_PWR_RDY_EVT		(7)
+/* REG 1 -> 8 ~ 15 */
+#define MT6360_CHG_BATSYSUV_EVT		(9)
+#define MT6360_FLED_CHG_VINOVP_EVT	(11)
+#define MT6360_CHG_VSYSUV_EVT		(12)
+#define MT6360_CHG_VSYSOV_EVT		(13)
+#define MT6360_CHG_VBATOV_EVT		(14)
+#define MT6360_CHG_VBUSOV_EVT		(15)
+/* REG 2 -> 16 ~ 23 */
+/* REG 3 -> 24 ~ 31 */
+#define MT6360_WD_PMU_DET		(25)
+#define MT6360_WD_PMU_DONE		(26)
+#define MT6360_CHG_TMRI			(27)
+#define MT6360_CHG_ADPBADI		(29)
+#define MT6360_CHG_RVPI			(30)
+#define MT6360_OTPI			(31)
+/* REG 4 -> 32 ~ 39 */
+#define MT6360_CHG_AICCMEASL		(32)
+#define MT6360_CHGDET_DONEI		(34)
+#define MT6360_WDTMRI			(35)
+#define MT6360_SSFINISHI		(36)
+#define MT6360_CHG_RECHGI		(37)
+#define MT6360_CHG_TERMI		(38)
+#define MT6360_CHG_IEOCI		(39)
+/* REG 5 -> 40 ~ 47 */
+#define MT6360_PUMPX_DONEI		(40)
+#define MT6360_BAT_OVP_ADC_EVT		(41)
+#define MT6360_TYPEC_OTP_EVT		(42)
+#define MT6360_ADC_WAKEUP_EVT		(43)
+#define MT6360_ADC_DONEI		(44)
+#define MT6360_BST_BATUVI		(45)
+#define MT6360_BST_VBUSOVI		(46)
+#define MT6360_BST_OLPI			(47)
+/* REG 6 -> 48 ~ 55 */
+#define MT6360_ATTACH_I			(48)
+#define MT6360_DETACH_I			(49)
+#define MT6360_QC30_STPDONE		(51)
+#define MT6360_QC_VBUSDET_DONE		(52)
+#define MT6360_HVDCP_DET		(53)
+#define MT6360_CHGDETI			(54)
+#define MT6360_DCDTI			(55)
+/* REG 7 -> 56 ~ 63 */
+#define MT6360_FOD_DONE_EVT		(56)
+#define MT6360_FOD_OV_EVT		(57)
+#define MT6360_CHRDET_UVP_EVT		(58)
+#define MT6360_CHRDET_OVP_EVT		(59)
+#define MT6360_CHRDET_EXT_EVT		(60)
+#define MT6360_FOD_LR_EVT		(61)
+#define MT6360_FOD_HR_EVT		(62)
+#define MT6360_FOD_DISCHG_FAIL_EVT	(63)
+/* REG 8 -> 64 ~ 71 */
+#define MT6360_USBID_EVT		(64)
+#define MT6360_APWDTRST_EVT		(65)
+#define MT6360_EN_EVT			(66)
+#define MT6360_QONB_RST_EVT		(67)
+#define MT6360_MRSTB_EVT		(68)
+#define MT6360_OTP_EVT			(69)
+#define MT6360_VDDAOV_EVT		(70)
+#define MT6360_SYSUV_EVT		(71)
+/* REG 9 -> 72 ~ 79 */
+#define MT6360_FLED_STRBPIN_EVT		(72)
+#define MT6360_FLED_TORPIN_EVT		(73)
+#define MT6360_FLED_TX_EVT		(74)
+#define MT6360_FLED_LVF_EVT		(75)
+#define MT6360_FLED2_SHORT_EVT		(78)
+#define MT6360_FLED1_SHORT_EVT		(79)
+/* REG 10 -> 80 ~ 87 */
+#define MT6360_FLED2_STRB_EVT		(80)
+#define MT6360_FLED1_STRB_EVT		(81)
+#define MT6360_FLED2_STRB_TO_EVT	(82)
+#define MT6360_FLED1_STRB_TO_EVT	(83)
+#define MT6360_FLED2_TOR_EVT		(84)
+#define MT6360_FLED1_TOR_EVT		(85)
+/* REG 11 -> 88 ~ 95 */
+/* REG 12 -> 96 ~ 103 */
+#define MT6360_BUCK1_PGB_EVT		(96)
+#define MT6360_BUCK1_OC_EVT		(100)
+#define MT6360_BUCK1_OV_EVT		(101)
+#define MT6360_BUCK1_UV_EVT		(102)
+/* REG 13 -> 104 ~ 111 */
+#define MT6360_BUCK2_PGB_EVT		(104)
+#define MT6360_BUCK2_OC_EVT		(108)
+#define MT6360_BUCK2_OV_EVT		(109)
+#define MT6360_BUCK2_UV_EVT		(110)
+/* REG 14 -> 112 ~ 119 */
+#define MT6360_LDO1_OC_EVT		(113)
+#define MT6360_LDO2_OC_EVT		(114)
+#define MT6360_LDO3_OC_EVT		(115)
+#define MT6360_LDO5_OC_EVT		(117)
+#define MT6360_LDO6_OC_EVT		(118)
+#define MT6360_LDO7_OC_EVT		(119)
+/* REG 15 -> 120 ~ 127 */
+#define MT6360_LDO1_PGB_EVT		(121)
+#define MT6360_LDO2_PGB_EVT		(122)
+#define MT6360_LDO3_PGB_EVT		(123)
+#define MT6360_LDO5_PGB_EVT		(125)
+#define MT6360_LDO6_PGB_EVT		(126)
+#define MT6360_LDO7_PGB_EVT		(127)
+
+#define MT6360_REGMAP_IRQ_REG(_irq_evt)		\
+	REGMAP_IRQ_REG(_irq_evt, (_irq_evt) / 8, BIT((_irq_evt) % 8))
+
+#define MT6360_MFD_CELL(_name)					\
+	{							\
+		.name = #_name,					\
+		.of_compatible = "mediatek," #_name,		\
+		.num_resources = ARRAY_SIZE(_name##_resources),	\
+		.resources = _name##_resources,			\
+	}
+
+static const struct regmap_irq mt6360_pmu_irqs[] =  {
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_TREG_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_AICR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_MIVR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_PWR_RDY_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_BATSYSUV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED_CHG_VINOVP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_VSYSUV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_VSYSOV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_VBATOV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_VBUSOV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_WD_PMU_DET),
+	MT6360_REGMAP_IRQ_REG(MT6360_WD_PMU_DONE),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_TMRI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_ADPBADI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_RVPI),
+	MT6360_REGMAP_IRQ_REG(MT6360_OTPI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_AICCMEASL),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHGDET_DONEI),
+	MT6360_REGMAP_IRQ_REG(MT6360_WDTMRI),
+	MT6360_REGMAP_IRQ_REG(MT6360_SSFINISHI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_RECHGI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_TERMI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_IEOCI),
+	MT6360_REGMAP_IRQ_REG(MT6360_PUMPX_DONEI),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHG_TREG_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BAT_OVP_ADC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_TYPEC_OTP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_ADC_WAKEUP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_ADC_DONEI),
+	MT6360_REGMAP_IRQ_REG(MT6360_BST_BATUVI),
+	MT6360_REGMAP_IRQ_REG(MT6360_BST_VBUSOVI),
+	MT6360_REGMAP_IRQ_REG(MT6360_BST_OLPI),
+	MT6360_REGMAP_IRQ_REG(MT6360_ATTACH_I),
+	MT6360_REGMAP_IRQ_REG(MT6360_DETACH_I),
+	MT6360_REGMAP_IRQ_REG(MT6360_QC30_STPDONE),
+	MT6360_REGMAP_IRQ_REG(MT6360_QC_VBUSDET_DONE),
+	MT6360_REGMAP_IRQ_REG(MT6360_HVDCP_DET),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHGDETI),
+	MT6360_REGMAP_IRQ_REG(MT6360_DCDTI),
+	MT6360_REGMAP_IRQ_REG(MT6360_FOD_DONE_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FOD_OV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHRDET_UVP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHRDET_OVP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_CHRDET_EXT_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FOD_LR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FOD_HR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FOD_DISCHG_FAIL_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_USBID_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_APWDTRST_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_EN_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_QONB_RST_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_MRSTB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_OTP_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_VDDAOV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_SYSUV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED_STRBPIN_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED_TORPIN_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED_TX_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED_LVF_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED2_SHORT_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED1_SHORT_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED2_STRB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED1_STRB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED2_STRB_TO_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED1_STRB_TO_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED2_TOR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_FLED1_TOR_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK1_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK1_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK1_OV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK1_UV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK2_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK2_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK2_OV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_BUCK2_UV_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO1_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO2_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO3_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO5_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO6_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO7_OC_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO1_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO2_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO3_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO5_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO6_PGB_EVT),
+	MT6360_REGMAP_IRQ_REG(MT6360_LDO7_PGB_EVT),
+};
+
+static int mt6360_pmu_handle_post_irq(void *irq_drv_data)
+{
+	struct mt6360_pmu_info *mpi = irq_drv_data;
+
+	return regmap_update_bits(mpi->regmap,
+		MT6360_PMU_IRQ_SET, MT6360_IRQ_RETRIG, MT6360_IRQ_RETRIG);
+}
+
+static const struct regmap_irq_chip mt6360_pmu_irq_chip = {
+	.irqs = mt6360_pmu_irqs,
+	.num_irqs = ARRAY_SIZE(mt6360_pmu_irqs),
+	.num_regs = MT6360_PMU_IRQ_REGNUM,
+	.mask_base = MT6360_PMU_CHG_MASK1,
+	.status_base = MT6360_PMU_CHG_IRQ1,
+	.ack_base = MT6360_PMU_CHG_IRQ1,
+	.init_ack_masked = true,
+	.use_ack = true,
+	.handle_post_irq = mt6360_pmu_handle_post_irq,
+};
+
+static const struct regmap_config mt6360_pmu_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.max_register = MT6360_PMU_MAXREG,
+};
+
+static const struct resource mt6360_adc_resources[] = {
+	DEFINE_RES_IRQ_NAMED(MT6360_ADC_DONEI, "adc_donei"),
+};
+
+static const struct resource mt6360_chg_resources[] = {
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_TREG_EVT, "chg_treg_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_PWR_RDY_EVT, "pwr_rdy_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_BATSYSUV_EVT, "chg_batsysuv_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_VSYSUV_EVT, "chg_vsysuv_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_VSYSOV_EVT, "chg_vsysov_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_VBATOV_EVT, "chg_vbatov_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_VBUSOV_EVT, "chg_vbusov_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_AICCMEASL, "chg_aiccmeasl"),
+	DEFINE_RES_IRQ_NAMED(MT6360_WDTMRI, "wdtmri"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_RECHGI, "chg_rechgi"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_TERMI, "chg_termi"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHG_IEOCI, "chg_ieoci"),
+	DEFINE_RES_IRQ_NAMED(MT6360_PUMPX_DONEI, "pumpx_donei"),
+	DEFINE_RES_IRQ_NAMED(MT6360_ATTACH_I, "attach_i"),
+	DEFINE_RES_IRQ_NAMED(MT6360_CHRDET_EXT_EVT, "chrdet_ext_evt"),
+};
+
+static const struct resource mt6360_led_resources[] = {
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED_CHG_VINOVP_EVT, "fled_chg_vinovp_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED_LVF_EVT, "fled_lvf_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED2_SHORT_EVT, "fled2_short_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED1_SHORT_EVT, "fled1_short_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED2_STRB_TO_EVT, "fled2_strb_to_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_FLED1_STRB_TO_EVT, "fled1_strb_to_evt"),
+};
+
+static const struct resource mt6360_pmic_resources[] = {
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK1_PGB_EVT, "buck1_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK1_OC_EVT, "buck1_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK1_OV_EVT, "buck1_ov_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK1_UV_EVT, "buck1_uv_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK2_PGB_EVT, "buck2_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK2_OC_EVT, "buck2_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK2_OV_EVT, "buck2_ov_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_BUCK2_UV_EVT, "buck2_uv_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO6_OC_EVT, "ldo6_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO7_OC_EVT, "ldo7_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO6_PGB_EVT, "ldo6_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO7_PGB_EVT, "ldo7_pgb_evt"),
+};
+
+static const struct resource mt6360_ldo_resources[] = {
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO1_OC_EVT, "ldo1_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO2_OC_EVT, "ldo2_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO3_OC_EVT, "ldo3_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO5_OC_EVT, "ldo5_oc_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO1_PGB_EVT, "ldo1_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO2_PGB_EVT, "ldo2_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO3_PGB_EVT, "ldo3_pgb_evt"),
+	DEFINE_RES_IRQ_NAMED(MT6360_LDO5_PGB_EVT, "ldo5_pgb_evt"),
+};
+
+static const struct mfd_cell mt6360_devs[] = {
+	MT6360_MFD_CELL(mt6360_adc),
+	MT6360_MFD_CELL(mt6360_chg),
+	MT6360_MFD_CELL(mt6360_led),
+	MT6360_MFD_CELL(mt6360_pmic),
+	MT6360_MFD_CELL(mt6360_ldo),
+	/* tcpc dev */
+	{
+		.name = "mt6360_tcpc",
+		.of_compatible = "mediatek,mt6360_tcpc",
+	},
+};
+
+static const unsigned short mt6360_slave_addr[MT6360_SLAVE_MAX] = {
+	MT6360_PMU_SLAVEID,
+	MT6360_PMIC_SLAVEID,
+	MT6360_LDO_SLAVEID,
+	MT6360_TCPC_SLAVEID,
+};
+
+static int mt6360_pmu_probe(struct i2c_client *client,
+			    const struct i2c_device_id *id)
+{
+	struct mt6360_pmu_info *mpi;
+	unsigned int reg_data = 0;
+	int i, ret;
+
+	mpi = devm_kzalloc(&client->dev, sizeof(*mpi), GFP_KERNEL);
+	if (!mpi)
+		return -ENOMEM;
+	mpi->dev = &client->dev;
+	i2c_set_clientdata(client, mpi);
+
+	/* regmap regiser */
+	mpi->regmap = devm_regmap_init_i2c(client, &mt6360_pmu_regmap_config);
+	if (IS_ERR(mpi->regmap)) {
+		dev_err(&client->dev, "regmap register fail\n");
+		return PTR_ERR(mpi->regmap);
+	}
+	/* chip id check */
+	ret = regmap_read(mpi->regmap, MT6360_PMU_DEV_INFO, &reg_data);
+	if (ret < 0) {
+		dev_err(&client->dev, "device not found\n");
+		return ret;
+	}
+	if ((reg_data & CHIP_VEN_MASK) != CHIP_VEN_MT6360) {
+		dev_err(&client->dev, "not mt6360 chip\n");
+		return -ENODEV;
+	}
+	mpi->chip_rev = reg_data & CHIP_REV_MASK;
+	/* irq register */
+	memcpy(&mpi->irq_chip, &mt6360_pmu_irq_chip, sizeof(mpi->irq_chip));
+	mpi->irq_chip.name = dev_name(&client->dev);
+	mpi->irq_chip.irq_drv_data = mpi;
+	ret = devm_regmap_add_irq_chip(&client->dev, mpi->regmap, client->irq,
+				       IRQF_TRIGGER_FALLING, 0, &mpi->irq_chip,
+				       &mpi->irq_data);
+	if (ret < 0) {
+		dev_err(&client->dev, "regmap irq chip add fail\n");
+		return ret;
+	}
+	/* new i2c slave device */
+	for (i = 0; i < MT6360_SLAVE_MAX; i++) {
+		if (mt6360_slave_addr[i] == client->addr) {
+			mpi->i2c[i] = client;
+			continue;
+		}
+		mpi->i2c[i] = i2c_new_dummy(client->adapter,
+					    mt6360_slave_addr[i]);
+		if (!mpi->i2c[i]) {
+			dev_err(&client->dev, "new i2c dev [%d] fail\n", i);
+			ret = -ENODEV;
+			goto out;
+		}
+		i2c_set_clientdata(mpi->i2c[i], mpi);
+	}
+	/* mfd cell register */
+	ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_AUTO,
+				   mt6360_devs, ARRAY_SIZE(mt6360_devs), NULL,
+				   0, regmap_irq_get_domain(mpi->irq_data));
+	if (ret < 0) {
+		dev_err(&client->dev, "mfd add cells fail\n");
+		goto out;
+	}
+	dev_info(&client->dev, "Successfully probed\n");
+	return 0;
+out:
+	while (--i >= 0) {
+		if (mpi->i2c[i]->addr == client->addr)
+			continue;
+		i2c_unregister_device(mpi->i2c[i]);
+	}
+	return ret;
+}
+
+static int mt6360_pmu_remove(struct i2c_client *client)
+{
+	struct mt6360_pmu_info *mpi = i2c_get_clientdata(client);
+	int i;
+
+	for (i = 0; i < MT6360_SLAVE_MAX; i++) {
+		if (mpi->i2c[i]->addr == client->addr)
+			continue;
+		i2c_unregister_device(mpi->i2c[i]);
+	}
+	return 0;
+}
+
+static int __maybe_unused mt6360_pmu_suspend(struct device *dev)
+{
+	struct i2c_client *i2c = to_i2c_client(dev);
+
+	if (device_may_wakeup(dev))
+		enable_irq_wake(i2c->irq);
+	return 0;
+}
+
+static int __maybe_unused mt6360_pmu_resume(struct device *dev)
+{
+
+	struct i2c_client *i2c = to_i2c_client(dev);
+
+	if (device_may_wakeup(dev))
+		disable_irq_wake(i2c->irq);
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(mt6360_pmu_pm_ops,
+			 mt6360_pmu_suspend, mt6360_pmu_resume);
+
+static const struct of_device_id __maybe_unused mt6360_pmu_of_id[] = {
+	{ .compatible = "mediatek,mt6360_pmu", },
+	{},
+};
+MODULE_DEVICE_TABLE(of, mt6360_pmu_of_id);
+
+static const struct i2c_device_id mt6360_pmu_id[] = {
+	{ "mt6360_pmu", 0 },
+	{},
+};
+MODULE_DEVICE_TABLE(i2c, mt6360_pmu_id);
+
+static struct i2c_driver mt6360_pmu_driver = {
+	.driver = {
+		.name = "mt6360_pmu",
+		.owner = THIS_MODULE,
+		.pm = &mt6360_pmu_pm_ops,
+		.of_match_table = of_match_ptr(mt6360_pmu_of_id),
+	},
+	.probe = mt6360_pmu_probe,
+	.remove = mt6360_pmu_remove,
+	.id_table = mt6360_pmu_id,
+};
+module_i2c_driver(mt6360_pmu_driver);
+
+MODULE_AUTHOR("CY_Huang <cy_huang@richtek.com>");
+MODULE_DESCRIPTION("MT6360 PMU I2C Driver");
+MODULE_LICENSE("GPL");
+MODULE_VERSION("1.0.0");
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-08-23  2:12 Rob Herring
  0 siblings, 0 replies; 3395+ messages in thread
From: Rob Herring @ 2019-08-23  2:12 UTC (permalink / raw)
  To: dri-devel
  Cc: Maxime Ripard, Tomeu Vizoso, David Airlie, Sean Paul,
	Steven Price, Boris Brezillon, Alyssa Rosenzweig, Robin Murphy

Subject: [PATCH v2 0/8] panfrost: Locking and runtime PM fixes

With further testing of recent changes with lockdep and other locking
checks enabled, we've found several bugs in the shrinker code and one
sleep while atomic in panfrost_gem_open(). This series addresses those
issues.

Delaying the unmapping of pages turns out to be a bad idea. Instead we 
need to rework panfrost_mmu_unmap() to not do a runtime PM resume which 
takes several locks and causes more lockdep warnings. Unfortunately, 
there initially appeared to be some mismatches between the runtime PM 
state and the h/w. The result is several fixes to the runtime PM 
initialization and handling in jobs. With this, the changes to 
panfrost_mmu_unmap() are working correctly.

v2:
 - Drop already applied 'drm/panfrost: Fix sleeping while atomic in 
   panfrost_gem_open'
 - Runtime PM clean-ups
 - Keep panfrost_gem_purge and use mutex_trylock there
 - Rework panfrost_mmu_unmap runtime PM

Rob

Rob Herring (8):
  drm/panfrost: Fix possible suspend in panfrost_remove
  drm/panfrost: Rework runtime PM initialization
  drm/panfrost: Hold runtime PM reference until jobs complete
  drm/shmem: Do dma_unmap_sg before purging pages
  drm/shmem: Use mutex_trylock in drm_gem_shmem_purge
  drm/panfrost: Use mutex_trylock in panfrost_gem_purge
  drm/panfrost: Rework page table flushing and runtime PM interaction
  drm/panfrost: Remove unnecessary flushing from tlb_inv_context

 drivers/gpu/drm/drm_gem_shmem_helper.c        | 13 ++++-
 drivers/gpu/drm/panfrost/panfrost_device.c    |  9 ----
 drivers/gpu/drm/panfrost/panfrost_drv.c       | 16 ++++---
 .../gpu/drm/panfrost/panfrost_gem_shrinker.c  | 11 +++--
 drivers/gpu/drm/panfrost/panfrost_job.c       | 16 ++++---
 drivers/gpu/drm/panfrost/panfrost_mmu.c       | 47 +++++++++----------
 include/drm/drm_gem_shmem_helper.h            |  2 +-
 7 files changed, 59 insertions(+), 55 deletions(-)

-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-06-07  0:54 Dave Airlie
  0 siblings, 0 replies; 3395+ messages in thread
From: Dave Airlie @ 2019-06-07  0:54 UTC (permalink / raw)
  To: Linus Torvalds, Daniel Vetter; +Cc: dri-devel, LKML

Hey Linus,

A small bit more lively this week but not majorly so. I'm away in
Japan next week for family holiday, so I'll be pretty disconnected,
I've asked Daniel to do fixes for the week while I'm out.

core:
- Allow fb changes in async commits (drivers as well)

udmabuf:
- Unmap scatterlist when unmapping udmabuf

komeda:
- oops, dma mapping and warning fixes

arm-hdlcd:
- clock fixes,
- mode validation fix

i915:
- Add a missing Icelake workaround
- GVT - DMA map fault fix and enforcement fixes

Dave.
amdgpu:
- DCE resume fix
- New raven variation updates



drm-fixes-2019-06-07:
drm i915, amdgpu, arm display, atomic update fixes
The following changes since commit f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a:

  Linux 5.2-rc3 (2019-06-02 13:55:33 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm tags/drm-fixes-2019-06-07

for you to fetch changes up to e659b4122cf9e0938b80215de6c06823fb4cf796:

  Merge tag 'drm-intel-fixes-2019-06-06' of
git://anongit.freedesktop.org/drm/drm-intel into drm-fixes (2019-06-07
10:41:33 +1000)

----------------------------------------------------------------
drm i915, amdgpu, arm display, atomic update fixes

----------------------------------------------------------------
Aleksei Gimbitskii (2):
      drm/i915/gvt: Check if cur_pt_type is valid
      drm/i915/gvt: Assign NULL to the pointer after memory free.

Chengming Gui (1):
      drm/amd/powerplay: add set_power_profile_mode for raven1_refresh

Colin Xu (3):
      drm/i915/gvt: Update force-to-nonpriv register whitelist
      drm/i915/gvt: Fix GFX_MODE handling
      drm/i915/gvt: Fix vGPU CSFE_CHICKEN1_REG mmio handler

Dan Carpenter (1):
      drm/komeda: Potential error pointer dereference

Dave Airlie (5):
      Merge tag 'drm-intel-fixes-2019-06-03' of
git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      Merge branch 'drm-fixes-5.2' of
git://people.freedesktop.org/~agd5f/linux into drm-fixes
      Merge tag 'drm-misc-fixes-2019-06-05' of
git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
      Merge branch 'malidp-fixes' of git://linux-arm.org/linux-ld into drm-fixes
      Merge tag 'drm-intel-fixes-2019-06-06' of
git://anongit.freedesktop.org/drm/drm-intel into drm-fixes

Gao, Fred (1):
      drm/i915/gvt: Fix cmd length of VEB_DI_IECP

Helen Koike (5):
      drm/rockchip: fix fb references in async update
      drm/amd: fix fb references in async update
      drm/msm: fix fb references in async update
      drm/vc4: fix fb references in async update
      drm: don't block fb changes for async plane updates

Joonas Lahtinen (2):
      Merge tag 'gvt-fixes-2019-05-30' of
https://github.com/intel/gvt-linux into drm-intel-fixes
      Merge tag 'gvt-fixes-2019-06-05' of
https://github.com/intel/gvt-linux into drm-intel-fixes

Louis Li (1):
      drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)

Lowry Li (Arm Technology China) (1):
      drm/komeda: fixing of DMA mapping sg segment warning

Lucas Stach (1):
      udmabuf: actually unmap the scatterlist

Prike Liang (1):
      drm/amd/amdgpu: add RLC firmware to support raven1 refresh

Robin Murphy (2):
      drm/arm/hdlcd: Actually validate CRTC modes
      drm/arm/hdlcd: Allow a bit of clock tolerance

Tina Zhang (1):
      drm/i915/gvt: Initialize intel_gvt_gtt_entry in stack

Tvrtko Ursulin (1):
      drm/i915/icl: Add WaDisableBankHangMode

Weinan Li (1):
      drm/i915/gvt: add F_CMD_ACCESS flag for wa regs

Wen He (1):
      drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times

Xiaolin Zhang (1):
      drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out

Xiong Zhang (1):
      drm/i915/gvt: refine ggtt range validation

YueHaibing (1):
      drm/komeda: remove set but not used variable 'kcrtc'

james qian wang (Arm Technology China) (1):
      drm/komeda: Constify the usage of komeda_component/pipeline/dev_funcs

 drivers/dma-buf/udmabuf.c                          |  1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         | 12 ++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c             | 15 +++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h             |  1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c            |  4 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c              | 12 ++++-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |  3 +-
 drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c        |  1 +
 drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c  | 31 +++++++++++--
 drivers/gpu/drm/amd/powerplay/inc/hwmgr.h          |  1 +
 .../gpu/drm/arm/display/komeda/d71/d71_component.c |  8 ++--
 drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c   |  4 +-
 drivers/gpu/drm/arm/display/komeda/komeda_crtc.c   |  2 +-
 drivers/gpu/drm/arm/display/komeda/komeda_dev.c    |  6 ++-
 drivers/gpu/drm/arm/display/komeda/komeda_dev.h    |  8 ++--
 .../gpu/drm/arm/display/komeda/komeda_pipeline.c   |  4 +-
 .../gpu/drm/arm/display/komeda/komeda_pipeline.h   | 10 ++---
 drivers/gpu/drm/arm/display/komeda/komeda_plane.c  |  4 +-
 drivers/gpu/drm/arm/hdlcd_crtc.c                   | 14 +++---
 drivers/gpu/drm/arm/malidp_drv.c                   | 13 +++++-
 drivers/gpu/drm/drm_atomic_helper.c                | 22 +++++-----
 drivers/gpu/drm/i915/gvt/cmd_parser.c              |  2 +-
 drivers/gpu/drm/i915/gvt/gtt.c                     | 38 +++++++++++-----
 drivers/gpu/drm/i915/gvt/handlers.c                | 49 ++++++++++++++++++---
 drivers/gpu/drm/i915/gvt/reg.h                     |  2 +
 drivers/gpu/drm/i915/gvt/scheduler.c               | 25 +++++++++++
 drivers/gpu/drm/i915/gvt/scheduler.h               |  1 +
 drivers/gpu/drm/i915/i915_reg.h                    |  3 ++
 drivers/gpu/drm/i915/intel_workarounds.c           |  6 +++
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c         |  4 ++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        | 51 +++++++++++-----------
 drivers/gpu/drm/vc4/vc4_plane.c                    |  2 +-
 include/drm/drm_modeset_helper_vtables.h           |  8 ++++
 33 files changed, 268 insertions(+), 99 deletions(-)

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-05-26 11:51 Thomas Meyer
  0 siblings, 0 replies; 3395+ messages in thread
From: Thomas Meyer @ 2019-05-26 11:51 UTC (permalink / raw)


From thomas@m3y3r.de Sun May 26 13:49:04 2019
Subject: [PATCH] drm/omap: Make sure device_id tables are NULL terminated
To: tomi.valkeinen@ti.com, airlied@linux.ie, daniel@ffwll.ch,
 dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Patch: Cocci
X-Mailer: DiffSplit
Message-ID: <1558871364611-249425076-1-diffsplit-thomas@m3y3r.de>
References: <1558871364605-1026448693-0-diffsplit-thomas@m3y3r.de>
In-Reply-To: <1558871364605-1026448693-0-diffsplit-thomas@m3y3r.de>
X-Serial-No: 1

Make sure (of/i2c/platform)_device_id tables are NULL terminated.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
---

diff -u -p a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
--- a/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c
@@ -198,6 +198,7 @@ static const struct of_device_id omapdss
 	{ .compatible = "toppoly,td028ttec1" },
 	{ .compatible = "tpo,td028ttec1" },
 	{ .compatible = "tpo,td043mtea1" },
+	{},
 };
 
 static int __init omapdss_boot_init(void)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-05-16  3:48 Mail Delivery Subsystem
  0 siblings, 0 replies; 3395+ messages in thread
From: Mail Delivery Subsystem @ 2019-05-16  3:48 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 2 days:
Host 81.249.114.149 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: (unknown)
  2019-04-10 15:02       ` (unknown) Lange Norbert
@ 2019-04-10 16:46         ` Jan Kiszka
  0 siblings, 0 replies; 3395+ messages in thread
From: Jan Kiszka @ 2019-04-10 16:46 UTC (permalink / raw)
  To: Lange Norbert, Xenomai

On 10.04.19 17:02, Lange Norbert wrote:
> 
> 
>> -----Original Message-----
>> From: Jan Kiszka <jan.kiszka@siemens.com>
>> Sent: Mittwoch, 10. April 2019 16:48
>> To: Lange Norbert <norbert.lange@andritz.com>; Xenomai
>> <xenomai@xenomai.org>
>> Subject: Re: (unknown)
>>
>> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
>> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR ATTACHMENTS.
>>
>>
>> [re-adding the list]
>>
>> On 10.04.19 16:44, Lange Norbert wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Jan Kiszka
>> via
>>>> Xenomai
>>>> Sent: Mittwoch, 10. April 2019 16:36
>>>> To: Norbert Lange <nolange79@gmail.com>; xenomai@xenomai.org
>>>> Subject: Re: (unknown)
>>>>
>>>> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
>>>> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR
>> ATTACHMENTS.
>>>>
>>>>
>>>> On 10.04.19 13:14, Norbert Lange via Xenomai wrote:
>>>>> V3 of the patchset, corrected many checkstyle issues, simplified
>>>>> condvar autoinit.
>>>>>
>>>>> I did not use ARRAY_SIZE, as that would need another include.
>>>>>
>>>>
>>>> All applied now. Patch 1 was not cleanly based on next, though. I think some
>>>> local style cleanup was missing.
>>>
>>> I based all patches on master, thought this is the primary development branch?
>>>
>>
>> Line 566 in lib/cobalt/mutex.c had a trailing tab, your patch context did not,
>> and that made the application fail. Maybe that was removed while transporting
>> the patch into your mail client - better use git send-email in that case.
> 
> I use git send-email, you would not be happy if I sent patches over our IT Server
> (one or two examples should reside somewhere in the ML) =).

Yeah, I fully understand.

> 
> I did use git-format-patch with --ignore-space-at-eol, maybe that’s the reason.

I'm pretty sure that was it. OK - one off.

> 
> I know there are a few holdouts, but since you got a gitlab server and ci running already,
> merge-requests could do all those style checks and test for build-failures without taking
> any time of the maintainers and shorter feedback cycles for the contributors.
> My IT is rather hostile to anything email based.

Unfortunately, also with gitlab, the working mode decision remains a binary one: 
If we start allowing MRs and do review on that platform, we need to migrate 
everything over. There is no integration that allows to mirror one feed into the 
other to avoid community split.

I do quite a few gitlab-based reviews as well, for internal stuff. It's making 
some things easier and others more complicated for me. Tracking the history of 
patch series can be easier. However, reviewing larger series requires large 
amounts of mouse clicks, and you easily lose overview. At least, gitlab is not 
as broken as github (github still reorders patches according to dates - ouch). 
And even in times of CI, and eventually also continuous testing, review remains 
a manual (visual) task.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* RE: (unknown)
  2019-04-10 14:47     ` (unknown) Jan Kiszka
@ 2019-04-10 15:02       ` Lange Norbert
  2019-04-10 16:46         ` (unknown) Jan Kiszka
  0 siblings, 1 reply; 3395+ messages in thread
From: Lange Norbert @ 2019-04-10 15:02 UTC (permalink / raw)
  To: Jan Kiszka, Xenomai



> -----Original Message-----
> From: Jan Kiszka <jan.kiszka@siemens.com>
> Sent: Mittwoch, 10. April 2019 16:48
> To: Lange Norbert <norbert.lange@andritz.com>; Xenomai
> <xenomai@xenomai.org>
> Subject: Re: (unknown)
>
> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR ATTACHMENTS.
>
>
> [re-adding the list]
>
> On 10.04.19 16:44, Lange Norbert wrote:
> >
> >
> >> -----Original Message-----
> >> From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Jan Kiszka
> via
> >> Xenomai
> >> Sent: Mittwoch, 10. April 2019 16:36
> >> To: Norbert Lange <nolange79@gmail.com>; xenomai@xenomai.org
> >> Subject: Re: (unknown)
> >>
> >> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
> >> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR
> ATTACHMENTS.
> >>
> >>
> >> On 10.04.19 13:14, Norbert Lange via Xenomai wrote:
> >>> V3 of the patchset, corrected many checkstyle issues, simplified
> >>> condvar autoinit.
> >>>
> >>> I did not use ARRAY_SIZE, as that would need another include.
> >>>
> >>
> >> All applied now. Patch 1 was not cleanly based on next, though. I think some
> >> local style cleanup was missing.
> >
> > I based all patches on master, thought this is the primary development branch?
> >
>
> Line 566 in lib/cobalt/mutex.c had a trailing tab, your patch context did not,
> and that made the application fail. Maybe that was removed while transporting
> the patch into your mail client - better use git send-email in that case.

I use git send-email, you would not be happy if I sent patches over our IT Server
(one or two examples should reside somewhere in the ML) =).

I did use git-format-patch with --ignore-space-at-eol, maybe that’s the reason.

I know there are a few holdouts, but since you got a gitlab server and ci running already,
merge-requests could do all those style checks and test for build-failures without taking
any time of the maintainers and shorter feedback cycles for the contributors.
My IT is rather hostile to anything email based.

Norbert

________________________________

This message and any attachments are solely for the use of the intended recipients. They may contain privileged and/or confidential information or other information protected from disclosure. If you are not an intended recipient, you are hereby notified that you received this email in error and that any review, dissemination, distribution or copying of this email and any attachment is strictly prohibited. If you have received this email in error, please contact the sender and delete the message and any attachment from your system.

ANDRITZ HYDRO GmbH


Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation

Firmensitz/ Registered seat: Wien

Firmenbuchgericht/ Court of registry: Handelsgericht Wien

Firmenbuchnummer/ Company registration: FN 61833 g

DVR: 0605077

UID-Nr.: ATU14756806


Thank You
________________________________

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: (unknown)
       [not found]   ` <VI1PR05MB5917B5956F2E9365F10D6539F62E0@VI1PR05MB5917.eurprd05.prod.outlook.com>
@ 2019-04-10 14:47     ` Jan Kiszka
  2019-04-10 15:02       ` (unknown) Lange Norbert
  0 siblings, 1 reply; 3395+ messages in thread
From: Jan Kiszka @ 2019-04-10 14:47 UTC (permalink / raw)
  To: Lange Norbert, Xenomai

[re-adding the list]

On 10.04.19 16:44, Lange Norbert wrote:
> 
> 
>> -----Original Message-----
>> From: Xenomai <xenomai-bounces@xenomai.org> On Behalf Of Jan Kiszka via
>> Xenomai
>> Sent: Mittwoch, 10. April 2019 16:36
>> To: Norbert Lange <nolange79@gmail.com>; xenomai@xenomai.org
>> Subject: Re: (unknown)
>>
>> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
>> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR ATTACHMENTS.
>>
>>
>> On 10.04.19 13:14, Norbert Lange via Xenomai wrote:
>>> V3 of the patchset, corrected many checkstyle issues, simplified
>>> condvar autoinit.
>>>
>>> I did not use ARRAY_SIZE, as that would need another include.
>>>
>>
>> All applied now. Patch 1 was not cleanly based on next, though. I think some
>> local style cleanup was missing.
> 
> I based all patches on master, thought this is the primary development branch?
> 

Line 566 in lib/cobalt/mutex.c had a trailing tab, your patch context did not, 
and that made the application fail. Maybe that was removed while transporting 
the patch into your mail client - better use git send-email in that case.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: (unknown)
  2019-04-10 11:14 Norbert Lange
  2019-04-10 13:37 ` (unknown) Jan Kiszka
@ 2019-04-10 14:36 ` Jan Kiszka
       [not found]   ` <VI1PR05MB5917B5956F2E9365F10D6539F62E0@VI1PR05MB5917.eurprd05.prod.outlook.com>
  1 sibling, 1 reply; 3395+ messages in thread
From: Jan Kiszka @ 2019-04-10 14:36 UTC (permalink / raw)
  To: Norbert Lange, xenomai

On 10.04.19 13:14, Norbert Lange via Xenomai wrote:
> V3 of the patchset, corrected many checkstyle issues,
> simplified condvar autoinit.
> 
> I did not use ARRAY_SIZE, as that would need another include.
> 

All applied now. Patch 1 was not cleanly based on next, though. I think some 
local style cleanup was missing.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: (unknown)
  2019-04-10 11:17 Norbert Lange
@ 2019-04-10 14:15 ` Jan Kiszka
  0 siblings, 0 replies; 3395+ messages in thread
From: Jan Kiszka @ 2019-04-10 14:15 UTC (permalink / raw)
  To: Norbert Lange, xenomai

On 10.04.19 13:17, Norbert Lange via Xenomai wrote:
> V2 of the patchset. Fixed checkstyle issues, better identation,
> and aded casts to silence (false) pedantic warnings.
> 

Both applied to next, thanks.

You probably want to edit your cover letter subject as well - or use git 
format-patch.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* Re: (unknown)
  2019-04-10 11:14 Norbert Lange
@ 2019-04-10 13:37 ` Jan Kiszka
  2019-04-10 14:36 ` (unknown) Jan Kiszka
  1 sibling, 0 replies; 3395+ messages in thread
From: Jan Kiszka @ 2019-04-10 13:37 UTC (permalink / raw)
  To: Norbert Lange, xenomai

On 10.04.19 13:14, Norbert Lange via Xenomai wrote:
> V3 of the patchset, corrected many checkstyle issues,
> simplified condvar autoinit.
> 

Thanks for the update!

> I did not use ARRAY_SIZE, as that would need another include.
> 

Ah, we do not have this construct in lib/ so far.

There are private ARRAY_LEN macros in lib/analogy/calibration.c and 
utils/analogy/analogy_calibrate.h. Well, something that can be consolidates later.

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-04-05  2:38 Changbin Du
  0 siblings, 0 replies; 3395+ messages in thread
From: Changbin Du @ 2019-04-05  2:38 UTC (permalink / raw)
  To: Jonathan Corbet
  Cc: Rafael J. Wysocki, Changbin Du, Rafael J. Wysocki, Len Brown,
	ACPI Devel Maling List, Linux Kernel Mailing List,
	open list:DOCUMENTATION, Bjorn Helgaas

Bcc:
Subject: Re: [PATCH v2 00/24] Include linux ACPI docs into Sphinx TOC tree
Reply-To:
In-Reply-To: <20190403133613.13f3fd75@lwn.net>

+ Bjorn

On Wed, Apr 03, 2019 at 01:36:13PM -0600, Jonathan Corbet wrote:
> On Tue, 2 Apr 2019 10:25:23 +0200
> "Rafael J. Wysocki" <rafael@kernel.org> wrote:
> 
> > There are ACPI-related documents currently in Documentation/acpi/ that
> > don't clearly fall under either driver-api or admin-guide.  For
> > example, some of them describe various aspects of the ACPI support
> > subsystem operation and some document expectations with respect to the
> > ACPI tables provided by the firmware etc.
> > 
> > Where would you recommend to put them after converting to .rst?
> 
> OK, I've done some pondering on this.  Maybe what we need is a new
> top-level "hardware guide" book meant to hold information on how the
> hardware works and what the kernel's expectations are.  Architecture
> information could maybe go there too.  Would this make sense?
> 
> If so, I could see a division like this:
> 
> Hardware guide
> 	acpi-lid
> 	aml-debugger (or maybe driver api?)
> 	debug (ditto)
> 	DSD-properties-rules
> 	gpio-properties
> 	i2c-muxes
> 
> Admin guide
> 	cppc_sysfs
> 	initrd_table_override
> 
> Driver-API
> 	enumeration
> 	scan_handlers
> 
> other:
> 	dsdt-override: find another home for those five lines
>
Then, should we create dedicated sub-directories for these new charpters and
move documents to coresspoding one? Now we have 'admin-guide' and all admin-guid
docs are under it, otherwise we will have reference across different folders.
For example, the 'admin-guide/index.rst' will have:
    ...
    ../acpi/osi
    ...
Which seems not good.

> ...and so on.  I've probably gotten at least one of those wrong, but that's
> the idea.
> 
> Of course, then it would be nice to better integrate those documents so
> that they fit into a single coherent whole...a guy can dream...:)
> 
I am not an adminstrator, so I don't know how adminstrators use this kernel
documentation. But as a kernel developer, I prefer all related documents
integrated into one charpter. Because I probably miss some useful sections
if the documents are distributed into several charpters. And this is usually
how a book is written (One charpter focus on one topic and has sub-sections
such as overview, backgroud knowledge, implemenation details..),
but a book mostly target on hypothetical readers...

> Thanks,
> 
> jon

-- 
Cheers,
Changbin Du

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-04-04  5:56 Mail Delivery Subsystem
  0 siblings, 0 replies; 3395+ messages in thread
From: Mail Delivery Subsystem @ 2019-04-04  5:56 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 1 days:
Host 66.24.245.203 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-03-29  0:36 邀请函
  0 siblings, 0 replies; 3395+ messages in thread
From: 邀请函 @ 2019-03-29  0:36 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

-------- 转发邮件信息 --------
发件人:mivczrufz@exu.net
发送日期:2019-3-29  8:36:49
收件人:linux-nvdimm@lists.01.org
~附~件~内~容~请~您~查~阅~
8:36:49
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-03-21  1:51 zhuchangchun
  0 siblings, 0 replies; 3395+ messages in thread
From: zhuchangchun @ 2019-03-21  1:51 UTC (permalink / raw)
  To: linux-kernel, linux-gpio

subscribe linux-kernel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-03-19 14:41 Maxim Levitsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Maxim Levitsky @ 2019-03-19 14:41 UTC (permalink / raw)
  To: linux-nvme
  Cc: Maxim Levitsky, linux-kernel, kvm, Jens Axboe, Alex Williamson,
	Keith Busch, Christoph Hellwig, Sagi Grimberg, Kirti Wankhede,
	David S . Miller, Mauro Carvalho Chehab, Greg Kroah-Hartman,
	Wolfram Sang, Nicolas Ferre, Paul E . McKenney ,
	Paolo Bonzini, Liang Cunming, Liu Changpeng, Fam Zheng,
	Amnon Ilan, John

Date: Tue, 19 Mar 2019 14:45:45 +0200
Subject: [PATCH 0/9] RFC: NVME VFIO mediated device

Hi everyone!

In this patch series, I would like to introduce my take on the problem of doing 
as fast as possible virtualization of storage with emphasis on low latency.

In this patch series I implemented a kernel vfio based, mediated device that 
allows the user to pass through a partition and/or whole namespace to a guest.

The idea behind this driver is based on paper you can find at
https://www.usenix.org/conference/atc18/presentation/peng,

Although note that I stared the development prior to reading this paper, 
independently.

In addition to that implementation is not based on code used in the paper as 
I wasn't being able at that time to make the source available to me.

***Key points about the implementation:***

* Polling kernel thread is used. The polling is stopped after a 
predefined timeout (1/2 sec by default).
Support for all interrupt driven mode is planned, and it shows promising results.

* Guest sees a standard NVME device - this allows to run guest with 
unmodified drivers, for example windows guests.

* The NVMe device is shared between host and guest.
That means that even a single namespace can be split between host 
and guest based on different partitions.

* Simple configuration

*** Performance ***

Performance was tested on Intel DC P3700, With Xeon E5-2620 v2 
and both latency and throughput is very similar to SPDK.

Soon I will test this on a better server and nvme device and provide
more formal performance numbers.

Latency numbers:
~80ms - spdk with fio plugin on the host.
~84ms - nvme driver on the host
~87ms - mdev-nvme + nvme driver in the guest

Throughput was following similar pattern as well.

* Configuration example
  $ modprobe nvme mdev_queues=4
  $ modprobe nvme-mdev

  $ UUID=$(uuidgen)
  $ DEVICE='device pci address'
  $ echo $UUID > /sys/bus/pci/devices/$DEVICE/mdev_supported_types/nvme-2Q_V1/create
  $ echo n1p3 > /sys/bus/mdev/devices/$UUID/namespaces/add_namespace #attach host namespace 1 parition 3
  $ echo 11 > /sys/bus/mdev/devices/$UUID/settings/iothread_cpu #pin the io thread to cpu 11

  Afterward boot qemu with
  -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/$UUID
  
  Zero configuration on the guest.
  
*** FAQ ***

* Why to make this in the kernel? Why this is better that SPDK

  -> Reuse the existing nvme kernel driver in the host. No new drivers in the guest.
  
  -> Share the NVMe device between host and guest. 
     Even in fully virtualized configurations,
     some partitions of nvme device could be used by guests as block devices 
     while others passed through with nvme-mdev to achieve balance between
     all features of full IO stack emulation and performance.
  
  -> NVME-MDEV is a bit faster due to the fact that in-kernel driver 
     can send interrupts to the guest directly without a context 
     switch that can be expensive due to meltdown mitigation.

  -> Is able to utilize interrupts to get reasonable performance. 
     This is only implemented
     as a proof of concept and not included in the patches, 
     but interrupt driven mode shows reasonable performance
     
  -> This is a framework that later can be used to support NVMe devices 
     with more of the IO virtualization built-in 
     (IOMMU with PASID support coupled with device that supports it)

* Why to attach directly to nvme-pci driver and not use block layer IO
  -> The direct attachment allows for better performance, but I will
     check the possibility of using block IO, especially for fabrics drivers.
  
*** Implementation notes ***

*  All guest memory is mapped into the physical nvme device 
   but not 1:1 as vfio-pci would do this.
   This allows very efficient DMA.
   To support this, patch 2 adds ability for a mdev device to listen on 
   guest's memory map events. 
   Any such memory is immediately pinned and then DMA mapped.
   (Support for fabric drivers where this is not possible exits too,
    in which case the fabric driver will do its own DMA mapping)

*  nvme core driver is modified to announce the appearance 
   and disappearance of nvme controllers and namespaces,
   to which the nvme-mdev driver is subscribed.
 
*  nvme-pci driver is modified to expose raw interface of attaching to 
   and sending/polling the IO queues.
   This allows the mdev driver very efficiently to submit/poll for the IO.
   By default one host queue is used per each mediated device.
   (support for other fabric based host drivers is planned)

* The nvme-mdev doesn't assume presence of KVM, thus any VFIO user, including
  SPDK, a qemu running with tccg, ... can use this virtual device.

*** Testing ***

The device was tested with stock QEMU 3.0 on the host,
with host was using 5.0 kernel with nvme-mdev added and the following hardware:
 * QEMU nvme virtual device (with nested guest)
 * Intel DC P3700 on Xeon E5-2620 v2 server
 * Samsung SM981 (in a Thunderbolt enclosure, with my laptop)
 * Lenovo NVME device found in my laptop

The guest was tested with kernel 4.16, 4.18, 4.20 and
the same custom complied kernel 5.0
Windows 10 guest was tested too with both Microsoft's inbox driver and
open source community NVME driver
(https://lists.openfabrics.org/pipermail/nvmewin/2016-December/001420.html)

Testing was mostly done on x86_64, but 32 bit host/guest combination
was lightly tested too.

In addition to that, the virtual device was tested with nested guest,
by passing the virtual device to it,
using pci passthrough, qemu userspace nvme driver, and spdk


PS: I used to contribute to the kernel as a hobby using the
    maximlevitsky@gmail.com address

Maxim Levitsky (9):
  vfio/mdev: add .request callback
  nvme/core: add some more values from the spec
  nvme/core: add NVME_CTRL_SUSPENDED controller state
  nvme/pci: use the NVME_CTRL_SUSPENDED state
  nvme/pci: add known admin effects to augument admin effects log page
  nvme/pci: init shadow doorbell after each reset
  nvme/core: add mdev interfaces
  nvme/core: add nvme-mdev core driver
  nvme/pci: implement the mdev external queue allocation interface

 MAINTAINERS                   |   5 +
 drivers/nvme/Kconfig          |   1 +
 drivers/nvme/Makefile         |   1 +
 drivers/nvme/host/core.c      | 149 +++++-
 drivers/nvme/host/nvme.h      |  55 ++-
 drivers/nvme/host/pci.c       | 385 ++++++++++++++-
 drivers/nvme/mdev/Kconfig     |  16 +
 drivers/nvme/mdev/Makefile    |   5 +
 drivers/nvme/mdev/adm.c       | 873 ++++++++++++++++++++++++++++++++++
 drivers/nvme/mdev/events.c    | 142 ++++++
 drivers/nvme/mdev/host.c      | 491 +++++++++++++++++++
 drivers/nvme/mdev/instance.c  | 802 +++++++++++++++++++++++++++++++
 drivers/nvme/mdev/io.c        | 563 ++++++++++++++++++++++
 drivers/nvme/mdev/irq.c       | 264 ++++++++++
 drivers/nvme/mdev/mdev.h      |  56 +++
 drivers/nvme/mdev/mmio.c      | 591 +++++++++++++++++++++++
 drivers/nvme/mdev/pci.c       | 247 ++++++++++
 drivers/nvme/mdev/priv.h      | 700 +++++++++++++++++++++++++++
 drivers/nvme/mdev/udata.c     | 390 +++++++++++++++
 drivers/nvme/mdev/vcq.c       | 207 ++++++++
 drivers/nvme/mdev/vctrl.c     | 514 ++++++++++++++++++++
 drivers/nvme/mdev/viommu.c    | 322 +++++++++++++
 drivers/nvme/mdev/vns.c       | 356 ++++++++++++++
 drivers/nvme/mdev/vsq.c       | 178 +++++++
 drivers/vfio/mdev/vfio_mdev.c |  11 +
 include/linux/mdev.h          |   4 +
 include/linux/nvme.h          |  88 +++-
 27 files changed, 7375 insertions(+), 41 deletions(-)
 create mode 100644 drivers/nvme/mdev/Kconfig
 create mode 100644 drivers/nvme/mdev/Makefile
 create mode 100644 drivers/nvme/mdev/adm.c
 create mode 100644 drivers/nvme/mdev/events.c
 create mode 100644 drivers/nvme/mdev/host.c
 create mode 100644 drivers/nvme/mdev/instance.c
 create mode 100644 drivers/nvme/mdev/io.c
 create mode 100644 drivers/nvme/mdev/irq.c
 create mode 100644 drivers/nvme/mdev/mdev.h
 create mode 100644 drivers/nvme/mdev/mmio.c
 create mode 100644 drivers/nvme/mdev/pci.c
 create mode 100644 drivers/nvme/mdev/priv.h
 create mode 100644 drivers/nvme/mdev/udata.c
 create mode 100644 drivers/nvme/mdev/vcq.c
 create mode 100644 drivers/nvme/mdev/vctrl.c
 create mode 100644 drivers/nvme/mdev/viommu.c
 create mode 100644 drivers/nvme/mdev/vns.c
 create mode 100644 drivers/nvme/mdev/vsq.c

-- 
2.17.2

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-03-04  3:42 Automatic Email Delivery Software
  0 siblings, 0 replies; 3395+ messages in thread
From: Automatic Email Delivery Software @ 2019-03-04  3:42 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=us-ascii, Size: 365 bytes --]

±'óÛýpZ·Âu<êZxfv›ª
„–Tœ'fŠ…>X90î±Î|…&†œì#*œˆ”~™zâý^°a¦ü^Èà£cÐ}øAè;£
¼µ8[èÅ«/øP¬
îÅ®_֙˫«XÉ·íÊ{¼
µöuCÇüöL~‰½¡±-_÷u¹.(v1OƒsM:I¿ù>1ÁÕüäuµèé"ËÚÌÞÙs9ùn,(SO)6ö\4_²ñ£•¬UNß¿5
<¦Ÿý4øÉüG!gü§´QrÓÀ:<(§9h7jÈø¹iï§eÛ–ð˜WõxY¼×ü|ëÙÙPýþçš»ú‘U] P݈Kx]»É‚Îâ÷]mù‹[ã.ÂÁf™;œÔ´5ÙtµU`ݵ
ÛÅ–£J$kÊ[À´U
ä|Ž"&`»öÔ[»ã$
Ÿ¨¢X„m‚¡ÂålJ±
!aÇJÂHpºÆˆat¬â69½#߉t0k¤‰I¤|
Z9
¢Z‹w£Œ[ªûþS
ç²


[-- Attachment #2: Type: text/plain, Size: 178 bytes --]

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-03-01  3:34 Automatic Email Delivery Software
  0 siblings, 0 replies; 3395+ messages in thread
From: Automatic Email Delivery Software @ 2019-03-01  3:34 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

Message could not be delivered

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2019-02-28  3:36 Post Office
  0 siblings, 0 replies; 3395+ messages in thread
From: Post Office @ 2019-02-28  3:36 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 1 days:
Host 203.212.202.129 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2019-01-15  2:55 Jens Axboe
  0 siblings, 0 replies; 3395+ messages in thread
From: Jens Axboe @ 2019-01-15  2:55 UTC (permalink / raw)
  To: linux-fsdevel, linux-aio, linux-block, linux-arch; +Cc: hch, jmoyer, avi

Here's v4 of the io_uring interface. No user visible changes this
time, outside of bumping the io_uring_sqe submission entry to a
full 64-bytes. This aligns better with caches, and leaves us some
room to grow for future features. See the v3 posting for full
details on the API:

https://lore.kernel.org/linux-block/20190112213011.1439-1-axboe@kernel.dk/

What I neglected to mention in the v3 posting, is that the fixed
buffer and fixed file interfaces are available through the
io_uring_register() system call. This means they can be registered
(and unregistered) independently of the io_uring context setup.

Patches are against 5.0-rc2 and can also be found in my 'io_uring'
git branch:

git://git.kernel.dk/linux-block io_uring

Changes since v3:

- Clean up fixed buffer index validation
- Add IORING_OP_NOP for ring perf testing
- Drop struct io_kiocb ki_* variable prefix, it clashes with struct
  kiocb for no reason except to cause confusement
- Bump io_uring_sqe to 64 bytes. Cacheline sized and aligned
  (on x86-64), and more future proof
- Use kmalloc_array()
- Make the page mlock rlimit incremental and not for root / CAP_IPC_LOCK
- Ensure io_uring_register() can't race with fops->release()
- Simplify and improve iopoll implementation
- Use FOLL_WRITE instead of open-coding it
- Fix 32-bit vs 64-bit sizing for the io_uring_register() structs
- Added x86 32-bit system calls
- Added 32-bit compat mode
- Rebased on 5.0-rc2


 Documentation/filesystems/vfs.txt      |    3 +
 arch/x86/entry/syscalls/syscall_32.tbl |    3 +
 arch/x86/entry/syscalls/syscall_64.tbl |    3 +
 block/bio.c                            |   59 +-
 fs/Makefile                            |    1 +
 fs/block_dev.c                         |   19 +-
 fs/file.c                              |   15 +-
 fs/file_table.c                        |    9 +-
 fs/gfs2/file.c                         |    2 +
 fs/io_uring.c                          | 2072 ++++++++++++++++++++++++
 fs/iomap.c                             |   48 +-
 fs/xfs/xfs_file.c                      |    1 +
 include/linux/bio.h                    |   14 +
 include/linux/blk_types.h              |    1 +
 include/linux/file.h                   |    2 +
 include/linux/fs.h                     |    6 +-
 include/linux/iomap.h                  |    1 +
 include/linux/sched/user.h             |    2 +-
 include/linux/syscalls.h               |    7 +
 include/uapi/linux/io_uring.h          |  155 ++
 init/Kconfig                           |    9 +
 kernel/sys_ni.c                        |    3 +
 22 files changed, 2395 insertions(+), 40 deletions(-)

-- 
Jens Axboe


--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org.  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2019-01-02 12:25 Frank Wunderlich
  0 siblings, 0 replies; 3395+ messages in thread
From: Frank Wunderlich @ 2019-01-02 12:25 UTC (permalink / raw)
  To: linux-arm-kernel, linux-mediatek


resend to mailing-list because previous attempt was blocked by
non-existing blacklist-filter: https://www.dnsbl.info/dnsbl-njabl-org.php

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-11-27  0:07 Offer
  0 siblings, 0 replies; 3395+ messages in thread
From: Offer @ 2018-11-27  0:07 UTC (permalink / raw)


-- 
-- 
Guten Tag, Wir sind eine registrierte private Geldverleiher. Wir geben
Kredite an Firmen, Einzelpersonen, die ihre finanzielle Status auf der
ganzen Welt aktualisieren müssen, mit minimalen jährlichen Zinsen von
2% .reply, wenn nötig.

Good Day, We are a registered private money lender. We give out loans
to firms, Individual who need to update their financial status all
over the world, with Minimal annual Interest Rates of 2%reply if
needed.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-11-18 20:40 Major Dennis Hornbeck
  0 siblings, 0 replies; 3395+ messages in thread
From: Major Dennis Hornbeck @ 2018-11-18 20:40 UTC (permalink / raw)




I am in the military unit here in Afghanistan, we have some amount of funds that we want to move out of the country. My partners and I need a good partner someone we can trust. It is risk free and legal. Reply to this email: hornbeckmajordennis830@gmail.com
Regards,Major Dennis Hornbeck.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-11-18  9:11 Mrs. Maureen Hinckley
  0 siblings, 0 replies; 3395+ messages in thread
From: Mrs. Maureen Hinckley @ 2018-11-18  9:11 UTC (permalink / raw)




I am Maureen Hinckley and my foundation is donating (Five hundred and fifty thousand USD) to you. Contact us via my email at (maurhinck1@gmail.com) for further details.


 Best Regards, Mrs. Maureen Hinckley,  Copyright &copy;2018 The Maureen Hinckley Foundation All Rights Reserved.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-11-11  8:05 Oliver Carter
  0 siblings, 0 replies; 3395+ messages in thread
From: Oliver Carter @ 2018-11-11  8:05 UTC (permalink / raw)
  To: netdev

Netdev     https://goo.gl/pW8d8y     Oliver Carter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-10-31  0:38 Ubaithullah Masood
  0 siblings, 0 replies; 3395+ messages in thread
From: Ubaithullah Masood @ 2018-10-31  0:38 UTC (permalink / raw)


This is Mr Ubaithullah Masood from Banco Santander Bank S A Hong Kong.
I got your contact during my private search on net..Would you be
interested in a business transaction to act as the beneficiary to
claim 9.8M USD funds of my deceased client who died intestate (
Without a Will)and my bank wants to confiscate the funds if the funds
are not claimed soon. Do get back for more details as this deal is
safe and all documentation will be done legally and we will share 50%
each.
Thanks.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-10-21 16:25 Michael Tirado
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael Tirado @ 2018-10-21 16:25 UTC (permalink / raw)
  To: Airlied, dri-devel, LKML, kraxel, alexander.deucher,
	christian.koenig, David1.zhou, Hongbo.He
  Cc: seanpaul, Gustavo, maarten.lankhorst

[-- Attachment #1: Type: text/plain, Size: 5516 bytes --]

Mapping a drm "dumb" buffer fails on 32-bit system (i686) from what
appears to be a truncated memory address that has been copied
throughout several files. The bug manifests as an -EINVAL when calling
mmap with the offset gathered from DRM_IOCTL_MODE_MAP_DUMB <--
DRM_IOCTL_MODE_ADDFB <-- DRM_IOCTL_MODE_CREATE_DUMB.  I can provide
test code if needed.

The following patch will apply to 4.18 though I've only been able to
test through qemu bochs driver and nouveau. Intel driver worked
without any issues.  I'm not sure if everyone is going to want to
share a constant, and the whitespace is screwed up from gmail's awful
javascript client, so let me know if I should resend this with any
specific changes.  I have also attached the file with preserved
whitespace.

--- linux-4.13.8/drivers/gpu/drm/bochs/bochs.h  2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/bochs/bochs.h 2017-10-20
14:34:50.308633773 +0000
@@ -115,8 +115,6 @@
        return container_of(gem, struct bochs_bo, gem);
 }

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline u64 bochs_bo_mmap_offset(struct bochs_bo *bo)
 {
        return drm_vma_node_offset_addr(&bo->bo.vma_node);
--- linux-4.13.8/drivers/gpu/drm/nouveau/nouveau_drv.h  2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/nouveau/nouveau_drv.h
2017-10-20 14:34:51.581633751 +0000
@@ -57,8 +57,6 @@
 struct nouveau_channel;
 struct platform_device;

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 #include "nouveau_fence.h"
 #include "nouveau_bios.h"

--- linux-4.13.8/drivers/gpu/drm/ast/ast_drv.h  2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/ast/ast_drv.h 2017-10-20
14:34:50.289633773 +0000
@@ -356,8 +356,6 @@
                                uint32_t handle,
                                uint64_t *offset);

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 int ast_mm_init(struct ast_private *ast);
 void ast_mm_fini(struct ast_private *ast);

--- linux-4.13.8/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c
 2017-10-20 14:34:50.644633767 +0000
@@ -21,8 +21,6 @@

 #include "hibmc_drm_drv.h"

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline struct hibmc_drm_private *
 hibmc_bdev(struct ttm_bo_device *bd)
 {
--- linux-4.13.8/drivers/gpu/drm/virtio/virtgpu_ttm.c   2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/virtio/virtgpu_ttm.c
2017-10-20 14:34:53.055633725 +0000
@@ -37,8 +37,6 @@

 #include <linux/delay.h>

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static struct
 virtio_gpu_device *virtio_gpu_get_vgdev(struct ttm_bo_device *bdev)
 {
--- linux-4.13.8/drivers/gpu/drm/qxl/qxl_drv.h  2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/qxl/qxl_drv.h 2017-10-20
14:34:52.072633742 +0000
@@ -88,9 +88,6 @@
                }                                               \
        } while (0)

-#define DRM_FILE_OFFSET 0x100000000ULL
-#define DRM_FILE_PAGE_OFFSET (DRM_FILE_OFFSET >> PAGE_SHIFT)
-
 #define QXL_INTERRUPT_MASK (\
        QXL_INTERRUPT_DISPLAY |\
        QXL_INTERRUPT_CURSOR |\
--- linux-4.13.8/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
 2017-10-20 14:34:43.264633895 +0000
@@ -48,3 +48,1 @@

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
--- linux-4.13.8/drivers/gpu/drm/mgag200/mgag200_drv.h  2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/mgag200/mgag200_drv.h
2017-10-20 14:34:51.404633754 +0000
@@ -276,7 +276,6 @@
 struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev);
 void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 void mgag200_ttm_placement(struct mgag200_bo *bo, int domain);

 static inline int mgag200_bo_reserve(struct mgag200_bo *bo, bool no_wait)
--- linux-4.13.8/drivers/gpu/drm/radeon/radeon_ttm.c    2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/radeon/radeon_ttm.c
2017-10-20 14:34:52.588633733 +0000
@@ -45,8 +45,6 @@
 #include "radeon_reg.h"
 #include "radeon.h"

-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);

--- linux-4.13.8/drivers/gpu/drm/cirrus/cirrus_drv.h    2017-10-18
07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/cirrus/cirrus_drv.h
2017-10-20 14:34:50.333633772 +0000
@@ -178,7 +178,6 @@


 #define to_cirrus_obj(x) container_of(x, struct cirrus_gem_object, base)
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)

                                /* cirrus_mode.c */
 void cirrus_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
--- linux-4.13.8/include/drm/drmP.h     2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/include/drm/drmP.h    2017-10-20
14:35:31.300633060 +0000
@@ -503,4 +503,10 @@
 /* helper for handling conditionals in various for_each macros */
 #define for_each_if(condition) if (!(condition)) {} else

+#if BITS_PER_LONG == 64
+#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
+#else
+#define DRM_FILE_PAGE_OFFSET (0x10000000ULL >> PAGE_SHIFT)
+#endif
+
 #endif

[-- Attachment #2: drm_file_offset.patch --]
[-- Type: application/octet-stream, Size: 4581 bytes --]

--- linux-4.13.8/drivers/gpu/drm/bochs/bochs.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/bochs/bochs.h	2017-10-20 14:34:50.308633773 +0000
@@ -115,8 +115,6 @@
 	return container_of(gem, struct bochs_bo, gem);
 }
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline u64 bochs_bo_mmap_offset(struct bochs_bo *bo)
 {
 	return drm_vma_node_offset_addr(&bo->bo.vma_node);
--- linux-4.13.8/drivers/gpu/drm/nouveau/nouveau_drv.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/nouveau/nouveau_drv.h	2017-10-20 14:34:51.581633751 +0000
@@ -57,8 +57,6 @@
 struct nouveau_channel;
 struct platform_device;
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 #include "nouveau_fence.h"
 #include "nouveau_bios.h"
 
--- linux-4.13.8/drivers/gpu/drm/ast/ast_drv.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/ast/ast_drv.h	2017-10-20 14:34:50.289633773 +0000
@@ -356,8 +356,6 @@
 				uint32_t handle,
 				uint64_t *offset);
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 int ast_mm_init(struct ast_private *ast);
 void ast_mm_fini(struct ast_private *ast);
 
--- linux-4.13.8/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c	2017-10-20 14:34:50.644633767 +0000
@@ -21,8 +21,6 @@
 
 #include "hibmc_drm_drv.h"
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static inline struct hibmc_drm_private *
 hibmc_bdev(struct ttm_bo_device *bd)
 {
--- linux-4.13.8/drivers/gpu/drm/virtio/virtgpu_ttm.c	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/virtio/virtgpu_ttm.c	2017-10-20 14:34:53.055633725 +0000
@@ -37,8 +37,6 @@
 
 #include <linux/delay.h>
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static struct
 virtio_gpu_device *virtio_gpu_get_vgdev(struct ttm_bo_device *bdev)
 {
--- linux-4.13.8/drivers/gpu/drm/qxl/qxl_drv.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/qxl/qxl_drv.h	2017-10-20 14:34:52.072633742 +0000
@@ -88,9 +88,6 @@
 		}						\
 	} while (0)
 
-#define DRM_FILE_OFFSET 0x100000000ULL
-#define DRM_FILE_PAGE_OFFSET (DRM_FILE_OFFSET >> PAGE_SHIFT)
-
 #define QXL_INTERRUPT_MASK (\
 	QXL_INTERRUPT_DISPLAY |\
 	QXL_INTERRUPT_CURSOR |\
--- linux-4.13.8/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c	2017-10-20 14:34:43.264633895 +0000
@@ -48,3 +48,1 @@
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
--- linux-4.13.8/drivers/gpu/drm/mgag200/mgag200_drv.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/mgag200/mgag200_drv.h	2017-10-20 14:34:51.404633754 +0000
@@ -276,7 +276,6 @@
 struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev);
 void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 void mgag200_ttm_placement(struct mgag200_bo *bo, int domain);
 
 static inline int mgag200_bo_reserve(struct mgag200_bo *bo, bool no_wait)
--- linux-4.13.8/drivers/gpu/drm/radeon/radeon_ttm.c	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/radeon/radeon_ttm.c	2017-10-20 14:34:52.588633733 +0000
@@ -45,8 +45,6 @@
 #include "radeon_reg.h"
 #include "radeon.h"
 
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);
 
--- linux-4.13.8/drivers/gpu/drm/cirrus/cirrus_drv.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/drivers/gpu/drm/cirrus/cirrus_drv.h	2017-10-20 14:34:50.333633772 +0000
@@ -178,7 +178,6 @@
 
 
 #define to_cirrus_obj(x) container_of(x, struct cirrus_gem_object, base)
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
 
 				/* cirrus_mode.c */
 void cirrus_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
--- linux-4.13.8/include/drm/drmP.h	2017-10-18 07:38:33.000000000 +0000
+++ linux-4.13.8-modified/include/drm/drmP.h	2017-10-20 14:35:31.300633060 +0000
@@ -503,4 +503,10 @@
 /* helper for handling conditionals in various for_each macros */
 #define for_each_if(condition) if (!(condition)) {} else
 
+#if BITS_PER_LONG == 64
+#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
+#else
+#define DRM_FILE_PAGE_OFFSET (0x10000000ULL >> PAGE_SHIFT)
+#endif
+
 #endif

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
  2018-10-19 20:51 ` (unknown) David Howells
@ 2018-10-19 20:58   ` David Miller
  0 siblings, 0 replies; 3395+ messages in thread
From: David Miller @ 2018-10-19 20:58 UTC (permalink / raw)
  To: dhowells; +Cc: netdev, linux-afs

From: David Howells <dhowells@redhat.com>
Date: Fri, 19 Oct 2018 21:51:35 +0100

> David Miller <davem@davemloft.net> wrote:
> 
>> > Is there going to be a merge of net into net-next before the merge
>> > window opens?  Or do you have a sample merge that I can rebase my
>> > afs-next branch on?
>> 
>> I'll be doing a net to net-next merge some time today.
> 
> Excellent, thanks!

And this is now complete.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
  2018-10-19 14:40 (unknown), David Howells
  2018-10-19 17:46 ` (unknown) David Miller
@ 2018-10-19 20:51 ` David Howells
  2018-10-19 20:58   ` (unknown) David Miller
  1 sibling, 1 reply; 3395+ messages in thread
From: David Howells @ 2018-10-19 20:51 UTC (permalink / raw)
  To: David Miller; +Cc: dhowells, netdev, linux-afs

David Miller <davem@davemloft.net> wrote:

> > Is there going to be a merge of net into net-next before the merge
> > window opens?  Or do you have a sample merge that I can rebase my
> > afs-next branch on?
> 
> I'll be doing a net to net-next merge some time today.

Excellent, thanks!

David

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
  2018-10-19 14:40 (unknown), David Howells
@ 2018-10-19 17:46 ` David Miller
  2018-10-19 20:51 ` (unknown) David Howells
  1 sibling, 0 replies; 3395+ messages in thread
From: David Miller @ 2018-10-19 17:46 UTC (permalink / raw)
  To: dhowells; +Cc: netdev, linux-afs

From: David Howells <dhowells@redhat.com>
Date: Fri, 19 Oct 2018 15:40:53 +0100

> Is there going to be a merge of net into net-next before the merge
> window opens?  Or do you have a sample merge that I can rebase my
> afs-next branch on?

I'll be doing a net to net-next merge some time today.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-10-19 14:40 David Howells
  2018-10-19 17:46 ` (unknown) David Miller
  2018-10-19 20:51 ` (unknown) David Howells
  0 siblings, 2 replies; 3395+ messages in thread
From: David Howells @ 2018-10-19 14:40 UTC (permalink / raw)
  To: David Miller; +Cc: dhowells, netdev, linux-afs

Hi Dave,

Is there going to be a merge of net into net-next before the merge window
opens?  Or do you have a sample merge that I can rebase my afs-next branch on?

The problem I have is that there's a really necessary patch in net that's not
in net-next:

	d7b4c24f45d2efe51b8f213da4593fefd49240ba
	rxrpc: Fix an uninitialised variable

(it fixes a fix that went in net just before you last merged it into
net-next).

So I would like to base my branch on both net and net-next, but the merge is
non-trivial, and I'd rather not hand Linus a merge that conflicts with yours.

The issues are:

 (*) net/sched/cls_api.c

     I think nlmsg_parse() needs to take both rtm_tca_policy and cb->extack as
     its last two arguments.  Each branch fills in one argument and leaves the
     other NULL.

 (*) net/ipv4/ipmr_base.c

     mr_rtm_dumproute() got a piece abstracted out and modified in one branch,
     but the unabstracted branch has a fix in the same area.  I think the
     thing to do is to apply the fix (removing the same two lines) from the
     abstracted-out branch.

Thanks,
David

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-10-09 15:55 Oliver Carter
  0 siblings, 0 replies; 3395+ messages in thread
From: Oliver Carter @ 2018-10-09 15:55 UTC (permalink / raw)
  To: netdev

Netdev     https://goo.gl/Gf1b7B  Oliver

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-09-19 19:57 Saif Hasan
  0 siblings, 0 replies; 3395+ messages in thread
From: Saif Hasan @ 2018-09-19 19:57 UTC (permalink / raw)
  To: netdev; +Cc: David S. Miller, Saif Hasan, Calvin Owens

>From e4f144286efe0f298c11efe58e17b1ab91c7ee3f Mon Sep 17 00:00:00 2001
From: Saif Hasan <has@fb.com>
Date: Mon, 17 Sep 2018 16:28:54 -0700
Subject: [PATCH] mpls: allow routes on ip6gre devices

Summary:

This appears to be necessary and sufficient change to enable `MPLS` on
`ip6gre` tunnels (RFC4023).

This diff allows IP6GRE devices to be recognized by MPLS kernel module
and hence user can configure interface to accept packets with mpls
headers as well setup mpls routes on them.

Test Plan:

Test plan consists of multiple containers connected via GRE-V6 tunnel.
Then carrying out testing steps as below.

- Carry out necessary sysctl settings on all containers

```
sysctl -w net.mpls.platform_labels=65536
sysctl -w net.mpls.ip_ttl_propagate=1
sysctl -w net.mpls.conf.lo.input=1
```

- Establish IP6GRE tunnels

```
ip -6 tunnel add name if_1_2_1 mode ip6gre \
  local 2401:db00:21:6048:feed:0::1 \
  remote 2401:db00:21:6048:feed:0::2 key 1
ip link set dev if_1_2_1 up
sysctl -w net.mpls.conf.if_1_2_1.input=1
ip -4 addr add 169.254.0.2/31 dev if_1_2_1 scope link

ip -6 tunnel add name if_1_3_1 mode ip6gre \
  local 2401:db00:21:6048:feed:0::1 \
  remote 2401:db00:21:6048:feed:0::3 key 1
ip link set dev if_1_3_1 up
sysctl -w net.mpls.conf.if_1_3_1.input=1
ip -4 addr add 169.254.0.4/31 dev if_1_3_1 scope link
```

- Install MPLS encap rules on node-1 towards node-2

```
ip route add 192.168.0.11/32 nexthop encap mpls 32/64 \
  via inet 169.254.0.3 dev if_1_2_1
```

- Install MPLS forwarding rules on node-2 and node-3
```
// node2
ip -f mpls route add 32 via inet 169.254.0.7 dev if_2_4_1

// node3
ip -f mpls route add 64 via inet 169.254.0.12 dev if_4_3_1
```

- Ping 192.168.0.11 (node4) from 192.168.0.1 (node1) (where routing
  towards 192.168.0.1 is via IP route directly towards node1 from node4)
```
ping 192.168.0.11
```

- tcpdump on interface to capture ping packets wrapped within MPLS
  header which inturn wrapped within IP6GRE header

```
16:43:41.121073 IP6
  2401:db00:21:6048:feed::1 > 2401:db00:21:6048:feed::2:
  DSTOPT GREv0, key=0x1, length 100:
  MPLS (label 32, exp 0, ttl 255) (label 64, exp 0, [S], ttl 255)
  IP 192.168.0.1 > 192.168.0.11:
  ICMP echo request, id 1208, seq 45, length 64

0x0000:  6000 2cdb 006c 3c3f 2401 db00 0021 6048  `.,..l<?$....!`H
0x0010:  feed 0000 0000 0001 2401 db00 0021 6048  ........$....!`H
0x0020:  feed 0000 0000 0002 2f00 0401 0401 0100  ......../.......
0x0030:  2000 8847 0000 0001 0002 00ff 0004 01ff  ...G............
0x0040:  4500 0054 3280 4000 ff01 c7cb c0a8 0001  E..T2.@.........
0x0050:  c0a8 000b 0800 a8d7 04b8 002d 2d3c a05b  ...........--<.[
0x0060:  0000 0000 bcd8 0100 0000 0000 1011 1213  ................
0x0070:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
0x0080:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
0x0090:  3435 3637                                4567
```

Signed-off-by: Saif Hasan <has@fb.com>
---
 net/mpls/af_mpls.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
index 7a4de6d618b1..aeb5bf2f7595 100644
--- a/net/mpls/af_mpls.c
+++ b/net/mpls/af_mpls.c
@@ -1533,10 +1533,11 @@ static int mpls_dev_notify(struct
notifier_block *this, unsigned long event,
        unsigned int flags;

        if (event == NETDEV_REGISTER) {
-               /* For now just support Ethernet, IPGRE, SIT and IPIP devices */
+    /* For now just support Ethernet, IPGRE, IP6GRE, SIT and IPIP devices */
                if (dev->type == ARPHRD_ETHER ||
                    dev->type == ARPHRD_LOOPBACK ||
                    dev->type == ARPHRD_IPGRE ||
+                   dev->type == ARPHRD_IP6GRE ||
                    dev->type == ARPHRD_SIT ||
                    dev->type == ARPHRD_TUNNEL) {
                        mdev = mpls_add_dev(dev);

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-09-16 13:39 iluminati
  0 siblings, 0 replies; 3395+ messages in thread
From: iluminati @ 2018-09-16 13:39 UTC (permalink / raw)





-- 
join the Illuminati secret brotherhood and get $3,000,000.00

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-08-27 14:50 Christoph Hellwig
  0 siblings, 0 replies; 3395+ messages in thread
From: Christoph Hellwig @ 2018-08-27 14:50 UTC (permalink / raw)
  To: iommu
  Cc: Marek Szyprowski, Robin Murphy, Paul Burton, Greg Kroah-Hartman,
	linux-mips, linux-kernel

Subject: [RFC] merge dma_direct_ops and dma_noncoherent_ops

While most architectures are either always or never dma coherent for a
given build, the arm, arm64, mips and soon arc architectures can have
different dma coherent settings on a per-device basis.  Additionally
some mips builds can decide at boot time if dma is coherent or not.

I've started to look into handling noncoherent dma in swiotlb, and
moving the dma-iommu ops into common code [1], and for that we need a
generic way to check if a given device is coherent or not.  Moving
this flag into struct device also simplifies the conditionally coherent
architecture implementations.

These patches are also available in a git tree given that they have
a few previous posted dependencies:

    git://git.infradead.org/users/hch/misc.git dma-direct-noncoherent-merge

Gitweb:

    http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/dma-direct-noncoherent-merge

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-08-24  4:59 Dave Airlie
  0 siblings, 0 replies; 3395+ messages in thread
From: Dave Airlie @ 2018-08-24  4:59 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML, dri-devel

Hi Linus,

Just a couple of fixes PRs for rc1,

One MAINTAINERS address change, two panels fixes, and set of amdgpu
fixes (build fixes, display fixes and some others).

Thanks
Dave.

drm-next-2018-08-24:
amdgpu and panel/misc fixes.
The following changes since commit 3d63a3c14741ed015948943076f3c6a2f2cd7b27:

  Merge tag 'drm-msm-next-2018-08-10' of
git://people.freedesktop.org/~robclark/linux into drm-next (2018-08-17
10:46:51 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm tags/drm-next-2018-08-24

for you to fetch changes up to 3e20e97c2d55fb18e4b06d16478edc757483b7db:

  Merge tag 'drm-misc-next-fixes-2018-08-23-1' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next (2018-08-24
13:41:03 +1000)

----------------------------------------------------------------
amdgpu and panel/misc fixes.

----------------------------------------------------------------
Alex Deucher (1):
      drm/amdgpu/display: disable eDP fast boot optimization on DCE8

Christian König (3):
      drm/amdgpu: fix incorrect use of fcheck
      drm/amdgpu: fix incorrect use of drm_file->pid
      drm/amdgpu: fix amdgpu_amdkfd_remove_eviction_fence v3

Dave Airlie (3):
      Merge tag 'drm-misc-next-fixes-2018-08-22' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next
      Merge branch 'drm-next-4.19' of
git://people.freedesktop.org/~agd5f/linux into drm-next
      Merge tag 'drm-misc-next-fixes-2018-08-23-1' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next

Dmytro Laktyushkin (3):
      drm/amd/display: fix dp_ss_control vbios flag parsing
      drm/amd/display: make dp_ss_off optional
      drm/amd/display: fix dentist did ranges

Evan Quan (1):
      drm/amdgpu: set correct base for THM/NBIF/MP1 IP

Kai-Heng Feng (1):
      drm/edid: Add 6 bpc quirk for SDC panel in Lenovo B50-80

Leo (Sunpeng) Li (2):
      Revert "drm/amdgpu/display: Replace CONFIG_DRM_AMD_DC_DCN1_0
with CONFIG_X86"
      drm/amd/display: Don't build DCN1 when kcov is enabled

Samson Tam (1):
      drm/amd/display: Do not retain link settings

Sean Paul (2):
      drm/panel: simple: tv123wam: Add unprepare delay
      MAINTAINERS: drm-misc: Change seanpaul's email address

Yintian Tao (2):
      drm/amdgpu: access register without KIQ
      drm/powerplay: enable dpm under pass-through

 MAINTAINERS                                        |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c   | 103 +++++++++------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c          |  21 ++---
 drivers/gpu/drm/amd/amdgpu/vega20_reg_init.c       |   3 +
 drivers/gpu/drm/amd/amdgpu/vi.c                    |   4 +-
 drivers/gpu/drm/amd/display/Kconfig                |   6 ++
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |  10 +-
 drivers/gpu/drm/amd/display/dc/Makefile            |   2 +-
 .../amd/display/dc/bios/command_table_helper2.c    |   2 +-
 drivers/gpu/drm/amd/display/dc/calcs/Makefile      |   2 +-
 drivers/gpu/drm/amd/display/dc/core/dc.c           |  21 ++++-
 drivers/gpu/drm/amd/display/dc/core/dc_debug.c     |   2 +-
 drivers/gpu/drm/amd/display/dc/core/dc_link.c      |   6 +-
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c  |  12 +--
 drivers/gpu/drm/amd/display/dc/dc.h                |   2 +-
 .../gpu/drm/amd/display/dc/dce/dce_clock_source.c  |   6 +-
 .../gpu/drm/amd/display/dc/dce/dce_clock_source.h  |   2 +-
 drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c    |  18 ++--
 drivers/gpu/drm/amd/display/dc/dce/dce_clocks.h    |   2 +-
 drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c      |   6 +-
 .../drm/amd/display/dc/dce/dce_stream_encoder.c    |  20 ++--
 .../amd/display/dc/dce110/dce110_hw_sequencer.c    |  10 +-
 drivers/gpu/drm/amd/display/dc/gpio/Makefile       |   2 +-
 drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c   |   4 +-
 drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c |   4 +-
 drivers/gpu/drm/amd/display/dc/i2caux/Makefile     |   2 +-
 drivers/gpu/drm/amd/display/dc/i2caux/i2caux.c     |   4 +-
 drivers/gpu/drm/amd/display/dc/inc/core_types.h    |   7 +-
 drivers/gpu/drm/amd/display/dc/irq/Makefile        |   2 +-
 drivers/gpu/drm/amd/display/dc/irq/irq_service.c   |   2 +-
 drivers/gpu/drm/amd/display/dc/os_types.h          |   2 +-
 .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c  |   4 +-
 drivers/gpu/drm/drm_edid.c                         |   3 +
 drivers/gpu/drm/panel/panel-simple.c               |   3 +
 35 files changed, 161 insertions(+), 142 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-08-22  9:07 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2018-08-22  9:07 UTC (permalink / raw)




-- 

внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2018 
Почты технической поддержки ©2018

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-08-09  9:23 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2018-08-09  9:23 UTC (permalink / raw)




внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль: 
Подтверждение пароля: 
Адрес электронной почты: 
телефон: 

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: 006524
Почты технической поддержки &copy; 2018

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-07-29  9:58 Sumitomo Rubber
  0 siblings, 0 replies; 3395+ messages in thread
From: Sumitomo Rubber @ 2018-07-29  9:58 UTC (permalink / raw)




-- 
Did you receive our representative email ?

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-07-28 10:46 Andrew Martinez
  0 siblings, 0 replies; 3395+ messages in thread
From: Andrew Martinez @ 2018-07-28 10:46 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 252 bytes --]

 body {height: 100%; color:#000000; font-size:12pt; font-family:arial, helvetica, sans-serif;}


Brauchen Sie einen Kredit? Wenn ja, mailen Sie uns jetzt für weitere Informationen

Do you need a loan of any kind? If Yes email us now for more info

[-- Attachment #2: Type: text/html, Size: 519 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-07-28 10:14 Andrew Martinez
  0 siblings, 0 replies; 3395+ messages in thread
From: Andrew Martinez @ 2018-07-28 10:14 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 158 bytes --]




Brauchen Sie einen Kredit? Wenn ja, mailen Sie uns jetzt für weitere Informationen

Do you need a loan of any kind? If Yes email us now for more info

[-- Attachment #2: Type: text/html, Size: 399 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-07-06  1:26 Dave Airlie
  0 siblings, 0 replies; 3395+ messages in thread
From: Dave Airlie @ 2018-07-06  1:26 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML, dri-devel

Hi Linus, (apologies for blank body pull earlier)

This is the drm fixes for rc4. It's a bit larger than I'd like but the
exynos cleanups are pretty mechanical, and I'd rather have them in
sooner rather than later so we can avoid too much conflicts around
them. The non-mechanincal exynos changes are mostly fixes for new
feature recently introduced.

i915:
    GVT and GGTT mapping fixes

amdgpu:
    HDMI2.0 4K@60 Hz regression
    Hotplug fixes for dual-GPU laptops to make power management better
    Misc vega12 bios fixes, a race fix and some typos.

sii8620 bridge: small fixes around mode setting

core: use kvzalloc to allocate blob property memory.

If the exynos changes are too much, I'm happy to push back, and the
blank pull was thanks to baby induced sleep deprivation, fat fingers
and gmail.

Thanks,
Dave.

drm-fixes-2018-07-06:
amdgpu, i915, exynos, udl, sii8620 and core fixes
The following changes since commit 021c91791a5e7e85c567452f1be3e4c2c6cb6063:

  Linux 4.18-rc3 (2018-07-01 16:04:53 -0700)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm tags/drm-fixes-2018-07-06

for you to fetch changes up to c78d1f9d95a9f2cd5546c64f5315f54681dd6055:

  Merge tag 'exynos-drm-fixes-for-v4.18-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into
drm-fixes (2018-07-06 10:47:02 +1000)

----------------------------------------------------------------
amdgpu, i915, exynos, udl, sii8620 and core fixes

----------------------------------------------------------------
Alex Deucher (2):
      drm/amdgpu: fix swapped emit_ib_size in vce3
      drm/amdgpu/pm: fix display count in non-DC path

Andrzej Pietrasiewicz (1):
      drm/exynos: scaler: Reset hardware before starting the operation

Chris Wilson (1):
      drm/i915: Try GGTT mmapping whole object as partial

Dave Airlie (4):
      Merge tag 'drm-misc-fixes-2018-07-05' of
git://anongit.freedesktop.org/drm/drm-misc into drm-fixes
      Merge tag 'drm-intel-fixes-2018-07-05' of
git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      Merge branch 'drm-fixes-4.18' of
git://people.freedesktop.org/~agd5f/linux into drm-fixes
      Merge tag 'exynos-drm-fixes-for-v4.18-rc4' of
git://git.kernel.org/.../daeinki/drm-exynos into drm-fixes

Evan Quan (3):
      drm/amd/powerplay: correct vega12 thermal support as true
      drm/amd/powerplay: correct vega12 bootup values settings
      drm/amd/powerplay: smc_dpm_info structure change

Jani Nikula (1):
      Merge tag 'gvt-fixes-2018-07-03' of
https://github.com/intel/gvt-linux into drm-intel-fixes

Lyude Paul (3):
      drm/amdgpu: Make struct amdgpu_atif private to amdgpu_acpi.c
      drm/amdgpu: Add amdgpu_atpx_get_dhandle()
      drm/amdgpu: Dynamically probe for ATIF handle (v2)

Maciej Purski (3):
      drm/bridge/sii8620: Send AVI infoframe in all MHL versions
      drm/bridge/sii8620: Fix display of packed pixel modes
      drm/bridge/sii8620: Fix link mode selection

Marek Szyprowski (10):
      drm/exynos: ipp: Rework checking for the correct buffer formats
      drm/exynos: rotator: Fix DRM_MODE_REFLECT_{X,Y} interpretation
      drm/exynos: scaler: Fix support for YUV420, YUV422 and YUV444 modes
      drm/exynos: gsc: Use real buffer width for configuring the hardware
      drm/exynos: gsc: Increase Exynos5433 buffer width alignment to 16 pixels
      drm/exynos: gsc: Fix DRM_MODE_REFLECT_{X,Y} interpretation
      drm/exynos: gsc: Fix support for NV16/61, YUV420/YVU420 and YUV422 modes
      drm/exynos: fimc: Use real buffer width for configuring the hardware
      drm/exynos: decon5433: Fix per-plane global alpha for XRGB modes
      drm/exynos: decon5433: Fix WINCONx reset value

Michel Dänzer (1):
      drm: Use kvzalloc for allocating blob property memory

Mikita Lipski (2):
      drm/amd/display: adding ycbcr420 pixel encoding for hdmi
      drm/amd/display: add a check for display depth validity

Mikulas Patocka (1):
      drm/udl: fix display corruption of the last line

Nicolai Hähnle (1):
      drm/amdgpu: fix user fence write race condition

Stefan Agner (1):
      drm/exynos: ipp: use correct enum type

Thomas Zimmermann (3):
      drm/exynos: Replace drm_framebuffer_{un/reference} with put,get functions
      drm/exynos: Replace drm_gem_object_unreference_unlocked with put function
      drm/exynos: Replace drm_dev_unref with drm_dev_put

Xiaolin Zhang (1):
      drm/i915/gvt: changed DDI mode emulation type

Zhao Yan (1):
      drm/i915/gvt: fix a bug of partially write ggtt enties

 drivers/gpu/drm/amd/amdgpu/amdgpu.h                |  46 ++------
 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c           | 131 +++++++++++++++++----
 drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c   |   6 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c             |  12 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c             |   2 +-
 drivers/gpu/drm/amd/amdgpu/vce_v3_0.c              |   4 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |  49 +++++++-
 drivers/gpu/drm/amd/include/atomfirmware.h         |   5 +-
 drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c |  96 +++++++++++++--
 drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h |   5 +
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.c |   4 +
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_hwmgr.h |   3 +
 .../amd/powerplay/hwmgr/vega12_processpptables.c   |   2 +
 .../drm/amd/powerplay/inc/vega12/smu9_driver_if.h  |   5 +-
 drivers/gpu/drm/bridge/sil-sii8620.c               |  86 +++++++++-----
 drivers/gpu/drm/drm_property.c                     |   6 +-
 drivers/gpu/drm/exynos/exynos5433_drm_decon.c      |   6 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.c            |   4 +-
 drivers/gpu/drm/exynos/exynos_drm_fb.c             |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_fimc.c           |  17 +--
 drivers/gpu/drm/exynos/exynos_drm_gem.c            |  10 +-
 drivers/gpu/drm/exynos/exynos_drm_gsc.c            |  51 ++++----
 drivers/gpu/drm/exynos/exynos_drm_ipp.c            | 110 +++++++++--------
 drivers/gpu/drm/exynos/exynos_drm_plane.c          |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_rotator.c        |   4 +-
 drivers/gpu/drm/exynos/exynos_drm_scaler.c         |  44 +++++--
 drivers/gpu/drm/exynos/regs-gsc.h                  |   1 +
 drivers/gpu/drm/i915/gvt/display.c                 |   6 +-
 drivers/gpu/drm/i915/gvt/gtt.c                     |  58 +++++++++
 drivers/gpu/drm/i915/gvt/gtt.h                     |   2 +
 drivers/gpu/drm/i915/i915_gem.c                    |  28 +++--
 drivers/gpu/drm/i915/i915_vma.c                    |   2 +-
 drivers/gpu/drm/udl/udl_fb.c                       |   5 +-
 drivers/gpu/drm/udl/udl_transfer.c                 |  11 +-
 34 files changed, 583 insertions(+), 242 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-07-05 10:36 rosdi ablatiff
  0 siblings, 0 replies; 3395+ messages in thread
From: rosdi ablatiff @ 2018-07-05 10:36 UTC (permalink / raw)
  To: dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #1.2: Type: text/html, Size: 1 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-06-23 21:08 David Lechner
  0 siblings, 0 replies; 3395+ messages in thread
From: David Lechner @ 2018-06-23 21:08 UTC (permalink / raw)
  To: linux-remoteproc, devicetree, linux-omap, linux-arm-kernel
  Cc: David Lechner, Ohad Ben-Cohen, Bjorn Andersson, Rob Herring,
	Mark Rutland, Benoît Cousson, Tony Lindgren, Sekhar Nori,
	Kevin Hilman, linux-kernel


Date: Sat, 23 Jun 2018 15:43:59 -0500
Subject: [PATCH 0/8] New remoteproc driver for TI PRU

This series adds a new remoteproc driver for the TI Programmable Runtime Unit
(PRU) that is present in some TI Sitara processors. This code has been tested
working on AM1808 (LEGO MINDSTORMS EV3) and AM3358 (BeagleBone Green).

There are a couple of quirks that had to be worked around in order to get this
working. The PRU units have multiple memory maps. Notably, both the instruction
RAM and data RAM are at address 0x0. This caused the da_to_va callback to not
work because the same address could refer to two different locations. To work
around this, the first two patches add a "map" parameter to the da_to_va
callbacks so that we have an extra bit of information to make this distinction.

Also, on AM38xx we have to use pdata for accessing a reset since there is not
a reset controller. There are several other devices doing this, so the seems
the best way for now.

For anyone else who would like to test, I used the rpmsg-client-sample driver.
Just enable it in your kernel config. Then grab the appropriate firmware[1]
and put in in /lib/firmware/. Use sysfs to start and stop the PRU:

        echo start > /sys/class/remoteproc<n>/state
        echo stop > /sys/class/remoteproc<n>/state

[1]: firmware downloads:

AM18XX: https://github.com/ev3dev/ev3dev-pru-firmware/releases/download/mainline-kernel-testing/AM18xx-PRU-rpmsg-client-sample.zip
AM335X: https://github.com/ev3dev/ev3dev-pru-firmware/releases/download/mainline-kernel-testing/AM335x-PRU-rpmsg-client-sample.zip

David Lechner (8):
  remoteproc: add map parameter to da_to_va
  remoteproc: add page lookup for TI PRU to ELF loader
  ARM: OMAP2+: add pdata quirks for PRUSS reset
  dt-bindings: add bindings for TI PRU as remoteproc
  remoteproc: new driver for TI PRU
  ARM: davinci_all_defconfig: enable PRU remoteproc module
  ARM: dts: da850: add node for PRUSS
  ARM: dts: am33xx: add node for PRU remoteproc

 .../bindings/remoteproc/ti_pru_rproc.txt      |  51 ++
 MAINTAINERS                                   |   5 +
 arch/arm/boot/dts/am33xx.dtsi                 |   9 +
 arch/arm/boot/dts/da850.dtsi                  |   8 +
 arch/arm/configs/davinci_all_defconfig        |   2 +
 arch/arm/mach-omap2/pdata-quirks.c            |   9 +
 drivers/remoteproc/Kconfig                    |   7 +
 drivers/remoteproc/Makefile                   |   1 +
 drivers/remoteproc/imx_rproc.c                |   2 +-
 drivers/remoteproc/keystone_remoteproc.c      |   3 +-
 drivers/remoteproc/qcom_adsp_pil.c            |   2 +-
 drivers/remoteproc/qcom_q6v5_pil.c            |   2 +-
 drivers/remoteproc/qcom_wcnss.c               |   2 +-
 drivers/remoteproc/remoteproc_core.c          |  10 +-
 drivers/remoteproc/remoteproc_elf_loader.c    | 117 +++-
 drivers/remoteproc/remoteproc_internal.h      |   2 +-
 drivers/remoteproc/st_slim_rproc.c            |   2 +-
 drivers/remoteproc/ti_pru_rproc.c             | 660 ++++++++++++++++++
 drivers/remoteproc/wkup_m3_rproc.c            |   3 +-
 include/linux/platform_data/ti-pruss.h        |  18 +
 include/linux/remoteproc.h                    |   2 +-
 include/uapi/linux/elf-em.h                   |   1 +
 22 files changed, 899 insertions(+), 19 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/remoteproc/ti_pru_rproc.txt
 create mode 100644 drivers/remoteproc/ti_pru_rproc.c
 create mode 100644 include/linux/platform_data/ti-pruss.h

-- 
2.17.1

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-06-16  8:15 Mrs Mavis Wanczyk
  0 siblings, 0 replies; 3395+ messages in thread
From: Mrs Mavis Wanczyk @ 2018-06-16  8:15 UTC (permalink / raw)




-- 
This is the second time i am sending you this mail.

I, Mavis Wanczyk donates $ 5 Million Dollars from part of my Powerball  
Jackpot Lottery of $ 758 Million Dollars, respond with your details  
for claims.

I await your earliest response and God Bless you

Good luck.
Mrs Mavis L. Wanczyk

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-06-13 15:48 Ubaithullah Masood
  0 siblings, 0 replies; 3395+ messages in thread
From: Ubaithullah Masood @ 2018-06-13 15:48 UTC (permalink / raw)


Could you act as the beneficiary to claim 9.8M USD that my bank wants
to consifacte? I will give you 50% and Every documentation would be
put in placed.
Mr Ubaithullah from Hong Kong.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-31 17:11 Adam Richter via Containers
  0 siblings, 0 replies; 3395+ messages in thread
From: Adam Richter via Containers @ 2018-05-31 17:11 UTC (permalink / raw)
  To: FRoss Perry, alexander deucher, containers, sca38018, westglen

http://voice.promang.net
Adam Richter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-29  7:26 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2018-05-29  7:26 UTC (permalink / raw)


пользователь веб-почты

Обратите внимание, что 95% ваших писем, полученных после последнего раза, когда вам нужно обновить сервер своей веб-почты в нашей базе данных, были отложены. Регулярно получать и отправлять свои сообщения. Техническая команда нашей электронной почты обновит вашу учетную запись в течение 3 рабочих дней. Если вы этого не сделаете, ваша учетная запись будет временно приостановлена нашими службами. Чтобы снова проверить свой почтовый ящик, пришлите следующую информацию:

обычный:
Имя пользователя:
пароль:
Подтвердите Пароль:

Предупреждение!! Если это откажется обновлять аккаунты в течение двух
дней с момента получения электронной почты, он навсегда потеряет счета
владельцы учетных записей электронной почты.

Спасибо за сотрудничество!

Copyright © 2017-2018 Служба технической поддержки WebMail, Inc.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-25  3:26 Bounced mail
  0 siblings, 0 replies; 3395+ messages in thread
From: Bounced mail @ 2018-05-25  3:26 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

The original message was received at Fri, 25 May 2018 11:26:13 +0800
from lists.01.org [137.8.247.250]

----- The following addresses had permanent fatal errors -----
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-05-18 12:04 DaeRyong Jeong
  0 siblings, 0 replies; 3395+ messages in thread
From: DaeRyong Jeong @ 2018-05-18 12:04 UTC (permalink / raw)
  To: davem, kuznet, yoshfuji
  Cc: netdev, linux-kernel, byoungyoung, kt0755, bammanag

Bcc: 
Subject: WARNING in ip_recv_error
Reply-To: 

We report the crash: WARNING in ip_recv_error


This crash has been found in v4.17-rc1 using RaceFuzzer (a modified
version of Syzkaller), which we describe more at the end of this
report. Our analysis shows that the race occurs when invoking two
syscalls concurrently, do_ipv6_setsockopt and inet_recvmsg.


Diagnosis:
We think the concurrent execution of do_ipv6_setsockopt() with optname
IPV6_ADDRFORM and inet_recvmsg() causes the crash. do_ipv6_setsockopt()
can update sk->prot to &udp_prot and sk->sk_family to PF_INET. But
inet_recvmsg() can execute sk->sk_prot->recvmsg() right after that
sk->prot is updated and sk->sk_family is not updated by
do_ipv6_setsockopt(). This will lead WARN_ON in ip_recv_error().


Thread interleaving:
CPU0 (do_ipv6_setsockopt)			CPU1 (inet_recvmsg)
=====						=====
struct proto *prot = &udp_prot;
...
sk->sk_prot = prot;
sk->sk_socket->ops = &inet_dgram_ops;
						err = sk->sk_prot->recvmsg(sk, msg, size, flags & MSG_DONTWAIT,
									flags & ~MSG_DONTWAIT, &addr_len);

						(in udp_recvmsg)
						if (flags & MSG_ERRQUEUE)
							return ip_recv_error(sk, msg, len, addr_len);
	
						(in ip_recv_error)
						WARN_ON_ONCE(sk->sk_family == AF_INET6);
sk->sk_family = PF_INET;


Call Sequence:
CPU0
=====
udpv6_setsockopt
	ipv6_setsockopt
		do_ipv6_setsockopt

CPU1
=====
sock_recvmsg
	sock_recvmsg_nosec
		inet_recvmsg
			udp_recvmsg


==================================================================
WARNING: CPU: 1 PID: 32600 at /home/daeryong/workspace/new-race-fuzzer/kernels_repo/kernel_v4.17-rc1/net/ipv4/ip_sockglue.c:508 ip_recv_error+0x6f2/0x720 net/ipv4/ip_sockglue.c:508
Kernel panic - not syncing: panic_on_warn set ...

CPU: 1 PID: 32600 Comm: syz-executor0 Not tainted 4.17.0-rc1 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x166/0x21c lib/dump_stack.c:113
 panic+0x1a0/0x3a7 kernel/panic.c:184
 __warn+0x191/0x1a0 kernel/panic.c:536
 report_bug+0x132/0x1b0 lib/bug.c:186
 fixup_bug.part.11+0x28/0x50 arch/x86/kernel/traps.c:178
 fixup_bug arch/x86/kernel/traps.c:247 [inline]
 do_error_trap+0x28b/0x2d0 arch/x86/kernel/traps.c:296
 do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:315
 invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:992
RIP: 0010:ip_recv_error+0x6f2/0x720 net/ipv4/ip_sockglue.c:508
RSP: 0018:ffff8801dadff630 EFLAGS: 00010212
RAX: 0000000000040000 RBX: 0000000000002002 RCX: ffffffff8327de12
RDX: 000000000000008a RSI: ffffc90001a0c000 RDI: ffff8801be615010
RBP: ffff8801dadff720 R08: 0000000000002002 R09: ffff8801dadff918
R10: ffff8801dadff738 R11: ffff8801dadffaff R12: ffff8801be615000
R13: ffff8801dadffd50 R14: 1ffff1003b5bfece R15: ffff8801dadffb90
 udp_recvmsg+0x834/0xa10 net/ipv4/udp.c:1571
 inet_recvmsg+0x121/0x420 net/ipv4/af_inet.c:830
 sock_recvmsg_nosec net/socket.c:802 [inline]
 sock_recvmsg+0x7f/0xa0 net/socket.c:809
 ___sys_recvmsg+0x1f0/0x430 net/socket.c:2279
 __sys_recvmsg+0xfc/0x1c0 net/socket.c:2328
 __do_sys_recvmsg net/socket.c:2338 [inline]
 __se_sys_recvmsg net/socket.c:2335 [inline]
 __x64_sys_recvmsg+0x48/0x50 net/socket.c:2335
 do_syscall_64+0x15f/0x4a0 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x4563f9
RSP: 002b:00007f24f6927b28 EFLAGS: 00000246 ORIG_RAX: 000000000000002f
RAX: ffffffffffffffda RBX: 000000000072bfa0 RCX: 00000000004563f9
RDX: 0000000000002002 RSI: 0000000020000240 RDI: 0000000000000016
RBP: 00000000000004e4 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f24f69286d4
R13: 00000000ffffffff R14: 00000000006fc600 R15: 0000000000000000
Dumping ftrace buffer:
   (ftrace buffer empty)
Kernel Offset: disabled
Rebooting in 86400 seconds..
==================================================================


= About RaceFuzzer

RaceFuzzer is a customized version of Syzkaller, specifically tailored
to find race condition bugs in the Linux kernel. While we leverage
many different technique, the notable feature of RaceFuzzer is in
leveraging a custom hypervisor (QEMU/KVM) to interleave the
scheduling. In particular, we modified the hypervisor to intentionally
stall a per-core execution, which is similar to supporting per-core
breakpoint functionality. This allows RaceFuzzer to force the kernel
to deterministically trigger racy condition (which may rarely happen
in practice due to randomness in scheduling).

RaceFuzzer's C repro always pinpoints two racy syscalls. Since C
repro's scheduling synchronization should be performed at the user
space, its reproducibility is limited (reproduction may take from 1
second to 10 minutes (or even more), depending on a bug). This is
because, while RaceFuzzer precisely interleaves the scheduling at the
kernel's instruction level when finding this bug, C repro cannot fully
utilize such a feature. Please disregard all code related to
"should_hypercall" in the C repro, as this is only for our debugging
purposes using our own hypervisor.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-14 17:30 Jessica
  0 siblings, 0 replies; 3395+ messages in thread
From: Jessica @ 2018-05-14 17:30 UTC (permalink / raw)


Hallo groeten, kunt u me alsjeblieft dringend terugschrijven.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-14  6:33 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2018-05-14  6:33 UTC (permalink / raw)




пользователь веб-почты

Обратите внимание, что 95% ваших писем, полученных после обновления сервера веб-почты в последнее время в нашей базе данных, были отложены. Регулярно получать и отправлять свои сообщения. Техническая команда нашей веб-почты обновит вашу учетную запись в течение 3 рабочих дней. Если вы этого не сделаете, ваша учетная запись будет временно приостановлена нашими службами. Чтобы повторно подтвердить свой почтовый ящик, пришлите следующую информацию:

обычный:
Имя пользователя: 
пароль:
Подтвердите Пароль: 

Предупреждение!! Если это не позволит обновлять учетные записи в
течение двух дней после получения электронной почты, они будут
постоянно потерять учетные записи владельцев учетных записей
веб-почты.

Спасибо за ваше сотрудничество!

Copyright &copy; 2017-2018 Служба технической поддержки WebMail, Inc.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-05 22:07 Shane Missler
  0 siblings, 0 replies; 3395+ messages in thread
From: Shane Missler @ 2018-05-05 22:07 UTC (permalink / raw)




Hallo, Sie haben eine Spende von 5.800.000,00EUR, Am Shane Missler der Gewinner des Powerball-Jackpots im Wert von $ 451 Millionen. Ich spende einen Teil meiner Lotterie an fünf glückliche Menschen und Wohltätigkeitseinrichtungen zum Gedenken an meine verstorbene Mutter, die an Krebs gestorben ist. Kontaktieren Sie mich für weitere Informationen unter: shanemissler84@gmail.com 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-05-04 15:21 Mark Henry
  0 siblings, 0 replies; 3395+ messages in thread
From: Mark Henry @ 2018-05-04 15:21 UTC (permalink / raw)


Hello
My name is Gen Henry Mark, I am US military officer,i will like to get
acquainted with you, I read your profile and I really wish to indicate
my interest, please I'll be glad if you get back to me so that i can
contact you and tell you more about my self ,i wish to hear from you
soon.
Best regards,
Gen Henry Mark

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-04-20  8:02 ` Christoph Hellwig
  0 siblings, 0 replies; 3395+ messages in thread
From: Christoph Hellwig @ 2018-04-20  8:02 UTC (permalink / raw)
  Cc: linux-arch, linux-xtensa, Michal Simek, Vincent Chen,
	linux-c6x-dev, linux-parisc, linux-sh, linux-hexagon,
	linux-kernel, linux-m68k, openrisc, Greentime Hu, linux-alpha,
	sparclinux, nios2-dev, linux-snps-arc, linux-arm-kernel

To: iommu@lists.linux-foundation.org
Cc: linux-arch@vger.kernel.org
Cc: Michal Simek <monstr@monstr.eu>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Vincent Chen <deanbo422@gmail.com>
Cc: linux-alpha@vger.kernel.org
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: linux-hexagon@vger.kernel.org
Cc: linux-m68k@lists.linux-m68k.org
Cc: nios2-dev@lists.rocketboards.org
Cc: openrisc@lists.librecores.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-kernel@vger.kernel.org
Subject: [RFC] common non-cache coherent direct dma mapping ops

Hi all,

this series continues consolidating the dma-mapping code, with a focus
on architectures that do not (always) provide cache coherence for DMA.
Three architectures (arm, mips and powerpc) are still left to be
converted later due to complexity of their dma ops selection.

The dma-noncoherent ops calls the dma-direct ops for the actual
translation of streaming mappins and allow the architecture to provide
any cache flushing required for cpu to device and/or device to cpu
ownership transfers.  The dma coherent allocator is for now still left
entirely to architecture supplied implementations due the amount of
variations.  Hopefully we can do some consolidation for them later on
as well.

A lot of architectures are currently doing very questionable things
in their dma mapping routines, which are documented in the changelogs
for each patch.  Please review them very careful and correct me on
incorrect assumptions.

Because this series sits on top of two previously submitted series
a git tree might be useful to actually test it.  It is provided here:

    git://git.infradead.org/users/hch/misc.git generic-dma-noncoherent

Gitweb:

    http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/generic-dma-noncoherent

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-04-20  8:02 ` Christoph Hellwig
  0 siblings, 0 replies; 3395+ messages in thread
From: Christoph Hellwig @ 2018-04-20  8:02 UTC (permalink / raw)
  Cc: linux-arch, linux-xtensa, Michal Simek, Vincent Chen,
	linux-c6x-dev, linux-parisc, linux-sh, linux-hexagon,
	linux-kernel, linux-m68k, openrisc, Greentime Hu, linux-alpha,
	sparclinux, nios2-dev, linux-snps-arc, linux-arm-kernel

To: iommu@lists.linux-foundation.org
Cc: linux-arch@vger.kernel.org
Cc: Michal Simek <monstr@monstr.eu>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Vincent Chen <deanbo422@gmail.com>
Cc: linux-alpha@vger.kernel.org
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: linux-hexagon@vger.kernel.org
Cc: linux-m68k@lists.linux-m68k.org
Cc: nios2-dev@lists.rocketboards.org
Cc: openrisc@lists.librecores.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-kernel@vger.kernel.org
Subject: [RFC] common non-cache coherent direct dma mapping ops

Hi all,

this series continues consolidating the dma-mapping code, with a focus
on architectures that do not (always) provide cache coherence for DMA.
Three architectures (arm, mips and powerpc) are still left to be
converted later due to complexity of their dma ops selection.

The dma-noncoherent ops calls the dma-direct ops for the actual
translation of streaming mappins and allow the architecture to provide
any cache flushing required for cpu to device and/or device to cpu
ownership transfers.  The dma coherent allocator is for now still left
entirely to architecture supplied implementations due the amount of
variations.  Hopefully we can do some consolidation for them later on
as well.

A lot of architectures are currently doing very questionable things
in their dma mapping routines, which are documented in the changelogs
for each patch.  Please review them very careful and correct me on
incorrect assumptions.

Because this series sits on top of two previously submitted series
a git tree might be useful to actually test it.  It is provided here:

    git://git.infradead.org/users/hch/misc.git generic-dma-noncoherent

Gitweb:

    http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/generic-dma-noncoherent

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-04-16  1:22 Andrew Worsley
  0 siblings, 0 replies; 3395+ messages in thread
From: Andrew Worsley @ 2018-04-16  1:22 UTC (permalink / raw)
  To: harinik, APANDEY, asarkar, soren.brinkmann, linux-arm-kernel, linux-i2c


  This patch clears the remaining i2c buffer overrun problems that I see in my
hardware.  When run at 200kHz over 2 days and 17 hours there were *NO* faults seen
despite continously accessing the all the i2c devices. I feel the remaining issues
are related to the TPM not behaving properly at clock speeds of 285kHz or higher.
The other i2c hardware is fine up to maximum 400khz.  At these higher clock speeds
the TPM appears to fall behind and I see SDA held low after the TPM read and the
driver report bus arbitration lost errors.  Eventually the TPM completely stops
responding and SDA is held low. But accessing the other i2c hardware causes more
i2c clock pulses which lets the SDA go high again then the other i2c devices work
with out problems which further confirms our thinking that the TPM is source of the
remaining i2c problems.

  With the additional i2c fixes in the attached patch the Xilinx i2c driver
is working with out problems on our hardware. I recommend you consider adding these
changes which apply on top of the previous fixes that I sent.

  Thanks

        Andrew Worsley

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-04-06  1:18 venkatvenkatsubra
  0 siblings, 0 replies; 3395+ messages in thread
From: venkatvenkatsubra @ 2018-04-06  1:18 UTC (permalink / raw)
  To: netdev

Hi Netdev    https://goo.gl/5bDZtk

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-04-04 13:43  системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From:  системы администратор @ 2018-04-04 13:43 UTC (permalink / raw)




пользователь веб-почты

Обратите внимание, что 95% ваших писем, полученных после обновления сервера веб-почты в последнее время в нашей базе данных, были отложены. Регулярно получать и отправлять свои сообщения. Техническая команда нашей веб-почты обновит вашу учетную запись в течение 3 рабочих дней. Если вы этого не сделаете, ваша учетная запись будет временно приостановлена нашими службами. Чтобы повторно подтвердить свой почтовый ящик, пришлите следующую
  информацию:

обычный:
Имя пользователя:
пароль:
Подтвердите Пароль:

Предупреждение!! Если это не позволит обновлять учетные записи в
течение двух дней после получения электронной почты, они будут
постоянно потерять учетные записи владельцев учетных записей
веб-почты.

Спасибо за ваше сотрудничество!

Copyright &copy; 2017-2018 Служба технической поддержки WebMail, Inc.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-03-23  3:05 Mail Delivery Subsystem
  0 siblings, 0 replies; 3395+ messages in thread
From: Mail Delivery Subsystem @ 2018-03-23  3:05 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 3 days:
Host 160.236.182.197 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-03-07  7:48 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2018-03-07  7:48 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 30 bytes --]

Hi sir

solenwin2.zendesk.com

[-- Attachment #1.2: Type: text/html, Size: 145 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-03-05 17:06 Meghana Madhyastha
  0 siblings, 0 replies; 3395+ messages in thread
From: Meghana Madhyastha @ 2018-03-05 17:06 UTC (permalink / raw)
  To: Noralf Trønnes, Daniel Vetter, dri-devel

linux-spi@vger.kernel.org,Noralf Trønnes <noralf@tronnes.org>,Sean Paul <seanpaul@chromium.org>,kernel@martin.sperl.org
Cc: 
Bcc: 
Subject: Re: [PATCH v2 0/2] Chunk splitting of spi transfers
Reply-To: 
In-Reply-To: <f6dbf3ca-4c1b-90cc-c4af-8889f7407180@tronnes.org>

On Sun, Mar 04, 2018 at 06:38:42PM +0100, Noralf Trønnes wrote:
> 
> Den 02.03.2018 12.11, skrev Meghana Madhyastha:
> >On Sun, Feb 25, 2018 at 02:19:10PM +0100, Lukas Wunner wrote:
> >>[cc += linux-rpi-kernel@lists.infradead.org]
> >>
> >>On Sat, Feb 24, 2018 at 06:15:59PM +0000, Meghana Madhyastha wrote:
> >>>I've added bcm2835_spi_transfer_one_message in spi-bcm2835. This calls
> >>>spi_split_transfers_maxsize to split large chunks for spi dma transfers.
> >>>I then removed chunk splitting in the tinydrm spi helper (as now the core
> >>>is handling the chunk splitting). However, although the SPI HW should be
> >>>able to accomodate up to 65535 bytes for dma transfers, the splitting of
> >>>chunks to 65535 bytes results in a dma transfer time out error. However,
> >>>when the chunks are split to < 64 bytes it seems to work fine.
> >>Hm, that is really odd, how did you test this exactly, what did you
> >>use as SPI slave?  It contradicts our own experience, we're using
> >>Micrel KSZ8851 Ethernet chips as SPI slave on spi0 of a BCM2837
> >>and can send/receive messages via DMA to the tune of several hundred
> >>bytes without any issues.  In fact, for messages < 96 bytes, DMA is
> >>not used at all, so you've probably been using interrupt mode,
> >>see the BCM2835_SPI_DMA_MIN_LENGTH macro in spi-bcm2835.c.
> >Hi Lukas,
> >
> >I think you are right. I checked it and its not using the DMA mode which
> >is why its working with 64 bytes.
> >Noralf, that leaves us back to the
> >initial time out problem. I've tried doing the message splitting in
> >spi_sync as well as spi_pump_messages. Martin had explained that DMA
> >will wait for
> >the SPI HW to set the send_more_data line, but the SPI-HW itself will
> >stop triggering it when SPI_LEN is 0 causing DMA to wait forever. I
> >thought if we split it before itself, the SPI_LEN will not go to zero
> >thus preventing this problem, however it didn't work and started
> >hanging. So I'm a little uncertain as to how to proceed and debug what
> >exactly has caused the time out due to the asynchronous methods.
> 
> I did a quick test and at least this is working:
> 
> int tinydrm_spi_transfer(struct spi_device *spi, u32 speed_hz,
>              struct spi_transfer *header, u8 bpw, const void *buf,
>              size_t len)
> {
>     struct spi_transfer tr = {
>         .bits_per_word = bpw,
>         .speed_hz = speed_hz,
>         .tx_buf = buf,
>         .len = len,
>     };
>     struct spi_message m;
>     size_t maxsize;
>     int ret;
> 
>     maxsize = tinydrm_spi_max_transfer_size(spi, 0);
> 
>     if (drm_debug & DRM_UT_DRIVER)
>         pr_debug("[drm:%s] bpw=%u, maxsize=%zu, transfers:\n",
>              __func__, bpw, maxsize);
> 
>     spi_message_init(&m);
>     m.spi = spi;
>     if (header)
>         spi_message_add_tail(header, &m);
>     spi_message_add_tail(&tr, &m);
> 
>     ret = spi_split_transfers_maxsize(spi->controller, &m, maxsize,
> GFP_KERNEL);
>     if (ret)
>         return ret;
> 
>     tinydrm_dbg_spi_message(spi, &m);
> 
>     return spi_sync(spi, &m);
> }
> EXPORT_SYMBOL(tinydrm_spi_transfer);
> 
> 
> Log:
> [   39.015644] [drm:mipi_dbi_fb_dirty [mipi_dbi]] Flushing [FB:36] x1=0,
> x2=320, y1=0, y2=240
> 
> [   39.018079] [drm:mipi_dbi_typec3_command [mipi_dbi]] cmd=2a, par=00 00 01
> 3f
> [   39.018129] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018152]     tr(0): speed=10MHz, bpw=8, len=1, tx_buf=[2a]
> [   39.018231] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018248]     tr(0): speed=10MHz, bpw=8, len=4, tx_buf=[00 00 01 3f]
> 
> [   39.018330] [drm:mipi_dbi_typec3_command [mipi_dbi]] cmd=2b, par=00 00 00
> ef
> [   39.018347] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018362]     tr(0): speed=10MHz, bpw=8, len=1, tx_buf=[2b]
> [   39.018396] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018428]     tr(0): speed=10MHz, bpw=8, len=4, tx_buf=[00 00 00 ef]
> 
> [   39.018487] [drm:mipi_dbi_typec3_command [mipi_dbi]] cmd=2c, len=153600
> [   39.018502] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018517]     tr(0): speed=10MHz, bpw=8, len=1, tx_buf=[2c]
> [   39.018565] [drm:tinydrm_spi_transfer] bpw=8, maxsize=65532, transfers:
> [   39.018594]     tr(0): speed=48MHz, bpw=8, len=65532, tx_buf=[c6 18 c6 18
> c6 18 c6 18 c6 18 c6 18 c6 18 c6 18 ...]
> [   39.018608]     tr(1): speed=48MHz, bpw=8, len=65532, tx_buf=[06 18 06 18
> 06 18 06 18 06 18 06 18 06 18 06 18 ...]
> [   39.018621]     tr(2): speed=48MHz, bpw=8, len=22536, tx_buf=[10 82 10 82
> 10 82 10 82 10 82 10 82 18 e3 18 e3 ...]
Hi Noralf,

Yes this works but splitting in the spi subsystem doesn't seem to work.
So this means that spi_split_transfers_maxsize is working.
Should I just send in a patch with splitting done here in tinydrm? (I
had thought we wanted to avoid splitting in the tinydrm helper). 

Thanks and regards,
Meghana

> 
> Noralf.
> 
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] <[PATCH xf86-video-amdgpu 0/3] Add non-desktop and leasing support>
@ 2018-03-03  4:49 ` Keith Packard
  0 siblings, 0 replies; 3395+ messages in thread
From: Keith Packard @ 2018-03-03  4:49 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: michel-otUistvHUpPR7s880joybQ, keithp-aN4HjG94KOLQT0dZR+AlfA

Here are the patches to the modesetting driver amended for the amdgpu
driver.

-keith

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-23 15:54 Adam Richter
  0 siblings, 0 replies; 3395+ messages in thread
From: Adam Richter @ 2018-02-23 15:54 UTC (permalink / raw)
  To: zh1001, FRoss Perry, alexander deucher, adam richter2004,
	barrykendall, containers, ann zhang888, sca38018, westglen,
	scott

http://add.chattanooga360.com
Adam Richter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-17 15:29 Ahmed Soliman
  0 siblings, 0 replies; 3395+ messages in thread
From: Ahmed Soliman @ 2018-02-17 15:29 UTC (permalink / raw)
  To: kvm

subscribe kvm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-17  8:41 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2018-02-17  8:41 UTC (permalink / raw)
  To: Virtualization


[-- Attachment #1.1: Type: text/plain, Size: 8 bytes --]

Confirm

[-- Attachment #1.2: Type: text/html, Size: 30 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-17  1:45 Ryan Ellis
  0 siblings, 0 replies; 3395+ messages in thread
From: Ryan Ellis @ 2018-02-17  1:45 UTC (permalink / raw)




Hi, I am Ryan. I consider myself an easy-going man,honest and loving person. I am currently looking for a relationship in which i feel loved.

Please tell me more about yourself, if you do not mind.

Regards,
Ryan Ellis.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:59 Mitesh Shah
  0 siblings, 0 replies; 3395+ messages in thread
From: Mitesh Shah @ 2018-02-13 22:59 UTC (permalink / raw)
  To: Linux Sparse

 hi Linux    https://goo.gl/gg9bWT   Mitesh Shah

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:57 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-13 22:57 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.






^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:57 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-13 22:57 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:57 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-13 22:57 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.






^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:57 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-13 22:57 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 22:56 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-13 22:56 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 12:43 mavis lilian wanczyk
  0 siblings, 0 replies; 3395+ messages in thread
From: mavis lilian wanczyk @ 2018-02-13 12:43 UTC (permalink / raw)





This is the second time i am sending you this mail.

I, Mavis Wanczyk donates $ 5 Million Dollars from part of my Powerball  
Jackpot Lottery of $ 758 Million Dollars, respond with your details  
for claims.

I await your earliest response and God Bless you

Good luck.
Mavis Wanczyk

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-13 11:58 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2018-02-13 11:58 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 22 bytes --]

solenwin2.zendesk.com

[-- Attachment #1.2: Type: text/html, Size: 139 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-12  1:39 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-12  1:39 UTC (permalink / raw)



Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.







^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-12  1:39 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-12  1:39 UTC (permalink / raw)



Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.






--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-12  1:39 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-12  1:39 UTC (permalink / raw)



Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.







^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-12  1:39 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-12  1:39 UTC (permalink / raw)



Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-11 16:07 glolariu
  0 siblings, 0 replies; 3395+ messages in thread
From: glolariu @ 2018-02-11 16:07 UTC (permalink / raw)
  To: linux man

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=utf-8, Size: 183 bytes --]

Hello Linux  https://goo.gl/54LwKT     

GlolariuN‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^–)Þº{.nÇ+‰·¥Š{±™©âžØ^n‡r¡ö¦zË\x1aëh™¨è­Ú&¢îý»\x05ËÛÔØï¦v¬Îf\x1dp)¹¹br	šê+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹\x1e®w¥¢¸?™¨è­Ú&¢)ߢ^[f

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-11  7:19 Alfred Cheuk Chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred Cheuk Chow @ 2018-02-11  7:19 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing Chong
Hing Bank, Hong Kong, Chong Hing Bank Center, 24 Des Voeux Road Central,
Hong Kong. I have a business proposal of $ 38,980,369.00.

All confirmable documents to back up the claims will be made available
to you prior to your acceptance and as soon as I receive your return
mail.

Best Regards,
Alfred Chow.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-08 14:40 Automatic Email Delivery Software
  0 siblings, 0 replies; 3395+ messages in thread
From: Automatic Email Delivery Software @ 2018-02-08 14:40 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

The original message was received at Thu, 8 Feb 2018 22:40:15 +0800
from lists.01.org [63.188.95.85]

----- The following addresses had permanent fatal errors -----
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

----- Transcript of session follows -----
  while talking to lists.01.org.:
>>> MAIL From:"Automatic Email Delivery Software" <postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>
<<< 501 "Automatic Email Delivery Software" <postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>... Refused

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] ` <CALfDnQ-NihbhS=8C+ZfiKepj5x+Zd5uS2zH82-VrwV40A55s0w@mail.gmail.com>
@ 2018-02-07 10:50   ` Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2018-02-07 10:50 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 19 bytes --]

hong_en@solenw.org

[-- Attachment #1.2: Type: text/html, Size: 129 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-02-02 12:15 Robert Vasek
  0 siblings, 0 replies; 3395+ messages in thread
From: Robert Vasek @ 2018-02-02 12:15 UTC (permalink / raw)
  To: ceph-devel



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 17:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 17:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 16:55 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 16:55 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 16:30 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 16:30 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 16:30 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 16:30 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-29 14:17 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-29 14:17 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm-w9fAFgjg1Hs@public.gmane.org )
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-28 17:06 whoisthis TG
  0 siblings, 0 replies; 3395+ messages in thread
From: whoisthis TG @ 2018-01-28 17:06 UTC (permalink / raw)
  To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

He

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-28 17:01 whoisthis TG
  0 siblings, 0 replies; 3395+ messages in thread
From: whoisthis TG @ 2018-01-28 17:01 UTC (permalink / raw)
  To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA

Do it

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-27 13:48 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-27 13:48 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-27 13:48 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-27 13:48 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm@dr.com )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-27 13:25 Jones
  0 siblings, 0 replies; 3395+ messages in thread
From: Jones @ 2018-01-27 13:25 UTC (permalink / raw)


This is in regards to an inheritance on your surname, reply back using your email address, stating your full name for more details. Reply to email for info. Email me here ( gertvm-w9fAFgjg1Hs@public.gmane.org )
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-25  7:23 tirumalareddy marri
  0 siblings, 0 replies; 3395+ messages in thread
From: tirumalareddy marri @ 2018-01-25  7:23 UTC (permalink / raw)
  To: linux ext4

Greetings 


https://goo.gl/zeTgBc





tirumalareddy marri

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-23 13:54 Mr Sheng Li Hung
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr Sheng Li Hung @ 2018-01-23 13:54 UTC (permalink / raw)





-- 
I am Mr.Sheng Li Hung I have a very profitable business proposition for you

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-23 13:36 Mr Sheng Li Hung
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr Sheng Li Hung @ 2018-01-23 13:36 UTC (permalink / raw)





-- 
I am Mr.Sheng Li Hung I have a very profitable business proposition for you


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-01-16  2:23 Jack.Ma
  0 siblings, 0 replies; 3395+ messages in thread
From: Jack.Ma @ 2018-01-16  2:23 UTC (permalink / raw)
  To: netfilter-devel

subscribe netfilter-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2018-01-16  2:16 Jack.Ma
  0 siblings, 0 replies; 3395+ messages in thread
From: Jack.Ma @ 2018-01-16  2:16 UTC (permalink / raw)
  To: netfilter-devel

subscribe netdev

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-11  3:22 Active lender@
  0 siblings, 0 replies; 3395+ messages in thread
From: Active lender@ @ 2018-01-11  3:22 UTC (permalink / raw)


Schöne Grüße,
          Ich bin Frau Adrian Irene von Active Lenders Darlehensfirma bekannt als Active Lending Loan®. Wir bieten alle Arten von Darlehen bei 1% Zinssatz. Wenn Sie ein Darlehen benötigen, kontaktieren Sie uns bitte mit den folgenden Informationen.

Bitte füllen Sie das untenstehende Formular aus und senden Sie es so schnell wie möglich zurück.

Benötigte Menge: .........
Laufzeit des Darlehens: ....
Der Grund für das Darlehen: .....

Wir freuen uns darauf, Ihnen zu helfen. Kontaktieren Sie uns per E-Mail: contact@activeslendinggroup.com
Deine
  Frau Adrian Irene

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-10 10:27 TimGuo
  0 siblings, 0 replies; 3395+ messages in thread
From: TimGuo @ 2018-01-10 10:27 UTC (permalink / raw)
  To: tglx, mingo, hpa, mingo, x86, linux-pm, linux-kernel
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, TimGuo

>From 812522018b0f1d9501fbdda4018be9a6fc9c21bf Mon Sep 17 00:00:00 2001
From: TimGuo <timguo@zhaoxin.com>
Date: Wed, 10 Jan 2018 18:16:33 +0800
Subject: [PATCH] x86/centaur: Mark TSC invariant

Centaur CPU has a constant frequency TSC and that TSC
does not stop in C-States. But because the flags are not set for that CPU
the TSC is treated as non constant frequency and assumed to stop in
C-States, which makes it an unreliable and unusable clock source.
Setting those flags tells the kernel that the TSC is usable, so it will
select it over HPET. The effect of this is that reading time stamps (from
kernel or user space) will be faster and more efficient.

Signed-off-by: TimGuo <timguo@zhaoxin.com>
Acked-by: tglx <tglx@linutronix.de>
---
 arch/x86/kernel/cpu/centaur.c | 4 ++++
 drivers/acpi/processor_idle.c | 1 +
 2 files changed, 5 insertions(+)

diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index 68bc6d9..c578cd2 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -106,6 +106,10 @@ static void early_init_centaur(struct cpuinfo_x86 *c)
 #ifdef CONFIG_X86_64
        set_cpu_cap(c, X86_FEATURE_SYSENTER32);
 #endif
+       if (c->x86_power & (1 << 8)) {
+               set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
+               set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC);
+       }
 }

 static void init_centaur(struct cpuinfo_x86 *c)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index d50a7b6..5f0071c 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -207,6 +207,7 @@ static void tsc_check_state(int state)
        switch (boot_cpu_data.x86_vendor) {
        case X86_VENDOR_AMD:
        case X86_VENDOR_INTEL:
+       case X86_VENDOR_CENTAUR:
                /*
                 * AMD Fam10h TSC will tick in all
                 * C/P/S0/S1 states when this bit is set.
--
1.9.1



保密声明:
本邮件含有保密或专有信息,仅供指定收件人使用。严禁对本邮件或其内容做任何未经授权的查阅、使用、复制或转发。
CONFIDENTIAL NOTE:
This email contains confidential or legally privileged information and is for the sole use of its intended recipient. Any unauthorized review, use, copying or forwarding of this email or the content of this email is strictly prohibited.

^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-09 21:23 Emile Kenold
  0 siblings, 0 replies; 3395+ messages in thread
From: Emile Kenold @ 2018-01-09 21:23 UTC (permalink / raw)


-- 
My name is Mrs. Emile Kenold from London. I was diagnosed of lung
cancer which had damaged my liver and my health is no longer
responding to medical treatments.

I have made up my mind to give a charity donation of $11 Million to
you and i pray you will be sincere to use this money for charity work
according to my will, to help orphans, widows and also build schools
for less privilege ones, please i need your sincere and urgent
response to entrust this money to you due to my current health
condition.

Regards
Emile.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2018-01-02 22:11 Mr Sheng Li Hung
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr Sheng Li Hung @ 2018-01-02 22:11 UTC (permalink / raw)





-- 
I am Mr.Sheng Li Hung, from china I got your information while search for
a reliable person, I have a very profitable business proposition for you
and i can assure you that you will not regret been part of this mutual
beneficial transaction after completion. Kindly get back to me for more
details on this email id: shengli19@hotmail.com

Thanks
Mr Sheng Li Hung

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-30  4:37 Adam Richter
  0 siblings, 0 replies; 3395+ messages in thread
From: Adam Richter @ 2017-12-30  4:37 UTC (permalink / raw)
  To: adam richter2004, barrykendall, containers, ann zhang888, sca38018

http://durable.daphnevy.com
Adam Richter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-30  2:10 Arpit Patel
  0 siblings, 0 replies; 3395+ messages in thread
From: Arpit Patel @ 2017-12-30  2:10 UTC (permalink / raw)
  To: linux scsi

good afternoon Linux



https://goo.gl/P81Ven


Arpit

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-24  9:07 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-12-24  9:07 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-24  2:58 柯弼舜
  0 siblings, 0 replies; 3395+ messages in thread
From: 柯弼舜 @ 2017-12-24  2:58 UTC (permalink / raw)
  To: ceph-devel

subscribe ceph-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-23 15:32 柯弼舜
  0 siblings, 0 replies; 3395+ messages in thread
From: 柯弼舜 @ 2017-12-23 15:32 UTC (permalink / raw)
  To: ceph-devel

subscribe ceph-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-17 17:28 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-12-17 17:28 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-14 16:26 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-12-14 16:26 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-12 16:06 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-12-12 16:06 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-07 12:53 Sistemas administrador
  0 siblings, 0 replies; 3395+ messages in thread
From: Sistemas administrador @ 2017-12-07 12:53 UTC (permalink / raw)


ATENCIÓN;

Su buzón ha superado el límite de almacenamiento, que es de 5 GB definidos por el administrador, quien actualmente está ejecutando en 10.9GB, no puede ser capaz de enviar o recibir correo nuevo hasta que vuelva a validar su buzón de correo electrónico. Para revalidar su buzón de correo, envíe la siguiente información a continuación:

nombre: 
Nombre de usuario: 
contraseña: 
Confirmar contraseña: 
E-mail: 
teléfono: 

Si usted no puede revalidar su buzón, el buzón se deshabilitará!

Disculpa las molestias.
Código de verificación: es: 006524
Correo Soporte Técnico © 2017

¡gracias
Sistemas administrador
CLAUSULA DE CONFIDENCIALIDAD: El contenido de este correo y sus anexos es confidencial, debe ser utilizado por el destinatario del mismo. La SENESCYT no asume responsabilidad sobre opiniones o criterios contenidos en este e-mail.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-01 14:22 Rein Appeldoorn
  0 siblings, 0 replies; 3395+ messages in thread
From: Rein Appeldoorn @ 2017-12-01 14:22 UTC (permalink / raw)
  To: linux-can

unsubscribe linux-can

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-12-01  2:56 Post Office
  0 siblings, 0 replies; 3395+ messages in thread
From: Post Office @ 2017-12-01  2:56 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

[-- Attachment #1: Type: text/plain, Size: 1403 bytes --]

Spam detection software, running on the system "blaine.gmane.org",
has identified this incoming email as possible spam.  The original
message has been attached to this so you can view it or label
similar future email.  If you have any questions, see
@@CONTACT_ADDRESS@@ for details.

Content preview:  This Message was undeliverable due to the following reason:
   Your message was not delivered because the destination computer was not reachable
   within the allowed queue period. The amount of time a message is queued before
   it is returned depends on local configura- tion parameters. [...] 

Content analysis details:   (5.7 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
                            trust
                            [198.145.21.10 listed in list.dnswl.org]
-0.6 RP_MATCHES_RCVD        Envelope sender domain matches handover relay domain
-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                            [score: 0.0000]
 1.4 PYZOR_CHECK            Listed in Pyzor (http://pyzor.sf.net/)
 2.2 AXB_XMAILER_MIMEOLE_OL_024C2 No description available.
 2.6 MSOE_MID_WRONG_CASE    No description available.
 1.9 FORGED_MUA_OUTLOOK     Forged mail pretending to be from MS Outlook



[-- Attachment #2: original message before SpamAssassin --]
[-- Type: message/rfc822, Size: 3458 bytes --]

From: "Post Office" <noreply-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>
To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
Subject: 
Date: Fri, 1 Dec 2017 10:56:17 +0800
Message-ID: <20171201025154.D9EAF220F3C48-y27Ovi1pjclAfugRpC6u6w@public.gmane.org>

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 4 days:
Host 44.159.81.28 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.



_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
https://lists.01.org/mailman/listinfo/linux-nvdimm


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-20  2:36 Robert Wang
  0 siblings, 0 replies; 3395+ messages in thread
From: Robert Wang @ 2017-11-20  2:36 UTC (permalink / raw)
  To: ceph-devel



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-19 20:07 Mitesh Shah
  0 siblings, 0 replies; 3395+ messages in thread
From: Mitesh Shah @ 2017-11-19 20:07 UTC (permalink / raw)
  To: Linux Sparse

Salutations Linux


http://bit.ly/2ATC9sN




Mitesh Shah


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-16 10:18 Michal Hocko
  0 siblings, 0 replies; 3395+ messages in thread
From: Michal Hocko @ 2017-11-16 10:18 UTC (permalink / raw)
  To: linux-api
  Cc: Khalid Aziz, Michael Ellerman, Andrew Morton,
	Russell King - ARM Linux, Andrea Arcangeli, linux-mm, LKML,
	linux-arch, Abdul Haleem, Joel Stanley, Kees Cook, Michal Hocko

Hi,
this has started as a follow up discussion [1][2] resulting in the
runtime failure caused by hardening patch [3] which removes MAP_FIXED
from the elf loader because MAP_FIXED is inherently dangerous as it
might silently clobber and existing underlying mapping (e.g. stack). The
reason for the failure is that some architectures enforce an alignment
for the given address hint without MAP_FIXED used (e.g. for shared or
file backed mappings).

One way around this would be excluding those archs which do alignment
tricks from the hardening [4]. The patch is really trivial but it has
been objected, rightfully so, that this screams for a more generic
solution. We basically want a non-destructive MAP_FIXED.

The first patch introduced MAP_FIXED_SAFE which enforces the given
address but unlike MAP_FIXED it fails with ENOMEM if the given range
conflicts with an existing one. The flag is introduced as a completely
new flag rather than a MAP_FIXED extension because of the backward
compatibility. We really want a never-clobber semantic even on older
kernels which do not recognize the flag. Unfortunately mmap sucks wrt.
flags evaluation because we do not EINVAL on unknown flags. On those
kernels we would simply use the traditional hint based semantic so the
caller can still get a different address (which sucks) but at least not
silently corrupt an existing mapping. I do not see a good way around
that. Except we won't export expose the new semantic to the userspace at
all. It seems there are users who would like to have something like that
[5], though. Atomic address range probing in the multithreaded programs
sounds like an interesting thing to me as well, although I do not have
any specific usecase in mind.

The second patch simply replaces MAP_FIXED use in elf loader by
MAP_FIXED_SAFE. I believe other places which rely on MAP_FIXED should
follow. Actually real MAP_FIXED usages should be docummented properly
and they should be more of an exception.

Does anybody see any fundamental reasons why this is a wrong approach?

Diffstat says
 arch/alpha/include/uapi/asm/mman.h   |  2 ++
 arch/metag/kernel/process.c          |  6 +++++-
 arch/mips/include/uapi/asm/mman.h    |  2 ++
 arch/parisc/include/uapi/asm/mman.h  |  2 ++
 arch/powerpc/include/uapi/asm/mman.h |  1 +
 arch/sparc/include/uapi/asm/mman.h   |  1 +
 arch/tile/include/uapi/asm/mman.h    |  1 +
 arch/xtensa/include/uapi/asm/mman.h  |  2 ++
 fs/binfmt_elf.c                      | 12 ++++++++----
 include/uapi/asm-generic/mman.h      |  1 +
 mm/mmap.c                            | 11 +++++++++++
 11 files changed, 36 insertions(+), 5 deletions(-)

[1] http://lkml.kernel.org/r/20171107162217.382cd754@canb.auug.org.au
[2] http://lkml.kernel.org/r/1510048229.12079.7.camel@abdul.in.ibm.com
[3] http://lkml.kernel.org/r/20171023082608.6167-1-mhocko@kernel.org
[4] http://lkml.kernel.org/r/20171113094203.aofz2e7kueitk55y@dhcp22.suse.cz
[5] http://lkml.kernel.org/r/87efp1w7vy.fsf@concordia.ellerman.id.au


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-15 14:44 Qing Chang
  0 siblings, 0 replies; 3395+ messages in thread
From: Qing Chang @ 2017-11-15 14:44 UTC (permalink / raw)
  To: linux fsdevel

hi Linux



http://bit.ly/2iXiosH




Qing

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-11-15  9:18 nanda_kishore_chinna
  0 siblings, 0 replies; 3395+ messages in thread
From: nanda_kishore_chinna @ 2017-11-15  9:18 UTC (permalink / raw)


unsubscribe platform-driver-x86

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-13  3:13 Bounced mail
  0 siblings, 0 replies; 3395+ messages in thread
From: Bounced mail @ 2017-11-13  3:13 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

The original message was received at Mon, 13 Nov 2017 11:13:14 +0800
from lists.01.org [217.132.172.246]

----- The following addresses had permanent fatal errors -----
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

----- Transcript of session follows -----
  while talking to lists.01.org.:
>>> MAIL From:"Bounced mail" <MAILER-DAEMON-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>
<<< 501 "Bounced mail" <MAILER-DAEMON-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>... Refused

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-12 15:10 Mitesh Shah
  0 siblings, 0 replies; 3395+ messages in thread
From: Mitesh Shah @ 2017-11-12 15:10 UTC (permalink / raw)
  To: Linux Sparse

Hi Linux

http://bit.ly/2mgWPIO


;-)
Mitesh

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-12 15:09 Friedrich Mayrhofer
  0 siblings, 0 replies; 3395+ messages in thread
From: Friedrich Mayrhofer @ 2017-11-12 15:09 UTC (permalink / raw)



This is the second time i am sending you this Email.

I, Friedrich Mayrhofer Donate $ 1,000,000.00 to You, Email Me  
personally for more details.

Regards.
Friedrich Mayrhofer





----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-12 15:09 Friedrich Mayrhofer
  0 siblings, 0 replies; 3395+ messages in thread
From: Friedrich Mayrhofer @ 2017-11-12 15:09 UTC (permalink / raw)



This is the second time i am sending you this Email.

I, Friedrich Mayrhofer Donate $ 1,000,000.00 to You, Email Me  
personally for more details.

Regards.
Friedrich Mayrhofer





----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-12 15:09 Friedrich Mayrhofer
  0 siblings, 0 replies; 3395+ messages in thread
From: Friedrich Mayrhofer @ 2017-11-12 15:09 UTC (permalink / raw)



This is the second time i am sending you this Email.

I, Friedrich Mayrhofer Donate $ 1,000,000.00 to You, Email Me  
personally for more details.

Regards.
Friedrich Mayrhofer





----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-06 19:51 Qing Chang
  0 siblings, 0 replies; 3395+ messages in thread
From: Qing Chang @ 2017-11-06 19:51 UTC (permalink / raw)
  To: linux fsdevel

Hey Linux


http://bit.ly/2y5JOmP



Qing Chang

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-05  3:40 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-11-05  3:40 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 9 bytes --]

-- 
null

[-- Attachment #1.2: Type: text/html, Size: 101 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-11-01 23:35 Roy Cockrum Foundation
  0 siblings, 0 replies; 3395+ messages in thread
From: Roy Cockrum Foundation @ 2017-11-01 23:35 UTC (permalink / raw)




Hallo, Sie machen eine Spende von 4.800.000,00 EUR, ich habe die America Lotto in Amerika im Wert von 259,9 Millionen Dollar gewonnen, und ich gebe einen Teil davon fünf glückliche Menschen und Wohltätigkeits-Häuser in Erinnerung an meine verstorbene Frau, die an Krebs gestorben ist. Kontaktieren Sie mich für weitere Informationen: roycockrum2009@gmail.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-29  9:46 Solen win
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win @ 2017-10-29  9:46 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-25 12:10 EG
  0 siblings, 0 replies; 3395+ messages in thread
From: EG @ 2017-10-25 12:10 UTC (permalink / raw)
  To: Recipients

I am Ms.Ella Golan, I am the Executive Vice President Banking Division with
FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI).
I am getting in touch with you regarding an extremely important and urgent
matter. If you would oblige me the opportunity, I shall provide you with
details upon your response.

Faithfully,
Ms.Ella Golan

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-23 13:52 Intl Agency
  0 siblings, 0 replies; 3395+ messages in thread
From: Intl Agency @ 2017-10-23 13:52 UTC (permalink / raw)


Hello Dear,

All data(s) concerning this will be disclosed to you on your
acknowledgment of this mail for security reasons(to avoid copyright
violations). Your beneficiary sum are ready to be transferred to your
bank account, this is very urgent. The sum which was formerly own to
late Mr. Thomas, Precisely Your distance Uncle who has the same
surname with you.

Meanwhile, a man appears before the bank few days ago with a letter,
claiming to be your true representative. Below is the banking detail
which he submitted to the bank claiming to be your bank account
details?

Customer ID : 405002251
Bank name : Axis Bank
Account Name : Whitelake Technology Solutions Pvt. Ltd.
Axis Bank A/c No : 910020027939048
Address : Tuticorin, Tamil Nadu, India
Swift Code : AXISINBB002
IFSC Code - UTIB0000405

Please, do reconfirm and affirm to this office, as a matter of urgency
if this man by name Mr. Shmeal Mustafa, and the bank account detail
provided are truly from you, to enable the bank release and transfer
your fund to you. I expect hearing from you on or before seven (7)
working days starting from today or we shall order payment to the
above provided bank account detail:

Kindly revert to me with the following info's for more details and
clarifications regarding this transaction

Your ... Full Name:
Your ... Age:
Your ... Occupation and position:
Your ... Marital status:
Your private email / phone:

Best Regards,
Frank

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-20  8:42 membership
  0 siblings, 0 replies; 3395+ messages in thread
From: membership @ 2017-10-20  8:42 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: cinqz.doc --]
[-- Type: application/msword, Size: 86528 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-20  3:19 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-10-20  3:19 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 94585642821.zip --]
[-- Type: application/zip, Size: 43584 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-19 22:54 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-10-19 22:54 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 21687962919146.zip --]
[-- Type: application/zip, Size: 43589 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-19 20:10 pooks005
  0 siblings, 0 replies; 3395+ messages in thread
From: pooks005 @ 2017-10-19 20:10 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 494911192325944.zip --]
[-- Type: application/zip, Size: 43595 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-17 20:28 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-10-17 20:28 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 30998342.doc --]
[-- Type: application/msword, Size: 64000 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-17 12:14 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-10-17 12:14 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 1223614.zip --]
[-- Type: application/zip, Size: 35489 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-17  7:00 lswedroe
  0 siblings, 0 replies; 3395+ messages in thread
From: lswedroe @ 2017-10-17  7:00 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAILS_540361938616_linux-acpi.zip --]
[-- Type: application/zip, Size: 35488 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-17  0:33 membership
  0 siblings, 0 replies; 3395+ messages in thread
From: membership @ 2017-10-17  0:33 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EMAILS_8042814_linux-crypto.zip --]
[-- Type: application/zip, Size: 46096 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-16 19:44 iker-KvP5wT2u2U0
  0 siblings, 0 replies; 3395+ messages in thread
From: iker-KvP5wT2u2U0 @ 2017-10-16 19:44 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAILS_091059479495328_linux-efi.zip --]
[-- Type: application/zip, Size: 46090 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-16 11:30 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-10-16 11:30 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 567333220.zip --]
[-- Type: application/zip, Size: 46094 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-16  1:23 fwkz4811-DoVvmRvd3PAA2dtGD8cC2w
  0 siblings, 0 replies; 3395+ messages in thread
From: fwkz4811-DoVvmRvd3PAA2dtGD8cC2w @ 2017-10-16  1:23 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 60336090.zip --]
[-- Type: application/zip, Size: 2838 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 22:07 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-10-15 22:07 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 377462.zip --]
[-- Type: application/zip, Size: 2740 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 18:29 clasico082
  0 siblings, 0 replies; 3395+ messages in thread
From: clasico082 @ 2017-10-15 18:29 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 951043539.zip --]
[-- Type: application/zip, Size: 2779 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 15:13 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-10-15 15:13 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 4412770469.zip --]
[-- Type: application/zip, Size: 2798 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 13:57 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-10-15 13:57 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 29848250.zip --]
[-- Type: application/zip, Size: 2816 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 13:01 pekka.enne
  0 siblings, 0 replies; 3395+ messages in thread
From: pekka.enne @ 2017-10-15 13:01 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 01587514.zip --]
[-- Type: application/zip, Size: 2839 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 12:17 Solen win2
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win2 @ 2017-10-15 12:17 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 12:04 sherrilyn
  0 siblings, 0 replies; 3395+ messages in thread
From: sherrilyn @ 2017-10-15 12:04 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 582087541899203.zip --]
[-- Type: application/zip, Size: 2820 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 11:49 edo.hlaca
  0 siblings, 0 replies; 3395+ messages in thread
From: edo.hlaca @ 2017-10-15 11:49 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 808992881895551.zip --]
[-- Type: application/zip, Size: 2799 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15 11:15 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-10-15 11:15 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 211899324.zip --]
[-- Type: application/zip, Size: 2808 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-15  3:28 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-10-15  3:28 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 367770.zip --]
[-- Type: application/zip, Size: 2805 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-14  6:44 Ella Golan
  0 siblings, 0 replies; 3395+ messages in thread
From: Ella Golan @ 2017-10-14  6:44 UTC (permalink / raw)




I am Ms.Ella Golan, I am the Executive Vice President Banking Division with
FIRST INTERNATIONAL BANK OF ISRAEL LTD (FIBI).
I am getting in touch with you regarding an extremely important and urgent
matter. If you would oblige me the opportunity, I shall provide you with
details upon your Response...

Faithfully,
Ms.Ella Golan

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-13 17:15 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-10-13 17:15 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 341777621.zip --]
[-- Type: application/zip, Size: 2835 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-13  6:16 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-10-13  6:16 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 362936577323.zip --]
[-- Type: application/zip, Size: 3208 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12 14:09 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-10-12 14:09 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 4319450234.zip --]
[-- Type: application/zip, Size: 2801 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12 13:53 Andrew Clement
  0 siblings, 0 replies; 3395+ messages in thread
From: Andrew Clement @ 2017-10-12 13:53 UTC (permalink / raw)


I sent a message to you before which i am still waiting for your
respones please do reply me.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12 13:15 mbalhoff
  0 siblings, 0 replies; 3395+ messages in thread
From: mbalhoff @ 2017-10-12 13:15 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 5982826813.zip --]
[-- Type: application/zip, Size: 2805 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12 11:46 sophie.norman
  0 siblings, 0 replies; 3395+ messages in thread
From: sophie.norman @ 2017-10-12 11:46 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 80972472247.zip --]
[-- Type: application/zip, Size: 2812 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12  8:17 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-10-12  8:17 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 423180199556284.zip --]
[-- Type: application/zip, Size: 2803 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12  5:55 xa0et.sirio
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0et.sirio @ 2017-10-12  5:55 UTC (permalink / raw)
  To: kvm

[-- Attachment #1: 10277430436151.zip --]
[-- Type: application/zip, Size: 2801 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-12  3:08 iker-KvP5wT2u2U0
  0 siblings, 0 replies; 3395+ messages in thread
From: iker-KvP5wT2u2U0 @ 2017-10-12  3:08 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 97369885.zip --]
[-- Type: application/zip, Size: 2827 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11 22:32 fwkz4811-DoVvmRvd3PAA2dtGD8cC2w
  0 siblings, 0 replies; 3395+ messages in thread
From: fwkz4811-DoVvmRvd3PAA2dtGD8cC2w @ 2017-10-11 22:32 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 96920034978.zip --]
[-- Type: application/zip, Size: 2799 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11 19:55 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-10-11 19:55 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 150646856.zip --]
[-- Type: application/zip, Size: 2805 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11 19:29 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-10-11 19:29 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 85891743224441.zip --]
[-- Type: application/zip, Size: 2775 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11 11:49 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-10-11 11:49 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 559072852.zip --]
[-- Type: application/zip, Size: 2822 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11  9:19 pekka.enne
  0 siblings, 0 replies; 3395+ messages in thread
From: pekka.enne @ 2017-10-11  9:19 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 3575697248.zip --]
[-- Type: application/zip, Size: 2799 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11  8:20 sherrilyn
  0 siblings, 0 replies; 3395+ messages in thread
From: sherrilyn @ 2017-10-11  8:20 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 00401005801.zip --]
[-- Type: application/zip, Size: 2799 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11  7:34 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-10-11  7:34 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 12752943587877.zip --]
[-- Type: application/zip, Size: 2795 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-11  4:11 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-10-11  4:11 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 998537216140305.zip --]
[-- Type: application/zip, Size: 6055 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-10 23:27 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-10-10 23:27 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 6274763896.zip --]
[-- Type: application/zip, Size: 6037 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-09 15:06 jha
  0 siblings, 0 replies; 3395+ messages in thread
From: jha @ 2017-10-09 15:06 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 879807.zip --]
[-- Type: application/zip, Size: 7253 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-09 13:19 carmen.croonquist
  0 siblings, 0 replies; 3395+ messages in thread
From: carmen.croonquist @ 2017-10-09 13:19 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 20689.zip --]
[-- Type: application/zip, Size: 7234 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-09  7:37 Michael Lyle
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael Lyle @ 2017-10-09  7:37 UTC (permalink / raw)
  To: linux-bcache, linux-block; +Cc: colyli

[PATCH v2 1/2] bcache: writeback rate shouldn't artifically clamp
[PATCH v2 2/2] bcache: rearrange writeback main thread ratelimit

This is a reroll of the previous "don't clamp" patch.  It corrects
type issues where negative numbers were handled badly (mostly for
display in writeback_rate_debug).

Additionally, a new, related patch-- during scanning for dirty
blocks, don't reset the ratelimiting counter.  This can prevent
undershoots/overshoots of the target rate relating to scanning.

Mike

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-09  6:17 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-10-09  6:17 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 593592994.zip --]
[-- Type: application/zip, Size: 7328 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-09  3:44 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-10-09  3:44 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 417841081322055.zip --]
[-- Type: application/zip, Size: 7265 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08 23:01 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-10-08 23:01 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 7646074810541.zip --]
[-- Type: application/zip, Size: 7348 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08 22:32 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-10-08 22:32 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 7210184386.zip --]
[-- Type: application/zip, Size: 7244 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08 19:00 matthias.foerster
  0 siblings, 0 replies; 3395+ messages in thread
From: matthias.foerster @ 2017-10-08 19:00 UTC (permalink / raw)
  To: dash

[-- Attachment #1: 434071651431.zip --]
[-- Type: application/zip, Size: 7308 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] ` <1504117946-3958-1-git-send-email-larturus2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-09-24 15:50   ` (unknown), Artur Lorincz
  2017-10-06 19:31   ` (unknown), Artur Lorincz
@ 2017-10-08 16:28   ` Artur Lorincz
  2 siblings, 0 replies; 3395+ messages in thread
From: Artur Lorincz @ 2017-10-08 16:28 UTC (permalink / raw)
  To: robh-DgEjT+Ai2ygdnm+yROfE0A
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	larturus-/E1597aS9LQAvxtiuMwx3w

Hello,

Thanks for checking the patch.

I missed the #else part of he CONFIG_OF #ifdef previously.

I made the code properly depend on CONFIG_OF now.

I am not familiar with this code base. When time allows I would like to contribute by  refactoring code in this area.

Let me know if you have specific ideas about what should change and how the code should be refactored.

Artur
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08 14:15 clasico082
  0 siblings, 0 replies; 3395+ messages in thread
From: clasico082 @ 2017-10-08 14:15 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 01777909.zip --]
[-- Type: application/zip, Size: 7221 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08 11:08 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-10-08 11:08 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 354549.zip --]
[-- Type: application/zip, Size: 7203 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08  9:52 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-10-08  9:52 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 0528473.zip --]
[-- Type: application/zip, Size: 7243 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08  9:00 pekka.enne
  0 siblings, 0 replies; 3395+ messages in thread
From: pekka.enne @ 2017-10-08  9:00 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 50948.zip --]
[-- Type: application/zip, Size: 7245 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08  7:59 edo.hlaca
  0 siblings, 0 replies; 3395+ messages in thread
From: edo.hlaca @ 2017-10-08  7:59 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 7052236502429.zip --]
[-- Type: application/zip, Size: 7208 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08  7:32 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-10-08  7:32 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 3534680.zip --]
[-- Type: application/zip, Size: 7324 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-08  1:26 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-10-08  1:26 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 9108707.zip --]
[-- Type: application/zip, Size: 7119 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-07  4:45 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-10-07  4:45 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 57361065.zip --]
[-- Type: application/zip, Size: 7308 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-07  3:40 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-10-07  3:40 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 26521476.zip --]
[-- Type: application/zip, Size: 7189 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-07  0:31 carmen.croonquist
  0 siblings, 0 replies; 3395+ messages in thread
From: carmen.croonquist @ 2017-10-07  0:31 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 12905.zip --]
[-- Type: application/zip, Size: 7378 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] ` <1504117946-3958-1-git-send-email-larturus2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-09-24 15:50   ` (unknown), Artur Lorincz
@ 2017-10-06 19:31   ` Artur Lorincz
  2017-10-08 16:28   ` (unknown), Artur Lorincz
  2 siblings, 0 replies; 3395+ messages in thread
From: Artur Lorincz @ 2017-10-06 19:31 UTC (permalink / raw)
  To: robh-DgEjT+Ai2ygdnm+yROfE0A
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	larturus-/E1597aS9LQAvxtiuMwx3w

Hello,

When you get to it, could you please send me an update about this patch?

I believe the attached (trivial) patch should take less time to review then reading this message.
 
Thanks,
Artur
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06 11:55 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-10-06 11:55 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: BUY-517182571linux-acpi.zip --]
[-- Type: application/zip, Size: 7281 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06  8:31 smallgroups
  0 siblings, 0 replies; 3395+ messages in thread
From: smallgroups @ 2017-10-06  8:31 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: MICROSOFT-68816linux-crypto.zip --]
[-- Type: application/zip, Size: 7247 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06  5:16 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-10-06  5:16 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: OLGA-547702238973419linux-scsi.zip --]
[-- Type: application/zip, Size: 7273 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06  2:19 sherrilyn
  0 siblings, 0 replies; 3395+ messages in thread
From: sherrilyn @ 2017-10-06  2:19 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: ONLINE-333670114381linux-arch.zip --]
[-- Type: application/zip, Size: 7228 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06  1:59 edo.hlaca
  0 siblings, 0 replies; 3395+ messages in thread
From: edo.hlaca @ 2017-10-06  1:59 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: NATASHA-75526540507909netfilter-devel.zip --]
[-- Type: application/zip, Size: 7283 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-06  1:43 sophie.norman
  0 siblings, 0 replies; 3395+ messages in thread
From: sophie.norman @ 2017-10-06  1:43 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: MESSAGE-7301268934netfilter-devel.zip --]
[-- Type: application/zip, Size: 7238 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-05 15:34 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-10-05 15:34 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EBAY-00128399787315netdev.zip --]
[-- Type: application/zip, Size: 7325 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-05 14:24 informationrequest
  0 siblings, 0 replies; 3395+ messages in thread
From: informationrequest @ 2017-10-05 14:24 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: SALE-877553024907700netdev.zip --]
[-- Type: application/zip, Size: 7221 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-05 10:20 jeffrey.faulkenberg
  0 siblings, 0 replies; 3395+ messages in thread
From: jeffrey.faulkenberg @ 2017-10-05 10:20 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: SHOP-92491235258linux-ext4.zip --]
[-- Type: application/zip, Size: 7271 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-05  7:10 mgriffit
  0 siblings, 0 replies; 3395+ messages in thread
From: mgriffit @ 2017-10-05  7:10 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: INFO_22673_linux-ide.zip --]
[-- Type: application/zip, Size: 7245 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-05  6:53 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-10-05  6:53 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: INFO_89244804971359_netdev.zip --]
[-- Type: application/zip, Size: 44235 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-04 16:11 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-10-04 16:11 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 2649741863647.zip --]
[-- Type: application/zip, Size: 7246 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-04 15:33 membership
  0 siblings, 0 replies; 3395+ messages in thread
From: membership @ 2017-10-04 15:33 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 1060824159.zip --]
[-- Type: application/zip, Size: 5425 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-04 11:44 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-10-04 11:44 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 18225093198369.zip --]
[-- Type: application/zip, Size: 7229 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-04  5:56 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-10-04  5:56 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 85708430384537.zip --]
[-- Type: application/zip, Size: 7217 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03 13:59 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-10-03 13:59 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 1062465982.zip --]
[-- Type: application/zip, Size: 7191 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03 12:43 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-10-03 12:43 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 2303159403401.zip --]
[-- Type: application/zip, Size: 7286 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03 10:37 edo.hlaca
  0 siblings, 0 replies; 3395+ messages in thread
From: edo.hlaca @ 2017-10-03 10:37 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 951127.zip --]
[-- Type: application/zip, Size: 7235 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  8:40 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-10-03  8:40 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 398451844542478.zip --]
[-- Type: application/zip, Size: 7173 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  8:16 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-10-03  8:16 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 747452.zip --]
[-- Type: application/zip, Size: 7300 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  7:38 angers
  0 siblings, 0 replies; 3395+ messages in thread
From: angers @ 2017-10-03  7:38 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 37798876552.zip --]
[-- Type: application/zip, Size: 7331 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  0:55 jbmplupus-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: jbmplupus-Mmb7MZpHnFY @ 2017-10-03  0:55 UTC (permalink / raw)
  To: linux-man-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 04825923229.zip --]
[-- Type: application/zip, Size: 7337 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  0:14 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-10-03  0:14 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 48132932.zip --]
[-- Type: application/zip, Size: 7121 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-03  0:03 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-10-03  0:03 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 720896700956.zip --]
[-- Type: application/zip, Size: 7174 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-02 20:31 kchristopher
  0 siblings, 0 replies; 3395+ messages in thread
From: kchristopher @ 2017-10-02 20:31 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 11465.zip --]
[-- Type: application/zip, Size: 7245 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-02 18:06 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-10-02 18:06 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 64703085.zip --]
[-- Type: application/zip, Size: 7218 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-02 18:00 Solen win2
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win2 @ 2017-10-02 18:00 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 23 bytes --]

Solenwin@freshdesk.com

[-- Attachment #1.2: Type: text/html, Size: 141 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-02 17:38 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-10-02 17:38 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 3533773208567.zip --]
[-- Type: application/zip, Size: 7192 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-10-02 15:35 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-10-02 15:35 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 78524186237.zip --]
[-- Type: application/zip, Size: 6576 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-30 14:07 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-09-30 14:07 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 5283737024430.zip --]
[-- Type: application/zip, Size: 7153 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 21:29 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-09-29 21:29 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 6897516.zip --]
[-- Type: application/zip, Size: 7285 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 18:01 clasico082
  0 siblings, 0 replies; 3395+ messages in thread
From: clasico082 @ 2017-09-29 18:01 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 587629173792972.zip --]
[-- Type: application/zip, Size: 7177 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 15:42 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-09-29 15:42 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 87244.zip --]
[-- Type: application/zip, Size: 7226 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 15:21 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-09-29 15:21 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 033033737342463.zip --]
[-- Type: application/zip, Size: 7234 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 14:47 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-09-29 14:47 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 55645769.zip --]
[-- Type: application/zip, Size: 7222 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 13:49 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-09-29 13:49 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 761981.zip --]
[-- Type: application/zip, Size: 7219 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 11:49 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-09-29 11:49 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 84914924.zip --]
[-- Type: application/zip, Size: 7285 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29 11:28 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-09-29 11:28 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 810795425922.zip --]
[-- Type: application/zip, Size: 7224 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29  7:44 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-09-29  7:44 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 7475658.zip --]
[-- Type: application/zip, Size: 7277 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29  7:26 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-09-29  7:26 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 40098069241.zip --]
[-- Type: application/zip, Size: 7206 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29  3:06 jha
  0 siblings, 0 replies; 3395+ messages in thread
From: jha @ 2017-09-29  3:06 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 09773850.zip --]
[-- Type: application/zip, Size: 7115 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-29  2:48 Tina Aaron
  0 siblings, 0 replies; 3395+ messages in thread
From: Tina Aaron @ 2017-09-29  2:48 UTC (permalink / raw)




Do you need urgent LOAN ? If yes, Contact me now via Email: mondataclassic@gmail.com




CONFIDENTIALITY NOTICE: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information.  Any unauthorized use, disclosure or distribution is prohibited.  If you are not the intended recipient, please discard the message immediately and inform the sender that the message was sent in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-28 22:59 rlm85310
  0 siblings, 0 replies; 3395+ messages in thread
From: rlm85310 @ 2017-09-28 22:59 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 42094602.zip --]
[-- Type: application/zip, Size: 7139 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-28 15:08 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-09-28 15:08 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 469279928021744.zip --]
[-- Type: application/zip, Size: 86434 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-28  0:21 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-09-28  0:21 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 16782652.doc --]
[-- Type: application/msword, Size: 59577 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-27 19:30 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-09-27 19:30 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 7696623.doc --]
[-- Type: application/msword, Size: 67240 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-27 19:12 rlm85310
  0 siblings, 0 replies; 3395+ messages in thread
From: rlm85310 @ 2017-09-27 19:12 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 612074162.doc --]
[-- Type: application/msword, Size: 67084 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-27 17:41 Michael Lyle
  0 siblings, 0 replies; 3395+ messages in thread
From: Michael Lyle @ 2017-09-27 17:41 UTC (permalink / raw)
  To: linux-bcache

Hey everyone---

After the review comments from last night, I'm back to try again :)


Thanks everyone for your help-- comments on what's changed and how
#4 helps with future work (why it's slightly more complicated) are
below.

Mike

Changes from last night:

- Changed lots of comment formatting to match the rest of bcache-style.
- Fixed a bug noticed by Tang Junhui where contiguous I/O would not be
dispatched together.
- Changed the magic number '5' and '5000' to the macros
MAX_WRITEBACKS_IN_PASS and MAX_WRITESIZE_IN_PASS
- Slight improvements to patch logs.

The net result of all these changes is better IO utilization during
writeback.  More contiguous I/O happens (whether during idle times or
when there is more activity).  Contiguous I/O is sent in proper order
to the backing device.  The control system picks better writeback
rate targets and the system can better hit them.

This is what I plan to work on next, in subsequent patches:

- Add code to skip doing small I/Os when A) there are larger I/Os in
the set, and B) the end of disk wasn't reached when scanning.  In
other words, try writing out the bigger contiguous chunks of writeback
first; give the other blocks time to end up with a larger extent next
to them.  This depends on patch 4, because it understands the true
contiguous backing I/O size and isn't fooled by smaller extents.

- Adjust bch_next_delay to store the reciprocal of what it currently
does, and remove the bounds on maximum-sleep-time.  Instead, enforce
a maximum sleep time at the writeback loop.  This will allow us to go
a long time (hundreds of seconds) without writing to the disk at all,
while still being ready to respond quickly to any increases in requested
writeback rate.  This depends on patch 4, which slightly changes the
formulation of the delay.

- Add a "fast writeback" mode, that is for use when the disk is idle.
If enabled, and there has been no I/O, it will issue one (contiguous)
write at a time at IOPRIO_CLASS_IDLE, with no delay inbetween (bypassing
the control system).  The fact that there is only one I/O and they are
at minimum IOPRIO means that good latency for the first user I/O request
will be maintained-- because they only need to compete with one writeback
I/O in the queue which is set to low priority.  This depends on patch 4 in
order to correctly merge contiguous requests in this mode.

- Add code to plug the backing device when there are more contiguous
requests coming.  This requires patch 4 (to be able to mark requests
to expect additional contiguous requests after them) and patch 5
(to properly order the I/O for the backing device).  This will help
ensure the schduler will properly merge operations (it usually works
now, but not always).

- Add code to lower writeback IOPRIO when the rate is easily being met,
so that end-user IO requests "win".

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] ` <1504117946-3958-1-git-send-email-larturus2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-09-24 15:50   ` Artur Lorincz
  2017-10-06 19:31   ` (unknown), Artur Lorincz
  2017-10-08 16:28   ` (unknown), Artur Lorincz
  2 siblings, 0 replies; 3395+ messages in thread
From: Artur Lorincz @ 2017-09-24 15:50 UTC (permalink / raw)
  To: frowand.list-Re5JQEeQqe8AvxtiuMwx3w
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	larturus-/E1597aS9LQAvxtiuMwx3w

Hello,

Could you please send me an update about this patch?

Thanks,
Artur
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-22 19:34 John Michael
  0 siblings, 0 replies; 3395+ messages in thread
From: John Michael @ 2017-09-22 19:34 UTC (permalink / raw)


how are you doing,is me John Michael i have a personal reason of
writing you now.write to me ok.
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-22  8:41 Adrian Gillian Bayford
  0 siblings, 0 replies; 3395+ messages in thread
From: Adrian Gillian Bayford @ 2017-09-22  8:41 UTC (permalink / raw)
  To: Recipients

£1.5 Million Has Been Granted To You As A Donation Visit www.bbc.co.uk/news/uk-england-19254228 Sendname Address Phone for more info
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-22  3:39 service
  0 siblings, 0 replies; 3395+ messages in thread
From: service @ 2017-09-22  3:39 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 78046538807981.doc --]
[-- Type: application/msword, Size: 56742 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-22  1:55 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-09-22  1:55 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 240154917498495.doc --]
[-- Type: application/msword, Size: 54325 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-22  1:22 unsubscribe.me
  0 siblings, 0 replies; 3395+ messages in thread
From: unsubscribe.me @ 2017-09-22  1:22 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 7172596099.doc --]
[-- Type: application/msword, Size: 55811 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-21  7:47 MAILER-DAEMON
  0 siblings, 0 replies; 3395+ messages in thread
From: MAILER-DAEMON @ 2017-09-21  7:47 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

The original message was received at Thu, 21 Sep 2017 15:47:49 +0800
from lists.01.org [144.3.34.209]

----- The following addresses had permanent fatal errors -----
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-20  1:01 ninfo
  0 siblings, 0 replies; 3395+ messages in thread
From: ninfo @ 2017-09-20  1:01 UTC (permalink / raw)
  To: linux-i2c

[-- Attachment #1: 6246478047403.doc --]
[-- Type: application/msword, Size: 43564 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-19  7:47 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-09-19  7:47 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 4056041929.doc --]
[-- Type: application/msword, Size: 73845 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-15 17:30 noreply
  0 siblings, 0 replies; 3395+ messages in thread
From: noreply @ 2017-09-15 17:30 UTC (permalink / raw)
  To: linux-i2c

[-- Attachment #1: EMAIL_870530_linux-i2c.doc --]
[-- Type: application/msword, Size: 76656 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-15 17:29 noreply
  0 siblings, 0 replies; 3395+ messages in thread
From: noreply @ 2017-09-15 17:29 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_559609003058869_netfilter-devel.doc --]
[-- Type: application/msword, Size: 76620 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-15 17:01 noreply
  0 siblings, 0 replies; 3395+ messages in thread
From: noreply @ 2017-09-15 17:01 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_75480323541895_netdev.doc --]
[-- Type: application/msword, Size: 76645 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-13  8:56 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-09-13  8:56 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 9675261.doc --]
[-- Type: application/msword, Size: 76537 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-13  4:21 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-09-13  4:21 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 629854663368780.doc --]
[-- Type: application/msword, Size: 43208 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-12 22:07 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-09-12 22:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 43594737937.doc --]
[-- Type: application/msword, Size: 76549 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-12 19:45 edo.hlaca
  0 siblings, 0 replies; 3395+ messages in thread
From: edo.hlaca @ 2017-09-12 19:45 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 7460535286371.doc --]
[-- Type: application/msword, Size: 76645 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-12 19:16 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-09-12 19:16 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 9258914528172.doc --]
[-- Type: application/msword, Size: 43182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-12 18:53 pooks005
  0 siblings, 0 replies; 3395+ messages in thread
From: pooks005 @ 2017-09-12 18:53 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 1825633111058.doc --]
[-- Type: application/msword, Size: 43182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-11 20:10 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-09-11 20:10 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 49188211.doc --]
[-- Type: application/msword, Size: 76265 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-09-11 19:35 Helge Deller
  0 siblings, 0 replies; 3395+ messages in thread
From: Helge Deller @ 2017-09-11 19:35 UTC (permalink / raw)
  To: Linus Torvalds, linux-kernel, linux-parisc, James Bottomley,
	John David Anglin



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-10  6:22 Youichi Kanno
  0 siblings, 0 replies; 3395+ messages in thread
From: Youichi Kanno @ 2017-09-10  6:22 UTC (permalink / raw)






Sir/Madam

I am sorry to encroach into your privacy in this manner, I found you  
listed in the Trade Center Chambers of Commerce directory here in  
Japan, My name is Youichi Kanno and I work in Audit & credit  
Supervisory role at The Norinchukin Bank, I need your assistance to  
process the fund claims oF $18,100,000.00 (Eighteen Million, One  
Hundred Thousand, USD) of a deceased client Mr. Grigor Kassan, And i  
need your assistance to process the fund claims, I only pray at this  
time that your address is still valid. I want to solicit your  
attention to receive this money on my behalf. The purpose of my  
contacting you is because my status would not permit me to do this  
alone.


I hope to hear from you soon so we can discuss the logistic of moving
the funds to a safe offshore bank.

Yours sincerely,
Youichi Kanno
Phone Number: +81345400962

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-07  7:05 tabiadhawatef
  0 siblings, 0 replies; 3395+ messages in thread
From: tabiadhawatef @ 2017-09-07  7:05 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 52593.doc --]
[-- Type: application/msword, Size: 39787 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-07  4:02 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-09-07  4:02 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 977913748072031.doc --]
[-- Type: application/msword, Size: 39607 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-06  3:57 informationrequest
  0 siblings, 0 replies; 3395+ messages in thread
From: informationrequest @ 2017-09-06  3:57 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 45388.doc --]
[-- Type: application/msword, Size: 75967 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 23:34 kkaplanidou
  0 siblings, 0 replies; 3395+ messages in thread
From: kkaplanidou @ 2017-09-05 23:34 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 033300.doc --]
[-- Type: application/msword, Size: 75921 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 18:38 john.dahlberg
  0 siblings, 0 replies; 3395+ messages in thread
From: john.dahlberg @ 2017-09-05 18:38 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 60152775241_linux-scsi.zip --]
[-- Type: application/zip, Size: 3435 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 18:07 bfoster
  0 siblings, 0 replies; 3395+ messages in thread
From: bfoster @ 2017-09-05 18:07 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 79129942816922.doc --]
[-- Type: application/msword, Size: 39379 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 16:31 mgriffit
  0 siblings, 0 replies; 3395+ messages in thread
From: mgriffit @ 2017-09-05 16:31 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 99589200620834_linux-ide.zip --]
[-- Type: application/zip, Size: 3435 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 14:02 ecaterinasuciu09
  0 siblings, 0 replies; 3395+ messages in thread
From: ecaterinasuciu09 @ 2017-09-05 14:02 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 7_linux-acpi.zip --]
[-- Type: application/zip, Size: 3435 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 12:51 ifalqi
  0 siblings, 0 replies; 3395+ messages in thread
From: ifalqi @ 2017-09-05 12:51 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 9731908610.doc --]
[-- Type: application/msword, Size: 73845 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05 11:11 inn
  0 siblings, 0 replies; 3395+ messages in thread
From: inn @ 2017-09-05 11:11 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 4567040211589.doc --]
[-- Type: application/msword, Size: 75772 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05  2:43 xb028930336
  0 siblings, 0 replies; 3395+ messages in thread
From: xb028930336 @ 2017-09-05  2:43 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 17372103.doc --]
[-- Type: application/msword, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-05  1:51 halinajan-4Uo9UdwAbX8
  0 siblings, 0 replies; 3395+ messages in thread
From: halinajan-4Uo9UdwAbX8 @ 2017-09-05  1:51 UTC (permalink / raw)
  To: linux-tegra-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 1107094.doc --]
[-- Type: application/msword, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-04 23:46 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-09-04 23:46 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 6768082.doc --]
[-- Type: application/msword, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-04 12:17 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-09-04 12:17 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 9476795550394.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-04  5:14 nelcastellodicarta
  0 siblings, 0 replies; 3395+ messages in thread
From: nelcastellodicarta @ 2017-09-04  5:14 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 5854501628.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-04  2:33 marketing
  0 siblings, 0 replies; 3395+ messages in thread
From: marketing @ 2017-09-04  2:33 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 14036757427509.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-04  2:13 x1kn8fk
  0 siblings, 0 replies; 3395+ messages in thread
From: x1kn8fk @ 2017-09-04  2:13 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 423567.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-03 22:54 sherrilyn
  0 siblings, 0 replies; 3395+ messages in thread
From: sherrilyn @ 2017-09-03 22:54 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 06811825.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-03 21:51 xb028930336
  0 siblings, 0 replies; 3395+ messages in thread
From: xb028930336 @ 2017-09-03 21:51 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 83163881723765.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-03 21:26 cl_luzcc
  0 siblings, 0 replies; 3395+ messages in thread
From: cl_luzcc @ 2017-09-03 21:26 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 680737.doc --]
[-- Type: application/msword, Size: 40698 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02 23:56 netgalley
  0 siblings, 0 replies; 3395+ messages in thread
From: netgalley @ 2017-09-02 23:56 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 111116.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  6:40 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-09-02  6:40 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 907693760.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  2:47 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-09-02  2:47 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 624346.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  2:39 een
  0 siblings, 0 replies; 3395+ messages in thread
From: een @ 2017-09-02  2:39 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 8088665.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  2:35 jbmplupus-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: jbmplupus-Mmb7MZpHnFY @ 2017-09-02  2:35 UTC (permalink / raw)
  To: linux-man-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 787132618586608.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  1:59 danielle.picarda2
  0 siblings, 0 replies; 3395+ messages in thread
From: danielle.picarda2 @ 2017-09-02  1:59 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 2706461535932.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-02  0:58 smallgroups
  0 siblings, 0 replies; 3395+ messages in thread
From: smallgroups @ 2017-09-02  0:58 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 97238929.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 22:55 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-09-01 22:55 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 861574953961.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 22:51 zumbalisa
  0 siblings, 0 replies; 3395+ messages in thread
From: zumbalisa @ 2017-09-01 22:51 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 459612134.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 21:57 umpvav-YDxpq3io04c
  0 siblings, 0 replies; 3395+ messages in thread
From: umpvav-YDxpq3io04c @ 2017-09-01 21:57 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 730020230707.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 21:32 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-09-01 21:32 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 01796145500215.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 20:58 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-09-01 20:58 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 001007146.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 19:52 sunaina
  0 siblings, 0 replies; 3395+ messages in thread
From: sunaina @ 2017-09-01 19:52 UTC (permalink / raw)
  To: linux-can

[-- Attachment #1: 73711.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 15:30 stef.ryckmans
  0 siblings, 0 replies; 3395+ messages in thread
From: stef.ryckmans @ 2017-09-01 15:30 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 8247893720.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 15:00 ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: ujagu8185-Re5JQEeQqe8AvxtiuMwx3w @ 2017-09-01 15:00 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 67113.doc --]
[-- Type: application/msword, Size: 40147 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01 11:40 witt.kohl
  0 siblings, 0 replies; 3395+ messages in thread
From: witt.kohl @ 2017-09-01 11:40 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 668862857.doc --]
[-- Type: application/msword, Size: 40646 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  8:16 financialaid
  0 siblings, 0 replies; 3395+ messages in thread
From: financialaid @ 2017-09-01  8:16 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 31996318536734.doc --]
[-- Type: application/msword, Size: 40638 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  6:21 zita.latex
  0 siblings, 0 replies; 3395+ messages in thread
From: zita.latex @ 2017-09-01  6:21 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 0054154130299.doc --]
[-- Type: application/msword, Size: 40638 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  4:59 adriix.addy
  0 siblings, 0 replies; 3395+ messages in thread
From: adriix.addy @ 2017-09-01  4:59 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 2798076558.doc --]
[-- Type: application/msword, Size: 40462 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  4:05 andrewf
  0 siblings, 0 replies; 3395+ messages in thread
From: andrewf @ 2017-09-01  4:05 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 568268530019.doc --]
[-- Type: application/msword, Size: 40462 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  2:30 robert.berry
  0 siblings, 0 replies; 3395+ messages in thread
From: robert.berry @ 2017-09-01  2:30 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 224909365.doc --]
[-- Type: application/msword, Size: 40462 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  1:48 doctornina
  0 siblings, 0 replies; 3395+ messages in thread
From: doctornina @ 2017-09-01  1:48 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 204118348.doc --]
[-- Type: application/msword, Size: 40462 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-09-01  1:48 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-09-01  1:48 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 674423596.doc --]
[-- Type: application/msword, Size: 40462 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31 18:41 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-31 18:41 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 66881.doc --]
[-- Type: application/msword, Size: 41431 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31 15:40 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-08-31 15:40 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 540585795659.doc --]
[-- Type: application/msword, Size: 41837 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31 12:23 mark.robinson
  0 siblings, 0 replies; 3395+ messages in thread
From: mark.robinson @ 2017-08-31 12:23 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 872453539374.doc --]
[-- Type: application/msword, Size: 41374 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31  9:54 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-08-31  9:54 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 3622620.doc --]
[-- Type: application/msword, Size: 41541 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31  8:20 jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q
  0 siblings, 0 replies; 3395+ messages in thread
From: jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q @ 2017-08-31  8:20 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 497569661200.doc --]
[-- Type: application/msword, Size: 41259 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31  4:52 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-08-31  4:52 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 713932.doc --]
[-- Type: application/msword, Size: 41252 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-08-31  1:39 m.wierczynska
  0 siblings, 0 replies; 3395+ messages in thread
From: m.wierczynska @ 2017-08-31  1:39 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: 449666.doc --]
[-- Type: application/msword, Size: 41783 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-31  0:58 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-08-31  0:58 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 52336.doc --]
[-- Type: application/msword, Size: 30930 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-30 20:26 anita.traylor
  0 siblings, 0 replies; 3395+ messages in thread
From: anita.traylor @ 2017-08-30 20:26 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 61571.doc --]
[-- Type: application/msword, Size: 30930 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-30 19:49 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-08-30 19:49 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 1467132.doc --]
[-- Type: application/msword, Size: 30930 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-30  1:37 municlerk
  0 siblings, 0 replies; 3395+ messages in thread
From: municlerk @ 2017-08-30  1:37 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 3603332555227.doc --]
[-- Type: application/msword, Size: 30657 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-30  0:38 ifalqi
  0 siblings, 0 replies; 3395+ messages in thread
From: ifalqi @ 2017-08-30  0:38 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 650953515.doc --]
[-- Type: application/msword, Size: 30657 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-29  5:40 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-08-29  5:40 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: MAIL_81389397283742_netdev.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-08-29  3:02 catherine.verge
  0 siblings, 0 replies; 3395+ messages in thread
From: catherine.verge @ 2017-08-29  3:02 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: MAIL_9444780361_linux-parisc.zip --]
[-- Type: application/zip, Size: 97803 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-28 17:29 befragung
  0 siblings, 0 replies; 3395+ messages in thread
From: befragung @ 2017-08-28 17:29 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: MAIL_9030297428213_linux-ext4.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-28 13:22 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-08-28 13:22 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: MAIL_365828227848183_linux-ide.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-28  6:48 patientcentral
  0 siblings, 0 replies; 3395+ messages in thread
From: patientcentral @ 2017-08-28  6:48 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: MAIL_496995800_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-27 10:55 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-08-27 10:55 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: MAIL_34929959_netdev.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-26 14:48 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-08-26 14:48 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: MAIL_171083918_linux-arch.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-26  5:43 carol.dallstream-WaM/PvcBqAo
  0 siblings, 0 replies; 3395+ messages in thread
From: carol.dallstream-WaM/PvcBqAo @ 2017-08-26  5:43 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: MAIL_710687125_linux-api.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-25  0:32 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-08-25  0:32 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 555867372077.doc --]
[-- Type: application/msword, Size: 77007 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-23  7:23 Xuehan Xu
  0 siblings, 0 replies; 3395+ messages in thread
From: Xuehan Xu @ 2017-08-23  7:23 UTC (permalink / raw)
  To: ceph-devel

Hi, everyone.

Recently, we did a test as follows:

We enabled cache tier and added a cache pool "vms_back_cache" on top
of the base pool "vms_back". we first created an object, and then
created a snap in the base pool and writing to that object again,
which would make the object be promoted into the cache pool. At this
time, we used "ceph-objectstore-tool" to dump the object, and the
result is as follows:

{
    "id": {
        "oid": "test.obj.6",
        "key": "",
        "snapid": -2,
        "hash": 750422257,
        "max": 0,
        "pool": 11,
        "namespace": "",
        "max": 0
    },
    "info": {
        "oid": {
            "oid": "test.obj.6",
            "key": "",
            "snapid": -2,
            "hash": 750422257,
            "max": 0,
            "pool": 11,
            "namespace": ""
        },
        "version": "5010'5",
        "prior_version": "4991'3",
        "last_reqid": "client.175338.0:1",
        "user_version": 5,
        "size": 4194303,
        "mtime": "2017-08-23 15:09:03.459892",
        "local_mtime": "2017-08-23 15:09:03.461111",
        "lost": 0,
        "flags": 4,
        "snaps": [],
        "truncate_seq": 0,
        "truncate_size": 0,
        "data_digest": 4294967295,
        "omap_digest": 4294967295,
        "watchers": {}
    },
    "stat": {
        "size": 4194303,
        "blksize": 4096,
        "blocks": 8200,
        "nlink": 1
    },
    "SnapSet": {
        "snap_context": {
            "seq": 13,
            "snaps": [
                13
            ]
        },
        "head_exists": 1,
        "clones": [
            {
                "snap": 13,
                "size": 4194303,
                "overlap": "[0~100,115~4194188]"
            }
        ]
    }
}

Then we did cache-flush and cache-evict to flush that object down to
the base pool, and, again, used "ceph-objectstore-tool" to dump the
object in the base pool:

{
    "id": {
        "oid": "test.obj.6",
        "key": "",
        "snapid": -2,
        "hash": 750422257,
        "max": 0,
        "pool": 10,
        "namespace": "",
        "max": 0
    },
    "info": {
        "oid": {
            "oid": "test.obj.6",
            "key": "",
            "snapid": -2,
            "hash": 750422257,
            "max": 0,
            "pool": 10,
            "namespace": ""
        },
        "version": "5015'4",
        "prior_version": "4991'2",
        "last_reqid": "osd.34.5013:1",
        "user_version": 5,
        "size": 4194303,
        "mtime": "2017-08-23 15:09:03.459892",
        "local_mtime": "2017-08-23 15:10:48.122138",
        "lost": 0,
        "flags": 52,
        "snaps": [],
        "truncate_seq": 0,
        "truncate_size": 0,
        "data_digest": 163942140,
        "omap_digest": 4294967295,
        "watchers": {}
    },
    "stat": {
        "size": 4194303,
        "blksize": 4096,
        "blocks": 8200,
        "nlink": 1
    },
    "SnapSet": {
        "snap_context": {
            "seq": 13,
            "snaps": [
                13
            ]
        },
        "head_exists": 1,
        "clones": [
            {
                "snap": 13,
                "size": 4194303,
                "overlap": "[]"
            }
        ]
    }
}

As is shown, the "overlap" field is empty.
In the osd log, we found the following records:

2017-08-23 12:46:36.083014 7f675c704700 20 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]  got
attrs
2017-08-23 12:46:36.083021 7f675c704700 15
filestore(/home/xuxuehan/github-xxh-fork/ceph/src/dev/osd0) read
3.3_head/#3:dd4db749:test-rados-api-xxh02v.ops.corp.qihoo.net-10886-3::foo:head#
0~8
2017-08-23 12:46:36.083398 7f675c704700 10
filestore(/home/xuxuehan/github-xxh-fork/ceph/src/dev/osd0)
FileStore::read
3.3_head/#3:dd4db749:test-rados-api-xxh02v.ops.corp.qihoo.net-10886-3::foo:head#
0~8/8
2017-08-23 12:46:36.083414 7f675c704700 20 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]  got
data
2017-08-23 12:46:36.083444 7f675c704700 20 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]
cursor.is_complete=0 0 attrs 8 bytes 0 omap header bytes 0 omap data
bytes in 0 keys 0 reqids
2017-08-23 12:46:36.083457 7f675c704700 10 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]
dropping ondisk_read_lock
2017-08-23 12:46:36.083467 7f675c704700 15 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]
do_osd_op_effects osd.0 con 0x7f67874f0d00
2017-08-23 12:46:36.083478 7f675c704700 15 osd.0 pg_epoch: 19 pg[3.3(
v 15'2 (0'0,15'2] local-les=15 n=2 ec=14 les/c/f 15/15/0 14/14/14)
[0,2,1] r=0 lpr=14 crt=0'0 lcod 15'1 mlcod 15'1 active+clean]
log_op_stats osd_op(osd.0.6:2 3.92edb2bb
test-rados-api-xxh02v.ops.corp

It seems that, when doing "copy-get", no extensive attributes are
copied. We believe that it's the following code that led to this
result:

int ReplicatedPG::getattrs_maybe_cache(ObjectContextRef obc,
        map<string, bufferlist> *out,
        bool user_only) {
    int r = 0;
    if (pool.info.require_rollback()) {
        if (out)
            *out = obc->attr_cache;
    } else {
        r = pgbackend->objects_get_attrs(obc->obs.oi.soid, out);
    }
    if (out && user_only) {
        map<string, bufferlist> tmp;
        for (map<string, bufferlist>::iterator i = out->begin();
                i != out->end(); ++i) {
            if (i->first.size() > 1 && i->first[0] == '_')
                tmp[i->first.substr(1, i->first.size())].claim(i->second);
        }
        tmp.swap(*out);
    }
    return r;
}

It seems that when "user_only" is true, extensive attributes without a
'_' as the starting character in its name would be filtered out. Is it
supposed to be doing things in this way?
And we found that there are only two places in the source code that
invoked ReplicatedPG::getattrs_maybe_cache, in both of which
"user_only" is true. Why add this parameter?

By the way, we also found that these codes are added in commit
78d9c0072bfde30917aea4820a811d7fc9f10522, but we don't understand the
purpose of it.

Thank you:-)

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-22 13:31 vinnakota chaitanya
  0 siblings, 0 replies; 3395+ messages in thread
From: vinnakota chaitanya @ 2017-08-22 13:31 UTC (permalink / raw)
  To: linux raid

Greetings Linux

http://www.curet.in/pop_messengers.php?sense=rkwy2e7qh97gty3bz




vinnakota chaitanya

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-20  2:58 Solen win2
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win2 @ 2017-08-20  2:58 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 4 bytes --]

all

[-- Attachment #1.2: Type: text/html, Size: 79 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-08-18 17:42 Rajneesh Bhardwaj
  0 siblings, 0 replies; 3395+ messages in thread
From: Rajneesh Bhardwaj @ 2017-08-18 17:42 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Peter Zijlstra (Intel),
	Platform Driver, dvhart, Andy Shevchenko, linux-kernel,
	Vishwanath Somayaji, dbasehore, rjw, rajatja

Bcc: 
Subject: Re: [PATCH] platform/x86: intel_pmc_core: Add Package C-states
 residency info
Reply-To: 
In-Reply-To: <CAHp75Vd5Wnio-RCEBENtonYWOJF2+88FDvqkUv1HzV3CdcaaPA@mail.gmail.com>

On Fri, Aug 18, 2017 at 08:17:32PM +0300, Andy Shevchenko wrote:
> +PeterZ (since I mentioned his name)
> 
> On Fri, Aug 18, 2017 at 5:58 PM, Rajneesh Bhardwaj
> <rajneesh.bhardwaj@intel.com> wrote:
> > On Fri, Aug 18, 2017 at 03:57:34PM +0300, Andy Shevchenko wrote:
> >> On Fri, Aug 18, 2017 at 3:37 PM, Rajneesh Bhardwaj
> >> <rajneesh.bhardwaj@intel.com> wrote:
> >> > This patch introduces a new debugfs entry to read current Package C-state
> >> > residency values and, one new kernel API to read the Package C-10 residency
> >> > counter.
> >> >
> >> > Package C-state residency MSRs provide useful debug information about system
> >> > idle states. In idle states system must enter deeper Package C-states.
> 
> >> Why this patch is needed?
> >
> > Andy, I'll try to give some background for this.
> >
> > This is needed to enhance the S0ix failure debug capabilities from within
> > the kernel. On ChromeOS we have S0ix failsafe kernel framework that is used
> > to validate S0ix and report the blockers in case of a failure.
> > https://patchwork.kernel.org/patch/9148999/
> 
> (It's not part of upstream)

Sorry i sent an older link. There are fresh attempts to get this into
mainline kernel and looks like there is a traction for it.
https://patchwork.kernel.org/patch/9831229/

Package C-state (PC10) validation is discussed there.

> 
> > So far only intel_pmc_slp_s0_counter_read is called by this framework to
> > check whether the previous attempt to enter S0ix was success or not.
> 
> I harder see even a single user of that API in current kernel. It
> should be unexported and removed I think.
> 
> >  Having
> > another PC10 counter related exported function enhances the S0ix debug since
> > PC10 state is a prerequisite to enter S0ix.
> >
> >> See, we have turbostat and cpupower user space tools which do this
> >> without any additional code to be written in kernel. What prevents
> >> your user space application do the same?
> >>
> >> Moreover, we have events for cstate, I assume perf or something alike
> >> can monitor those counters as well.
> >
> > You're right, perhaps the debugfs is redundant when we have those user space
> > tools but such tools are not available readily for all platforms/distros.
> > Interfaces like /dev/cpu/*/msr that turbostat uses are not available on all
> > the platforms.
> > PMC driver is a debug driver so i thought its better to show Package C-state
> > related info for low power debug here.
> >
> >>
> >> Sorry, NAK.
> >
> > This patch has two parts i.e. exported PC10 API and the debugfs. Based on
> > the above explanation, if the patch is not good as is, please let me know if
> > i should drop the debugfs part and respin a v2 with just the exported API or
> > drop this totally.
> >
> > Thanks for the feedback and thanks for taking time to review!
> 
> Reading above makes me think that entire design of this is misguided.
> Since the most of values are counters they better to be accessed in a
> way how perf does.
> 
> In case you need *in-kernel* facility, do some APIs (if it's not done
> yet) for events drivers first.
> cstate event driver is already in upstream.
> 
> Sorry, NAK for entire patch until it would be blessed by people like Peter Z.
> 
> -- 
> With Best Regards,
> Andy Shevchenko

-- 
Best Regards,
Rajneesh

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-17 21:36 Adam Richter
  0 siblings, 0 replies; 3395+ messages in thread
From: Adam Richter @ 2017-08-17 21:36 UTC (permalink / raw)
  To: alexander deucher, adam richter2004, nana5kids, barrykendall,
	containers, ann zhang888, sca38018, westglen, scott,
	stephanie bertron



http://well.thephoneswipe.com <http://well.thephoneswipe.com/>

Adam Richter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-16  5:46 kim.frederiksen
  0 siblings, 0 replies; 3395+ messages in thread
From: kim.frederiksen @ 2017-08-16  5:46 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 9220091.zip --]
[-- Type: application/zip, Size: 3037 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-16  2:03 xa0ajutor
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0ajutor @ 2017-08-16  2:03 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 522025194.zip --]
[-- Type: application/zip, Size: 3043 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15 17:31 nnarroyo623
  0 siblings, 0 replies; 3395+ messages in thread
From: nnarroyo623 @ 2017-08-15 17:31 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 035925974243079.zip --]
[-- Type: application/zip, Size: 2980 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15 17:30 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-08-15 17:30 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 459394949582.zip --]
[-- Type: application/zip, Size: 3040 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15 14:45 een
  0 siblings, 0 replies; 3395+ messages in thread
From: een @ 2017-08-15 14:45 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 4863169031.zip --]
[-- Type: application/zip, Size: 3067 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15 14:23 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-15 14:23 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 55560763.zip --]
[-- Type: application/zip, Size: 3051 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15 11:16 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-08-15 11:16 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 634410994749.zip --]
[-- Type: application/zip, Size: 3060 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  8:46 ccc
  0 siblings, 0 replies; 3395+ messages in thread
From: ccc @ 2017-08-15  8:46 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 765228233.zip --]
[-- Type: application/zip, Size: 3033 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  6:50 demorton
  0 siblings, 0 replies; 3395+ messages in thread
From: demorton @ 2017-08-15  6:50 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 501507600268095.zip --]
[-- Type: application/zip, Size: 2943 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  6:08 eumann
  0 siblings, 0 replies; 3395+ messages in thread
From: eumann @ 2017-08-15  6:08 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 237594553.zip --]
[-- Type: application/zip, Size: 10414 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  4:40 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-08-15  4:40 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 9176321037.zip --]
[-- Type: application/zip, Size: 10388 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  3:38 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-08-15  3:38 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 199646001731449.zip --]
[-- Type: application/zip, Size: 10454 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  2:57 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-08-15  2:57 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 384541360.zip --]
[-- Type: application/zip, Size: 10642 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-15  1:55 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-08-15  1:55 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 90678.zip --]
[-- Type: application/zip, Size: 10605 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-14 19:30 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-08-14 19:30 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 78726092.zip --]
[-- Type: application/zip, Size: 10383 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-14 17:38 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-08-14 17:38 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 050177949000179.zip --]
[-- Type: application/zip, Size: 10488 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-14 16:53 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-08-14 16:53 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 72821751043628.zip --]
[-- Type: application/zip, Size: 10391 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-14 15:35 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-08-14 15:35 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 4869945.zip --]
[-- Type: application/zip, Size: 10508 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-14 14:57 linwoodrvsales
  0 siblings, 0 replies; 3395+ messages in thread
From: linwoodrvsales @ 2017-08-14 14:57 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 366791731259.zip --]
[-- Type: application/zip, Size: 10440 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-13 15:17 bunny43200
  0 siblings, 0 replies; 3395+ messages in thread
From: bunny43200 @ 2017-08-13 15:17 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 0392931732.zip --]
[-- Type: application/zip, Size: 2807 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-12 12:05 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-08-12 12:05 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 70937464.zip --]
[-- Type: application/zip, Size: 2801 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-12  1:27 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-08-12  1:27 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 9055629516135.zip --]
[-- Type: application/zip, Size: 2802 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-12  1:11 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-08-12  1:11 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 6367947931.zip --]
[-- Type: application/zip, Size: 2814 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11 22:09 Chris
  0 siblings, 0 replies; 3395+ messages in thread
From: Chris @ 2017-08-11 22:09 UTC (permalink / raw)
  To: netfilter

All,

I'm using 4.4.0-89-generic #112-Ubuntu Kernel.

I've setup a bridge

bridge name        bridge id                STP enabled        interfaces
br0                8000.00322e111b2        no                enp3s0
                                                        vnet0

Why is it possible to DROP packages from a KVM guest on the host INPUT
chain, but not to LOG them?

I've not loaded any bridge-nf modules. bridge/nf_call_iptables is 0.

- Chris



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11 20:11 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-08-11 20:11 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 77412.zip --]
[-- Type: application/zip, Size: 2798 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11 17:28 rhsinfo
  0 siblings, 0 replies; 3395+ messages in thread
From: rhsinfo @ 2017-08-11 17:28 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 9749575300.zip --]
[-- Type: application/zip, Size: 2783 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11 15:50 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-08-11 15:50 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 278428204.zip --]
[-- Type: application/zip, Size: 2803 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  9:18 jonathan.malihan
  0 siblings, 0 replies; 3395+ messages in thread
From: jonathan.malihan @ 2017-08-11  9:18 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 27221324329.zip --]
[-- Type: application/zip, Size: 2776 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  8:54 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-11  8:54 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 3242728060.zip --]
[-- Type: application/zip, Size: 2804 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  6:14 администратор 
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор  @ 2017-08-11  6:14 UTC (permalink / raw)




внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет
отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки &copy;2017

спасибо
системы администратор 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  6:14 администратор 
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор  @ 2017-08-11  6:14 UTC (permalink / raw)




внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет
отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки &copy;2017

спасибо
системы администратор 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  6:14 администратор 
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор  @ 2017-08-11  6:14 UTC (permalink / raw)




внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет
отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки &copy;2017

спасибо
системы администратор 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  6:14 администратор 
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор  @ 2017-08-11  6:14 UTC (permalink / raw)




внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет
отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки &copy;2017

спасибо
системы администратор 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  6:08 администратор 
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор  @ 2017-08-11  6:08 UTC (permalink / raw)



внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет
отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки &copy;2017

спасибо
системы администратор 

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  4:59 Administrator
  0 siblings, 0 replies; 3395+ messages in thread
From: Administrator @ 2017-08-11  4:59 UTC (permalink / raw)




PERHATIAN

Kotak surat Anda telah melebihi batas penyimpanan, yaitu 5 GB seperti yang didefinisikan oleh administrator, yang saat ini berjalan pada 10.9GB, Anda mungkin tidak dapat mengirim atau menerima surat baru sampai Anda kembali memvalidasi email mailbox Anda. Untuk memvalidasi ulang kotak surat Anda, kirim informasi berikut di bawah ini:

Nama:
Username:
sandi:
Konfirmasi sandi:
E-mail:
telepon:

Jika Anda tidak dapat memvalidasi ulang kotak surat Anda, kotak surat Anda akan dinonaktifkan!

Maaf atas ketidaknyamanan ini.
Kode verifikasi: en:0986..web...id......nw..website Admin..id...9876mm.2017
Surat Dukungan Teknis &copy;2017

terima kasih
Sistem Administrator

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  4:57 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-08-11  4:57 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 674345.zip --]
[-- Type: application/zip, Size: 2772 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-11  4:42 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-08-11  4:42 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 600195769.zip --]
[-- Type: application/zip, Size: 2790 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10 22:02 stef.ryckmans
  0 siblings, 0 replies; 3395+ messages in thread
From: stef.ryckmans @ 2017-08-10 22:02 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 65496536326505.zip --]
[-- Type: application/zip, Size: 2836 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10 21:36 shriyashah
  0 siblings, 0 replies; 3395+ messages in thread
From: shriyashah @ 2017-08-10 21:36 UTC (permalink / raw)
  To: Linux Sparse

Hi Linux



http://www.tinzapp.com/admin_deletecat.php?greater=2y77anyke95apve


Shriyashah

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10 21:08 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-08-10 21:08 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 6807682246.zip --]
[-- Type: application/zip, Size: 2832 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10 18:16 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-08-10 18:16 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 33739.zip --]
[-- Type: application/zip, Size: 2798 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10  9:38 asn-request-tfHHCSmtYoI
  0 siblings, 0 replies; 3395+ messages in thread
From: asn-request-tfHHCSmtYoI @ 2017-08-10  9:38 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 4557559813106.zip --]
[-- Type: application/zip, Size: 10156 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10  3:32 kholloway
  0 siblings, 0 replies; 3395+ messages in thread
From: kholloway @ 2017-08-10  3:32 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 831370873385464.zip --]
[-- Type: application/zip, Size: 10089 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-10  0:03 michele
  0 siblings, 0 replies; 3395+ messages in thread
From: michele @ 2017-08-10  0:03 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 6866279090778.zip --]
[-- Type: application/zip, Size: 10050 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 23:53 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-08-09 23:53 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 1937013271360.zip --]
[-- Type: application/zip, Size: 10165 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 23:15 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-08-09 23:15 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 623541182991.zip --]
[-- Type: application/zip, Size: 10327 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 23:06 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-08-09 23:06 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 40290366.zip --]
[-- Type: application/zip, Size: 10171 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 22:05 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-09 22:05 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 45779797.zip --]
[-- Type: application/zip, Size: 10199 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 21:55 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-08-09 21:55 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 43384837466.zip --]
[-- Type: application/zip, Size: 10235 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 20:25 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-08-09 20:25 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 647805231.zip --]
[-- Type: application/zip, Size: 10227 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 19:40 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-08-09 19:40 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 09310008.zip --]
[-- Type: application/zip, Size: 10212 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 19:36 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-08-09 19:36 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 0058486113211.zip --]
[-- Type: application/zip, Size: 9996 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 14:34 shwx002
  0 siblings, 0 replies; 3395+ messages in thread
From: shwx002 @ 2017-08-09 14:34 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 46684317829.zip --]
[-- Type: application/zip, Size: 10187 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 13:53 Administrador
  0 siblings, 0 replies; 3395+ messages in thread
From: Administrador @ 2017-08-09 13:53 UTC (permalink / raw)


ATENCIÓN;

Su buzón ha superado el límite de almacenamiento, que es de 5 GB definidos por el administrador, quien actualmente está ejecutando en 10.9GB, no puede ser capaz de enviar o recibir correo nuevo hasta que vuelva a validar su buzón de correo electrónico. Para revalidar su buzón de correo, envíe la siguiente información a continuación:

nombre:
Nombre de usuario:
contraseña:
Confirmar contraseña:
E-mail:
teléfono:
Si usted no puede revalidar su buzón, el buzón se deshabilitará!

Disculpa las molestias.
Código de verificación: es: 006524
Correo Soporte Técnico © 2017

¡gracias
Sistemas administrador

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 10:21 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-09 10:21 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 10:20 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-09 10:20 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 10:20 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-09 10:20 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 10:20 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-09 10:20 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09 10:20 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-09 10:20 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09  0:41 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-08-09  0:41 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 44541508673885.zip --]
[-- Type: application/zip, Size: 2759 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-09  0:04 h.piontek
  0 siblings, 0 replies; 3395+ messages in thread
From: h.piontek @ 2017-08-09  0:04 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 113823879477495.zip --]
[-- Type: application/zip, Size: 2792 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08 21:31 michele
  0 siblings, 0 replies; 3395+ messages in thread
From: michele @ 2017-08-08 21:31 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 95599025.zip --]
[-- Type: application/zip, Size: 2816 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08 20:55 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-08-08 20:55 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 940383335057.zip --]
[-- Type: application/zip, Size: 2791 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08 19:40 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-08-08 19:40 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 4143572985.zip --]
[-- Type: application/zip, Size: 2790 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08 19:14 eaya
  0 siblings, 0 replies; 3395+ messages in thread
From: eaya @ 2017-08-08 19:14 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 496397636536.zip --]
[-- Type: application/zip, Size: 2775 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08 17:09 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-08-08 17:09 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 308683624321199.zip --]
[-- Type: application/zip, Size: 2782 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-08-08 14:49 catherine.verge
  0 siblings, 0 replies; 3395+ messages in thread
From: catherine.verge @ 2017-08-08 14:49 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: 7770632.zip --]
[-- Type: application/zip, Size: 13836 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08  5:57 befragung
  0 siblings, 0 replies; 3395+ messages in thread
From: befragung @ 2017-08-08  5:57 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 6886059214541.zip --]
[-- Type: application/zip, Size: 10117 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-08  4:57 wesley.sydnor
  0 siblings, 0 replies; 3395+ messages in thread
From: wesley.sydnor @ 2017-08-08  4:57 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 705650.zip --]
[-- Type: application/zip, Size: 10184 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 23:50 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-08-07 23:50 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 3422503110.zip --]
[-- Type: application/zip, Size: 10245 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 21:05 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-08-07 21:05 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 2939023.zip --]
[-- Type: application/zip, Size: 10092 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 20:25 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-08-07 20:25 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 0302343835.zip --]
[-- Type: application/zip, Size: 10210 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 19:03 sm-yT/95SBIOhs
  0 siblings, 0 replies; 3395+ messages in thread
From: sm-yT/95SBIOhs @ 2017-08-07 19:03 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 9772870247503.zip --]
[-- Type: application/zip, Size: 10178 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 18:42 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-08-07 18:42 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_2679242603246_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 10234 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 18:38 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-08-07 18:38 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: MESSAGE_5386199_linux-ide.zip --]
[-- Type: application/zip, Size: 10047 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07 11:50 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-08-07 11:50 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: MESSAGE_10248647599809_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2767 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07  7:38 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-08-07  7:38 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_279421_netfilter-devel.zip --]
[-- Type: application/zip, Size: 2790 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-07  4:49 sorbisches.internat
  0 siblings, 0 replies; 3395+ messages in thread
From: sorbisches.internat @ 2017-08-07  4:49 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: INFO_1756598_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2781 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-06 23:55 webmaster
  0 siblings, 0 replies; 3395+ messages in thread
From: webmaster @ 2017-08-06 23:55 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: INFO_896228080802293_linux-acpi.zip --]
[-- Type: application/zip, Size: 2787 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-05 14:08 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-08-05 14:08 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: INFO_124526896_netfilter-devel.zip --]
[-- Type: application/zip, Size: 9542 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-05 12:35 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-08-05 12:35 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: INFO_6087555_netdev.zip --]
[-- Type: application/zip, Size: 9797 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-05 11:42 Sriram Murthy
  0 siblings, 0 replies; 3395+ messages in thread
From: Sriram Murthy @ 2017-08-05 11:42 UTC (permalink / raw)
  To: kvm

Good evening Kvm



http://hellofmi.lahun.info/bower_components/datatables-plugins/integration/bootstrap/1/restrito.php?cross=2fxe7ps6xvyez83q





Sriram Murthy

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-04 23:59 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-08-04 23:59 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: INFO_5549071394372_linux-ext4.zip --]
[-- Type: application/zip, Size: 9754 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-04  5:04 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-08-04  5:04 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 62318405.zip --]
[-- Type: application/zip, Size: 2982 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-03 19:52 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-08-03 19:52 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 188047157183604.zip --]
[-- Type: application/zip, Size: 2952 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-03 14:01 Nora Johnson
  0 siblings, 0 replies; 3395+ messages in thread
From: Nora Johnson @ 2017-08-03 14:01 UTC (permalink / raw)


Hi please dear reply me throuhg my email ID. i have something to
discussed with you. here is my email ( norajohonson@gmail.com  )

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-03  5:21 Houston
  0 siblings, 0 replies; 3395+ messages in thread
From: Houston @ 2017-08-03  5:21 UTC (permalink / raw)
  To: Rosa

[-- Attachment #1: EMAIL_297485343255_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2962 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 18:05 Angela-63XfWfWBA5k
  0 siblings, 0 replies; 3395+ messages in thread
From: Angela-63XfWfWBA5k @ 2017-08-02 18:05 UTC (permalink / raw)
  To: Gustafson-bwXX7kNdE64

[-- Attachment #1: EMAIL_934736608514_linux-tegra.zip --]
[-- Type: application/zip, Size: 2930 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 17:31 Edmond
  0 siblings, 0 replies; 3395+ messages in thread
From: Edmond @ 2017-08-02 17:31 UTC (permalink / raw)
  To: Carpenter

[-- Attachment #1: EMAIL_0884435643248_linux-i2c.zip --]
[-- Type: application/zip, Size: 2977 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 17:07 Margery
  0 siblings, 0 replies; 3395+ messages in thread
From: Margery @ 2017-08-02 17:07 UTC (permalink / raw)
  To: Pettit

[-- Attachment #1: EMAIL_1585037780_linux-leds.zip --]
[-- Type: application/zip, Size: 2940 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 15:40 Erma
  0 siblings, 0 replies; 3395+ messages in thread
From: Erma @ 2017-08-02 15:40 UTC (permalink / raw)
  To: Bland

[-- Attachment #1: EMAIL_61204_linux-ext4.zip --]
[-- Type: application/zip, Size: 2798 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 13:58 Will
  0 siblings, 0 replies; 3395+ messages in thread
From: Will @ 2017-08-02 13:58 UTC (permalink / raw)
  To: Reeves

[-- Attachment #1: EMAIL_771025884546703_linux-next.zip --]
[-- Type: application/zip, Size: 2859 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 12:55 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-08-02 12:55 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_7005561631_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2815 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02 11:47 armiksanaye
  0 siblings, 0 replies; 3395+ messages in thread
From: armiksanaye @ 2017-08-02 11:47 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_408667114_linux-scsi.zip --]
[-- Type: application/zip, Size: 2792 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  4:12 Administrator
  0 siblings, 0 replies; 3395+ messages in thread
From: Administrator @ 2017-08-02  4:12 UTC (permalink / raw)


PERHATIAN

Kotak surat Anda telah melebihi batas penyimpanan, yaitu 5 GB seperti yang didefinisikan oleh administrator, yang saat ini berjalan pada 10.9GB, Anda mungkin tidak dapat mengirim atau menerima surat baru sampai Anda kembali memvalidasi email mailbox Anda. Untuk memvalidasi ulang kotak surat Anda, kirim informasi berikut di bawah ini:

Nama:
Username:
sandi:
Konfirmasi sandi:
E-mail:
telepon:

Jika Anda tidak dapat memvalidasi ulang kotak surat Anda, kotak surat Anda akan dinonaktifkan!

Maaf atas ketidaknyamanan ini.
Kode verifikasi: en:0986..web...id......nw..website Admin..id...9876mm.2017
Surat Dukungan Teknis ©2017

terima kasih
Sistem Administrator

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:47 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-02  3:47 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:45 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-02  3:45 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_2820973694253_netdev.zip --]
[-- Type: application/zip, Size: 2772 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-02  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-02  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-02  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-08-02  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  1:19 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-08-02  1:19 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_436034165_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 2857 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  1:05 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-08-02  1:05 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_491213_linux-acpi.zip --]
[-- Type: application/zip, Size: 2806 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-02  0:36 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-08-02  0:36 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_60776096244_linux-bcache.zip --]
[-- Type: application/zip, Size: 2813 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 21:19 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-08-01 21:19 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_062920054084147_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2835 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 21:03 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-08-01 21:03 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_5749719396757_linux-ext4.zip --]
[-- Type: application/zip, Size: 2834 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 20:18 stef.ryckmans
  0 siblings, 0 replies; 3395+ messages in thread
From: stef.ryckmans @ 2017-08-01 20:18 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_005677859264_netdev.zip --]
[-- Type: application/zip, Size: 2832 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 19:35 anderslindgaard
  0 siblings, 0 replies; 3395+ messages in thread
From: anderslindgaard @ 2017-08-01 19:35 UTC (permalink / raw)
  To: linux fsdevel

hiya Linux

http://www.maxtra.cl/index/wp-content/plugins/pixcodes/views/index_old.php?busy=gt2vetuv76w2yz1x

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 19:35 anderslindgaard
  0 siblings, 0 replies; 3395+ messages in thread
From: anderslindgaard @ 2017-08-01 19:35 UTC (permalink / raw)
  To: linux ext4

hi 

http://www.evelynverapropiedades.cl/wp-includes/js/tinymce/plugins/tabfocus/reklamapage.php?similar=2s7wb6pxdgd2xfd1b




All Best

anderslindgaard

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 16:33 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-08-01 16:33 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_26553892905555_linux-ext4.zip --]
[-- Type: application/zip, Size: 2590 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 14:53 Angela H. Whiteman
  0 siblings, 0 replies; 3395+ messages in thread
From: Angela H. Whiteman @ 2017-08-01 14:53 UTC (permalink / raw)






There's an Unclaimed Inheritance with your Last Name. Reply to; abailey456789@gmail.com<mailto:abailey456789@gmail.com> with your Full Names.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01 12:35 jha
  0 siblings, 0 replies; 3395+ messages in thread
From: jha @ 2017-08-01 12:35 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_79916_linux-scsi.zip --]
[-- Type: application/zip, Size: 2549 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-08-01 10:07 Chris Ruehl
  0 siblings, 0 replies; 3395+ messages in thread
From: Chris Ruehl @ 2017-08-01 10:07 UTC (permalink / raw)
  To: linux-gpio

unsubscribe linux-gpio

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01  4:40 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-08-01  4:40 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_935589887_linux-acpi.zip --]
[-- Type: application/zip, Size: 2665 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01  3:31 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-08-01  3:31 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_0354141_netdev.zip --]
[-- Type: application/zip, Size: 2628 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01  1:35 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-08-01  1:35 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_902515565565244_netfilter-devel.zip --]
[-- Type: application/zip, Size: 2630 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-08-01  1:35 xa0ajutor
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0ajutor @ 2017-08-01  1:35 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_2558300_linux-raid.zip --]
[-- Type: application/zip, Size: 2603 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 21:27 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-07-31 21:27 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_04030628274029_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2678 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 20:14 x1kn8fk
  0 siblings, 0 replies; 3395+ messages in thread
From: x1kn8fk @ 2017-07-31 20:14 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_50780553_netfilter-devel.zip --]
[-- Type: application/zip, Size: 2632 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 18:00 robert.berry
  0 siblings, 0 replies; 3395+ messages in thread
From: robert.berry @ 2017-07-31 18:00 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: EMAIL_19786452607897_linux-ide.zip --]
[-- Type: application/zip, Size: 2619 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 16:54 bunny43200
  0 siblings, 0 replies; 3395+ messages in thread
From: bunny43200 @ 2017-07-31 16:54 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: EMAIL_621609019_linux-leds.zip --]
[-- Type: application/zip, Size: 2616 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 14:52 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-07-31 14:52 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_907106465_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2595 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 13:15 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-07-31 13:15 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_749482276_dwarves.zip --]
[-- Type: application/zip, Size: 2772 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 11:49 kchristopher
  0 siblings, 0 replies; 3395+ messages in thread
From: kchristopher @ 2017-07-31 11:49 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_5391549_linux-acpi.zip --]
[-- Type: application/zip, Size: 2620 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 11:33 rhsinfo
  0 siblings, 0 replies; 3395+ messages in thread
From: rhsinfo @ 2017-07-31 11:33 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_9678461867_linux-bcache.zip --]
[-- Type: application/zip, Size: 2594 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-31 10:50 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-07-31 10:50 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_3070873620_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2596 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-30 23:33 daven bango
  0 siblings, 0 replies; 3395+ messages in thread
From: daven bango @ 2017-07-30 23:33 UTC (permalink / raw)


Hi, I am Barrister Daven Bango, Can i trust and cooperate with you in an
international transaction? I look forward to your urgent response in my
email (bar.davenbango@gmail.com) Thanks.

Best regards,
Barrister Daven Bango
skype: bardaven01

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-28 16:02 gdahl
  0 siblings, 0 replies; 3395+ messages in thread
From: gdahl @ 2017-07-28 16:02 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_01908678_linux-scsi.zip --]
[-- Type: application/zip, Size: 2755 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-28  7:44 robert.berry
  0 siblings, 0 replies; 3395+ messages in thread
From: robert.berry @ 2017-07-28  7:44 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: EMAIL_5907231_linux-ide.zip --]
[-- Type: application/zip, Size: 2744 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-28  7:17 doctornina
  0 siblings, 0 replies; 3395+ messages in thread
From: doctornina @ 2017-07-28  7:17 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_47501615459_netdev.zip --]
[-- Type: application/zip, Size: 2727 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-27 13:00 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-07-27 13:00 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_47662874919894_linux-arch.zip --]
[-- Type: application/zip, Size: 2622 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-27  5:01 hp
  0 siblings, 0 replies; 3395+ messages in thread
From: hp @ 2017-07-27  5:01 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_86618341708_linux-raid.zip --]
[-- Type: application/zip, Size: 2744 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-07-27  2:16 ceph-devel
  0 siblings, 0 replies; 3395+ messages in thread
From: ceph-devel @ 2017-07-27  2:16 UTC (permalink / raw)
  To: ceph-devel

subscribe ceph-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-07-27  2:14 ceph-devel
  0 siblings, 0 replies; 3395+ messages in thread
From: ceph-devel @ 2017-07-27  2:14 UTC (permalink / raw)
  To: ceph-devel

list

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-27  1:25 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-07-27  1:25 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_852332459197961_netdev.zip --]
[-- Type: application/zip, Size: 2791 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 20:45 een
  0 siblings, 0 replies; 3395+ messages in thread
From: een @ 2017-07-26 20:45 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_87861780008_linux-raid.zip --]
[-- Type: application/zip, Size: 2705 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 20:08 municlerk
  0 siblings, 0 replies; 3395+ messages in thread
From: municlerk @ 2017-07-26 20:08 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_2092813_linux-arch.zip --]
[-- Type: application/zip, Size: 2800 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 14:35 venkatvenkatsubra
  0 siblings, 0 replies; 3395+ messages in thread
From: venkatvenkatsubra @ 2017-07-26 14:35 UTC (permalink / raw)
  To: netdev

Greetings Netdev

http://mondesign.jp/list-view.php?result=2b7f5x3fc4gxussdn





venkatvenkatsubra

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 14:20 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-07-26 14:20 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_797944_linux-ext4.zip --]
[-- Type: application/zip, Size: 5778 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 12:48 momofr
  0 siblings, 0 replies; 3395+ messages in thread
From: momofr @ 2017-07-26 12:48 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_632952_netdev.zip --]
[-- Type: application/zip, Size: 5704 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 11:39 chrisbi_anelyst
  0 siblings, 0 replies; 3395+ messages in thread
From: chrisbi_anelyst @ 2017-07-26 11:39 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_136876215_linux-ext4.zip --]
[-- Type: application/zip, Size: 5730 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26 10:32 Solen win2
  0 siblings, 0 replies; 3395+ messages in thread
From: Solen win2 @ 2017-07-26 10:32 UTC (permalink / raw)
  To: virtualization


[-- Attachment #1.1: Type: text/plain, Size: 4 bytes --]

all

[-- Attachment #1.2: Type: text/html, Size: 79 bytes --]

[-- Attachment #2: Type: text/plain, Size: 183 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26  6:36 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-07-26  6:36 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_548787_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 5665 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26  4:42 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-07-26  4:42 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_5577425919869_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 5756 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-26  2:25 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-07-26  2:25 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_2677628586_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 5660 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 23:24 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-07-25 23:24 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_68285_linux-arch.zip --]
[-- Type: application/zip, Size: 5710 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 20:41 sorbisches.internat
  0 siblings, 0 replies; 3395+ messages in thread
From: sorbisches.internat @ 2017-07-25 20:41 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_041756358039_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 5769 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 20:01 hp
  0 siblings, 0 replies; 3395+ messages in thread
From: hp @ 2017-07-25 20:01 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_89826583725_linux-raid.zip --]
[-- Type: application/zip, Size: 5777 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 18:53 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-07-25 18:53 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_8190761198_dwarves.zip --]
[-- Type: application/zip, Size: 5934 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 18:45 x1kn8fk
  0 siblings, 0 replies; 3395+ messages in thread
From: x1kn8fk @ 2017-07-25 18:45 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_4053073819_netfilter-devel.zip --]
[-- Type: application/zip, Size: 5682 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 16:36 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-07-25 16:36 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_31876792_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 5697 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 14:56 nhossein4212003
  0 siblings, 0 replies; 3395+ messages in thread
From: nhossein4212003 @ 2017-07-25 14:56 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_968240354671258_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 5752 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-25 10:27 nick_c_huang
  0 siblings, 0 replies; 3395+ messages in thread
From: nick_c_huang @ 2017-07-25 10:27 UTC (permalink / raw)
  To: linux ide

hi Linux



http://comagim.com/installer.php?please=c2ukh7msv51k1




Sincerely

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-23 23:48 miteshriya
  0 siblings, 0 replies; 3395+ messages in thread
From: miteshriya @ 2017-07-23 23:48 UTC (permalink / raw)
  To: Linux Sparse

hi Linux

http://mnmfibers.com/questionnaire.php?faster=fvam2n7492m



Regards
Miteshriya

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-20 18:43 tbinh.minhnd
  0 siblings, 0 replies; 3395+ messages in thread
From: tbinh.minhnd @ 2017-07-20 18:43 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 145050548450.zip --]
[-- Type: application/zip, Size: 3029 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-20  3:55 mfr-6k8blvha/+BqlCpFK1mnLg
  0 siblings, 0 replies; 3395+ messages in thread
From: mfr-6k8blvha/+BqlCpFK1mnLg @ 2017-07-20  3:55 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: "EMAIL_20824268419_linux-cifs.zip --]
[-- Type: application/zip, Size: 4079 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-19 11:11 rhsinfo
  0 siblings, 0 replies; 3395+ messages in thread
From: rhsinfo @ 2017-07-19 11:11 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: "EMAIL_80943888669572_linux-bcache.zip --]
[-- Type: application/zip, Size: 3405 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 23:49 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-07-18 23:49 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: "EMAIL_48303574101919_netdev.zip --]
[-- Type: application/zip, Size: 2803 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 20:36 bunny43200
  0 siblings, 0 replies; 3395+ messages in thread
From: bunny43200 @ 2017-07-18 20:36 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: "EMAIL_51788859886_linux-leds.zip --]
[-- Type: application/zip, Size: 2819 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 20:28 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-07-18 20:28 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: "EMAIL_3186527_linux-acpi.zip --]
[-- Type: application/zip, Size: 2797 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 20:17 brian
  0 siblings, 0 replies; 3395+ messages in thread
From: brian @ 2017-07-18 20:17 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: "EMAIL_921905219268307_linux-pm.zip --]
[-- Type: application/zip, Size: 2829 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 15:56 bfoster
  0 siblings, 0 replies; 3395+ messages in thread
From: bfoster @ 2017-07-18 15:56 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: "EMAIL_08011542258_linux-ext4.zip --]
[-- Type: application/zip, Size: 3282 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 13:52 stef.ryckmans
  0 siblings, 0 replies; 3395+ messages in thread
From: stef.ryckmans @ 2017-07-18 13:52 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: "EMAIL_78264106_netdev.zip --]
[-- Type: application/zip, Size: 3308 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 12:45 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-07-18 12:45 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: "EMAIL_2297760905018_linux-ide.zip --]
[-- Type: application/zip, Size: 3312 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18 11:36 shwx002
  0 siblings, 0 replies; 3395+ messages in thread
From: shwx002 @ 2017-07-18 11:36 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: "EMAIL_64633847013_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3281 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18  6:22 sorbisches.internat
  0 siblings, 0 replies; 3395+ messages in thread
From: sorbisches.internat @ 2017-07-18  6:22 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: "EMAIL_51153308_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 3241 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18  5:45 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-07-18  5:45 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: "EMAIL_664910_linux-arch.zip --]
[-- Type: application/zip, Size: 178 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18  4:50 ying.huang-ral2JQCrhuEAvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: ying.huang-ral2JQCrhuEAvxtiuMwx3w @ 2017-07-18  4:50 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=us-ascii, Size: 1404 bytes --]

`ƒÈU©¹Ž2³~im5wÇ_ô•0ãß„ü¡•Aj×"j’÷!©bÌÙûËäÕWîáµ?7|lø_±ŽÀ”'ÝZ6Ó~•’”*`iU²ZKá½R~
#WÀï×þÇþÆðþjᏽ?‹l?´~DàÔl
¸Iä¤Ñtjµ§ªïU#ööðSÂpãZÃ|¯ðÑÀ¿™ÆožÛÆ
nvFÖÞm*ÜäÌ!%'‚àUœï žÖÈÞ7YuÙ© $?c¸Õ#8Q/-C,Üüձʌ¯ì؁KzNÉlßÏ¿pM~PÿßÉM|×QRmÏ°6Ì7­Ã¤jóɾº’~cLÅõ®È~³>¬%OaÉ[œÃÄNïÔº÷Ü<óFû{ã<ñþ5OÒoOŽˆÚ,qëK¦dPm
DÁÜœ?‡z®×YƒÀw
lfÌOé­?ïË'eP{úózÖ.–²HpMh1-Ó0ÆAøS‘Mï.½M‘‡à·û8§¥ãÃbcŸüî2Søv
Шè¤öïÍlÌQÓt²¡?†µQÐ̹y5maˆ4¨ãÞ‡~½šÆ'Ï\v[‹æI“…‹¤À5‚'ÓêxÎJP¡þfÜã ðrµb^­úÆ–Õm
/ßd¦ª¨»çM_ÆJŽÏn³ˆIÚ ôÖ
ŽƒõæSR¾à½/
íUs¯ÒÏúlZq6rî`FÆYÔE\¡ü*øv¨½]Ìp‡~ÂÉv³ñaËao
ĝ
¦-Và%Qlâõ„Û4Rµ7Ð;ÀŠ 5EÛJæPø¨SLÄçæCaÙÖÉ³Ë ßüò·yÏܸ—CvÜS3×Ibã)·àƒsAI.'ÎQ0ò
s½‰Õ;
êm¥¤Gō Ö¬‡”¯óçÜ}žÑFþe½Äéµû¬xf/]½/·”¯¬LeÐqb—Xò2hºÝŸý¨É;aˆäM&÷øOÅà^VOÓoB
l³ÀÖç¾Ö}©;ÍÄ÷H^Î']¢í¸ÁÙ÷5^/‡„ÍÎG
ý%wDÁ`û8Âáñ™ÏéM{‚Jáýɤã·ú¯ÇçÇèý›LˆÏ×ÛX9ù¸ÙèXúA‚“~Ÿ5Åïî(•WF­Å×P`Ûàß¿)K‹K8ÆBšÆ«Zk—E—í}Œ
ƒÏŸ{ѧ17»H¬ÒÛÙ³(Îí:Sà4&<e<ÖÉ’7°Ÿ»š¼‰d"©T`rV.U-sÑÒ‰qL±0
s­Ýd*7g^¹¢Å“ßéE‡ÉÎçhóž'Á¼7é—,\/}k÷œ©ç“³á«»Z¤ÛR*3ûÀÚ“÷ñgmoø‘lË¥q:lþß
͍È_ÔŸ¥©Åægx†
üÌŠx¤Ú9sú«´ÇÝ­iïÍ
×u;NgÅDØë¬Ó÷­¥µO7w":Y™™Ô²é/W9'¹-½Œç¨šócY±ÑflC^¨«þKè½Ì
ßêÃ^"QöiÀÞ9T\!ÃsCÊføbžâ\×Õâ¾T‰Ûæ–_B.–žÒŒenéo®¹˜0Aøä:ª UµÄù~R Ö.˧ÒÜ_°ÑµÓ? ¶QÏ<±ËýñØ,Àà¹e0Ö/OyåÇúTF0ƒ÷W©ËµþW&7í`Ÿ$û­ÅeÍ·÷ďXÝ‹ì±k»ã²ZÞÃéž©Ê^4AÈCÊèÚ¥&AÕ-öž.àTƒ¸
IêÕªy›ñã(Ꮴ
ÇþXÙ§Î"ô¾ö£i%\÷0›ªF°e ý4&
:¼ J[ˆ"Ô»
·L$”²»„Iî—e¨ª•™Ò6Thög¦ýŽÅ>ñ¡á0õeŸs¼4$cÎɱֽ٬sü_1'ÆU¸ãöPó?Žu&öUÌ”#ú÷JÀy½«SrïC;¶BÑÖ‰.†Ô'¿Æ»®ð4ˆ„5`è\ö’k˜¢¯¾&~âvÈ*bª4 JI?gÏxo›D™•’ÐúèÐb­:Jü\ÖÍ
{œ'™"?ßß“ù˜ó†¾„V¤ì¤”ÃŽ‹Kç‹z‰e)‘\UI‡Ù\5W«T³¬|ü„®’


[-- Attachment #2: Type: text/plain, Size: 178 bytes --]

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18  4:32 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-07-18  4:32 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: "EMAIL_40199138625_linux-raid.zip --]
[-- Type: application/zip, Size: 186 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-18  4:09 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-07-18  4:09 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: "EMAIL_577214953915613_linux-m68k.zip --]
[-- Type: application/zip, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17 23:02 h.piontek
  0 siblings, 0 replies; 3395+ messages in thread
From: h.piontek @ 2017-07-17 23:02 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: "EMAIL_50994155839_linux-acpi.zip --]
[-- Type: application/zip, Size: 3182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17 21:54 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-07-17 21:54 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: "EMAIL_976833055_linux-raid.zip --]
[-- Type: application/zip, Size: 3245 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17 17:30 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-07-17 17:30 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: "EMAIL_168467_linux-bcache.zip --]
[-- Type: application/zip, Size: 3222 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17 15:42 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-07-17 15:42 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: "EMAIL_647172652_linux-arch.zip --]
[-- Type: application/zip, Size: 9834 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17 15:31 kathleen.gilbert
  0 siblings, 0 replies; 3395+ messages in thread
From: kathleen.gilbert @ 2017-07-17 15:31 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: "EMAIL_6458579_netfilter-devel.zip --]
[-- Type: application/zip, Size: 9744 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17  2:32 salome.khum
  0 siblings, 0 replies; 3395+ messages in thread
From: salome.khum @ 2017-07-17  2:32 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: "EMAIL_6906626_netdev.zip --]
[-- Type: application/zip, Size: 5026 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17  1:20 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-07-17  1:20 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: "EMAIL_34446_linux-arch.zip --]
[-- Type: application/zip, Size: 5056 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-17  1:09 kathleen.gilbert
  0 siblings, 0 replies; 3395+ messages in thread
From: kathleen.gilbert @ 2017-07-17  1:09 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: "EMAIL_160434499_netfilter-devel.zip --]
[-- Type: application/zip, Size: 5001 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-16  7:25 kim.frederiksen
  0 siblings, 0 replies; 3395+ messages in thread
From: kim.frederiksen @ 2017-07-16  7:25 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: "EMAIL_1833111554328_netfilter-devel.zip --]
[-- Type: application/zip, Size: 5020 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-15 12:30 Huaisheng HS1 Ye
  0 siblings, 0 replies; 3395+ messages in thread
From: Huaisheng HS1 Ye @ 2017-07-15 12:30 UTC (permalink / raw)
  To: linux-pm

subscribe linux-pm

BRs,
Huaisheng, Ye | 叶怀胜



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-13  4:49 delaware.orders
  0 siblings, 0 replies; 3395+ messages in thread
From: delaware.orders @ 2017-07-13  4:49 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: "EMAIL_649407635104319_linux-crypto.zip --]
[-- Type: application/zip, Size: 4920 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-13  3:37 befragung
  0 siblings, 0 replies; 3395+ messages in thread
From: befragung @ 2017-07-13  3:37 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: "EMAIL_6035315196369_linux-ext4.zip --]
[-- Type: application/zip, Size: 4943 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-13  2:27 tomsue2000
  0 siblings, 0 replies; 3395+ messages in thread
From: tomsue2000 @ 2017-07-13  2:27 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 280947457437_netdev.zip --]
[-- Type: application/zip, Size: 3446 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-12 19:24 patientcentral
  0 siblings, 0 replies; 3395+ messages in thread
From: patientcentral @ 2017-07-12 19:24 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: "EMAIL_1724158835008_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 4941 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-12 11:22 sterrenplan.kampen
  0 siblings, 0 replies; 3395+ messages in thread
From: sterrenplan.kampen @ 2017-07-12 11:22 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 502633130680.zip --]
[-- Type: application/zip, Size: 3686 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-12  0:42 associatebusiness2009
  0 siblings, 0 replies; 3395+ messages in thread
From: associatebusiness2009 @ 2017-07-12  0:42 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 1727806876_netdev.zip --]
[-- Type: application/zip, Size: 3381 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-11 16:39 indulge-HCInDj6vYHrk4FeknX8I/ZqQE7yCjDx5
  0 siblings, 0 replies; 3395+ messages in thread
From: indulge-HCInDj6vYHrk4FeknX8I/ZqQE7yCjDx5 @ 2017-07-11 16:39 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 350891340.zip --]
[-- Type: application/zip, Size: 3619 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-11  0:07 protecciondatos.es
  0 siblings, 0 replies; 3395+ messages in thread
From: protecciondatos.es @ 2017-07-11  0:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 37771761865402.zip --]
[-- Type: application/zip, Size: 10350 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 22:07 jacqueline.pike
  0 siblings, 0 replies; 3395+ messages in thread
From: jacqueline.pike @ 2017-07-10 22:07 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 632904.zip --]
[-- Type: application/zip, Size: 10231 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 21:53 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-07-10 21:53 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 812846400891500.zip --]
[-- Type: application/zip, Size: 10246 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 21:37 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-07-10 21:37 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 74860452066.zip --]
[-- Type: application/zip, Size: 10119 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 12:51 lucia.germino
  0 siblings, 0 replies; 3395+ messages in thread
From: lucia.germino @ 2017-07-10 12:51 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 192119470.zip --]
[-- Type: application/zip, Size: 3546 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 12:43 brian
  0 siblings, 0 replies; 3395+ messages in thread
From: brian @ 2017-07-10 12:43 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 402377184145.zip --]
[-- Type: application/zip, Size: 3533 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10 10:06 alters
  0 siblings, 0 replies; 3395+ messages in thread
From: alters @ 2017-07-10 10:06 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 809297937.zip --]
[-- Type: application/zip, Size: 3453 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  4:42 lipa
  0 siblings, 0 replies; 3395+ messages in thread
From: lipa @ 2017-07-10  4:42 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 4217909091.zip --]
[-- Type: application/zip, Size: 5613 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:47 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:47 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:45 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:45 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-10  3:39 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-07-10  3:39 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...9o76ypp2345t..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 23:29 brian
  0 siblings, 0 replies; 3395+ messages in thread
From: brian @ 2017-07-09 23:29 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 61449860477625.zip --]
[-- Type: application/zip, Size: 5646 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 23:19 Corporate Lenders
  0 siblings, 0 replies; 3395+ messages in thread
From: Corporate Lenders @ 2017-07-09 23:19 UTC (permalink / raw)


Schönen Tag,

Ich bin Thomas Walter, der Finanzagent dieser Firma, bekannt als Corporate Lenders. Wir leihen Geld für Einzelpersonen und Unternehmen, die finanzielle Hilfe benötigen. Hast du einen schlechten Kredit oder du brauchst Geld, um deine Rechnungen zu bezahlen? Wir verwenden dieses Medium, um Ihnen mitzuteilen, dass wir Ihnen bei jeder Form von Darlehen helfen können, wie Sie Refinanzierung, Schuldenkonsolidierung Darlehen, persönliche Darlehen, internationale Darlehen und Business-Darlehen. Wir freuen uns, Ihnen ein Darlehen so niedrig wie der Zinssatz von 3% anzubieten.

Unsere Mission ist es, unseren Kunden einen Service zu bieten, der schnell, freundlich und stressfrei ist. Normalerweise, wenn wir alle Ihre Informationen haben, dauert es nur eine Stunde, um die Genehmigung zu finanzieren.

Wenn Sie interessiert sind, füllen Sie bitte das Darlehensantragsformular aus.

Vollständiger Name:
Geschlecht:
Benötigte Menge:
Dauer:
Tel:
Sprich Englisch?

Wir warten auf Ihre Antwort.

Sie erreichen uns per E-Mail: info@corporatelendersonline.com
Mit freundlichen Grüßen,
Thomas Walter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 23:19 Corporate Lenders
  0 siblings, 0 replies; 3395+ messages in thread
From: Corporate Lenders @ 2017-07-09 23:19 UTC (permalink / raw)


Schönen Tag,

Ich bin Thomas Walter, der Finanzagent dieser Firma, bekannt als Corporate Lenders. Wir leihen Geld für Einzelpersonen und Unternehmen, die finanzielle Hilfe benötigen. Hast du einen schlechten Kredit oder du brauchst Geld, um deine Rechnungen zu bezahlen? Wir verwenden dieses Medium, um Ihnen mitzuteilen, dass wir Ihnen bei jeder Form von Darlehen helfen können, wie Sie Refinanzierung, Schuldenkonsolidierung Darlehen, persönliche Darlehen, internationale Darlehen und Business-Darlehen. Wir freuen uns, Ihnen ein Darlehen so niedrig wie der Zinssatz von 3% anzubieten.

Unsere Mission ist es, unseren Kunden einen Service zu bieten, der schnell, freundlich und stressfrei ist. Normalerweise, wenn wir alle Ihre Informationen haben, dauert es nur eine Stunde, um die Genehmigung zu finanzieren.

Wenn Sie interessiert sind, füllen Sie bitte das Darlehensantragsformular aus.

Vollständiger Name:
Geschlecht:
Benötigte Menge:
Dauer:
Tel:
Sprich Englisch?

Wir warten auf Ihre Antwort.

Sie erreichen uns per E-Mail: info@corporatelendersonline.com
Mit freundlichen Grüßen,
Thomas Walter

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 20:52 iker-KvP5wT2u2U0
  0 siblings, 0 replies; 3395+ messages in thread
From: iker-KvP5wT2u2U0 @ 2017-07-09 20:52 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 540211.zip --]
[-- Type: application/zip, Size: 5580 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 18:51 pooks005
  0 siblings, 0 replies; 3395+ messages in thread
From: pooks005 @ 2017-07-09 18:51 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 43722.zip --]
[-- Type: application/zip, Size: 5563 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-09 13:02 smallgroups
  0 siblings, 0 replies; 3395+ messages in thread
From: smallgroups @ 2017-07-09 13:02 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 83375208989.zip --]
[-- Type: application/zip, Size: 5715 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-08 18:22 Alfred chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred chow @ 2017-07-08 18:22 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing  
Chong Hing Bank, Hong Kong, Chong Hing Bank Centre, 24 Des Voeux Road  
Central, Hong Kong. I have a business proposal of  $38,980,369.00.

All confirmable documents to back up the claims will be made available  
to you prior to your acceptance and as soon as I receive your return  
mail.

Best Regards,
Alfred Chow

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-08 18:22 Alfred chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred chow @ 2017-07-08 18:22 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing  
Chong Hing Bank, Hong Kong, Chong Hing Bank Centre, 24 Des Voeux Road  
Central, Hong Kong. I have a business proposal of  $38,980,369.00.

All confirmable documents to back up the claims will be made available  
to you prior to your acceptance and as soon as I receive your return  
mail.

Best Regards,
Alfred Chow

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-08 17:13 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-07-08 17:13 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 02865760222.zip --]
[-- Type: application/zip, Size: 5600 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-08 16:07 netgalley
  0 siblings, 0 replies; 3395+ messages in thread
From: netgalley @ 2017-07-08 16:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 018847.zip --]
[-- Type: application/zip, Size: 5656 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-08 11:53 Alfred chow
  0 siblings, 0 replies; 3395+ messages in thread
From: Alfred chow @ 2017-07-08 11:53 UTC (permalink / raw)





Good Day,

I am Mr. Alfred Cheuk Yu Chow, the Director for Credit & Marketing  
Chong Hing Bank, Hong Kong, Chong Hing Bank Centre, 24 Des Voeux Road  
Central, Hong Kong. I have a business proposal of  $38,980,369.00.

All confirmable documents to back up the claims will be made available  
to you prior to your acceptance and as soon as I receive your return  
mail.

Best Regards,
Alfred Chow

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-07 17:21 pooks005
  0 siblings, 0 replies; 3395+ messages in thread
From: pooks005 @ 2017-07-07 17:21 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 785808.zip --]
[-- Type: application/zip, Size: 5577 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-07  1:37 zumbalisa
  0 siblings, 0 replies; 3395+ messages in thread
From: zumbalisa @ 2017-07-07  1:37 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: EMAIL_50013593097_linux-pm.zip --]
[-- Type: application/zip, Size: 4284 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-07  0:30 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-07-07  0:30 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_674323058_netfilter-devel.zip --]
[-- Type: application/zip, Size: 4265 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-06 17:35 simon.a.t.hardy
  0 siblings, 0 replies; 3395+ messages in thread
From: simon.a.t.hardy @ 2017-07-06 17:35 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_7662351347_netfilter-devel.zip --]
[-- Type: application/zip, Size: 4280 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-06 14:11 een
  0 siblings, 0 replies; 3395+ messages in thread
From: een @ 2017-07-06 14:11 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_938012525_linux-raid.zip --]
[-- Type: application/zip, Size: 4285 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-06  6:10 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-07-06  6:10 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: EMAIL_11449160770431_linux-m68k.zip --]
[-- Type: application/zip, Size: 5047 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-06  0:55 이성근
  0 siblings, 0 replies; 3395+ messages in thread
From: 이성근 @ 2017-07-06  0:55 UTC (permalink / raw)
  To: kvm

subscribe kvm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05 21:18 een
  0 siblings, 0 replies; 3395+ messages in thread
From: een @ 2017-07-05 21:18 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_3767374_linux-raid.zip --]
[-- Type: application/zip, Size: 5044 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05 15:57 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-07-05 15:57 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_19275272_dwarves.zip --]
[-- Type: application/zip, Size: 2747 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05 15:15 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-07-05 15:15 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 75316601415907.zip --]
[-- Type: application/zip, Size: 2755 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  8:06 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-07-05  8:06 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: MESSAGE-9568447630-linux-ext4.zip --]
[-- Type: application/zip, Size: 2347 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  7:00 benjamin
  0 siblings, 0 replies; 3395+ messages in thread
From: benjamin @ 2017-07-05  7:00 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EBAY_36890034909_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2342 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  6:55 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-07-05  6:55 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EBAY_3538766534773_linux-crypto.zip --]
[-- Type: application/zip, Size: 2370 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  6:42 angers
  0 siblings, 0 replies; 3395+ messages in thread
From: angers @ 2017-07-05  6:42 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EBAY_1112994_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2366 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  0:55 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-07-05  0:55 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EBAY_4714145_netdev.zip --]
[-- Type: application/zip, Size: 2350 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-05  0:06 michele
  0 siblings, 0 replies; 3395+ messages in thread
From: michele @ 2017-07-05  0:06 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EBAY_8161483_linux-bcache.zip --]
[-- Type: application/zip, Size: 2355 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 22:53 j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
  0 siblings, 0 replies; 3395+ messages in thread
From: j.lahoda-aRb0bU7PRFPrBKCeMvbIDA @ 2017-07-04 22:53 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EBAY_4112026224_linux-efi.zip --]
[-- Type: application/zip, Size: 2350 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 21:02 salome.khum
  0 siblings, 0 replies; 3395+ messages in thread
From: salome.khum @ 2017-07-04 21:02 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EBAY_666499260012_netdev.zip --]
[-- Type: application/zip, Size: 2352 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 19:53 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-07-04 19:53 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EBAY_725260156512_linux-arch.zip --]
[-- Type: application/zip, Size: 2379 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 18:35 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-07-04 18:35 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: BILL-5456344828928.zip --]
[-- Type: application/zip, Size: 2310 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 16:38 openhackbangalore
  0 siblings, 0 replies; 3395+ messages in thread
From: openhackbangalore @ 2017-07-04 16:38 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_91533202_netdev.zip --]
[-- Type: application/zip, Size: 2370 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04 10:50 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-07-04 10:50 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_46564219859_linux-arch.zip --]
[-- Type: application/zip, Size: 3183 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04  8:52 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-07-04  8:52 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_77904176_linux-raid.zip --]
[-- Type: application/zip, Size: 3164 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04  6:01 xa0ajutor
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0ajutor @ 2017-07-04  6:01 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_56923235589997_linux-raid.zip --]
[-- Type: application/zip, Size: 3176 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-04  4:17 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-07-04  4:17 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_172111191_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 3145 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03 14:13 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-07-03 14:13 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_531101184_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3146 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03 13:54 sm-yT/95SBIOhs
  0 siblings, 0 replies; 3395+ messages in thread
From: sm-yT/95SBIOhs @ 2017-07-03 13:54 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_0176393263878_linux-api.zip --]
[-- Type: application/zip, Size: 3177 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03 13:30 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-07-03 13:30 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_76537910174_netfilter-devel.zip --]
[-- Type: application/zip, Size: 3188 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03 12:43 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-07-03 12:43 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: EMAIL_94858129_linux-ide.zip --]
[-- Type: application/zip, Size: 3177 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03  4:44 beautyink
  0 siblings, 0 replies; 3395+ messages in thread
From: beautyink @ 2017-07-03  4:44 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: EMAIL_27450398_linux-ide.zip --]
[-- Type: application/zip, Size: 3158 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-03  1:28 h.piontek
  0 siblings, 0 replies; 3395+ messages in thread
From: h.piontek @ 2017-07-03  1:28 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_8799211_linux-acpi.zip --]
[-- Type: application/zip, Size: 3184 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-02 20:26 tabiadhawatef
  0 siblings, 0 replies; 3395+ messages in thread
From: tabiadhawatef @ 2017-07-02 20:26 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_7709270_linux-acpi.zip --]
[-- Type: application/zip, Size: 3153 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-02 18:44 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-07-02 18:44 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_23646323904760_linux-arch.zip --]
[-- Type: application/zip, Size: 3190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-02 10:14 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-07-02 10:14 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: EMAIL_6686834979628_linux-m68k.zip --]
[-- Type: application/zip, Size: 3172 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-01 21:28 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-07-01 21:28 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_90244_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3187 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-07-01 11:36 p.mueller-spz-hgw-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: p.mueller-spz-hgw-Mmb7MZpHnFY @ 2017-07-01 11:36 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 7041_linux-rdma.zip --]
[-- Type: application/zip, Size: 3259 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-30  8:29 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-06-30  8:29 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 050511.zip --]
[-- Type: application/zip, Size: 3370 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-30  2:53 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-06-30  2:53 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 066785575956.zip --]
[-- Type: application/zip, Size: 3368 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-30  1:14 paloma.depping
  0 siblings, 0 replies; 3395+ messages in thread
From: paloma.depping @ 2017-06-30  1:14 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 820702835161.zip --]
[-- Type: application/zip, Size: 3390 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-29 19:05 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-06-29 19:05 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 814657.zip --]
[-- Type: application/zip, Size: 3412 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-29 13:46 kholloway
  0 siblings, 0 replies; 3395+ messages in thread
From: kholloway @ 2017-06-29 13:46 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 445063815940.zip --]
[-- Type: application/zip, Size: 3347 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-29 12:20 The Post Office
  0 siblings, 0 replies; 3395+ messages in thread
From: The Post Office @ 2017-06-29 12:20 UTC (permalink / raw)
  To: linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw

This Message was undeliverable due to the following reason:

Your message was not delivered because the destination computer was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.

Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.

Your message was not delivered within 7 days:
Host 106.146.148.224 is not responding.

The following recipients did not receive this message:
<linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org>

Please reply to postmaster-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
if you feel this message to be in error.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-29 10:39 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-06-29 10:39 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 933271400.zip --]
[-- Type: application/zip, Size: 3368 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28 14:22 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-06-28 14:22 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_202419_linux-arch.zip --]
[-- Type: application/zip, Size: 3329 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:57 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-06-28  3:57 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:56 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-06-28  3:56 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:56 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-06-28  3:56 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:56 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-06-28  3:56 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:56 системы администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: системы администратор @ 2017-06-28  3:56 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...776774990..2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-28  3:22 Administrator
  0 siblings, 0 replies; 3395+ messages in thread
From: Administrator @ 2017-06-28  3:22 UTC (permalink / raw)


PERHATIAN

Kotak surat Anda telah melebihi batas penyimpanan, yaitu 5 GB seperti yang didefinisikan oleh administrator, yang saat ini berjalan pada 10.9GB, Anda mungkin tidak dapat mengirim atau menerima surat baru sampai Anda kembali memvalidasi email mailbox Anda. Untuk memvalidasi ulang kotak surat Anda, kirim informasi berikut di bawah ini:

Nama:
Username:
sandi:
Konfirmasi sandi:
E-mail:
telepon:

Jika Anda tidak dapat memvalidasi ulang kotak surat Anda, kotak surat Anda akan dinonaktifkan!

Maaf atas ketidaknyamanan ini.
Kode verifikasi: en:0009876...nw.na.website Admin..id...9876mm.2017
Surat Dukungan Teknis ©2017

terima kasih
Sistem Administrator
.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-27 11:59 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-06-27 11:59 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_468535330447271_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3452 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-27  7:15 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-06-27  7:15 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_8655932282_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 3401 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-27  7:12 loisc07
  0 siblings, 0 replies; 3395+ messages in thread
From: loisc07 @ 2017-06-27  7:12 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_994612756450_linux-ext4.zip --]
[-- Type: application/zip, Size: 3401 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-27  0:08 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-06-27  0:08 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_0578932146183_linux-arch.zip --]
[-- Type: application/zip, Size: 3422 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 22:58 Anders Lind
  0 siblings, 0 replies; 3395+ messages in thread
From: Anders Lind @ 2017-06-26 22:58 UTC (permalink / raw)
  To: linux fsdevel

Good morning Linux



http://www.me-lawoffice.com/cat_add.php?son=rmtgusk26880ceteu




Anders

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 22:58 Anders Lind
  0 siblings, 0 replies; 3395+ messages in thread
From: Anders Lind @ 2017-06-26 22:58 UTC (permalink / raw)
  To: linux ext4

Hi 



http://www.parkenspizza.se/faq_info.php?doesnt=v2b68r8t0abkav



Thanks
Anders Lind

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 22:14 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-06-26 22:14 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_9158645_linux-raid.zip --]
[-- Type: application/zip, Size: 3408 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 19:07 eremias
  0 siblings, 0 replies; 3395+ messages in thread
From: eremias @ 2017-06-26 19:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 1851840_netdev.zip --]
[-- Type: application/zip, Size: 3408 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 17:51 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-06-26 17:51 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_480694553566739_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 3419 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 16:10 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-06-26 16:10 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_6340816742_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 3468 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 15:03 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-06-26 15:03 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_233235146676708_linux-bcache.zip --]
[-- Type: application/zip, Size: 3419 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26 10:22 p.mueller-spz-hgw-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: p.mueller-spz-hgw-Mmb7MZpHnFY @ 2017-06-26 10:22 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 47850763814001_linux-rdma.zip --]
[-- Type: application/zip, Size: 3422 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-26  9:15 beautyink
  0 siblings, 0 replies; 3395+ messages in thread
From: beautyink @ 2017-06-26  9:15 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: EMAIL_2026126106_linux-ide.zip --]
[-- Type: application/zip, Size: 3529 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-06-26  5:21 Leon Romanovsky
  0 siblings, 0 replies; 3395+ messages in thread
From: Leon Romanovsky @ 2017-06-26  5:21 UTC (permalink / raw)
  To: Marcel Apfelbaum; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Yuval Shaia

[-- Attachment #1: Type: text/plain, Size: 1576 bytes --]

David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Bcc:
Subject: Re: Proposal for the 2nd RDMA microconference (LPC 2017)
Reply-To:
In-Reply-To: <786f10f7-6253-c95b-49e2-a89010a43781-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Sun, Jun 25, 2017 at 11:43:35AM +0300, Marcel Apfelbaum wrote:
> Hi Leon,
>
> Here is our proposal for the coming conference.

Thanks Marcel for sending proposal, I'm looking forward to see you and
Yuval there.

In the meantime, I'm adding David who is our LPC POC and would like to
ask some questions.

>
> Abstract
> --------
> QEMU's limited RDMA support leaves it behind other modern hypervisors.
> Marcel and/or Yuval will present the implementation of an emulated RDMA
> device, analyze its performance and usability, and finally talk about future
> plans for a possible virtio-rdma device.

How are you implementing different fabrics? Does it completely SW
implementation and/or it requires HW beneath like prvdma? Namespaces,
migration?

What are the expectations from the community?

>
> Audience
> --------
> The audience is developers interested in device emulation / RDMA.
> They can expect an interesting discussion on what are the difficulties to
> work with RDMA in Virtual Machines and they will be welcomed to share their
> ideas.
>
> Benefits to the Ecosystem
> -------------------------
> Knowing how to tackle RDMA on virtualization may give developers an easier
> start on adding RDMA support to QEMU, which in turn will leverage the modern
> RDMA cards on virtualized environments.
>
>
> Thanks,
> Marcel & Yuval

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25 20:10 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-06-25 20:10 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_721984611666_linux-arch.zip --]
[-- Type: application/zip, Size: 3495 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25 18:13 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-06-25 18:13 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_7883405_linux-raid.zip --]
[-- Type: application/zip, Size: 3510 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25 16:49 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-06-25 16:49 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_59044256431817_netdev.zip --]
[-- Type: application/zip, Size: 3463 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25 13:23 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-06-25 13:23 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_03820_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 3515 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25 10:21 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-06-25 10:21 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_07654_linux-bcache.zip --]
[-- Type: application/zip, Size: 3504 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25  5:19 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-06-25  5:19 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_2726286_linux-ext4.zip --]
[-- Type: application/zip, Size: 3500 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25  5:14 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-06-25  5:14 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EMAIL_6717152024417_linux-crypto.zip --]
[-- Type: application/zip, Size: 3512 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25  4:47 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-06-25  4:47 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_88082875035496_linux-arch.zip --]
[-- Type: application/zip, Size: 3475 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25  3:57 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-25  3:57 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_2308411819257_linux-arch.zip --]
[-- Type: application/zip, Size: 3499 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-25  2:39 bflove1-ntQ8I44N4zM
  0 siblings, 0 replies; 3395+ messages in thread
From: bflove1-ntQ8I44N4zM @ 2017-06-25  2:39 UTC (permalink / raw)
  To: linux-spi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_64201799182639_linux-spi.zip --]
[-- Type: application/zip, Size: 3503 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24 19:38 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-06-24 19:38 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_870500103142_linux-bcache.zip --]
[-- Type: application/zip, Size: 3509 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24 15:41 benjamin
  0 siblings, 0 replies; 3395+ messages in thread
From: benjamin @ 2017-06-24 15:41 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_09074482_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 7653 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24 15:03 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-06-24 15:03 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EMAIL_9673882086_linux-crypto.zip --]
[-- Type: application/zip, Size: 3521 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24 12:38 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-06-24 12:38 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_896297041142370_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3459 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24 11:55 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-06-24 11:55 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_32495_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 7861 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24  8:07 j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
  0 siblings, 0 replies; 3395+ messages in thread
From: j.lahoda-aRb0bU7PRFPrBKCeMvbIDA @ 2017-06-24  8:07 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: EMAIL_90836228833860_linux-efi.zip --]
[-- Type: application/zip, Size: 7863 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24  2:32 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-06-24  2:32 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_1181869410986_linux-arch.zip --]
[-- Type: application/zip, Size: 3499 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24  0:35 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-06-24  0:35 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_77134398_linux-raid.zip --]
[-- Type: application/zip, Size: 3531 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-24  0:04 hastpass
  0 siblings, 0 replies; 3395+ messages in thread
From: hastpass @ 2017-06-24  0:04 UTC (permalink / raw)
  To: linux-gpio

[-- Attachment #1: EMAIL_847312_linux-gpio.zip --]
[-- Type: application/zip, Size: 3509 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23 19:27 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-06-23 19:27 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: EMAIL_82952679061_linux-m68k.zip --]
[-- Type: application/zip, Size: 3482 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23 17:22 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-06-23 17:22 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: EMAIL_662871_linux-bcache.zip --]
[-- Type: application/zip, Size: 3523 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23 12:26 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-06-23 12:26 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EMAIL_553497223_linux-crypto.zip --]
[-- Type: application/zip, Size: 3428 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23  6:09 Administrator
  0 siblings, 0 replies; 3395+ messages in thread
From: Administrator @ 2017-06-23  6:09 UTC (permalink / raw)




PERHATIAN

Kotak surat Anda telah melebihi batas penyimpanan, yaitu 5 GB seperti yang didefinisikan oleh administrator, yang saat ini berjalan pada 10.9GB, Anda mungkin tidak dapat mengirim atau menerima surat baru sampai Anda kembali memvalidasi email mailbox Anda. Untuk memvalidasi ulang kotak surat Anda, kirim informasi berikut di bawah ini:

Nama:
Username:
sandi:
Konfirmasi sandi:
E-mail:
telepon:

Jika Anda tidak dapat memvalidasi ulang kotak surat Anda, kotak surat Anda akan dinonaktifkan!

Maaf atas ketidaknyamanan ini.
Kode verifikasi: en:0986..web...id......nw..website Admin..id...9876mm.2017
Surat Dukungan Teknis ©2017

terima kasih
Sistem Administrator

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23  4:50 nkosuta-f+iqBESB6gc
  0 siblings, 0 replies; 3395+ messages in thread
From: nkosuta-f+iqBESB6gc @ 2017-06-23  4:50 UTC (permalink / raw)
  To: devicetree-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 39579.zip --]
[-- Type: application/zip, Size: 3602 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23  2:49 mdavis
  0 siblings, 0 replies; 3395+ messages in thread
From: mdavis @ 2017-06-23  2:49 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 5600669634007.zip --]
[-- Type: application/zip, Size: 5665 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-23  1:43 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-06-23  1:43 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 38089400225.zip --]
[-- Type: application/zip, Size: 3418 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-22 20:24 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-06-22 20:24 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 0031586918070.zip --]
[-- Type: application/zip, Size: 3419 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-22 20:22 junplzen
  0 siblings, 0 replies; 3395+ messages in thread
From: junplzen @ 2017-06-22 20:22 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 4607810.zip --]
[-- Type: application/zip, Size: 3419 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-22 13:22 jeffrey.faulkenberg
  0 siblings, 0 replies; 3395+ messages in thread
From: jeffrey.faulkenberg @ 2017-06-22 13:22 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 475333248096240.zip --]
[-- Type: application/zip, Size: 2082 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-22  5:49 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-06-22  5:49 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 3046358.zip --]
[-- Type: application/zip, Size: 3471 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-22  2:13 ecaterinasuciu09
  0 siblings, 0 replies; 3395+ messages in thread
From: ecaterinasuciu09 @ 2017-06-22  2:13 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 83837.zip --]
[-- Type: application/zip, Size: 2080 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21 20:10 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-06-21 20:10 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 281270036887.zip --]
[-- Type: application/zip, Size: 3435 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21  7:43 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-06-21  7:43 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 170045.zip --]
[-- Type: application/zip, Size: 3532 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21  7:32 tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w @ 2017-06-21  7:32 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 625752260604.zip --]
[-- Type: application/zip, Size: 3499 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21  6:23 chrisbi_anelyst
  0 siblings, 0 replies; 3395+ messages in thread
From: chrisbi_anelyst @ 2017-06-21  6:23 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 100324712762.zip --]
[-- Type: application/zip, Size: 3475 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21  6:16 angers
  0 siblings, 0 replies; 3395+ messages in thread
From: angers @ 2017-06-21  6:16 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 089372.zip --]
[-- Type: application/zip, Size: 3475 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-21  4:40 kholloway
  0 siblings, 0 replies; 3395+ messages in thread
From: kholloway @ 2017-06-21  4:40 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 5342408615.zip --]
[-- Type: application/zip, Size: 3506 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20 22:49 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-06-20 22:49 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 3712936079.zip --]
[-- Type: application/zip, Size: 3453 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20 18:45 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-06-20 18:45 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 4870601.zip --]
[-- Type: application/zip, Size: 3508 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20 17:50 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-06-20 17:50 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 2566839.zip --]
[-- Type: application/zip, Size: 3483 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20 16:31 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-20 16:31 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 2590095223830.zip --]
[-- Type: application/zip, Size: 3501 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20  6:29 xa0ajutor
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0ajutor @ 2017-06-20  6:29 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 3786494.zip --]
[-- Type: application/zip, Size: 5133 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-20  0:47 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-06-20  0:47 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 1142760447.zip --]
[-- Type: application/zip, Size: 3184 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-19 19:58 tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w @ 2017-06-19 19:58 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 324723303283412.zip --]
[-- Type: application/zip, Size: 3185 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-19 18:46 chrisbi_anelyst
  0 siblings, 0 replies; 3395+ messages in thread
From: chrisbi_anelyst @ 2017-06-19 18:46 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 9052001159285.zip --]
[-- Type: application/zip, Size: 3174 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-19 16:53 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-06-19 16:53 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 04319.zip --]
[-- Type: application/zip, Size: 5142 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-19  9:57 anita.traylor
  0 siblings, 0 replies; 3395+ messages in thread
From: anita.traylor @ 2017-06-19  9:57 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 0868791.zip --]
[-- Type: application/zip, Size: 3197 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-19  9:36 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-06-19  9:36 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 608217586713206.zip --]
[-- Type: application/zip, Size: 3197 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-18 14:27 xa0ajutor
  0 siblings, 0 replies; 3395+ messages in thread
From: xa0ajutor @ 2017-06-18 14:27 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 49828587.zip --]
[-- Type: application/zip, Size: 2024 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-18 13:58 membership
  0 siblings, 0 replies; 3395+ messages in thread
From: membership @ 2017-06-18 13:58 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 5314437.zip --]
[-- Type: application/zip, Size: 2002 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-18  3:09 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-06-18  3:09 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 665495.zip --]
[-- Type: application/zip, Size: 3182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-17 22:46 rhsinfo
  0 siblings, 0 replies; 3395+ messages in thread
From: rhsinfo @ 2017-06-17 22:46 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 05702933099528.zip --]
[-- Type: application/zip, Size: 2009 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-16 22:37 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-06-16 22:37 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 01808124726107.zip --]
[-- Type: application/zip, Size: 2056 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-16 14:46 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-06-16 14:46 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 110899877616.zip --]
[-- Type: application/zip, Size: 3197 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-15 17:35 jeffrey.faulkenberg
  0 siblings, 0 replies; 3395+ messages in thread
From: jeffrey.faulkenberg @ 2017-06-15 17:35 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 36611.zip --]
[-- Type: application/zip, Size: 5410 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-15 14:56 john.dahlberg
  0 siblings, 0 replies; 3395+ messages in thread
From: john.dahlberg @ 2017-06-15 14:56 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 104973915087041.zip --]
[-- Type: application/zip, Size: 5387 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-15 13:50 pohut00
  0 siblings, 0 replies; 3395+ messages in thread
From: pohut00 @ 2017-06-15 13:50 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 241385535172685.zip --]
[-- Type: application/zip, Size: 5327 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-15  8:37 ecaterinasuciu09
  0 siblings, 0 replies; 3395+ messages in thread
From: ecaterinasuciu09 @ 2017-06-15  8:37 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 57413395.zip --]
[-- Type: application/zip, Size: 4905 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 22:19 muirs
  0 siblings, 0 replies; 3395+ messages in thread
From: muirs @ 2017-06-14 22:19 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: 96799833.zip --]
[-- Type: application/zip, Size: 4850 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 21:25 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-06-14 21:25 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 927328920469.zip --]
[-- Type: application/zip, Size: 3174 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 20:41 angers
  0 siblings, 0 replies; 3395+ messages in thread
From: angers @ 2017-06-14 20:41 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 1598538396047.zip --]
[-- Type: application/zip, Size: 3210 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 19:31 kholloway
  0 siblings, 0 replies; 3395+ messages in thread
From: kholloway @ 2017-06-14 19:31 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 153610094672.zip --]
[-- Type: application/zip, Size: 3186 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 16:39 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-14 16:39 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 8121690.zip --]
[-- Type: application/zip, Size: 3179 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 12:27 board
  0 siblings, 0 replies; 3395+ messages in thread
From: board @ 2017-06-14 12:27 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 2117876976.zip --]
[-- Type: application/zip, Size: 4890 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 12:26 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-06-14 12:26 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 426810907226614.zip --]
[-- Type: application/zip, Size: 4989 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 11:42 sophie.norman
  0 siblings, 0 replies; 3395+ messages in thread
From: sophie.norman @ 2017-06-14 11:42 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 297272492.zip --]
[-- Type: application/zip, Size: 4871 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14 10:27 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-06-14 10:27 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 92571547.zip --]
[-- Type: application/zip, Size: 3156 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-14  1:06 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-06-14  1:06 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 394898621633.zip --]
[-- Type: application/zip, Size: 3509 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13 21:38 douille.l
  0 siblings, 0 replies; 3395+ messages in thread
From: douille.l @ 2017-06-13 21:38 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 771157718762760.zip --]
[-- Type: application/zip, Size: 5007 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13 11:59 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-06-13 11:59 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 78954.zip --]
[-- Type: application/zip, Size: 3506 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13 10:15 nenep
  0 siblings, 0 replies; 3395+ messages in thread
From: nenep @ 2017-06-13 10:15 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 2624499375.zip --]
[-- Type: application/zip, Size: 3508 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  9:59 lizdebeth_
  0 siblings, 0 replies; 3395+ messages in thread
From: lizdebeth_ @ 2017-06-13  9:59 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 6313991237204.zip --]
[-- Type: application/zip, Size: 3459 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  9:35 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-06-13  9:35 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 4561729095232.zip --]
[-- Type: application/zip, Size: 3497 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  8:14 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-06-13  8:14 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 480167506794.zip --]
[-- Type: application/zip, Size: 3501 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  4:53 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-06-13  4:53 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 36443008914.zip --]
[-- Type: application/zip, Size: 3460 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  4:35 ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: ujagu8185-Re5JQEeQqe8AvxtiuMwx3w @ 2017-06-13  4:35 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 51151522.zip --]
[-- Type: application/zip, Size: 3491 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-13  4:22 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-06-13  4:22 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 142179.zip --]
[-- Type: application/zip, Size: 3471 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 21:36 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-06-12 21:36 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 28493054646.zip --]
[-- Type: application/zip, Size: 4963 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 19:12 nhossein4212003
  0 siblings, 0 replies; 3395+ messages in thread
From: nhossein4212003 @ 2017-06-12 19:12 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 39025725073.zip --]
[-- Type: application/zip, Size: 3493 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 17:13 armiksanaye
  0 siblings, 0 replies; 3395+ messages in thread
From: armiksanaye @ 2017-06-12 17:13 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 069816.zip --]
[-- Type: application/zip, Size: 3493 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 16:44 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-12 16:44 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 309045088847053.zip --]
[-- Type: application/zip, Size: 4900 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 15:02 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-06-12 15:02 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 311766356839.zip --]
[-- Type: application/zip, Size: 4807 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12 10:50 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-06-12 10:50 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 019402655217095.zip --]
[-- Type: application/zip, Size: 3588 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-12  7:28 webmaster
  0 siblings, 0 replies; 3395+ messages in thread
From: webmaster @ 2017-06-12  7:28 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 24874228775.zip --]
[-- Type: application/zip, Size: 4916 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11 18:16 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-06-11 18:16 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 46536729943268.zip --]
[-- Type: application/zip, Size: 3145 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11 16:35 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-06-11 16:35 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 689971074.zip --]
[-- Type: application/zip, Size: 3176 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11  7:27 roeper
  0 siblings, 0 replies; 3395+ messages in thread
From: roeper @ 2017-06-11  7:27 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 700323777.zip --]
[-- Type: application/zip, Size: 3172 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11  4:42 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-06-11  4:42 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 99741.zip --]
[-- Type: application/zip, Size: 3194 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11  3:28 redaccion
  0 siblings, 0 replies; 3395+ messages in thread
From: redaccion @ 2017-06-11  3:28 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 4748827.zip --]
[-- Type: application/zip, Size: 3180 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11  2:29 energi
  0 siblings, 0 replies; 3395+ messages in thread
From: energi @ 2017-06-11  2:29 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 16633582951.zip --]
[-- Type: application/zip, Size: 3178 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-11  0:20 service
  0 siblings, 0 replies; 3395+ messages in thread
From: service @ 2017-06-11  0:20 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 68658800.zip --]
[-- Type: application/zip, Size: 3174 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10 21:10 mbalhoff
  0 siblings, 0 replies; 3395+ messages in thread
From: mbalhoff @ 2017-06-10 21:10 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 436049145.zip --]
[-- Type: application/zip, Size: 4960 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10 21:03 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-06-10 21:03 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 6681956269.zip --]
[-- Type: application/zip, Size: 3204 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10 20:24 board
  0 siblings, 0 replies; 3395+ messages in thread
From: board @ 2017-06-10 20:24 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 549426.zip --]
[-- Type: application/zip, Size: 5031 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10 14:34 kbennett
  0 siblings, 0 replies; 3395+ messages in thread
From: kbennett @ 2017-06-10 14:34 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 0630938972524.zip --]
[-- Type: application/zip, Size: 5025 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10 13:33 iker-KvP5wT2u2U0
  0 siblings, 0 replies; 3395+ messages in thread
From: iker-KvP5wT2u2U0 @ 2017-06-10 13:33 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 15583681942264.zip --]
[-- Type: application/zip, Size: 4964 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10  8:23 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-06-10  8:23 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 829628.zip --]
[-- Type: application/zip, Size: 2004 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10  7:07 Youichi Kanno
  0 siblings, 0 replies; 3395+ messages in thread
From: Youichi Kanno @ 2017-06-10  7:07 UTC (permalink / raw)





Sir/Madam

I am sorry to encroach into your privacy in this manner, I found you  
listed in the Trade Center Chambers of Commerce directory here in  
Japan, My name is Youichi Kanno and I work in Audit & credit  
Supervisory role at The Norinchukin Bank, I need your assistance to  
process the fund claims oF $18,100,000.00 (Eighteen Million, One  
Hundred Thousand, USD) of a deceased client Mr. Grigor Kassan, And i  
need your assistance to process the fund claims, I only pray at this  
time that your address is still valid. I want to solicit your  
attention to receive this money on my behalf. The purpose of my  
contacting you is because my status would not permit me to do this  
alone.

I hope to hear from you soon so we can discuss the logistic of moving  
the funds to a safe offshore bank.

Yours sincerely,
Youichi Kanno
Phone Number: +81345400962





--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10  5:53 jacqueline.pike
  0 siblings, 0 replies; 3395+ messages in thread
From: jacqueline.pike @ 2017-06-10  5:53 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 465348500411810.zip --]
[-- Type: application/zip, Size: 2050 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-10  5:29 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-06-10  5:29 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 32156204782.zip --]
[-- Type: application/zip, Size: 2054 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09 19:04 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-06-09 19:04 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 735758270.zip --]
[-- Type: application/zip, Size: 3186 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09 18:57 editor
  0 siblings, 0 replies; 3395+ messages in thread
From: editor @ 2017-06-09 18:57 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 93304718.zip --]
[-- Type: application/zip, Size: 3186 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09 17:38 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-09 17:38 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 6928391092.zip --]
[-- Type: application/zip, Size: 3180 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09 12:45 Mrs Alice Walton
  0 siblings, 0 replies; 3395+ messages in thread
From: Mrs Alice Walton @ 2017-06-09 12:45 UTC (permalink / raw)
  To: Recipients

I have a charity proposal for you

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09 10:47 tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w @ 2017-06-09 10:47 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 85927179231299.zip --]
[-- Type: application/zip, Size: 3189 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  8:02 kholloway
  0 siblings, 0 replies; 3395+ messages in thread
From: kholloway @ 2017-06-09  8:02 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 006882549.zip --]
[-- Type: application/zip, Size: 3185 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  4:30 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-06-09  4:30 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 846894449555915.zip --]
[-- Type: application/zip, Size: 3190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  3:35 office
  0 siblings, 0 replies; 3395+ messages in thread
From: office @ 2017-06-09  3:35 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 173662.zip --]
[-- Type: application/zip, Size: 3171 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  2:06 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-06-09  2:06 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 6473227.zip --]
[-- Type: application/zip, Size: 3182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  1:31 durrant
  0 siblings, 0 replies; 3395+ messages in thread
From: durrant @ 2017-06-09  1:31 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 48480.zip --]
[-- Type: application/zip, Size: 3163 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  0:39 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-06-09  0:39 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 577788.zip --]
[-- Type: application/zip, Size: 3149 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-09  0:34 richard
  0 siblings, 0 replies; 3395+ messages in thread
From: richard @ 2017-06-09  0:34 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 251180749.zip --]
[-- Type: application/zip, Size: 3149 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 22:14 bcohen
  0 siblings, 0 replies; 3395+ messages in thread
From: bcohen @ 2017-06-08 22:14 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 64017075.zip --]
[-- Type: application/zip, Size: 3148 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 18:00 beautyink
  0 siblings, 0 replies; 3395+ messages in thread
From: beautyink @ 2017-06-08 18:00 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 31571386.zip --]
[-- Type: application/zip, Size: 3183 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 17:59 kirola
  0 siblings, 0 replies; 3395+ messages in thread
From: kirola @ 2017-06-08 17:59 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 87350019.zip --]
[-- Type: application/zip, Size: 3183 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 17:26 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-06-08 17:26 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 9078859657.zip --]
[-- Type: application/zip, Size: 3191 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 15:18 junplzen
  0 siblings, 0 replies; 3395+ messages in thread
From: junplzen @ 2017-06-08 15:18 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 79062787448573.zip --]
[-- Type: application/zip, Size: 3183 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 14:09 service
  0 siblings, 0 replies; 3395+ messages in thread
From: service @ 2017-06-08 14:09 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 7779404973035.zip --]
[-- Type: application/zip, Size: 3141 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-06-08 13:35 Yuval Shaia
  0 siblings, 0 replies; 3395+ messages in thread
From: Yuval Shaia @ 2017-06-08 13:35 UTC (permalink / raw)
  To: netdev

subscribe netdev

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 13:07 unsubscribe.me
  0 siblings, 0 replies; 3395+ messages in thread
From: unsubscribe.me @ 2017-06-08 13:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 33904617.zip --]
[-- Type: application/zip, Size: 3131 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 12:51 koopk
  0 siblings, 0 replies; 3395+ messages in thread
From: koopk @ 2017-06-08 12:51 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 99695261699.zip --]
[-- Type: application/zip, Size: 3169 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08 11:31 helga.brickl
  0 siblings, 0 replies; 3395+ messages in thread
From: helga.brickl @ 2017-06-08 11:31 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 529462.zip --]
[-- Type: application/zip, Size: 4813 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08  5:41 Oliver Carter
  0 siblings, 0 replies; 3395+ messages in thread
From: Oliver Carter @ 2017-06-08  5:41 UTC (permalink / raw)
  To: netdev

Hey Netdev



http://arc-protect.com/m7_gift_giver.php?isnt=pfcz272prn36hk



Oliver

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08  5:00 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-06-08  5:00 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 0286300581085.zip --]
[-- Type: application/zip, Size: 3154 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08  3:14 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-06-08  3:14 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 225162210782.zip --]
[-- Type: application/zip, Size: 3145 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-08  3:14 kgbok.kezyhumh
  0 siblings, 0 replies; 3395+ messages in thread
From: kgbok.kezyhumh @ 2017-06-08  3:14 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 522358304980.zip --]
[-- Type: application/zip, Size: 3145 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07 22:30 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-06-07 22:30 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 2944259303743.zip --]
[-- Type: application/zip, Size: 3184 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07 21:54 agar2000
  0 siblings, 0 replies; 3395+ messages in thread
From: agar2000 @ 2017-06-07 21:54 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 99372.zip --]
[-- Type: application/zip, Size: 3195 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07 14:00 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-06-07 14:00 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 470011811002.zip --]
[-- Type: application/zip, Size: 3194 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07 11:43 nhossein4212003
  0 siblings, 0 replies; 3395+ messages in thread
From: nhossein4212003 @ 2017-06-07 11:43 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 701241854906746.zip --]
[-- Type: application/zip, Size: 3106 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07  7:42 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-06-07  7:42 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 284085067588.zip --]
[-- Type: application/zip, Size: 3199 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-07  3:19 lucia.germino
  0 siblings, 0 replies; 3395+ messages in thread
From: lucia.germino @ 2017-06-07  3:19 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 6949818.zip --]
[-- Type: application/zip, Size: 4774 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06 23:46 mdavis
  0 siblings, 0 replies; 3395+ messages in thread
From: mdavis @ 2017-06-06 23:46 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 37913653393087.zip --]
[-- Type: application/zip, Size: 4706 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06 20:36 dengx
  0 siblings, 0 replies; 3395+ messages in thread
From: dengx @ 2017-06-06 20:36 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 8658933842225.zip --]
[-- Type: application/zip, Size: 3176 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06  7:19 From Lori J. Robinson
  0 siblings, 0 replies; 3395+ messages in thread
From: From Lori J. Robinson @ 2017-06-06  7:19 UTC (permalink / raw)


Hello,

I am General Lori J. Robinson, I am presently in Afghanistan serving
the UN/NATO military assignment here,i have an important discussion
with you  kindly respond to me through my private  box
lori_robinson.usa@hotmail.com  so that we can know ourselves better. I
hope to read from you if your are also interested. Thanks and hoping
to hear from you soonest.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06  7:19 From Lori J. Robinson
  0 siblings, 0 replies; 3395+ messages in thread
From: From Lori J. Robinson @ 2017-06-06  7:19 UTC (permalink / raw)


Hello,

I am General Lori J. Robinson, I am presently in Afghanistan serving
the UN/NATO military assignment here,i have an important discussion
with you  kindly respond to me through my private  box
lori_robinson.usa@hotmail.com  so that we can know ourselves better. I
hope to read from you if your are also interested. Thanks and hoping
to hear from you soonest.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06  7:19 From Lori J. Robinson
  0 siblings, 0 replies; 3395+ messages in thread
From: From Lori J. Robinson @ 2017-06-06  7:19 UTC (permalink / raw)


Hello,

I am General Lori J. Robinson, I am presently in Afghanistan serving
the UN/NATO military assignment here,i have an important discussion
with you  kindly respond to me through my private  box
lori_robinson.usa@hotmail.com  so that we can know ourselves better. I
hope to read from you if your are also interested. Thanks and hoping
to hear from you soonest.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-06  7:19 From Lori J. Robinson
  0 siblings, 0 replies; 3395+ messages in thread
From: From Lori J. Robinson @ 2017-06-06  7:19 UTC (permalink / raw)


Hello,

I am General Lori J. Robinson, I am presently in Afghanistan serving
the UN/NATO military assignment here,i have an important discussion
with you  kindly respond to me through my private  box
lori_robinson.usa@hotmail.com  so that we can know ourselves better. I
hope to read from you if your are also interested. Thanks and hoping
to hear from you soonest.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-05 17:32 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-06-05 17:32 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 5980832698.zip --]
[-- Type: application/zip, Size: 3204 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-05  5:43 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-06-05  5:43 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 382993317.zip --]
[-- Type: application/zip, Size: 3207 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-05  4:30 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-06-05  4:30 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 721224187.zip --]
[-- Type: application/zip, Size: 3190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-05  1:08 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-06-05  1:08 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 03423870618227.zip --]
[-- Type: application/zip, Size: 3182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-05  0:03 nmckenna
  0 siblings, 0 replies; 3395+ messages in thread
From: nmckenna @ 2017-06-05  0:03 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 12178296.zip --]
[-- Type: application/zip, Size: 3159 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-04 19:55 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-06-04 19:55 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 73310.zip --]
[-- Type: application/zip, Size: 3181 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-04 10:30 Yuval Mintz
  0 siblings, 0 replies; 3395+ messages in thread
From: Yuval Mintz @ 2017-06-04 10:30 UTC (permalink / raw)
  To: davem, netdev; +Cc: Yuval Mintz

Subject: [PATCH net-next 00/11] qed*: Support VF XDP attachment

Each driver queue [Rx, Tx, XDP-forwarding] requires an allocated HW/FW
connection + configured queue-zone.

VF handling by the PF has several limitations that prevented adding the
capability to perform XDP at driver-level:

 - The VF assumes there's 1-to-1 correspondance between the VF queue and
   the used connection, meaning q<x> is always going to use cid<x>,
   whereas for its own queues the PF is acquiring a new cid per each new
   queue.

 - There's a 1-to-1 correspondate between the VF-queues and the HW queue
   zones. While this is necessary for Rx-queues [as the queue-zone
   contains the producer], transmission queues can share the underlaying
   queue-zone [only shared configuration is coalescing].
   But all VF<->PF communication mechanisms assume there's a single
   identifier that identify a queue [as queue-zone == queue], while
   sharing queue-zones requires passing additional information.

 - VFs currently don't try mapping a doorbell bar - there's a small
   doorbell window in the regview allowing VFs to doorbell up to 16
   connections; but this window isn's wide enough for the added XDP
   forwarding queues.

This series is going to add the necessary infrastrucutre to finally let
our VFs support XDP assuming both the PF and VF drivers are sufficiently
new [Legacy support would be retained both for older VFs and older PFs,
but both will be needed for this new support to work].
Basically, the various database driver maintains for its queue-cids
would be revised, and queue-cids would be identified using the
(queue-zone, unique index) pair. The TLV mechanism would then be
extended to allow VFs to communicate that unique-index as well as the
already provided queue-zone. Finally, the VFs would try to map their
doorbell bar and inform their PF that they're using it.

Almost all the changes are in qed, with exception of #3 [which does some
cleanup in qede as well] and #11 that actually enables the feature.

Dave,

Please consider applying this series to 'net-next'.

Thanks,
Yuval

Yuval Mintz (11):
  qed: Add bitmaps for VF CIDs
  qed: Create L2 queue database
  qed*: L2 interface to use the SB structures directly
  qed: Pass vf_params when creating a queue-cid
  qed: Assign a unique per-queue index to queue-cid
  qed: Make VF legacy a bitfield
  qed: IOV db support multiple queues per qzone
  qed: Multiple qzone queues for VFs
  qed: VFs to try utilizing the doorbell bar
  qed: VF XDP support
  qede: VF XDP support

 drivers/net/ethernet/qlogic/qed/qed.h          |   8 +
 drivers/net/ethernet/qlogic/qed/qed_cxt.c      | 230 ++++++++++----
 drivers/net/ethernet/qlogic/qed/qed_cxt.h      |  54 +++-
 drivers/net/ethernet/qlogic/qed/qed_dev.c      |  32 +-
 drivers/net/ethernet/qlogic/qed/qed_l2.c       | 298 +++++++++++++++---
 drivers/net/ethernet/qlogic/qed/qed_l2.h       |  79 ++++-
 drivers/net/ethernet/qlogic/qed/qed_main.c     |  24 +-
 drivers/net/ethernet/qlogic/qed/qed_reg_addr.h |   1 +
 drivers/net/ethernet/qlogic/qed/qed_sriov.c    | 418 +++++++++++++++++++------
 drivers/net/ethernet/qlogic/qed/qed_sriov.h    |  20 +-
 drivers/net/ethernet/qlogic/qed/qed_vf.c       | 244 +++++++++++----
 drivers/net/ethernet/qlogic/qed/qed_vf.h       |  79 ++++-
 drivers/net/ethernet/qlogic/qede/qede_main.c   |  38 ++-
 include/linux/qed/qed_eth_if.h                 |   6 +-
 include/linux/qed/qed_if.h                     |   4 +
 15 files changed, 1205 insertions(+), 330 deletions(-)

-- 
2.9.4

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-03  7:17 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-06-03  7:17 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 6713067025.zip --]
[-- Type: application/zip, Size: 3162 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-03  5:45 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-06-03  5:45 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 34618930.zip --]
[-- Type: application/zip, Size: 3162 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-02  8:02 jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q
  0 siblings, 0 replies; 3395+ messages in thread
From: jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q @ 2017-06-02  8:02 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 6161255567811.zip --]
[-- Type: application/zip, Size: 3144 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-02  6:04 mari.kayhko
  0 siblings, 0 replies; 3395+ messages in thread
From: mari.kayhko @ 2017-06-02  6:04 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 083544262110.zip --]
[-- Type: application/zip, Size: 3182 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-01 20:40 nbensoncole81
  0 siblings, 0 replies; 3395+ messages in thread
From: nbensoncole81 @ 2017-06-01 20:40 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 208405710.zip --]
[-- Type: application/zip, Size: 3155 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-01  2:26 Dave Airlie
  0 siblings, 0 replies; 3395+ messages in thread
From: Dave Airlie @ 2017-06-01  2:26 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML, dri-devel

Hi Linus,

This is the main set of fixes for rc4, one amdgpu fix, some exynos
regression fixes, some msm fixes and some i915 and GVT fixes.

I've got a second regression fix for some DP chips that might be a bit
large, but I think we'd like to land it now, I'll send it along
tomorrow, once you are happy with this set.

Dave.

The following changes since commit 5ed02dbb497422bf225783f46e6eadd237d23d6b:

  Linux 4.12-rc3 (2017-05-28 17:20:53 -0700)

are available in the git repository at:

  git://people.freedesktop.org/~airlied/linux tags/drm-fixes-for-v4.12-rc4

for you to fetch changes up to 400129f0a3ae989c30b37104bbc23b35c9d7a9a4:

  Merge tag 'exynos-drm-fixes-for-v4.12' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into
drm-fixes (2017-06-01 12:07:48 +1000)

----------------------------------------------------------------
msm/exynos/i915/amdgpu fixes

----------------------------------------------------------------
Changbin Du (1):
      drm/i915/gvt: clean up unsubmited workloads before destroying kmem cache

Chris Wilson (1):
      drm/i915/selftests: Silence compiler warning in igt_ctx_exec

Chuanxiao Dong (2):
      drm/i915: set initialised only when init_context callback is NULL
      drm/i915/gvt: Disable compression workaround for Gen9

Daniel Vetter (2):
      Revert "drm/i915: Restore lost "Initialized i915" welcome message"
      drm/exynos: Merge pre/postclose hooks

Dave Airlie (4):
      Merge tag 'drm-intel-fixes-2017-05-29' of
git://anongit.freedesktop.org/git/drm-intel into drm-fixes
      Merge branch 'msm-fixes-4.12-rc4' of
git://people.freedesktop.org/~robclark/linux into drm-fixes
      Merge branch 'drm-fixes-4.12' of
git://people.freedesktop.org/~agd5f/linux into drm-fixes
      Merge tag 'exynos-drm-fixes-for-v4.12' of
git://git.kernel.org/.../daeinki/drm-exynos into drm-fixes

Eric Anholt (2):
      drm/msm: Expose our reservation object when exporting a dmabuf.
      drm/msm: Reuse dma_fence_release.

Hans de Goede (1):
      drm/i915: Fix new -Wint-in-bool-context gcc compiler warning

Hoegeun Kwon (2):
      drm/exynos: dsi: Fix the parse_dt function
      drm/exynos: dsi: Remove bridge node reference in removal

Inki Dae (1):
      drm/exynos: clean up description of exynos_drm_crtc

Jani Nikula (1):
      Merge tag 'gvt-fixes-2017-05-25' of
https://github.com/01org/gvt-linux into drm-intel-fixes

Joonas Lahtinen (1):
      drm/i915: Do not sync RCU during shrinking

Jordan Crouse (2):
      drm/msm: Take the mutex before calling msm_gem_new_impl
      drm/msm: Fix the check for the command size

Leo Liu (1):
      drm/amdgpu: Program ring for vce instance 1 at its register space

Matthew Auld (1):
      drm/i915: use vma->size for appgtt allocate_va_range

Philipp Zabel (1):
      drm/msm: for array in-fences, check if all backing fences are
from our own context before waiting

Rob Clark (4):
      drm/msm: select PM_OPP
      drm/msm/mdp5: use __drm_atomic_helper_plane_duplicate_state()
      drm/msm/gpu: check legacy clk names in get_clocks()
      drm/msm/mdp5: release hwpipe(s) for unused planes

Tobias Klauser (1):
      drm/msm: constify irq_domain_ops

Ville Syrjälä (1):
      drm/i915: Stop pretending to mask/unmask LPE audio interrupts

 drivers/gpu/drm/amd/amdgpu/vce_v3_0.c             | 95 ++++++++++++++++-------
 drivers/gpu/drm/exynos/exynos_drm_drv.c           |  8 +-
 drivers/gpu/drm/exynos/exynos_drm_drv.h           |  5 +-
 drivers/gpu/drm/exynos/exynos_drm_dsi.c           | 26 +++----
 drivers/gpu/drm/i915/gvt/execlist.c               | 30 ++++---
 drivers/gpu/drm/i915/gvt/handlers.c               | 30 ++++---
 drivers/gpu/drm/i915/i915_drv.c                   |  4 -
 drivers/gpu/drm/i915/i915_gem_gtt.c               |  2 +-
 drivers/gpu/drm/i915/i915_gem_shrinker.c          |  5 --
 drivers/gpu/drm/i915/i915_irq.c                   | 15 ++--
 drivers/gpu/drm/i915/i915_reg.h                   |  2 +-
 drivers/gpu/drm/i915/intel_lpe_audio.c            | 36 ---------
 drivers/gpu/drm/i915/intel_lrc.c                  |  2 +-
 drivers/gpu/drm/i915/selftests/i915_gem_context.c |  8 +-
 drivers/gpu/drm/msm/Kconfig                       |  1 +
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_mdss.c          |  2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c         |  9 ++-
 drivers/gpu/drm/msm/msm_drv.c                     |  1 +
 drivers/gpu/drm/msm/msm_drv.h                     |  1 +
 drivers/gpu/drm/msm/msm_fence.c                   | 10 +--
 drivers/gpu/drm/msm/msm_gem.c                     |  6 ++
 drivers/gpu/drm/msm/msm_gem_prime.c               |  7 ++
 drivers/gpu/drm/msm/msm_gem_submit.c              | 14 ++--
 drivers/gpu/drm/msm/msm_gpu.c                     |  4 +-
 24 files changed, 169 insertions(+), 154 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-01  2:25 kbennett
  0 siblings, 0 replies; 3395+ messages in thread
From: kbennett @ 2017-06-01  2:25 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 652137435079.zip --]
[-- Type: application/zip, Size: 3170 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-01  1:55 cdevries
  0 siblings, 0 replies; 3395+ messages in thread
From: cdevries @ 2017-06-01  1:55 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 3483483188.zip --]
[-- Type: application/zip, Size: 3174 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-06-01  0:43 armouralumni
  0 siblings, 0 replies; 3395+ messages in thread
From: armouralumni @ 2017-06-01  0:43 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: 382518.zip --]
[-- Type: application/zip, Size: 3175 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-31 14:53 tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w @ 2017-05-31 14:53 UTC (permalink / raw)
  To: linux-api-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 76390.zip --]
[-- Type: application/zip, Size: 3189 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-31 11:36 p.mueller-spz-hgw-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: p.mueller-spz-hgw-Mmb7MZpHnFY @ 2017-05-31 11:36 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 775_linux-rdma.zip --]
[-- Type: application/zip, Size: 3334 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-05-26 16:33 Anderson McEnany <
  0 siblings, 0 replies; 3395+ messages in thread
From: Anderson McEnany < @ 2017-05-26 16:33 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2030 bytes --]

lisoch@veco.ru

>
Subject: Gegenseitiger Partnervorschlag
Date: Fri, 26 May 2017 18:15:45 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="Windows-1251"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

Lieber Freund,

Vielen Dank, dass Sie sich die Zeit genommen haben, meinen gegenseitigen Geschäftsvorschlag zu Ihnen zu lesen. Mein Name ist Herr Anderson McEnany, Investment Manager bei der City Bank New York, USA.

Mein Ziel, Ihnen den Vorschlag zu schreiben, ist, weil ich einen europäischen Klienten habe, dass ich geholfen habe, eine Reihe von seinen Investitionen im Mittleren Osten mit einer Einlagensumme von USD21 Millionen Dollar zu verwalten, bis vor etwa fünf Jahren, als er plötzlich verstarb und seit fast 4 Jahren Ich habe nach seinen Verwandten gesucht und schließlich entdeckte ich, dass er keine lebenden Verwandten hatte.

Mein Vorschlag an Sie ist, mit Ihnen in der Deal zu arbeiten, ich beabsichtige, Sie als die nächste Angehörige zu präsentieren, die es legal für Sie machen wird, die Ablagerung für eine der folgenden Angehörigen zu erhalten.

Beide von uns werden gleichberechtigte Partner in diesem Deal sein und ich werde von Ihnen abhängen, um den Gesamtbetrag in Ihrem Konto zu erhalten. Weitere Informationen, die ich Ihnen geben werde, um meinen Anteil an den Mitteln zu überweisen.

Schließlich, wenn du es interessierst, könntest du doch so freundlich sein, mir deine vollen Namen zu schicken, Adresse und direkte Telefonnummern und auch könntest du mir von dir erzählen und was du für das Leben tust, weil das eine riesige finanzielle Transaktion ist und ich will sicher sein Dass du diese Transaktion bearbeiten kannst. An der Bank, wo die Gelder hinterlegt sind.

Ihre dringende Antwort wird geschätzt, bitte senden Sie Ihre Antwort Nachricht an diese vertrauliche E-Mail Adresse: Anderson_mcenany@gmx.com.

Freundliche Grüße,
Herr Anderson McEnany

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-05-26 16:33 Anderson McEnany <
  0 siblings, 0 replies; 3395+ messages in thread
From: Anderson McEnany < @ 2017-05-26 16:33 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2030 bytes --]

lisoch@veco.ru

>
Subject: Gegenseitiger Partnervorschlag
Date: Fri, 26 May 2017 18:15:45 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="Windows-1251"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

Lieber Freund,

Vielen Dank, dass Sie sich die Zeit genommen haben, meinen gegenseitigen Geschäftsvorschlag zu Ihnen zu lesen. Mein Name ist Herr Anderson McEnany, Investment Manager bei der City Bank New York, USA.

Mein Ziel, Ihnen den Vorschlag zu schreiben, ist, weil ich einen europäischen Klienten habe, dass ich geholfen habe, eine Reihe von seinen Investitionen im Mittleren Osten mit einer Einlagensumme von USD21 Millionen Dollar zu verwalten, bis vor etwa fünf Jahren, als er plötzlich verstarb und seit fast 4 Jahren Ich habe nach seinen Verwandten gesucht und schließlich entdeckte ich, dass er keine lebenden Verwandten hatte.

Mein Vorschlag an Sie ist, mit Ihnen in der Deal zu arbeiten, ich beabsichtige, Sie als die nächste Angehörige zu präsentieren, die es legal für Sie machen wird, die Ablagerung für eine der folgenden Angehörigen zu erhalten.

Beide von uns werden gleichberechtigte Partner in diesem Deal sein und ich werde von Ihnen abhängen, um den Gesamtbetrag in Ihrem Konto zu erhalten. Weitere Informationen, die ich Ihnen geben werde, um meinen Anteil an den Mitteln zu überweisen.

Schließlich, wenn du es interessierst, könntest du doch so freundlich sein, mir deine vollen Namen zu schicken, Adresse und direkte Telefonnummern und auch könntest du mir von dir erzählen und was du für das Leben tust, weil das eine riesige finanzielle Transaktion ist und ich will sicher sein Dass du diese Transaktion bearbeiten kannst. An der Bank, wo die Gelder hinterlegt sind.

Ihre dringende Antwort wird geschätzt, bitte senden Sie Ihre Antwort Nachricht an diese vertrauliche E-Mail Adresse: Anderson_mcenany@gmx.com.

Freundliche Grüße,
Herr Anderson McEnany

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-24 16:26 natasha.glauser
  0 siblings, 0 replies; 3395+ messages in thread
From: natasha.glauser @ 2017-05-24 16:26 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 2605145.zip --]
[-- Type: application/zip, Size: 3160 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-24  0:12 bcohen
  0 siblings, 0 replies; 3395+ messages in thread
From: bcohen @ 2017-05-24  0:12 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 07974248344583.zip --]
[-- Type: application/zip, Size: 3196 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23 22:44 noord-holland
  0 siblings, 0 replies; 3395+ messages in thread
From: noord-holland @ 2017-05-23 22:44 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 6211920350.zip --]
[-- Type: application/zip, Size: 3191 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23 16:29 benjamin
  0 siblings, 0 replies; 3395+ messages in thread
From: benjamin @ 2017-05-23 16:29 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 73458503834697.zip --]
[-- Type: application/zip, Size: 3207 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23 16:24 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-05-23 16:24 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 146902373.zip --]
[-- Type: application/zip, Size: 3207 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23  9:36 bendis.michal
  0 siblings, 0 replies; 3395+ messages in thread
From: bendis.michal @ 2017-05-23  9:36 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 1443947.zip --]
[-- Type: application/zip, Size: 3175 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23  8:42 delaware.orders
  0 siblings, 0 replies; 3395+ messages in thread
From: delaware.orders @ 2017-05-23  8:42 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 0880469378.zip --]
[-- Type: application/zip, Size: 3197 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23  7:38 scotte
  0 siblings, 0 replies; 3395+ messages in thread
From: scotte @ 2017-05-23  7:38 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 615690.zip --]
[-- Type: application/zip, Size: 3201 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23  4:53 nfrankiyamu
  0 siblings, 0 replies; 3395+ messages in thread
From: nfrankiyamu @ 2017-05-23  4:53 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 002602599.zip --]
[-- Type: application/zip, Size: 3215 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-23  2:19 mdavis
  0 siblings, 0 replies; 3395+ messages in thread
From: mdavis @ 2017-05-23  2:19 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 6775563555.zip --]
[-- Type: application/zip, Size: 3184 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-22 22:32 patientcentral
  0 siblings, 0 replies; 3395+ messages in thread
From: patientcentral @ 2017-05-22 22:32 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 8395290876929.zip --]
[-- Type: application/zip, Size: 3190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-22 20:39 horizon
  0 siblings, 0 replies; 3395+ messages in thread
From: horizon @ 2017-05-22 20:39 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 66593863594.zip --]
[-- Type: application/zip, Size: 3156 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-22 16:10 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-05-22 16:10 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 5877262087.zip --]
[-- Type: application/zip, Size: 3116 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-22  0:57 mari.kayhko
  0 siblings, 0 replies; 3395+ messages in thread
From: mari.kayhko @ 2017-05-22  0:57 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 58679201840822.zip --]
[-- Type: application/zip, Size: 3176 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 20:35 armiksanaye
  0 siblings, 0 replies; 3395+ messages in thread
From: armiksanaye @ 2017-05-21 20:35 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 66504.zip --]
[-- Type: application/zip, Size: 3178 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 16:36 x1kn8fk
  0 siblings, 0 replies; 3395+ messages in thread
From: x1kn8fk @ 2017-05-21 16:36 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 697470622.zip --]
[-- Type: application/zip, Size: 39559 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 13:56 sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
  0 siblings, 0 replies; 3395+ messages in thread
From: sibolt.mulder-b60u5d1xRcFWk0Htik3J/w @ 2017-05-21 13:56 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 295991102.zip --]
[-- Type: application/zip, Size: 39559 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 11:59 anita.traylor
  0 siblings, 0 replies; 3395+ messages in thread
From: anita.traylor @ 2017-05-21 11:59 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 059670471941.zip --]
[-- Type: application/zip, Size: 39559 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 11:38 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-05-21 11:38 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 0580348.zip --]
[-- Type: application/zip, Size: 39559 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21 11:13 mariobronti
  0 siblings, 0 replies; 3395+ messages in thread
From: mariobronti @ 2017-05-21 11:13 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 37588996.zip --]
[-- Type: application/zip, Size: 39559 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21  9:17 jacqueline.pike
  0 siblings, 0 replies; 3395+ messages in thread
From: jacqueline.pike @ 2017-05-21  9:17 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 544961.zip --]
[-- Type: application/zip, Size: 2917 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21  8:55 benjamin
  0 siblings, 0 replies; 3395+ messages in thread
From: benjamin @ 2017-05-21  8:55 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 087833.zip --]
[-- Type: application/zip, Size: 2855 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21  8:55 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-05-21  8:55 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 5812262.zip --]
[-- Type: application/zip, Size: 2921 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-21  8:42 brucet
  0 siblings, 0 replies; 3395+ messages in thread
From: brucet @ 2017-05-21  8:42 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 00725.zip --]
[-- Type: application/zip, Size: 2874 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 21:16 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-05-20 21:16 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: 31217786072134.zip --]
[-- Type: application/zip, Size: 2902 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 20:00 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-05-20 20:00 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 39874.zip --]
[-- Type: application/zip, Size: 2821 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 18:58 office
  0 siblings, 0 replies; 3395+ messages in thread
From: office @ 2017-05-20 18:58 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 22687017334589.zip --]
[-- Type: application/zip, Size: 1271 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 17:45 counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL
  0 siblings, 0 replies; 3395+ messages in thread
From: counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL @ 2017-05-20 17:45 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 9301738364993.zip --]
[-- Type: application/zip, Size: 2890 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 16:22 alters
  0 siblings, 0 replies; 3395+ messages in thread
From: alters @ 2017-05-20 16:22 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 4380970736.zip --]
[-- Type: application/zip, Size: 2837 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 14:29 cv
  0 siblings, 0 replies; 3395+ messages in thread
From: cv @ 2017-05-20 14:29 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 65318589.zip --]
[-- Type: application/zip, Size: 2878 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 12:27 ajae
  0 siblings, 0 replies; 3395+ messages in thread
From: ajae @ 2017-05-20 12:27 UTC (permalink / raw)
  To: linux-bcache

[-- Attachment #1: 1415432.zip --]
[-- Type: application/zip, Size: 2909 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 11:47 john.dahlberg
  0 siblings, 0 replies; 3395+ messages in thread
From: john.dahlberg @ 2017-05-20 11:47 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 899954395.zip --]
[-- Type: application/zip, Size: 2920 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20 11:03 pohut00
  0 siblings, 0 replies; 3395+ messages in thread
From: pohut00 @ 2017-05-20 11:03 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 82304.zip --]
[-- Type: application/zip, Size: 2820 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20  9:40 mgriffit
  0 siblings, 0 replies; 3395+ messages in thread
From: mgriffit @ 2017-05-20  9:40 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 64749729775761.zip --]
[-- Type: application/zip, Size: 2868 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20  8:14 ecaterinasuciu09
  0 siblings, 0 replies; 3395+ messages in thread
From: ecaterinasuciu09 @ 2017-05-20  8:14 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: 0482411662588.zip --]
[-- Type: application/zip, Size: 2825 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20  1:09 board
  0 siblings, 0 replies; 3395+ messages in thread
From: board @ 2017-05-20  1:09 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: 17734612411.zip --]
[-- Type: application/zip, Size: 2913 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20  0:40 sophie.norman
  0 siblings, 0 replies; 3395+ messages in thread
From: sophie.norman @ 2017-05-20  0:40 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 260009073203663.zip --]
[-- Type: application/zip, Size: 2939 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-20  0:26 brian
  0 siblings, 0 replies; 3395+ messages in thread
From: brian @ 2017-05-20  0:26 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 843245271.zip --]
[-- Type: application/zip, Size: 2945 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 16:59 zumbalisa
  0 siblings, 0 replies; 3395+ messages in thread
From: zumbalisa @ 2017-05-19 16:59 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: 032259416649.zip --]
[-- Type: application/zip, Size: 2894 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 15:35 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-05-19 15:35 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 57847049147979.zip --]
[-- Type: application/zip, Size: 2923 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 14:51 citydesk
  0 siblings, 0 replies; 3395+ messages in thread
From: citydesk @ 2017-05-19 14:51 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 128734285588468.zip --]
[-- Type: application/zip, Size: 2883 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 13:31 office
  0 siblings, 0 replies; 3395+ messages in thread
From: office @ 2017-05-19 13:31 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 13476503689.zip --]
[-- Type: application/zip, Size: 2885 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 12:56 kindergartenchaos2
  0 siblings, 0 replies; 3395+ messages in thread
From: kindergartenchaos2 @ 2017-05-19 12:56 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 012614448.zip --]
[-- Type: application/zip, Size: 2858 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19 11:45 counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL
  0 siblings, 0 replies; 3395+ messages in thread
From: counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL @ 2017-05-19 11:45 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 8991909.zip --]
[-- Type: application/zip, Size: 2916 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19  6:45 j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
  0 siblings, 0 replies; 3395+ messages in thread
From: j.lahoda-aRb0bU7PRFPrBKCeMvbIDA @ 2017-05-19  6:45 UTC (permalink / raw)
  To: linux-efi-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: 27843789264095.zip --]
[-- Type: application/zip, Size: 2870 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19  4:32 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-05-19  4:32 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 6070538009916.zip --]
[-- Type: application/zip, Size: 2908 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-19  3:34 openhackbangalore
  0 siblings, 0 replies; 3395+ messages in thread
From: openhackbangalore @ 2017-05-19  3:34 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 04104849287.zip --]
[-- Type: application/zip, Size: 2893 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-18 19:22 lucia.germino
  0 siblings, 0 replies; 3395+ messages in thread
From: lucia.germino @ 2017-05-18 19:22 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: 6078544384.zip --]
[-- Type: application/zip, Size: 2928 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-18 16:47 susan.christian
  0 siblings, 0 replies; 3395+ messages in thread
From: susan.christian @ 2017-05-18 16:47 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: 40144986.zip --]
[-- Type: application/zip, Size: 4845 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-18 14:13 agiva
  0 siblings, 0 replies; 3395+ messages in thread
From: agiva @ 2017-05-18 14:13 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 233627250363201.zip --]
[-- Type: application/zip, Size: 4829 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-18 13:41 alters
  0 siblings, 0 replies; 3395+ messages in thread
From: alters @ 2017-05-18 13:41 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 449685.zip --]
[-- Type: application/zip, Size: 4787 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-18 13:40 hp
  0 siblings, 0 replies; 3395+ messages in thread
From: hp @ 2017-05-18 13:40 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 2518423.zip --]
[-- Type: application/zip, Size: 4661 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-17 18:42 stef.ryckmans
  0 siblings, 0 replies; 3395+ messages in thread
From: stef.ryckmans @ 2017-05-17 18:42 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 08149217870.zip --]
[-- Type: application/zip, Size: 4646 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-17 13:39 J Walker
  0 siblings, 0 replies; 3395+ messages in thread
From: J Walker @ 2017-05-17 13:39 UTC (permalink / raw)
  To: netdev



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-17 10:59 anita.traylor
  0 siblings, 0 replies; 3395+ messages in thread
From: anita.traylor @ 2017-05-17 10:59 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 55356090.zip --]
[-- Type: application/zip, Size: 3008 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-17  7:10 1.10.0812112155390.21775
  0 siblings, 0 replies; 3395+ messages in thread
From: 1.10.0812112155390.21775 @ 2017-05-17  7:10 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: 056305.zip --]
[-- Type: application/zip, Size: 2929 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-16  6:37 momofr
  0 siblings, 0 replies; 3395+ messages in thread
From: momofr @ 2017-05-16  6:37 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_373084188081_netdev.zip --]
[-- Type: application/zip, Size: 2077 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-16  3:06 armiksanaye
  0 siblings, 0 replies; 3395+ messages in thread
From: armiksanaye @ 2017-05-16  3:06 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_94744_linux-scsi.zip --]
[-- Type: application/zip, Size: 2116 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-15 23:49 morice.diane
  0 siblings, 0 replies; 3395+ messages in thread
From: morice.diane @ 2017-05-15 23:49 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_0461021_netdev.zip --]
[-- Type: application/zip, Size: 2062 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-15 23:19 bcohen
  0 siblings, 0 replies; 3395+ messages in thread
From: bcohen @ 2017-05-15 23:19 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_94874074783512_netdev.zip --]
[-- Type: application/zip, Size: 2074 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-14  3:19 unixkeeper
  0 siblings, 0 replies; 3395+ messages in thread
From: unixkeeper @ 2017-05-14  3:19 UTC (permalink / raw)
  To: linux-bcache

reg

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-11  1:02 info
  0 siblings, 0 replies; 3395+ messages in thread
From: info @ 2017-05-11  1:02 UTC (permalink / raw)
  To: dri-devel

[-- Attachment #1: 898372657368076_dri-devel.zip --]
[-- Type: application/zip, Size: 2851 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-10  7:23 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-05-10  7:23 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 620_netdev.zip --]
[-- Type: application/zip, Size: 1923 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-05-04 13:20 Steve French
  0 siblings, 0 replies; 3395+ messages in thread
From: Steve French @ 2017-05-04 13:20 UTC (permalink / raw)
  To: Long Li, linux-cifs-u79uwXL29TY76Z2rM5mHXA, Pavel Shilovskiy

[-- Attachment #1: Type: text/plain, Size: 465 bytes --]

Any thoughts on removing the dependency on srv_mutex in deleting
completed requests (and freeing its memory) ? Otherwise it can cause
problems with long running socket writes (on sending new requests)
which don't get the benefit of finishing up response processing due to
the blocking of DeleteMidQEntry on server->srv_mutex

This should improve performance as well.

(Long Li was noticing this looking at RDMA with cifs.ko)

See attached patch

-- 
Thanks,

Steve

[-- Attachment #2: 0001-CIFS-Don-t-delay-freeing-mids-when-blocked-on-slow-s.patch --]
[-- Type: text/x-patch, Size: 4037 bytes --]

From 429bb0e9da0db34bf75d5335fe6b4011db8765ad Mon Sep 17 00:00:00 2001
From: Steve French <smfrench@gmail.com>
Date: Thu, 4 May 2017 07:54:04 -0500
Subject: [PATCH] [CIFS] Don't delay freeing mids when blocked on slow socket
 write of request

When processing responses, and in particular freeing mids (DeleteMidQEntry),
which is very important since it also frees the associated buffers (cifs_buf_release),
we can block a long time if (writes to) socket is slow due to low memory or networking
issues.

We can block in send (smb request) waiting for memory, and be blocked in processing
responess (which could free memory if we let it) - since they both grab the
server->srv_mutex.

In practice, in the DeleteMidQEntry case - there is no reason we need to
grab the srv_mutex so remove these around DeleteMidQEntry, and it allows
us to free memory faster.

Signed-off-by: Steve French <steve.french@primarydata.com>
---
 fs/cifs/cifssmb.c   | 7 -------
 fs/cifs/smb2pdu.c   | 7 -------
 fs/cifs/transport.c | 2 --
 3 files changed, 16 deletions(-)

diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 205fd94..5245723 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -697,9 +697,7 @@ static int validate_t2(struct smb_t2_rsp *pSMB)
 {
 	struct TCP_Server_Info *server = mid->callback_data;
 
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(server, 1, CIFS_ECHO_OP);
 }
 
@@ -1599,9 +1597,7 @@ static __u16 convert_disposition(int disposition)
 	}
 
 	queue_work(cifsiod_wq, &rdata->work);
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(server, 1, 0);
 }
 
@@ -2058,7 +2054,6 @@ struct cifs_writedata *
 {
 	struct cifs_writedata *wdata = mid->callback_data;
 	struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
-	struct TCP_Server_Info *server = tcon->ses->server;
 	unsigned int written;
 	WRITE_RSP *smb = (WRITE_RSP *)mid->resp_buf;
 
@@ -2095,9 +2090,7 @@ struct cifs_writedata *
 	}
 
 	queue_work(cifsiod_wq, &wdata->work);
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(tcon->ses->server, 1, 0);
 }
 
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 0fd63f0..e4007ee 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2172,9 +2172,7 @@ static inline void init_copy_chunk_defaults(struct cifs_tcon *tcon)
 	if (mid->mid_state == MID_RESPONSE_RECEIVED)
 		credits_received = le16_to_cpu(rsp->hdr.sync_hdr.CreditRequest);
 
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(server, credits_received, CIFS_ECHO_OP);
 }
 
@@ -2432,9 +2430,7 @@ void smb2_reconnect_server(struct work_struct *work)
 		cifs_stats_fail_inc(tcon, SMB2_READ_HE);
 
 	queue_work(cifsiod_wq, &rdata->work);
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(server, credits_received, 0);
 }
 
@@ -2593,7 +2589,6 @@ void smb2_reconnect_server(struct work_struct *work)
 {
 	struct cifs_writedata *wdata = mid->callback_data;
 	struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink);
-	struct TCP_Server_Info *server = tcon->ses->server;
 	unsigned int written;
 	struct smb2_write_rsp *rsp = (struct smb2_write_rsp *)mid->resp_buf;
 	unsigned int credits_received = 1;
@@ -2633,9 +2628,7 @@ void smb2_reconnect_server(struct work_struct *work)
 		cifs_stats_fail_inc(tcon, SMB2_WRITE_HE);
 
 	queue_work(cifsiod_wq, &wdata->work);
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	add_credits(tcon->ses->server, credits_received, 0);
 }
 
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index 4d64b5b..de589d0 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -613,9 +613,7 @@ struct mid_q_entry *
 	}
 	spin_unlock(&GlobalMid_Lock);
 
-	mutex_lock(&server->srv_mutex);
 	DeleteMidQEntry(mid);
-	mutex_unlock(&server->srv_mutex);
 	return rc;
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown), 
       [not found] ` <1493665155.3041.186.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-05-04  5:24   ` Zhu Yanjun
  0 siblings, 0 replies; 3395+ messages in thread
From: Zhu Yanjun @ 2017-05-04  5:24 UTC (permalink / raw)
  To: tbogendoerfer-l3A5Bk7waGM, dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA,
	haakon.bugge-QHcLZuEGTsvQT0dZR+AlfA,
	wen.gang.wang-QHcLZuEGTsvQT0dZR+AlfA
  Cc: joe.jin-QHcLZuEGTsvQT0dZR+AlfA, junxiao.bi-QHcLZuEGTsvQT0dZR+AlfA


Hi, all

The V3 patch is to replace get_settings with get_link_ksettings.

Best Regards,
Zhu Yanjun
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-29 15:25 Dmitry Bazhenov
  0 siblings, 0 replies; 3395+ messages in thread
From: Dmitry Bazhenov @ 2017-04-29 15:25 UTC (permalink / raw)
  To: netdev

unsubscribe

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  9:09 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2017-04-28  9:09 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...635829wjxnxl....74990.RU.2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  8:36 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2017-04-28  8:36 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...635829wjxnxl....74990.RU.2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  8:36 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2017-04-28  8:36 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...635829wjxnxl....74990.RU.2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  8:36 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2017-04-28  8:36 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...635829wjxnxl....74990.RU.2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  8:36 администратор
  0 siblings, 0 replies; 3395+ messages in thread
From: администратор @ 2017-04-28  8:36 UTC (permalink / raw)


внимания;

Ваши сообщения превысил лимит памяти, который составляет 5 Гб, определенных администратором, который в настоящее время работает на 10.9GB, Вы не сможете отправить или получить новую почту, пока вы повторно не проверить ваш почтовый ящик почты. Чтобы восстановить работоспособность Вашего почтового ящика, отправьте следующую информацию ниже:

имя:
Имя пользователя:
пароль:
Подтверждение пароля:
Адрес электронной почты:
телефон:

Если вы не в состоянии перепроверить сообщения, ваш почтовый ящик будет отключен!

Приносим извинения за неудобства.
Проверочный код: EN: Ru...635829wjxnxl....74990.RU.2017
Почты технической поддержки ©2017

спасибо
системы администратор

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-28  8:20 Anatolij Gustschin
  0 siblings, 0 replies; 3395+ messages in thread
From: Anatolij Gustschin @ 2017-04-28  8:20 UTC (permalink / raw)
  To: linus.walleij, gnurou; +Cc: andy.shevchenko, linux-gpio, linux-kernel

Subject: [PATCH v3] gpiolib: Add stubs for gpiod lookup table interface

Add stubs for gpiod_add_lookup_table() and gpiod_remove_lookup_table()
for the !GPIOLIB case to prevent build errors. Also add prototypes.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
---
Changes in v3:
 - add stubs for !GPIOLIB case. Drop prototypes, these are
   already in gpio/machine.h

Changes in v2:
 - move gpiod_lookup_table out of #ifdef

 include/linux/gpio/consumer.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
index 8f702fc..cf3fee2 100644
--- a/include/linux/gpio/consumer.h
+++ b/include/linux/gpio/consumer.h
@@ -41,6 +41,8 @@ enum gpiod_flags {
 			  GPIOD_FLAGS_BIT_DIR_VAL,
 };
 
+struct gpiod_lookup_table;
+
 #ifdef CONFIG_GPIOLIB
 
 /* Return the number of GPIOs associated with a device / function */
@@ -435,6 +437,12 @@ struct gpio_desc *devm_fwnode_get_index_gpiod_from_child(struct device *dev,
 	return ERR_PTR(-ENOSYS);
 }
 
+static inline
+void gpiod_add_lookup_table(struct gpiod_lookup_table *table) {}
+
+static inline
+void gpiod_remove_lookup_table(struct gpiod_lookup_table *table) {}
+
 #endif /* CONFIG_GPIOLIB */
 
 static inline
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-26 11:54 Shalini Chellathurai Saroja
  0 siblings, 0 replies; 3395+ messages in thread
From: Shalini Chellathurai Saroja @ 2017-04-26 11:54 UTC (permalink / raw)
  To: kvm

subscribe kvm

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-26  7:36 glolariu
  0 siblings, 0 replies; 3395+ messages in thread
From: glolariu @ 2017-04-26  7:36 UTC (permalink / raw)
  To: linux man

Good afternoon Linux



http://www.noeliavega.com/fonts/pt-sans/license.php?interest=rzm260ek0w9


Glolariu
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-26  3:57 prasad padiyar
  0 siblings, 0 replies; 3395+ messages in thread
From: prasad padiyar @ 2017-04-26  3:57 UTC (permalink / raw)
  To: netdev

subscribe linux-netdev

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:54 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:54 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:44 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:44 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:40 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:40 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:24 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:24 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:15 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:15 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:07 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:07 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 17:06 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 17:06 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-21 16:59 Mr.Jerry Smith
  0 siblings, 0 replies; 3395+ messages in thread
From: Mr.Jerry Smith @ 2017-04-21 16:59 UTC (permalink / raw)




We Give Out Loans At 3% Interest Rate And We Offer Loans From $5,000 To $50,000,000.00, Are You Looking To Buy A House Car Or Company Or Start Up A Truck Company or Buy A Truck Or Personal Loans Or Business Loan, Email Us At jerryfunds11@inbox.lv  With Amount Needed And Phone Number.



^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21 11:49 kathleen.gilbert
  0 siblings, 0 replies; 3395+ messages in thread
From: kathleen.gilbert @ 2017-04-21 11:49 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_27944_netfilter-devel.zip --]
[-- Type: application/zip, Size: 2190 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21  9:51 Kredit
  0 siblings, 0 replies; 3395+ messages in thread
From: Kredit @ 2017-04-21  9:51 UTC (permalink / raw)




Hallo

Wir bieten Darlehen von 5.000,00 Euro bis 20.000.000,00 Euro mit einer maximalen Rückzahlungsdauer von 30 Jahren zu 1.9% Zinssatz.
Wenn Sie interessiert sind, kontaktieren Sie uns per E-Mail: myers.terrylynn@aol.com

Mrs. Myers Terry Lynn.
Darlehen / Finanzdienstleister.
myers.terrylynn@universalcreditllc.com

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21  9:25 delaware.orders
  0 siblings, 0 replies; 3395+ messages in thread
From: delaware.orders @ 2017-04-21  9:25 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: EMAIL_4680172734_linux-crypto.zip --]
[-- Type: application/zip, Size: 2191 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21  8:36 joseph.x.hronec
  0 siblings, 0 replies; 3395+ messages in thread
From: joseph.x.hronec @ 2017-04-21  8:36 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: EMAIL_7493740125_linux-pm.zip --]
[-- Type: application/zip, Size: 2176 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21  8:30 scotte
  0 siblings, 0 replies; 3395+ messages in thread
From: scotte @ 2017-04-21  8:30 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_73239390_netdev.zip --]
[-- Type: application/zip, Size: 2207 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-21  7:38 wesley.sydnor
  0 siblings, 0 replies; 3395+ messages in thread
From: wesley.sydnor @ 2017-04-21  7:38 UTC (permalink / raw)
  To: platform-driver-x86

[-- Attachment #1: EMAIL_751643779_platform-driver-x86.zip --]
[-- Type: application/zip, Size: 2213 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-20 12:28 h.gerritsen12
  0 siblings, 0 replies; 3395+ messages in thread
From: h.gerritsen12 @ 2017-04-20 12:28 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_5770253913775_linux-arch.zip --]
[-- Type: application/zip, Size: 1397 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-20  6:33 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-04-20  6:33 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: EMAIL_58224147405751_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 1421 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-19 20:46 hp
  0 siblings, 0 replies; 3395+ messages in thread
From: hp @ 2017-04-19 20:46 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: EMAIL_7992249_linux-raid.zip --]
[-- Type: application/zip, Size: 1431 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-19 16:38 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-04-19 16:38 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: EMAIL_3155533888_netfilter-devel.zip --]
[-- Type: application/zip, Size: 1224 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-19  4:29 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-04-19  4:29 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_42114478079_netdev.zip --]
[-- Type: application/zip, Size: 1237 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-18 16:05 rlm85310
  0 siblings, 0 replies; 3395+ messages in thread
From: rlm85310 @ 2017-04-18 16:05 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_91332296_linux-ext4.zip --]
[-- Type: application/zip, Size: 1186 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-18 10:57 catherine.verge
  0 siblings, 0 replies; 3395+ messages in thread
From: catherine.verge @ 2017-04-18 10:57 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: EMAIL_7905004_linux-parisc.zip --]
[-- Type: application/zip, Size: 1654 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-18  2:53 h.piontek
  0 siblings, 0 replies; 3395+ messages in thread
From: h.piontek @ 2017-04-18  2:53 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_259096023_linux-acpi.zip --]
[-- Type: application/zip, Size: 1206 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-18  1:56 scotte
  0 siblings, 0 replies; 3395+ messages in thread
From: scotte @ 2017-04-18  1:56 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_5628834284372_netdev.zip --]
[-- Type: application/zip, Size: 1226 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17 18:00 j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
  0 siblings, 0 replies; 3395+ messages in thread
From: j.lahoda-aRb0bU7PRFPrBKCeMvbIDA @ 2017-04-17 18:00 UTC (permalink / raw)
  To: linux-efi

[-- Attachment #1: EMAIL_12394528480_linux-efi.zip --]
[-- Type: application/zip, Size: 1210 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17 15:20 tchidrenplytoo
  0 siblings, 0 replies; 3395+ messages in thread
From: tchidrenplytoo @ 2017-04-17 15:20 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_111852059-linux-arch.zip --]
[-- Type: application/zip, Size: 1216 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17 14:38 energi
  0 siblings, 0 replies; 3395+ messages in thread
From: energi @ 2017-04-17 14:38 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_2410371928-netdev.zip --]
[-- Type: application/zip, Size: 1212 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17 12:59 openhackbangalore
  0 siblings, 0 replies; 3395+ messages in thread
From: openhackbangalore @ 2017-04-17 12:59 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_5758843219-netdev.zip --]
[-- Type: application/zip, Size: 2011 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  9:12 kelley
  0 siblings, 0 replies; 3395+ messages in thread
From: kelley @ 2017-04-17  9:12 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: MICROSOFT-17050-netdev.zip --]
[-- Type: application/zip, Size: 2060 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  7:56 lucia.germino
  0 siblings, 0 replies; 3395+ messages in thread
From: lucia.germino @ 2017-04-17  7:56 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: SHOP-36997868037949-linux-ide.zip --]
[-- Type: application/zip, Size: 2032 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  4:06 nkosuta-f+iqBESB6gc
  0 siblings, 0 replies; 3395+ messages in thread
From: nkosuta-f+iqBESB6gc @ 2017-04-17  4:06 UTC (permalink / raw)
  To: devicetree

[-- Attachment #1: $MONEY-52123352603-devicetree.zip --]
[-- Type: application/zip, Size: 2171 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  3:38 kgbok.kezyhumh
  0 siblings, 0 replies; 3395+ messages in thread
From: kgbok.kezyhumh @ 2017-04-17  3:38 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: $MONEY-840640779540345-linux-pm.zip --]
[-- Type: application/zip, Size: 2015 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  3:09 bunny43200
  0 siblings, 0 replies; 3395+ messages in thread
From: bunny43200 @ 2017-04-17  3:09 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: TRAMP-5135069821-linux-leds.zip --]
[-- Type: application/zip, Size: 1984 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  2:26 wvhyvcm.abyxg
  0 siblings, 0 replies; 3395+ messages in thread
From: wvhyvcm.abyxg @ 2017-04-17  2:26 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: BALLANCE-84324839693493-netfilter-devel.zip --]
[-- Type: application/zip, Size: 2001 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  2:06 rlm85310
  0 siblings, 0 replies; 3395+ messages in thread
From: rlm85310 @ 2017-04-17  2:06 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: SALE-78001048-linux-ext4.zip --]
[-- Type: application/zip, Size: 2032 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-17  0:43 John Ewalt
  0 siblings, 0 replies; 3395+ messages in thread
From: John Ewalt @ 2017-04-17  0:43 UTC (permalink / raw)
  To: linux-mmc

Hi all,

I am not sure if this is the right way to ask a question about SD cards, so
please correct me as I am new to Linux kernel development.

I am currently working with a Intel Joule SOM and development board
(Broxton M core) and when I insert the SD card, it is recognized as a
SDR104 UHS-I card.  Since this host has the MMC_CAP_AGGRESSIVE_PM bit set,
it is suspended.  That all works as expected.  When the card is resumed,
the OCR is read expecting bit 24 (switch to 1.8 V accepted (S18A)) to be
set, but it is clear as the card is still at 1.8v signaling since it was
never powered down during the suspend.

I see 3 ways to solve this problem:
First, power down the card during suspend.  I think this is the intended
behavior but there is no power manager registered to this host (as
compiled) and I'm not sure how to add one, let alone the hardware changes
necessary to implement the powering down of the sd card.

Second, don't suspend (I have tested this and it works as the card is not
suspended)

Third, the host could remember that the card was at 1.8v signaling and if
it will not "switch" to 1.8v, assume it is at 1.8v and go through the
uhs_setup anyway.  I have tried this too and it works for UHS cards, but I
doubt it would be the right change.


I would appreciate any help or direction anyone can provide as I would
really like to use my fast card at the full data rates.  I am currently
setup to test any suggestions you have.

Thank you all,

-John

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 23:57 muirs
  0 siblings, 0 replies; 3395+ messages in thread
From: muirs @ 2017-04-16 23:57 UTC (permalink / raw)
  To: linux-next

[-- Attachment #1: DOLLARS-47818843-linux-next.zip --]
[-- Type: application/zip, Size: 2040 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 23:02 brian
  0 siblings, 0 replies; 3395+ messages in thread
From: brian @ 2017-04-16 23:02 UTC (permalink / raw)
  To: linux-pm

[-- Attachment #1: BALLANCE-27309006728165-linux-pm.zip --]
[-- Type: application/zip, Size: 2018 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 22:46 tammyehood
  0 siblings, 0 replies; 3395+ messages in thread
From: tammyehood @ 2017-04-16 22:46 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: BILL-827602-linux-fsdevel.zip --]
[-- Type: application/zip, Size: 2036 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 21:22 ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
  0 siblings, 0 replies; 3395+ messages in thread
From: ujagu8185-Re5JQEeQqe8AvxtiuMwx3w @ 2017-04-16 21:22 UTC (permalink / raw)
  To: linux-cifs

[-- Attachment #1: COMPANY-926043103481-linux-cifs.zip --]
[-- Type: application/zip, Size: 1986 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 20:59 mitch_128
  0 siblings, 0 replies; 3395+ messages in thread
From: mitch_128 @ 2017-04-16 20:59 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: ORDER-048568274398-linux-ide.zip --]
[-- Type: application/zip, Size: 1992 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 19:08 athgregory
  0 siblings, 0 replies; 3395+ messages in thread
From: athgregory @ 2017-04-16 19:08 UTC (permalink / raw)
  To: linux-unionfs

[-- Attachment #1: EMAIL_50905992227158_linux-unionfs.zip --]
[-- Type: application/zip, Size: 2014 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 18:50 cbordinaro
  0 siblings, 0 replies; 3395+ messages in thread
From: cbordinaro @ 2017-04-16 18:50 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: EMAIL_165222_netdev.zip --]
[-- Type: application/zip, Size: 1999 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 18:32 nathalie.colle
  0 siblings, 0 replies; 3395+ messages in thread
From: nathalie.colle @ 2017-04-16 18:32 UTC (permalink / raw)
  To: fstests

[-- Attachment #1: EMAIL_40898969311_fstests.zip --]
[-- Type: application/zip, Size: 2047 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 18:30 r67
  0 siblings, 0 replies; 3395+ messages in thread
From: r67 @ 2017-04-16 18:30 UTC (permalink / raw)
  To: linux-arch

[-- Attachment #1: EMAIL_9461355_linux-arch.zip --]
[-- Type: application/zip, Size: 2047 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 17:49 zem.uchastok
  0 siblings, 0 replies; 3395+ messages in thread
From: zem.uchastok @ 2017-04-16 17:49 UTC (permalink / raw)
  To: linux-m68k

[-- Attachment #1: EMAIL_28903012528_linux-m68k.zip --]
[-- Type: application/zip, Size: 2019 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 17:44 bkjf
  0 siblings, 0 replies; 3395+ messages in thread
From: bkjf @ 2017-04-16 17:44 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_4067839100_linux-ext4.zip --]
[-- Type: application/zip, Size: 2019 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-16 17:41 askeeta
  0 siblings, 0 replies; 3395+ messages in thread
From: askeeta @ 2017-04-16 17:41 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: EMAIL_52728_linux-parisc.zip --]
[-- Type: application/zip, Size: 2732 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 16:37 bfoster
  0 siblings, 0 replies; 3395+ messages in thread
From: bfoster @ 2017-04-16 16:37 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: EMAIL_65750003_linux-ext4.zip --]
[-- Type: application/zip, Size: 2002 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 16:31 a.skucha
  0 siblings, 0 replies; 3395+ messages in thread
From: a.skucha @ 2017-04-16 16:31 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_10968724_linux-scsi.zip --]
[-- Type: application/zip, Size: 2011 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16 15:48 redbeardcharters
  0 siblings, 0 replies; 3395+ messages in thread
From: redbeardcharters @ 2017-04-16 15:48 UTC (permalink / raw)
  To: linux-perf-users

[-- Attachment #1: EMAIL_387722751_linux-perf-users.zip --]
[-- Type: application/zip, Size: 1998 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16  8:52 geir.nuland
  0 siblings, 0 replies; 3395+ messages in thread
From: geir.nuland @ 2017-04-16  8:52 UTC (permalink / raw)
  To: linux-acpi

[-- Attachment #1: EMAIL_75980237014631_linux-acpi.zip --]
[-- Type: application/zip, Size: 2036 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16  8:21 jha
  0 siblings, 0 replies; 3395+ messages in thread
From: jha @ 2017-04-16  8:21 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_99997_linux-scsi.zip --]
[-- Type: application/zip, Size: 2018 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16  6:21 shwx002
  0 siblings, 0 replies; 3395+ messages in thread
From: shwx002 @ 2017-04-16  6:21 UTC (permalink / raw)
  To: linux-fsdevel

[-- Attachment #1: EMAIL_18980_linux-fsdevel.zip --]
[-- Type: application/zip, Size: 3895 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16  3:33 ohnesorge-wiek
  0 siblings, 0 replies; 3395+ messages in thread
From: ohnesorge-wiek @ 2017-04-16  3:33 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: EMAIL_3725766514_linux-scsi.zip --]
[-- Type: application/zip, Size: 3496 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-16  3:17 resson-epfaOiJH9AY
  0 siblings, 0 replies; 3395+ messages in thread
From: resson-epfaOiJH9AY @ 2017-04-16  3:17 UTC (permalink / raw)
  To: linux-rdma

[-- Attachment #1: EMAIL_89326372545_linux-rdma.zip --]
[-- Type: application/zip, Size: 3776 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-15 15:00 jbmplupus-Mmb7MZpHnFY
  0 siblings, 0 replies; 3395+ messages in thread
From: jbmplupus-Mmb7MZpHnFY @ 2017-04-15 15:00 UTC (permalink / raw)
  To: linux-man

[-- Attachment #1: REPORT_28110741209342_linux-man.zip --]
[-- Type: application/zip, Size: 2109 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-15 14:16 demorton
  0 siblings, 0 replies; 3395+ messages in thread
From: demorton @ 2017-04-15 14:16 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: REPORT_3030392596590_linux-scsi.zip --]
[-- Type: application/zip, Size: 1977 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-15 14:07 energi
  0 siblings, 0 replies; 3395+ messages in thread
From: energi @ 2017-04-15 14:07 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: REPORT_717717110_netdev.zip --]
[-- Type: application/zip, Size: 1977 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-15 13:53 smallgroups
  0 siblings, 0 replies; 3395+ messages in thread
From: smallgroups @ 2017-04-15 13:53 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: REPORT_8394710_linux-crypto.zip --]
[-- Type: application/zip, Size: 4989 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-14 19:14 David Miller
  0 siblings, 0 replies; 3395+ messages in thread
From: David Miller @ 2017-04-14 19:14 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


Things seem to be settling down as far as networking is concerned,
let's hope this trend continues...

1) Add iov_iter_revert() and use it to fix the behavior of
   skb_copy_datagram_msg() et al., from Al Viro.

2) Fix the protocol used in the synthetic SKB we cons up for the
   purposes of doing a simulated route lookup for RTM_GETROUTE
   requests.  From Florian Larysch.

3) Don't add noop_qdisc to the per-device qdisc hashes, from Cong
   Wang.

4) Don't call netdev_change_features with the team lock held, from Xin
   Long.

5) Revert TCP F-RTO extension to catch more spurious timeouts because it
   interacts very badly with some middle-boxes.  From Yuchung Cheng.

6) Fix the loss of error values in l2tp {s,g}etsockopt calls, from
   Guillaume Nault.

7) ctnetlink uses bit positions where it should be using bit masks,
   fix from Liping Zhang.

8) Missing RCU locking in netfilter helper code, from Gao Feng.

9) Avoid double frees and use-after-frees in tcp_disconnect(), from
   Eric Dumazet.

10) Don't do a changelink before we register the netdevice in bridging,
    from Ido Schimmel.

11) Lock the ipv6 device address list properly, from Rabin Vincent.

Please pull, thanks a lot!

The following changes since commit ea6b1720ce25f92f7a17b2e0c2b653d20773d10a:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-04-05 20:17:38 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 

for you to fetch changes up to f4c13c8ec56e70eeff3e365e0c5fcdad16845b32:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf (2017-04-14 10:47:13 -0400)

----------------------------------------------------------------
Al Viro (2):
      [iov_iter] new privimitive: iov_iter_revert()
      make skb_copy_datagram_msg() et.al. preserve ->msg_iter on error

Daniele Palmas (1):
      drivers: net: usb: qmi_wwan: add QMI_QUIRK_SET_DTR for Telit PID 0x1201

David S. Miller (5):
      Merge branch 'for-davem' of git://git.kernel.org/.../viro/vfs
      Merge branch 'l2tp-sockopt-errors'
      Merge tag 'linux-can-fixes-for-4.12-20170404' of git://git.kernel.org/.../mkl/linux-can
      Merge branch 'bridge-register-netdev-before-changelink'
      Merge git://git.kernel.org/.../pablo/nf

Eric Dumazet (2):
      netfilter: xt_TCPMSS: add more sanity tests on tcph->doff
      tcp: clear saved_syn in tcp_disconnect()

Florian Larysch (1):
      net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given

Gao Feng (3):
      net: tcp: Increase TCP_MIB_OUTRSTS even though fail to alloc skb
      netfilter: helper: Add the rcu lock when call __nf_conntrack_helper_find
      netfilter: ipt_CLUSTERIP: Fix wrong conntrack netns refcnt usage

Geert Uytterhoeven (1):
      can: rcar_can: Do not print virtual addresses

Guillaume Nault (2):
      l2tp: don't mask errors in pppol2tp_setsockopt()
      l2tp: don't mask errors in pppol2tp_getsockopt()

Ido Schimmel (2):
      bridge: implement missing ndo_uninit()
      bridge: netlink: register netdevice before executing changelink

Johannes Berg (2):
      bpf: reference may_access_skb() from __bpf_prog_run()
      net: xdp: don't export dev_change_xdp_fd()

Liping Zhang (6):
      netfilter: ctnetlink: using bit to represent the ct event
      netfilter: ctnetlink: make it safer when checking the ct helper name
      netfilter: make it safer during the inet6_dev->addr_list traversal
      netfilter: ctnetlink: skip dumping expect when nfct_help(ct) is NULL
      netfilter: nf_ct_expect: use proper RCU list traversal/update APIs
      netfilter: nft_hash: do not dump the auto generated seed

Markus Marb (1):
      can: ifi: use correct register to read rx status

Oliver Neukum (1):
      usbnet: make sure no NULL pointer is passed through

Rabin Vincent (1):
      ipv6: Fix idev->addr_list corruption

WANG Cong (1):
      net_sched: check noop_qdisc before qdisc_hash_add()

Xin Long (2):
      sctp: listen on the sock only when it's state is listening or closed
      team: call netdev_change_features out of team lock

Yuchung Cheng (1):
      tcp: restrict F-RTO to work-around broken middle-boxes

 drivers/net/can/ifi_canfd/ifi_canfd.c |  2 +-
 drivers/net/can/rcar/rcar_can.c       |  3 +--
 drivers/net/team/team.c               | 19 +++++++++++--------
 drivers/net/usb/qmi_wwan.c            |  2 +-
 drivers/net/usb/usbnet.c              | 19 +++++++++++++++----
 include/linux/uio.h                   |  6 +++++-
 kernel/bpf/core.c                     | 12 ++++++------
 lib/iov_iter.c                        | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 net/bridge/br_device.c                | 20 +++++++++++---------
 net/bridge/br_if.c                    |  1 -
 net/bridge/br_multicast.c             |  7 +++++--
 net/bridge/br_netlink.c               |  7 +++++--
 net/bridge/br_private.h               |  5 +++++
 net/core/datagram.c                   | 23 ++++++++++++++---------
 net/core/dev.c                        |  1 -
 net/ipv4/netfilter/ipt_CLUSTERIP.c    |  2 +-
 net/ipv4/route.c                      |  2 +-
 net/ipv4/tcp.c                        |  1 +
 net/ipv4/tcp_input.c                  | 20 ++++++++++++--------
 net/ipv4/tcp_output.c                 |  4 ++--
 net/ipv6/addrconf.c                   | 11 +++++++----
 net/l2tp/l2tp_ppp.c                   |  9 ++++++---
 net/netfilter/nf_conntrack_expect.c   |  4 ++--
 net/netfilter/nf_conntrack_helper.c   | 17 ++++++++++++-----
 net/netfilter/nf_conntrack_netlink.c  | 41 +++++++++++++++++++++++++++++------------
 net/netfilter/nf_nat_redirect.c       |  2 ++
 net/netfilter/nft_hash.c              | 10 +++++++---
 net/netfilter/xt_TCPMSS.c             |  6 +++++-
 net/netfilter/xt_TPROXY.c             |  5 ++++-
 net/sched/sch_generic.c               |  2 +-
 net/sctp/socket.c                     |  3 +++
 31 files changed, 238 insertions(+), 91 deletions(-)

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-13 15:58 Scott Ellentuch
  0 siblings, 0 replies; 3395+ messages in thread
From: Scott Ellentuch @ 2017-04-13 15:58 UTC (permalink / raw)
  To: linux-raid

for disk in a b c d g h i j k l m n
do

  disklist="${disklist} /dev/sd${disk}1"

done

mdadm --create --verbose /dev/md2 --level=5 --raid=devices=12  ${disklist}

But its telling me :

mdadm: invalid number of raid devices: devices=12


I can't find any definition of a limit anywhere.

Thank you, Tuc

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-11 15:47 energi
  0 siblings, 0 replies; 3395+ messages in thread
From: energi @ 2017-04-11 15:47 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: REPORT_7282175_netdev.zip --]
[-- Type: application/zip, Size: 3609 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10 11:47 office
  0 siblings, 0 replies; 3395+ messages in thread
From: office @ 2017-04-10 11:47 UTC (permalink / raw)
  To: linux-leds

[-- Attachment #1: 1707926450225_linux-leds.zip --]
[-- Type: application/zip, Size: 3714 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10 10:18 rueggemann
  0 siblings, 0 replies; 3395+ messages in thread
From: rueggemann @ 2017-04-10 10:18 UTC (permalink / raw)
  To: linux-samsung-soc

[-- Attachment #1: 207_linux-samsung-soc.zip --]
[-- Type: application/zip, Size: 3705 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  9:20 nmckenna
  0 siblings, 0 replies; 3395+ messages in thread
From: nmckenna @ 2017-04-10  9:20 UTC (permalink / raw)
  To: netdev

[-- Attachment #1: 5505890958_netdev.zip --]
[-- Type: application/zip, Size: 2338 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  8:37 kkaplanidou
  0 siblings, 0 replies; 3395+ messages in thread
From: kkaplanidou @ 2017-04-10  8:37 UTC (permalink / raw)
  To: linux-scsi

[-- Attachment #1: 81477342108520_linux-scsi.zip --]
[-- Type: application/zip, Size: 2917 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  6:51 kathleen.gilbert
  0 siblings, 0 replies; 3395+ messages in thread
From: kathleen.gilbert @ 2017-04-10  6:51 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 9214190934_netfilter-devel.zip --]
[-- Type: application/zip, Size: 3604 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  5:46 archerrp
  0 siblings, 0 replies; 3395+ messages in thread
From: archerrp @ 2017-04-10  5:46 UTC (permalink / raw)
  To: linux-crypto

[-- Attachment #1: 3_linux-crypto.zip --]
[-- Type: application/zip, Size: 3600 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  3:30 hp
  0 siblings, 0 replies; 3395+ messages in thread
From: hp @ 2017-04-10  3:30 UTC (permalink / raw)
  To: linux-raid

[-- Attachment #1: 7718637436266_linux-raid.zip --]
[-- Type: application/zip, Size: 3603 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown), 
@ 2017-04-10  0:41 amin
  0 siblings, 0 replies; 3395+ messages in thread
From: amin @ 2017-04-10  0:41 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: 0_netfilter-devel.zip --]
[-- Type: application/zip, Size: 3606 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

* (unknown)
@ 2017-04-09 22:07 askeeta
  0 siblings, 0 replies; 3395+ messages in thread
From: askeeta @ 2017-04-09 22:07 UTC (permalink / raw)
  To: linux-parisc

[-- Attachment #1: 750388275461_linux-parisc.zip --]
[-- Type: application/zip, Size: 4876 bytes --]

^ permalink raw reply	[flat|nested] 3395+ messages in thread

end of thread, other threads:[~2020-07-22  5:40 UTC | newest]

Thread overview: 3395+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-19 22:21 (unknown), Antonio Quartulli
2013-10-19 22:21 ` [B.A.T.M.A.N.] (no subject) Antonio Quartulli
2013-10-19 22:21 ` [PATCH 01/18] batman-adv: check skb preparation return value Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 02/18] batman-adv: update email address for Simon Wunderlich Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 03/18] batman-adv: update email address for Antonio Quartulli Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 04/18] batman-adv: update email address for Marek Lindner Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 05/18] batman-adv: add the VLAN ID attribute to the TT entry Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 06/18] batman-adv: use vid when computing local and global TT CRC Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:21 ` [PATCH 07/18] batman-adv: print the VID together with the TT entries Antonio Quartulli
2013-10-19 22:21   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 08/18] batman-adv: make the GW module correctly talk to the new VLAN-TT Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 09/18] batman-adv: make the Distributed ARP Table vlan aware Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 10/18] batman-adv: add per VLAN interface attribute framework Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 11/18] batman-adv: add sysfs framework for VLAN Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 12/18] batman-adv: make the AP isolation attribute VLAN specific Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 13/18] batman-adv: refine API calls for unicast transmissions of SKBs Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 14/18] batman-adv: remove bogus comment Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 15/18] batman-adv: lock around TT operations to avoid sending inconsistent data Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 16/18] batman-adv: make the TT CRC logic VLAN specific Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 17/18] batman-adv: make the TT global purge routine " Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-19 22:22 ` [PATCH 18/18] batman-adv: make the backbone gw check " Antonio Quartulli
2013-10-19 22:22   ` [B.A.T.M.A.N.] " Antonio Quartulli
2013-10-20  0:15 ` (unknown) David Miller
2013-10-20  0:15   ` [B.A.T.M.A.N.] (no subject) David Miller
2013-10-20  7:57   ` your mail Antonio Quartulli
2013-10-20  7:57     ` [B.A.T.M.A.N.] " Antonio Quartulli
2017-04-09 22:07 (unknown) askeeta
2017-04-10  0:41 (unknown), amin
2017-04-10  3:30 (unknown), hp
2017-04-10  5:46 (unknown), archerrp
2017-04-10  6:51 (unknown), kathleen.gilbert
2017-04-10  8:37 (unknown), kkaplanidou
2017-04-10  9:20 (unknown), nmckenna
2017-04-10 10:18 (unknown), rueggemann
2017-04-10 11:47 (unknown), office
2017-04-11 15:47 (unknown), energi
2017-04-13 15:58 (unknown), Scott Ellentuch
2017-04-14 19:14 (unknown) David Miller
2017-04-15 13:53 (unknown), smallgroups
2017-04-15 14:07 (unknown), energi
2017-04-15 14:16 (unknown), demorton
2017-04-15 15:00 (unknown), jbmplupus-Mmb7MZpHnFY
2017-04-16  3:17 (unknown), resson-epfaOiJH9AY
2017-04-16  3:33 (unknown), ohnesorge-wiek
2017-04-16  6:21 (unknown), shwx002
2017-04-16  8:21 (unknown), jha
2017-04-16  8:52 (unknown), geir.nuland
2017-04-16 15:48 (unknown), redbeardcharters
2017-04-16 16:31 (unknown), a.skucha
2017-04-16 16:37 (unknown), bfoster
2017-04-16 17:41 (unknown) askeeta
2017-04-16 17:44 (unknown), bkjf
2017-04-16 17:49 (unknown), zem.uchastok
2017-04-16 18:30 (unknown), r67
2017-04-16 18:32 (unknown), nathalie.colle
2017-04-16 18:50 (unknown), cbordinaro
2017-04-16 19:08 (unknown), athgregory
2017-04-16 20:59 (unknown), mitch_128
2017-04-16 21:22 (unknown), ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
2017-04-16 22:46 (unknown), tammyehood
2017-04-16 23:02 (unknown), brian
2017-04-16 23:57 (unknown), muirs
2017-04-17  0:43 (unknown), John Ewalt
2017-04-17  2:06 (unknown), rlm85310
2017-04-17  2:26 (unknown), wvhyvcm.abyxg
2017-04-17  3:09 (unknown), bunny43200
2017-04-17  3:38 (unknown), kgbok.kezyhumh
2017-04-17  4:06 (unknown), nkosuta-f+iqBESB6gc
2017-04-17  7:56 (unknown), lucia.germino
2017-04-17  9:12 (unknown), kelley
2017-04-17 12:59 (unknown), openhackbangalore
2017-04-17 14:38 (unknown), energi
2017-04-17 15:20 (unknown), tchidrenplytoo
2017-04-17 18:00 (unknown), j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
2017-04-18  1:56 (unknown), scotte
2017-04-18  2:53 (unknown), h.piontek
2017-04-18 10:57 (unknown) catherine.verge
2017-04-18 16:05 (unknown), rlm85310
2017-04-19  4:29 (unknown), kelley
2017-04-19 16:38 (unknown), amin
2017-04-19 20:46 (unknown), hp
2017-04-20  6:33 (unknown), rueggemann
2017-04-20 12:28 (unknown), h.gerritsen12
2017-04-21  7:38 (unknown), wesley.sydnor
2017-04-21  8:30 (unknown), scotte
2017-04-21  8:36 (unknown), joseph.x.hronec
2017-04-21  9:25 (unknown), delaware.orders
2017-04-21  9:51 (unknown), Kredit
2017-04-21 11:49 (unknown), kathleen.gilbert
2017-04-21 16:59 (unknown) Mr.Jerry Smith
2017-04-21 17:06 (unknown), Mr.Jerry Smith
2017-04-21 17:07 (unknown), Mr.Jerry Smith
2017-04-21 17:15 (unknown), Mr.Jerry Smith
2017-04-21 17:24 (unknown), Mr.Jerry Smith
2017-04-21 17:40 (unknown), Mr.Jerry Smith
2017-04-21 17:44 (unknown), Mr.Jerry Smith
2017-04-21 17:54 (unknown), Mr.Jerry Smith
2017-04-26  3:57 (unknown), prasad padiyar
2017-04-26  7:36 (unknown), glolariu
2017-04-26 11:54 (unknown) Shalini Chellathurai Saroja
2017-04-28  8:20 (unknown), Anatolij Gustschin
2017-04-28  8:36 (unknown), администратор
2017-04-28  8:36 (unknown), администратор
2017-04-28  8:36 (unknown), администратор
2017-04-28  8:36 (unknown), администратор
2017-04-28  9:09 (unknown), администратор
2017-04-29 15:25 (unknown), Dmitry Bazhenov
2017-05-01 18:59 [PATCHv2 1/1] IB/ipoib: add get_settings in ethtool Doug Ledford
     [not found] ` <1493665155.3041.186.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-05-04  5:24   ` (unknown), Zhu Yanjun
2017-05-04 13:20 (unknown), Steve French
2017-05-10  7:23 (unknown), kelley
2017-05-11  1:02 (unknown), info
2017-05-14  3:19 (unknown), unixkeeper
2017-05-15 23:19 (unknown), bcohen
2017-05-15 23:49 (unknown), morice.diane
2017-05-16  3:06 (unknown), armiksanaye
2017-05-16  6:37 (unknown), momofr
2017-05-17  7:10 (unknown), 1.10.0812112155390.21775
2017-05-17 10:59 (unknown), anita.traylor
2017-05-17 13:39 (unknown), J Walker
2017-05-17 18:42 (unknown), stef.ryckmans
2017-05-18 13:40 (unknown), hp
2017-05-18 13:41 (unknown), alters
2017-05-18 14:13 (unknown), agiva
2017-05-18 16:47 (unknown), susan.christian
2017-05-18 19:22 (unknown), lucia.germino
2017-05-19  3:34 (unknown), openhackbangalore
2017-05-19  4:32 (unknown), archerrp
2017-05-19  6:45 (unknown), j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
2017-05-19 11:45 (unknown), counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL
2017-05-19 12:56 (unknown), kindergartenchaos2
2017-05-19 13:31 (unknown), office
2017-05-19 14:51 (unknown), citydesk
2017-05-19 15:35 (unknown), susan.christian
2017-05-19 16:59 (unknown), zumbalisa
2017-05-20  0:26 (unknown), brian
2017-05-20  0:40 (unknown), sophie.norman
2017-05-20  1:09 (unknown), board
2017-05-20  8:14 (unknown), ecaterinasuciu09
2017-05-20  9:40 (unknown), mgriffit
2017-05-20 11:03 (unknown), pohut00
2017-05-20 11:47 (unknown), john.dahlberg
2017-05-20 12:27 (unknown), ajae
2017-05-20 14:29 (unknown), cv
2017-05-20 16:22 (unknown), alters
2017-05-20 17:45 (unknown), counselling-30L6jp03H7UtpYsHHOQ6Llpr/1R2p/CL
2017-05-20 18:58 (unknown), office
2017-05-20 20:00 (unknown), citydesk
2017-05-20 21:16 (unknown), h.gerritsen12
2017-05-21  8:42 (unknown), brucet
2017-05-21  8:55 (unknown), agiva
2017-05-21  8:55 (unknown), benjamin
2017-05-21  9:17 (unknown), jacqueline.pike
2017-05-21 11:13 (unknown), mariobronti
2017-05-21 11:38 (unknown), susan.christian
2017-05-21 11:59 (unknown), anita.traylor
2017-05-21 13:56 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-05-21 16:36 (unknown), x1kn8fk
2017-05-21 20:35 (unknown), armiksanaye
2017-05-22  0:57 (unknown), mari.kayhko
2017-05-22 16:10 (unknown), mitch_128
2017-05-22 20:39 (unknown), horizon
2017-05-22 22:32 (unknown), patientcentral
2017-05-23  2:19 (unknown), mdavis
2017-05-23  4:53 (unknown), nfrankiyamu
2017-05-23  7:38 (unknown), scotte
2017-05-23  8:42 (unknown), delaware.orders
2017-05-23  9:36 (unknown), bendis.michal
2017-05-23 16:24 (unknown), agiva
2017-05-23 16:29 (unknown), benjamin
2017-05-23 22:44 (unknown), noord-holland
2017-05-24  0:12 (unknown), bcohen
2017-05-24 16:26 (unknown), natasha.glauser
2017-05-26 16:33 (unknown) Anderson McEnany <
2017-05-26 16:33 (unknown) Anderson McEnany <
2017-05-31 11:36 (unknown), p.mueller-spz-hgw-Mmb7MZpHnFY
2017-05-31 14:53 (unknown), tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
2017-06-01  0:43 (unknown), armouralumni
2017-06-01  1:55 (unknown), cdevries
2017-06-01  2:25 (unknown), kbennett
2017-06-01  2:26 (unknown), Dave Airlie
2017-06-01 20:40 (unknown), nbensoncole81
2017-06-02  6:04 (unknown), mari.kayhko
2017-06-02  8:02 (unknown), jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q
2017-06-03  5:45 (unknown), nfrankiyamu
2017-06-03  7:17 (unknown), nbensoncole81
2017-06-04 10:30 (unknown), Yuval Mintz
2017-06-04 19:55 (unknown), archerrp
2017-06-05  0:03 (unknown), nmckenna
2017-06-05  1:08 (unknown), rueggemann
2017-06-05  4:30 (unknown), citydesk
2017-06-05  5:43 (unknown), h.gerritsen12
2017-06-05 17:32 (unknown), armouralumni
2017-06-06  7:19 (unknown), From Lori J. Robinson
2017-06-06  7:19 (unknown), From Lori J. Robinson
2017-06-06  7:19 (unknown), From Lori J. Robinson
2017-06-06  7:19 (unknown), From Lori J. Robinson
2017-06-06 20:36 (unknown), dengx
2017-06-06 23:46 (unknown), mdavis
2017-06-07  3:19 (unknown), lucia.germino
2017-06-07  7:42 (unknown), morice.diane
2017-06-07 11:43 (unknown), nhossein4212003
2017-06-07 14:00 (unknown), 1.10.0812112155390.21775
2017-06-07 21:54 (unknown), agar2000
2017-06-07 22:30 (unknown), tammyehood
2017-06-08  3:14 (unknown), kgbok.kezyhumh
2017-06-08  3:14 (unknown), agar2000
2017-06-08  5:00 (unknown), noord-holland
2017-06-08  5:41 (unknown), Oliver Carter
2017-06-08 11:31 (unknown), helga.brickl
2017-06-08 12:51 (unknown), koopk
2017-06-08 13:07 (unknown), unsubscribe.me
2017-06-08 13:35 (unknown) Yuval Shaia
2017-06-08 14:09 (unknown), service
2017-06-08 15:18 (unknown), junplzen
2017-06-08 17:26 (unknown), natasha.glauser
2017-06-08 17:59 (unknown), kirola
2017-06-08 18:00 (unknown), beautyink
2017-06-08 22:14 (unknown), bcohen
2017-06-09  0:34 (unknown), richard
2017-06-09  0:39 (unknown), susan.christian
2017-06-09  1:31 (unknown), durrant
2017-06-09  2:06 (unknown), rueggemann
2017-06-09  3:35 (unknown), office
2017-06-09  4:30 (unknown), citydesk
2017-06-09  8:02 (unknown), kholloway
2017-06-09 10:47 (unknown), tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
2017-06-09 12:45 (unknown), Mrs Alice Walton
2017-06-09 17:38 (unknown), nfrankiyamu
2017-06-09 18:57 (unknown), editor
2017-06-09 19:04 (unknown), armouralumni
2017-06-10  5:29 (unknown), agiva
2017-06-10  5:53 (unknown), jacqueline.pike
2017-06-10  7:07 (unknown), Youichi Kanno
2017-06-10  8:23 (unknown), kindergartenchaos2
2017-06-10 13:33 (unknown), iker-KvP5wT2u2U0
2017-06-10 14:34 (unknown), kbennett
2017-06-10 20:24 (unknown), board
2017-06-10 21:03 (unknown), morice.diane
2017-06-10 21:10 (unknown), mbalhoff
2017-06-11  0:20 (unknown), service
2017-06-11  2:29 (unknown), energi
2017-06-11  3:28 (unknown), redaccion
2017-06-11  4:42 (unknown), 1.10.0812112155390.21775
2017-06-11  7:27 (unknown), roeper
2017-06-11 16:35 (unknown), mitch_128
2017-06-11 18:16 (unknown), tammyehood
2017-06-12  7:28 (unknown), webmaster
2017-06-12 10:50 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-06-12 15:02 (unknown), amin
2017-06-12 16:44 (unknown), nfrankiyamu
2017-06-12 17:13 (unknown), armiksanaye
2017-06-12 19:12 (unknown), nhossein4212003
2017-06-12 21:36 (unknown), nbensoncole81
2017-06-13  4:22 (unknown), mitch_128
2017-06-13  4:35 (unknown), ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
2017-06-13  4:53 (unknown), roeper
2017-06-13  8:14 (unknown), horizon
2017-06-13  9:35 (unknown), wvhyvcm.abyxg
2017-06-13  9:59 (unknown), lizdebeth_
2017-06-13 10:15 (unknown), nenep
2017-06-13 11:59 (unknown), susan.christian
2017-06-13 21:38 (unknown), douille.l
2017-06-14  1:06 (unknown), durrant
2017-06-14 10:27 (unknown), susan.christian
2017-06-14 11:42 (unknown), sophie.norman
2017-06-14 12:26 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-06-14 12:27 (unknown), board
2017-06-14 16:39 (unknown), nfrankiyamu
2017-06-14 19:31 (unknown), kholloway
2017-06-14 20:41 (unknown), angers
2017-06-14 21:25 (unknown), koopk
2017-06-14 22:19 (unknown), muirs
2017-06-15  8:37 (unknown), ecaterinasuciu09
2017-06-15 13:50 (unknown), pohut00
2017-06-15 14:56 (unknown), john.dahlberg
2017-06-15 17:35 (unknown), jeffrey.faulkenberg
2017-06-16 14:46 (unknown), roeper
2017-06-16 22:37 (unknown), kelley
2017-06-17 22:46 (unknown), rhsinfo
2017-06-18  3:09 (unknown), agar2000
2017-06-18 13:58 (unknown), membership
2017-06-18 14:27 (unknown), xa0ajutor
2017-06-19  9:36 (unknown), susan.christian
2017-06-19  9:57 (unknown), anita.traylor
2017-06-19 16:53 (unknown), armouralumni
2017-06-19 18:46 (unknown), chrisbi_anelyst
2017-06-19 19:58 (unknown), tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
2017-06-20  0:47 (unknown), durrant
2017-06-20  6:29 (unknown), xa0ajutor
2017-06-20 16:31 (unknown), nfrankiyamu
2017-06-20 17:50 (unknown), editor
2017-06-20 18:45 (unknown), roeper
2017-06-20 22:49 (unknown), redaccion
2017-06-21  4:40 (unknown), kholloway
2017-06-21  6:16 (unknown), angers
2017-06-21  6:23 (unknown), chrisbi_anelyst
2017-06-21  7:32 (unknown), tjcrewvolcoordinator-Re5JQEeQqe8AvxtiuMwx3w
2017-06-21  7:43 (unknown), koopk
2017-06-21 20:10 (unknown), morice.diane
2017-06-22  2:13 (unknown), ecaterinasuciu09
2017-06-22  5:49 (unknown), noord-holland
2017-06-22 13:22 (unknown), jeffrey.faulkenberg
2017-06-22 20:22 (unknown), junplzen
2017-06-22 20:24 (unknown), koopk
2017-06-23  1:43 (unknown), horizon
2017-06-23  2:49 (unknown), mdavis
2017-06-23  4:50 (unknown), nkosuta-f+iqBESB6gc
2017-06-23  6:09 (unknown), Administrator
2017-06-23 12:26 (unknown), archerrp
2017-06-23 17:22 (unknown), richard
2017-06-23 19:27 (unknown), armouralumni
2017-06-24  0:04 (unknown), hastpass
2017-06-24  0:35 (unknown), citydesk
2017-06-24  2:32 (unknown), h.gerritsen12
2017-06-24  8:07 (unknown), j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
2017-06-24 11:55 (unknown), natasha.glauser
2017-06-24 12:38 (unknown), redaccion
2017-06-24 15:03 (unknown), archerrp
2017-06-24 15:41 (unknown), benjamin
2017-06-24 19:38 (unknown), richard
2017-06-25  2:39 (unknown), bflove1-ntQ8I44N4zM
2017-06-25  3:57 (unknown), nfrankiyamu
2017-06-25  4:47 (unknown), h.gerritsen12
2017-06-25  5:14 (unknown), archerrp
2017-06-25  5:19 (unknown), nbensoncole81
2017-06-25 10:21 (unknown), richard
2017-06-25 13:23 (unknown), rueggemann
2017-06-25 16:49 (unknown), agar2000
2017-06-25 18:13 (unknown), citydesk
2017-06-25 20:10 (unknown), h.gerritsen12
2017-06-26  5:21 (unknown) Leon Romanovsky
2017-06-26  9:15 (unknown), beautyink
2017-06-26 10:22 (unknown), p.mueller-spz-hgw-Mmb7MZpHnFY
2017-06-26 15:03 (unknown), richard
2017-06-26 16:10 (unknown), susan.christian
2017-06-26 17:51 (unknown), rueggemann
2017-06-26 19:07 (unknown), eremias
2017-06-26 22:14 (unknown), citydesk
2017-06-26 22:58 (unknown), Anders Lind
2017-06-26 22:58 (unknown), Anders Lind
2017-06-27  0:08 (unknown), h.gerritsen12
2017-06-27  7:12 (unknown), loisc07
2017-06-27  7:15 (unknown), noord-holland
2017-06-27 11:59 (unknown), natasha.glauser
2017-06-28  3:22 (unknown), Administrator
2017-06-28  3:56 (unknown), системы администратор
2017-06-28  3:56 (unknown), системы администратор
2017-06-28  3:56 (unknown), системы администратор
2017-06-28  3:56 (unknown), системы администратор
2017-06-28  3:57 (unknown), системы администратор
2017-06-28 14:22 (unknown), tchidrenplytoo
2017-06-29 10:39 (unknown), lizdebeth_
2017-06-29 12:20 (unknown), The Post Office
2017-06-29 13:46 (unknown), kholloway
2017-06-29 19:05 (unknown), morice.diane
2017-06-30  1:14 (unknown), paloma.depping
2017-06-30  2:53 (unknown), 1.10.0812112155390.21775
2017-06-30  8:29 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-07-01 11:36 (unknown), p.mueller-spz-hgw-Mmb7MZpHnFY
2017-07-01 21:28 (unknown), redaccion
2017-07-02 10:14 (unknown), armouralumni
2017-07-02 18:44 (unknown), tchidrenplytoo
2017-07-02 20:26 (unknown), tabiadhawatef
2017-07-03  1:28 (unknown), h.piontek
2017-07-03  4:44 (unknown), beautyink
2017-07-03 12:43 (unknown), mitch_128
2017-07-03 13:30 (unknown), roeper
2017-07-03 13:54 (unknown), sm-yT/95SBIOhs
2017-07-03 14:13 (unknown), tammyehood
2017-07-04  4:17 (unknown), rueggemann
2017-07-04  6:01 (unknown), xa0ajutor
2017-07-04  8:52 (unknown), citydesk
2017-07-04 10:50 (unknown), h.gerritsen12
2017-07-04 16:38 (unknown), openhackbangalore
2017-07-04 18:35 (unknown), noord-holland
2017-07-04 19:53 (unknown), tchidrenplytoo
2017-07-04 21:02 (unknown), salome.khum
2017-07-04 22:53 (unknown), j.lahoda-aRb0bU7PRFPrBKCeMvbIDA
2017-07-05  0:06 (unknown), michele
2017-07-05  0:55 (unknown), helga.brickl
2017-07-05  6:42 (unknown), angers
2017-07-05  6:55 (unknown), agiva
2017-07-05  7:00 (unknown), benjamin
2017-07-05  8:06 (unknown), koopk
2017-07-05 15:15 (unknown), armouralumni
2017-07-05 15:57 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-07-05 21:18 (unknown), een
2017-07-06  0:55 (unknown), 이성근
2017-07-06  6:10 (unknown), armouralumni
2017-07-06 14:11 (unknown), een
2017-07-06 17:35 (unknown), simon.a.t.hardy
2017-07-07  0:30 (unknown), amin
2017-07-07  1:37 (unknown), zumbalisa
2017-07-07 17:21 (unknown), pooks005
2017-07-08 11:53 (unknown), Alfred chow
2017-07-08 16:07 (unknown), netgalley
2017-07-08 17:13 (unknown), horizon
2017-07-08 18:22 (unknown), Alfred chow
2017-07-08 18:22 (unknown), Alfred chow
2017-07-09 13:02 (unknown), smallgroups
2017-07-09 18:51 (unknown), pooks005
2017-07-09 20:52 (unknown), iker-KvP5wT2u2U0
2017-07-09 23:19 (unknown), Corporate Lenders
2017-07-09 23:19 (unknown), Corporate Lenders
2017-07-09 23:29 (unknown), brian
2017-07-10  3:39 (unknown), системы администратор
2017-07-10  3:45 (unknown), системы администратор
2017-07-10  3:45 (unknown), системы администратор
2017-07-10  3:45 (unknown), системы администратор
2017-07-10  3:45 (unknown), системы администратор
2017-07-10  3:47 (unknown), системы администратор
2017-07-10  4:42 (unknown), lipa
2017-07-10 10:06 (unknown), alters
2017-07-10 12:43 (unknown), brian
2017-07-10 12:51 (unknown), lucia.germino
2017-07-10 21:37 (unknown), roeper
2017-07-10 21:53 (unknown), agiva
2017-07-10 22:07 (unknown), jacqueline.pike
2017-07-11  0:07 (unknown), protecciondatos.es
2017-07-11 16:39 (unknown), indulge-HCInDj6vYHrk4FeknX8I/ZqQE7yCjDx5
2017-07-12  0:42 (unknown), associatebusiness2009
2017-07-12 11:22 (unknown), sterrenplan.kampen
2017-07-12 19:24 (unknown), patientcentral
2017-07-13  2:27 (unknown), tomsue2000
2017-07-13  3:37 (unknown), befragung
2017-07-13  4:49 (unknown), delaware.orders
2017-07-15 12:30 (unknown), Huaisheng HS1 Ye
2017-07-16  7:25 (unknown), kim.frederiksen
2017-07-17  1:09 (unknown), kathleen.gilbert
2017-07-17  1:20 (unknown), tchidrenplytoo
2017-07-17  2:32 (unknown), salome.khum
2017-07-17 15:31 (unknown), kathleen.gilbert
2017-07-17 15:42 (unknown), tchidrenplytoo
2017-07-17 17:30 (unknown), richard
2017-07-17 21:54 (unknown), citydesk
2017-07-17 23:02 (unknown), h.piontek
2017-07-18  4:09 (unknown), armouralumni
2017-07-18  4:32 (unknown), citydesk
2017-07-18  4:50 (unknown), ying.huang-ral2JQCrhuEAvxtiuMwx3w
2017-07-18  5:45 (unknown), h.gerritsen12
2017-07-18  6:22 (unknown), sorbisches.internat
2017-07-18 11:36 (unknown), shwx002
2017-07-18 12:45 (unknown), mitch_128
2017-07-18 13:52 (unknown), stef.ryckmans
2017-07-18 15:56 (unknown), bfoster
2017-07-18 20:17 (unknown), brian
2017-07-18 20:28 (unknown), lizdebeth_
2017-07-18 20:36 (unknown), bunny43200
2017-07-18 23:49 (unknown), helga.brickl
2017-07-19 11:11 (unknown), rhsinfo
2017-07-20  3:55 (unknown), mfr-6k8blvha/+BqlCpFK1mnLg
2017-07-20 18:43 (unknown), tbinh.minhnd
2017-07-23 23:48 (unknown), miteshriya
2017-07-25 10:27 (unknown), nick_c_huang
2017-07-25 14:56 (unknown), nhossein4212003
2017-07-25 16:36 (unknown), susan.christian
2017-07-25 18:45 (unknown), x1kn8fk
2017-07-25 18:53 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-07-25 20:01 (unknown), hp
2017-07-25 20:41 (unknown), sorbisches.internat
2017-07-25 23:24 (unknown), h.gerritsen12
2017-07-26  2:25 (unknown), tammyehood
2017-07-26  4:42 (unknown), horizon
2017-07-26  6:36 (unknown), nenep
2017-07-26 10:32 (unknown), Solen win2
2017-07-26 11:39 (unknown), chrisbi_anelyst
2017-07-26 12:48 (unknown), momofr
2017-07-26 14:20 (unknown), sterrenplan.kampen
2017-07-26 14:35 (unknown), venkatvenkatsubra
2017-07-26 20:08 (unknown), municlerk
2017-07-26 20:45 (unknown), een
2017-07-27  1:25 (unknown), info
2017-07-27  2:14 (unknown) ceph-devel
2017-07-27  2:16 (unknown) ceph-devel
2017-07-27  5:01 (unknown), hp
2017-07-27 13:00 (unknown), nfrankiyamu
2017-07-28  7:17 (unknown), doctornina
2017-07-28  7:44 (unknown), robert.berry
2017-07-28 16:02 (unknown), gdahl
2017-07-30 23:33 (unknown), daven bango
2017-07-31 10:50 (unknown), susan.christian
2017-07-31 11:33 (unknown), rhsinfo
2017-07-31 11:49 (unknown), kchristopher
2017-07-31 13:15 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-07-31 14:52 (unknown), horizon
2017-07-31 16:54 (unknown), bunny43200
2017-07-31 18:00 (unknown), robert.berry
2017-07-31 20:14 (unknown), x1kn8fk
2017-07-31 21:27 (unknown), natasha.glauser
2017-08-01  1:35 (unknown), xa0ajutor
2017-08-01  1:35 (unknown), amin
2017-08-01  3:31 (unknown), helga.brickl
2017-08-01  4:40 (unknown), durrant
2017-08-01 10:07 (unknown) Chris Ruehl
2017-08-01 12:35 (unknown), jha
2017-08-01 14:53 (unknown), Angela H. Whiteman
2017-08-01 16:33 (unknown), sterrenplan.kampen
2017-08-01 19:35 (unknown), anderslindgaard
2017-08-01 19:35 (unknown), anderslindgaard
2017-08-01 20:18 (unknown), stef.ryckmans
2017-08-01 21:03 (unknown), editor
2017-08-01 21:19 (unknown), tammyehood
2017-08-02  0:36 (unknown), richard
2017-08-02  1:05 (unknown), lizdebeth_
2017-08-02  1:19 (unknown), nenep
2017-08-02  3:45 (unknown), системы администратор
2017-08-02  3:45 (unknown), системы администратор
2017-08-02  3:45 (unknown), системы администратор
2017-08-02  3:45 (unknown), системы администратор
2017-08-02  3:45 (unknown), helga.brickl
2017-08-02  3:47 (unknown), системы администратор
2017-08-02  4:12 (unknown), Administrator
2017-08-02 11:47 (unknown), armiksanaye
2017-08-02 12:55 (unknown), tammyehood
2017-08-02 13:58 (unknown), Will
2017-08-02 15:40 (unknown), Erma
2017-08-02 17:07 (unknown), Margery
2017-08-02 17:31 (unknown), Edmond
2017-08-02 18:05 (unknown), Angela-63XfWfWBA5k
2017-08-03  5:21 (unknown), Houston
2017-08-03 14:01 (unknown), Nora Johnson
2017-08-03 19:52 (unknown), natasha.glauser
2017-08-04  5:04 (unknown), durrant
2017-08-04 23:59 (unknown), editor
2017-08-05 11:42 (unknown), Sriram Murthy
2017-08-05 12:35 (unknown), agar2000
2017-08-05 14:08 (unknown), simon.a.t.hardy
2017-08-06 23:55 (unknown), webmaster
2017-08-07  4:49 (unknown), sorbisches.internat
2017-08-07  7:38 (unknown), simon.a.t.hardy
2017-08-07 11:50 (unknown), 1.10.0812112155390.21775
2017-08-07 18:38 (unknown), mitch_128
2017-08-07 18:42 (unknown), susan.christian
2017-08-07 19:03 (unknown), sm-yT/95SBIOhs
2017-08-07 20:25 (unknown), editor
2017-08-07 21:05 (unknown), sibolt.mulder-b60u5d1xRcFWk0Htik3J/w
2017-08-07 23:50 (unknown), wvhyvcm.abyxg
2017-08-08  4:57 (unknown), wesley.sydnor
2017-08-08  5:57 (unknown), befragung
2017-08-08 14:49 (unknown) catherine.verge
2017-08-08 17:09 (unknown), tchidrenplytoo
2017-08-08 19:14 (unknown), eaya
2017-08-08 19:40 (unknown), citydesk
2017-08-08 20:55 (unknown), h.gerritsen12
2017-08-08 21:31 (unknown), michele
2017-08-09  0:04 (unknown), h.piontek
2017-08-09  0:41 (unknown), natasha.glauser
2017-08-09 10:20 (unknown), системы администратор
2017-08-09 10:20 (unknown), системы администратор
2017-08-09 10:20 (unknown), системы администратор
2017-08-09 10:20 (unknown), системы администратор
2017-08-09 10:21 (unknown), системы администратор
2017-08-09 13:53 (unknown), Administrador
2017-08-09 14:34 (unknown), shwx002
2017-08-09 19:36 (unknown), tammyehood
2017-08-09 19:40 (unknown), tchidrenplytoo
2017-08-09 20:25 (unknown), sterrenplan.kampen
2017-08-09 21:55 (unknown), horizon
2017-08-09 22:05 (unknown), helga.brickl
2017-08-09 23:06 (unknown), editor
2017-08-09 23:15 (unknown), wvhyvcm.abyxg
2017-08-09 23:53 (unknown), nenep
2017-08-10  0:03 (unknown), michele
2017-08-10  3:32 (unknown), kholloway
2017-08-10  9:38 (unknown), asn-request-tfHHCSmtYoI
2017-08-10 18:16 (unknown), simon.a.t.hardy
2017-08-10 21:08 (unknown), mitch_128
2017-08-10 21:36 (unknown), shriyashah
2017-08-10 22:02 (unknown), stef.ryckmans
2017-08-11  4:42 (unknown), lizdebeth_
2017-08-11  4:57 (unknown), nenep
2017-08-11  4:59 (unknown), Administrator
2017-08-11  6:08 (unknown), администратор 
2017-08-11  6:14 (unknown), администратор 
2017-08-11  6:14 (unknown), администратор 
2017-08-11  6:14 (unknown), администратор 
2017-08-11  6:14 (unknown), администратор 
2017-08-11  8:54 (unknown), helga.brickl
2017-08-11  9:18 (unknown), jonathan.malihan
2017-08-11 15:50 (unknown), 1.10.0812112155390.21775
2017-08-11 17:28 (unknown), rhsinfo
2017-08-11 20:11 (unknown), tammyehood
2017-08-11 22:09 (unknown), Chris
2017-08-12  1:11 (unknown), lizdebeth_
2017-08-12  1:27 (unknown), nenep
2017-08-12 12:05 (unknown), agar2000
2017-08-13 15:17 (unknown), bunny43200
2017-08-14 14:57 (unknown), linwoodrvsales
2017-08-14 15:35 (unknown), agar2000
2017-08-14 16:53 (unknown), durrant
2017-08-14 17:38 (unknown), amin
2017-08-14 19:30 (unknown), sterrenplan.kampen
2017-08-15  1:55 (unknown), richard
2017-08-15  2:57 (unknown), nfrankiyamu
2017-08-15  3:38 (unknown), rueggemann
2017-08-15  4:40 (unknown), mitch_128
2017-08-15  6:08 (unknown), eumann
2017-08-15  6:50 (unknown), demorton
2017-08-15  8:46 (unknown), ccc
2017-08-15 11:16 (unknown), wvhyvcm.abyxg
2017-08-15 14:23 (unknown), helga.brickl
2017-08-15 14:45 (unknown), een
2017-08-15 17:30 (unknown), simon.a.t.hardy
2017-08-15 17:31 (unknown), nnarroyo623
2017-08-16  2:03 (unknown), xa0ajutor
2017-08-16  5:46 (unknown), kim.frederiksen
2017-08-17 21:36 (unknown), Adam Richter
2017-08-18 17:42 (unknown) Rajneesh Bhardwaj
2017-08-20  2:58 (unknown), Solen win2
2017-08-22 13:31 (unknown), vinnakota chaitanya
2017-08-23  7:23 (unknown), Xuehan Xu
2017-08-25  0:32 (unknown), agiva
2017-08-26  5:43 (unknown), carol.dallstream-WaM/PvcBqAo
2017-08-26 14:48 (unknown), nfrankiyamu
2017-08-27 10:55 (unknown), agar2000
2017-08-28  6:48 (unknown), patientcentral
2017-08-28 13:22 (unknown), dengx
2017-08-28 17:29 (unknown), befragung
2017-08-29  3:02 (unknown) catherine.verge
2017-08-29  5:40 (unknown), morice.diane
2017-08-30  0:38 (unknown), ifalqi
2017-08-30  1:37 (unknown), municlerk
2017-08-30 18:32 [PATCH] default implementation for of_find_all_nodes(...) Artur Lorincz
     [not found] ` <1504117946-3958-1-git-send-email-larturus2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-24 15:50   ` (unknown), Artur Lorincz
2017-10-06 19:31   ` (unknown), Artur Lorincz
2017-10-08 16:28   ` (unknown), Artur Lorincz
2017-08-30 19:49 (unknown), susan.christian
2017-08-30 20:26 (unknown), anita.traylor
2017-08-31  0:58 (unknown), info
2017-08-31  1:39 (unknown) m.wierczynska
2017-08-31  4:52 (unknown), archerrp
2017-08-31  8:20 (unknown), jessica.jones-PnMVE5gNl/Vkbu+0n/iG1Q
2017-08-31  9:54 (unknown), info
2017-08-31 12:23 (unknown), mark.robinson
2017-08-31 15:40 (unknown), sterrenplan.kampen
2017-08-31 18:41 (unknown), helga.brickl
2017-09-01  1:48 (unknown), agar2000
2017-09-01  1:48 (unknown), doctornina
2017-09-01  2:30 (unknown), robert.berry
2017-09-01  4:05 (unknown), andrewf
2017-09-01  4:59 (unknown), adriix.addy
2017-09-01  6:21 (unknown), zita.latex
2017-09-01  8:16 (unknown), financialaid
2017-09-01 11:40 (unknown), witt.kohl
2017-09-01 15:00 (unknown), ujagu8185-Re5JQEeQqe8AvxtiuMwx3w
2017-09-01 15:30 (unknown), stef.ryckmans
2017-09-01 19:52 (unknown), sunaina
2017-09-01 20:58 (unknown), wvhyvcm.abyxg
2017-09-01 21:32 (unknown), nenep
2017-09-01 21:57 (unknown), umpvav-YDxpq3io04c
2017-09-01 22:51 (unknown), zumbalisa
2017-09-01 22:55 (unknown), redaccion
2017-09-02  0:58 (unknown), smallgroups
2017-09-02  1:59 (unknown), danielle.picarda2
2017-09-02  2:35 (unknown), jbmplupus-Mmb7MZpHnFY
2017-09-02  2:39 (unknown), een
2017-09-02  2:47 (unknown), nbensoncole81
2017-09-02  6:40 (unknown), simon.a.t.hardy
2017-09-02 23:56 (unknown), netgalley
2017-09-03 21:26 (unknown), cl_luzcc
2017-09-03 21:51 (unknown), xb028930336
2017-09-03 22:54 (unknown), sherrilyn
2017-09-04  2:13 (unknown), x1kn8fk
2017-09-04  2:33 (unknown), marketing
2017-09-04  5:14 (unknown), nelcastellodicarta
2017-09-04 12:17 (unknown), noord-holland
2017-09-04 23:46 (unknown), sterrenplan.kampen
2017-09-05  1:51 (unknown), halinajan-4Uo9UdwAbX8
2017-09-05  2:43 (unknown), xb028930336
2017-09-05 11:11 (unknown), inn
2017-09-05 12:51 (unknown), ifalqi
2017-09-05 14:02 (unknown), ecaterinasuciu09
2017-09-05 16:31 (unknown), mgriffit
2017-09-05 18:07 (unknown), bfoster
2017-09-05 18:38 (unknown), john.dahlberg
2017-09-05 23:34 (unknown), kkaplanidou
2017-09-06  3:57 (unknown), informationrequest
2017-09-07  4:02 (unknown), dengx
2017-09-07  7:05 (unknown), tabiadhawatef
2017-09-10  6:22 (unknown), Youichi Kanno
2017-09-11 19:35 (unknown) Helge Deller
2017-09-11 20:10 (unknown), roeper
2017-09-12 18:53 (unknown), pooks005
2017-09-12 19:16 (unknown), cl_luzcc
2017-09-12 19:45 (unknown), edo.hlaca
2017-09-12 22:07 (unknown), marketing
2017-09-13  4:21 (unknown), natasha.glauser
2017-09-13  8:56 (unknown), kindergartenchaos2
2017-09-15 17:01 (unknown), noreply
2017-09-15 17:29 (unknown), noreply
2017-09-15 17:30 (unknown), noreply
2017-09-19  7:47 (unknown), agar2000
2017-09-20  1:01 (unknown), ninfo
2017-09-21  7:47 (unknown), MAILER-DAEMON
2017-09-22  1:22 (unknown), unsubscribe.me
2017-09-22  1:55 (unknown), dengx
2017-09-22  3:39 (unknown), service
2017-09-22  8:41 (unknown), Adrian Gillian Bayford
2017-09-22 19:34 (unknown), John Michael
2017-09-27 17:41 (unknown), Michael Lyle
2017-09-27 19:12 (unknown), rlm85310
2017-09-27 19:30 (unknown), nbensoncole81
2017-09-28  0:21 (unknown), natasha.glauser
2017-09-28 15:08 (unknown), amin
2017-09-28 22:59 (unknown), rlm85310
2017-09-29  2:48 (unknown), Tina Aaron
2017-09-29  3:06 (unknown), jha
2017-09-29  7:26 (unknown), kelley
2017-09-29  7:44 (unknown), amin
2017-09-29 11:28 (unknown), cl_luzcc
2017-09-29 11:49 (unknown), roeper
2017-09-29 13:49 (unknown), marketing
2017-09-29 14:47 (unknown), nelcastellodicarta
2017-09-29 15:21 (unknown), natasha.glauser
2017-09-29 15:42 (unknown), noord-holland
2017-09-29 18:01 (unknown), clasico082
2017-09-29 21:29 (unknown), info
2017-09-30 14:07 (unknown), redaccion
2017-10-02 15:35 (unknown), nfrankiyamu
2017-10-02 17:38 (unknown), nbensoncole81
2017-10-02 18:00 (unknown), Solen win2
2017-10-02 18:06 (unknown), dengx
2017-10-02 20:31 (unknown), kchristopher
2017-10-03  0:03 (unknown), noord-holland
2017-10-03  0:14 (unknown), roeper
2017-10-03  0:55 (unknown), jbmplupus-Mmb7MZpHnFY
2017-10-03  7:38 (unknown), angers
2017-10-03  8:16 (unknown), morice.diane
2017-10-03  8:40 (unknown), koopk
2017-10-03 10:37 (unknown), edo.hlaca
2017-10-03 12:43 (unknown), marketing
2017-10-03 13:59 (unknown), nelcastellodicarta
2017-10-04  5:56 (unknown), morice.diane
2017-10-04 11:44 (unknown), susan.christian
2017-10-04 15:33 (unknown), membership
2017-10-04 16:11 (unknown), 1.10.0812112155390.21775
2017-10-05  6:53 (unknown), helga.brickl
2017-10-05  7:10 (unknown), mgriffit
2017-10-05 10:20 (unknown), jeffrey.faulkenberg
2017-10-05 14:24 (unknown), informationrequest
2017-10-05 15:34 (unknown), kindergartenchaos2
2017-10-06  1:43 (unknown), sophie.norman
2017-10-06  1:59 (unknown), edo.hlaca
2017-10-06  2:19 (unknown), sherrilyn
2017-10-06  5:16 (unknown), nelcastellodicarta
2017-10-06  8:31 (unknown), smallgroups
2017-10-06 11:55 (unknown), info
2017-10-07  0:31 (unknown), carmen.croonquist
2017-10-07  3:40 (unknown), agar2000
2017-10-07  4:45 (unknown), morice.diane
2017-10-08  1:26 (unknown), redaccion
2017-10-08  7:32 (unknown), cl_luzcc
2017-10-08  7:59 (unknown), edo.hlaca
2017-10-08  9:00 (unknown), pekka.enne
2017-10-08  9:52 (unknown), marketing
2017-10-08 11:08 (unknown), nelcastellodicarta
2017-10-08 14:15 (unknown), clasico082
2017-10-08 19:00 (unknown), matthias.foerster
2017-10-08 22:32 (unknown), natasha.glauser
2017-10-08 23:01 (unknown), susan.christian
2017-10-09  3:44 (unknown), roeper
2017-10-09  6:17 (unknown), durrant
2017-10-09  7:37 (unknown), Michael Lyle
2017-10-09 13:19 (unknown), carmen.croonquist
2017-10-09 15:06 (unknown), jha
2017-10-10 23:27 (unknown), editor
2017-10-11  4:11 (unknown), morice.diane
2017-10-11  7:34 (unknown), cl_luzcc
2017-10-11  8:20 (unknown), sherrilyn
2017-10-11  9:19 (unknown), pekka.enne
2017-10-11 11:49 (unknown), nelcastellodicarta
2017-10-11 19:29 (unknown), info
2017-10-11 19:55 (unknown), kindergartenchaos2
2017-10-11 22:32 (unknown), fwkz4811-DoVvmRvd3PAA2dtGD8cC2w
2017-10-12  3:08 (unknown), iker-KvP5wT2u2U0
2017-10-12  5:55 (unknown), xa0et.sirio
2017-10-12  8:17 (unknown), armouralumni
2017-10-12 11:46 (unknown), sophie.norman
2017-10-12 13:15 (unknown), mbalhoff
2017-10-12 13:53 (unknown), Andrew Clement
2017-10-12 14:09 (unknown), redaccion
2017-10-13  6:16 (unknown), nfrankiyamu
2017-10-13 17:15 (unknown), susan.christian
2017-10-14  6:44 (unknown), Ella Golan
2017-10-15  3:28 (unknown), redaccion
2017-10-15 11:15 (unknown), cl_luzcc
2017-10-15 11:49 (unknown), edo.hlaca
2017-10-15 12:04 (unknown), sherrilyn
2017-10-15 12:17 (unknown), Solen win2
2017-10-15 13:01 (unknown), pekka.enne
2017-10-15 13:57 (unknown), marketing
2017-10-15 15:13 (unknown), nelcastellodicarta
2017-10-15 18:29 (unknown), clasico082
2017-10-15 22:07 (unknown), info
2017-10-16  1:23 (unknown), fwkz4811-DoVvmRvd3PAA2dtGD8cC2w
2017-10-16 11:30 (unknown), kindergartenchaos2
2017-10-16 19:44 (unknown), iker-KvP5wT2u2U0
2017-10-17  0:33 (unknown), membership
2017-10-17  7:00 (unknown), lswedroe
2017-10-17 12:14 (unknown), dengx
2017-10-17 20:28 (unknown), kelley
2017-10-19 20:10 (unknown), pooks005
2017-10-19 22:54 (unknown), armouralumni
2017-10-20  3:19 (unknown), dengx
2017-10-20  8:42 (unknown), membership
2017-10-23 13:52 (unknown), Intl Agency
2017-10-25 12:10 (unknown), EG
2017-10-29  9:46 (unknown), Solen win
2017-11-01 23:35 (unknown), Roy Cockrum Foundation
2017-11-05  3:40 (unknown), Solen win
2017-11-06 19:51 (unknown), Qing Chang
2017-11-12 15:09 (unknown), Friedrich Mayrhofer
2017-11-12 15:09 (unknown), Friedrich Mayrhofer
2017-11-12 15:09 (unknown), Friedrich Mayrhofer
2017-11-12 15:10 (unknown), Mitesh Shah
2017-11-13  3:13 (unknown), Bounced mail
2017-11-15  9:18 (unknown) nanda_kishore_chinna
2017-11-15 14:44 (unknown), Qing Chang
2017-11-16 10:18 (unknown), Michal Hocko
2017-11-19 20:07 (unknown), Mitesh Shah
2017-11-20  2:36 (unknown), Robert Wang
2017-12-01  2:56 (unknown), Post Office
2017-12-01 14:22 (unknown), Rein Appeldoorn
2017-12-07 12:53 (unknown), Sistemas administrador
2017-12-12 16:06 (unknown), Solen win
2017-12-14 16:26 (unknown), Solen win
2017-12-17 17:28 (unknown), Solen win
2017-12-23 15:32 (unknown), 柯弼舜
2017-12-24  2:58 (unknown), 柯弼舜
2017-12-24  9:07 (unknown), Solen win
2017-12-30  2:10 (unknown), Arpit Patel
2017-12-30  4:37 (unknown), Adam Richter
2018-01-02 22:11 (unknown), Mr Sheng Li Hung
2018-01-09 21:23 (unknown), Emile Kenold
2018-01-10 10:27 (unknown), TimGuo
2018-01-11  3:22 (unknown), Active lender@
2018-01-16  2:16 (unknown) Jack.Ma
2018-01-16  2:23 (unknown) Jack.Ma
2018-01-23 13:36 (unknown), Mr Sheng Li Hung
2018-01-23 13:54 (unknown), Mr Sheng Li Hung
2018-01-25  7:23 (unknown), tirumalareddy marri
2018-01-27 13:25 (unknown), Jones
2018-01-27 13:48 (unknown), Jones
2018-01-27 13:48 (unknown), Jones
2018-01-28 17:01 (unknown), whoisthis TG
2018-01-28 17:06 (unknown), whoisthis TG
2018-01-29 14:17 (unknown), Jones
2018-01-29 16:30 (unknown), Jones
2018-01-29 16:30 (unknown), Jones
2018-01-29 16:55 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-01-29 17:17 (unknown), Jones
2018-02-02 12:15 (unknown), Robert Vasek
     [not found] <CALfDnQ8aCTywvhqOBkFv3qQOoME9wvTrKbQq8i8PCPOx2iBp=A@mail.gmail.com>
     [not found] ` <CALfDnQ-NihbhS=8C+ZfiKepj5x+Zd5uS2zH82-VrwV40A55s0w@mail.gmail.com>
2018-02-07 10:50   ` (unknown), Solen win
2018-02-08 14:40 (unknown), Automatic Email Delivery Software
2018-02-11  7:19 (unknown), Alfred Cheuk Chow
2018-02-11 16:07 (unknown), glolariu
2018-02-12  1:39 (unknown), Alfred Cheuk Chow
2018-02-12  1:39 (unknown), Alfred Cheuk Chow
2018-02-12  1:39 (unknown), Alfred Cheuk Chow
2018-02-12  1:39 (unknown), Alfred Cheuk Chow
2018-02-13 11:58 (unknown), Solen win
2018-02-13 12:43 (unknown), mavis lilian wanczyk
2018-02-13 22:56 (unknown), Alfred Cheuk Chow
2018-02-13 22:57 (unknown), Alfred Cheuk Chow
2018-02-13 22:57 (unknown), Alfred Cheuk Chow
2018-02-13 22:57 (unknown), Alfred Cheuk Chow
2018-02-13 22:57 (unknown), Alfred Cheuk Chow
2018-02-13 22:59 (unknown), Mitesh Shah
2018-02-17  1:45 (unknown), Ryan Ellis
2018-02-17  8:41 (unknown), Solen win
2018-02-17 15:29 (unknown), Ahmed Soliman
2018-02-23 15:54 (unknown), Adam Richter
     [not found] <[PATCH xf86-video-amdgpu 0/3] Add non-desktop and leasing support>
2018-03-03  4:49 ` (unknown), Keith Packard
2018-03-05 17:06 (unknown) Meghana Madhyastha
2018-03-07  7:48 (unknown), Solen win
2018-03-23  3:05 (unknown), Mail Delivery Subsystem
2018-04-04 13:43 (unknown),  системы администратор
2018-04-06  1:18 (unknown), venkatvenkatsubra
2018-04-16  1:22 (unknown), Andrew Worsley
2018-04-20  8:02 (unknown) Christoph Hellwig
2018-04-20  8:02 ` (unknown), Christoph Hellwig
2018-05-04 15:21 (unknown), Mark Henry
2018-05-05 22:07 (unknown), Shane Missler
2018-05-14  6:33 (unknown), системы администратор
2018-05-14 17:30 (unknown), Jessica
2018-05-18 12:04 (unknown) DaeRyong Jeong
2018-05-25  3:26 (unknown), Bounced mail
2018-05-29  7:26 (unknown), администратор
2018-05-31 17:11 (unknown), Adam Richter via Containers
2018-06-13 15:48 (unknown), Ubaithullah Masood
2018-06-16  8:15 (unknown) Mrs Mavis Wanczyk
2018-06-23 21:08 (unknown), David Lechner
2018-07-05 10:36 (unknown), rosdi ablatiff
2018-07-06  1:26 (unknown), Dave Airlie
2018-07-28 10:14 (unknown), Andrew Martinez
2018-07-28 10:46 (unknown), Andrew Martinez
2018-07-29  9:58 (unknown) Sumitomo Rubber
2018-08-09  9:23 (unknown), системы администратор
2018-08-22  9:07 (unknown), системы администратор
2018-08-24  4:59 (unknown), Dave Airlie
2018-08-27 14:50 (unknown), Christoph Hellwig
2018-09-16 13:39 (unknown), iluminati
2018-09-19 19:57 (unknown), Saif Hasan
2018-10-09 15:55 (unknown), Oliver Carter
2018-10-19 14:40 (unknown), David Howells
2018-10-19 17:46 ` (unknown) David Miller
2018-10-19 20:51 ` (unknown) David Howells
2018-10-19 20:58   ` (unknown) David Miller
2018-10-21 16:25 (unknown), Michael Tirado
2018-10-31  0:38 (unknown), Ubaithullah Masood
2018-11-11  8:05 (unknown), Oliver Carter
2018-11-18  9:11 (unknown), Mrs. Maureen Hinckley
2018-11-18 20:40 (unknown), Major Dennis Hornbeck
2018-11-27  0:07 (unknown), Offer
2019-01-02 12:25 (unknown), Frank Wunderlich
2019-01-15  2:55 (unknown), Jens Axboe
2019-02-28  3:36 (unknown) Post Office
2019-03-01  3:34 (unknown) Automatic Email Delivery Software
2019-03-04  3:42 (unknown) Automatic Email Delivery Software
2019-03-19 14:41 (unknown) Maxim Levitsky
2019-03-21  1:51 (unknown) zhuchangchun
2019-03-29  0:36 (unknown) 邀请函
2019-04-04  5:56 (unknown) Mail Delivery Subsystem
2019-04-05  2:38 (unknown) Changbin Du
2019-04-10 11:14 Norbert Lange
2019-04-10 13:37 ` (unknown) Jan Kiszka
2019-04-10 14:36 ` (unknown) Jan Kiszka
     [not found]   ` <VI1PR05MB5917B5956F2E9365F10D6539F62E0@VI1PR05MB5917.eurprd05.prod.outlook.com>
2019-04-10 14:47     ` (unknown) Jan Kiszka
2019-04-10 15:02       ` (unknown) Lange Norbert
2019-04-10 16:46         ` (unknown) Jan Kiszka
2019-04-10 11:17 Norbert Lange
2019-04-10 14:15 ` (unknown) Jan Kiszka
2019-05-16  3:48 (unknown) Mail Delivery Subsystem
2019-05-26 11:51 (unknown) Thomas Meyer
2019-06-07  0:54 (unknown) Dave Airlie
2019-08-23  2:12 (unknown) Rob Herring
2019-09-12  8:09 (unknown) Gene Chen
2019-12-12 15:50 (unknown) 周琰杰 (Zhou Yanjie)
     [not found] <1187667350.235001.1580574902701.ref@mail.yahoo.com>
2020-02-01 16:35 ` (unknown) Mrs. Maureen Hinckley
2020-02-05  8:23 (unknown) Frau Huan Jlaying
2020-02-11 22:34 (unknown) Rajat Jain
2020-02-15  3:25 (unknown) mprim37 alcorta
2020-02-24  8:18 kernel panic: audit: backlog limit exceeded syzbot
2020-02-24 22:38 ` Paul Moore
2020-02-24 22:43   ` Eric Paris
2020-02-24 22:46     ` Paul Moore
     [not found]       ` <CAHC9VhQnbdJprbdTa_XcgUJaiwhzbnGMWJqHczU54UMk0AFCtw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2020-02-27 15:39         ` (unknown) Dmitry Vyukov via B.A.T.M.A.N
2020-03-04  9:42 (unknown) Julie Leach
2020-03-04 23:30 (unknown) Maria Alessandra Filippi
2020-03-05  0:26 (unknown) Maria Alessandra Filippi
2020-03-05  2:33 (unknown) Maria Alessandra Filippi
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:46 (unknown) Juanito S. Galang
2020-03-05 10:47 (unknown) Juanito S. Galang
2020-03-09  7:34 (unknown) Michael J. Weirsky
2020-03-09  7:34 (unknown) Michael J. Weirsky
2020-03-09  7:34 (unknown) Michael J. Weirsky
2020-03-09  7:34 (unknown) Michael J. Weirsky
2020-03-09  7:37 (unknown) Michael J. Weirsky
2020-03-09  8:43 (unknown) Michael J. Weirsky
2020-03-17  0:11 (unknown) David Ibe
2020-03-17  0:11 (unknown) David Ibe
2020-03-27  8:36 (unknown) chenanqing
2020-03-27  9:20 (unknown) chenanqing
2020-04-23 23:06 (unknown) Azim Hashim Premji
2020-04-23 23:06 (unknown) Azim Hashim Premji
2020-05-08 22:58 (unknown) Barbara D Wilkins
2020-05-08 23:41 (unknown) Barbara D Wilkins
2020-05-08 23:51 (unknown) Barbara D Wilkins
2020-06-04 19:57 (unknown) David Shine
     [not found] <1327230475.528260.1591750200327.ref@mail.yahoo.com>
2020-06-10  0:50 ` (unknown) Celine Marchand
2020-06-27 21:52 (unknown) helen
2020-06-27 21:54 (unknown) helen
2020-06-27 21:58 (unknown) lookman joe
2020-06-27 21:58 (unknown) lookman joe
2020-06-27 21:58 (unknown) lookman joe
2020-06-30 17:56 (unknown) Vasiliy Kupriakov
2020-07-02 19:43 (unknown) Barr Anthony Calder
2020-07-22  4:45 (unknown) Darlehen Bedienung
2020-07-22  5:32 (unknown) Darlehen Bedienung
2020-07-22  5:32 (unknown) Darlehen Bedienung
2020-07-22  5:32 (unknown) Darlehen Bedienung

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.