Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc8fed0e authored by Johannes Berg's avatar Johannes Berg
Browse files

Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next

parents c451e6d4 856a850a
Loading
Loading
Loading
Loading
+37 −7
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ The target is named "raid" and it accepts the following parameters:
  raid10        Various RAID10 inspired algorithms chosen by additional params
		- RAID10: Striped Mirrors (aka 'Striping on top of mirrors')
		- RAID1E: Integrated Adjacent Stripe Mirroring
		- RAID1E: Integrated Offset Stripe Mirroring
		-  and other similar RAID10 variants

  Reference: Chapter 4 of
@@ -64,15 +65,15 @@ The target is named "raid" and it accepts the following parameters:
		synchronisation state for each region.

        [raid10_copies   <# copies>]
        [raid10_format   near]
        [raid10_format   <near|far|offset>]
		These two options are used to alter the default layout of
		a RAID10 configuration.  The number of copies is can be
		specified, but the default is 2.  There are other variations
		to how the copies are laid down - the default and only current
		option is "near".  Near copies are what most people think of
		with respect to mirroring.  If these options are left
		unspecified, or 'raid10_copies 2' and/or 'raid10_format near'
		are given, then the layouts for 2, 3 and 4 devices are:
		specified, but the default is 2.  There are also three
		variations to how the copies are laid down - the default
		is "near".  Near copies are what most people think of with
		respect to mirroring.  If these options are left unspecified,
		or 'raid10_copies 2' and/or 'raid10_format near' are given,
		then the layouts for 2, 3 and 4 devices	are:
		2 drives         3 drives          4 drives
		--------         ----------        --------------
		A1  A1           A1  A1  A2        A1  A1  A2  A2
@@ -85,6 +86,33 @@ The target is named "raid" and it accepts the following parameters:
		3-device layout is what might be called a 'RAID1E - Integrated
		Adjacent Stripe Mirroring'.

		If 'raid10_copies 2' and 'raid10_format far', then the layouts
		for 2, 3 and 4 devices are:
		2 drives             3 drives             4 drives
		--------             --------------       --------------------
		A1  A2               A1   A2   A3         A1   A2   A3   A4
		A3  A4               A4   A5   A6         A5   A6   A7   A8
		A5  A6               A7   A8   A9         A9   A10  A11  A12
		..  ..               ..   ..   ..         ..   ..   ..   ..
		A2  A1               A3   A1   A2         A2   A1   A4   A3
		A4  A3               A6   A4   A5         A6   A5   A8   A7
		A6  A5               A9   A7   A8         A10  A9   A12  A11
		..  ..               ..   ..   ..         ..   ..   ..   ..

		If 'raid10_copies 2' and 'raid10_format offset', then the
		layouts for 2, 3 and 4 devices are:
		2 drives       3 drives           4 drives
		--------       ------------       -----------------
		A1  A2         A1  A2  A3         A1  A2  A3  A4
		A2  A1         A3  A1  A2         A2  A1  A4  A3
		A3  A4         A4  A5  A6         A5  A6  A7  A8
		A4  A3         A6  A4  A5         A6  A5  A8  A7
		A5  A6         A7  A8  A9         A9  A10 A11 A12
		A6  A5         A9  A7  A8         A10 A9  A12 A11
		..  ..         ..  ..  ..         ..  ..  ..  ..
		Here we see layouts closely akin to 'RAID1E - Integrated
		Offset Stripe Mirroring'.

<#raid_devs>: The number of devices composing the array.
	Each device consists of two entries.  The first is the device
	containing the metadata (if any); the second is the one containing the
@@ -142,3 +170,5 @@ Version History
1.3.0	Added support for RAID 10
1.3.1	Allow device replacement/rebuild for RAID 10
1.3.2   Fix/improve redundancy checking for RAID10
1.4.0	Non-functional change.  Removes arg from mapping function.
1.4.1   Add RAID10 "far" and "offset" algorithm support.
+77 −0
Original line number Diff line number Diff line
@@ -105,6 +105,83 @@ Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com>
     Proto [2 bytes]
     Raw protocol(IP, IPv6, etc) frame.

  3.3 Multiqueue tuntap interface:

  From version 3.8, Linux supports multiqueue tuntap which can uses multiple
  file descriptors (queues) to parallelize packets sending or receiving. The
  device allocation is the same as before, and if user wants to create multiple
  queues, TUNSETIFF with the same device name must be called many times with
  IFF_MULTI_QUEUE flag.

  char *dev should be the name of the device, queues is the number of queues to
  be created, fds is used to store and return the file descriptors (queues)
  created to the caller. Each file descriptor were served as the interface of a
  queue which could be accessed by userspace.

  #include <linux/if.h>
  #include <linux/if_tun.h>

  int tun_alloc_mq(char *dev, int queues, int *fds)
  {
      struct ifreq ifr;
      int fd, err, i;

      if (!dev)
          return -1;

      memset(&ifr, 0, sizeof(ifr));
      /* Flags: IFF_TUN   - TUN device (no Ethernet headers)
       *        IFF_TAP   - TAP device
       *
       *        IFF_NO_PI - Do not provide packet information
       *        IFF_MULTI_QUEUE - Create a queue of multiqueue device
       */
      ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_MULTI_QUEUE;
      strcpy(ifr.ifr_name, dev);

      for (i = 0; i < queues; i++) {
          if ((fd = open("/dev/net/tun", O_RDWR)) < 0)
             goto err;
          err = ioctl(fd, TUNSETIFF, (void *)&ifr);
          if (err) {
             close(fd);
             goto err;
          }
          fds[i] = fd;
      }

      return 0;
  err:
      for (--i; i >= 0; i--)
          close(fds[i]);
      return err;
  }

  A new ioctl(TUNSETQUEUE) were introduced to enable or disable a queue. When
  calling it with IFF_DETACH_QUEUE flag, the queue were disabled. And when
  calling it with IFF_ATTACH_QUEUE flag, the queue were enabled. The queue were
  enabled by default after it was created through TUNSETIFF.

  fd is the file descriptor (queue) that we want to enable or disable, when
  enable is true we enable it, otherwise we disable it

  #include <linux/if.h>
  #include <linux/if_tun.h>

  int tun_set_queue(int fd, int enable)
  {
      struct ifreq ifr;

      memset(&ifr, 0, sizeof(ifr));

      if (enable)
         ifr.ifr_flags = IFF_ATTACH_QUEUE;
      else
         ifr.ifr_flags = IFF_DETACH_QUEUE;

      return ioctl(fd, TUNSETQUEUE, (void *)&ifr);
  }

Universal TUN/TAP device driver Frequently Asked Question.
   
1. What platforms are supported by TUN/TAP driver ?
+1 −19
Original line number Diff line number Diff line
@@ -114,12 +114,6 @@ Maintainers List (try to look for most precise areas first)

		-----------------------------------

3C505 NETWORK DRIVER
M:	Philip Blundell <philb@gnu.org>
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/ethernet/i825xx/3c505*

3C59X NETWORK DRIVER
M:	Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
L:	netdev@vger.kernel.org
@@ -2361,12 +2355,6 @@ W: http://www.arm.linux.org.uk/
S:	Maintained
F:	drivers/video/cyber2000fb.*

CYCLADES 2X SYNC CARD DRIVER
M:	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
W:	http://oops.ghostprotocols.net:81/blog
S:	Maintained
F:	drivers/net/wan/cycx*

CYCLADES ASYNC MUX DRIVER
W:	http://www.cyclades.com/
S:	Orphan
@@ -3067,12 +3055,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
F:	drivers/video/s1d13xxxfb.c
F:	include/video/s1d13xxxfb.h

ETHEREXPRESS-16 NETWORK DRIVER
M:	Philip Blundell <philb@gnu.org>
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/ethernet/i825xx/eexpress.*

ETHERNET BRIDGE
M:	Stephen Hemminger <stephen@networkplumber.org>
L:	bridge@lists.linux-foundation.org
@@ -8504,7 +8486,7 @@ F: drivers/usb/gadget/*uvc*.c
F:	drivers/usb/gadget/webcam.c

USB WIRELESS RNDIS DRIVER (rndis_wlan)
M:	Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
M:	Jussi Kivilinna <jussi.kivilinna@iki.fi>
L:	linux-wireless@vger.kernel.org
S:	Maintained
F:	drivers/net/wireless/rndis_wlan.c
+2 −2
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@
	STEPUP4((t)+16, fn)

_GLOBAL(powerpc_sha_transform)
	PPC_STLU r1,-STACKFRAMESIZE(r1)
	PPC_STLU r1,-INT_FRAME_SIZE(r1)
	SAVE_8GPRS(14, r1)
	SAVE_10GPRS(22, r1)

@@ -175,5 +175,5 @@ _GLOBAL(powerpc_sha_transform)

	REST_8GPRS(14, r1)
	REST_10GPRS(22, r1)
	addi	r1,r1,STACKFRAMESIZE
	addi	r1,r1,INT_FRAME_SIZE
	blr
+0 −2
Original line number Diff line number Diff line
@@ -52,8 +52,6 @@
#define smp_mb__before_clear_bit()	smp_mb()
#define smp_mb__after_clear_bit()	smp_mb()

#define BITOP_LE_SWIZZLE	((BITS_PER_LONG-1) & ~0x7)

/* Macro for generating the ***_bits() functions */
#define DEFINE_BITOP(fn, op, prefix, postfix)	\
static __inline__ void fn(unsigned long mask,	\
Loading