Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Browse files Browse the repository at this point in the history
Minor conflict in mlx5 because changes happened to code that has
moved meanwhile.

Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
davem330 committed Jan 26, 2020
2 parents 3333e50 + 2821e26 commit 4d8773b
Show file tree
Hide file tree
Showing 191 changed files with 2,628 additions and 1,088 deletions.
70 changes: 42 additions & 28 deletions Documentation/core-api/xarray.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@ good performance with large indices. If your index can be larger than
``ULONG_MAX`` then the XArray is not the data type for you. The most
important user of the XArray is the page cache.

Each non-``NULL`` entry in the array has three bits associated with
it called marks. Each mark may be set or cleared independently of
the others. You can iterate over entries which are marked.

Normal pointers may be stored in the XArray directly. They must be 4-byte
aligned, which is true for any pointer returned from kmalloc() and
alloc_page(). It isn't true for arbitrary user-space pointers,
Expand All @@ -41,12 +37,11 @@ When you retrieve an entry from the XArray, you can check whether it is
a value entry by calling xa_is_value(), and convert it back to
an integer by calling xa_to_value().

Some users want to store tagged pointers instead of using the marks
described above. They can call xa_tag_pointer() to create an
entry with a tag, xa_untag_pointer() to turn a tagged entry
back into an untagged pointer and xa_pointer_tag() to retrieve
the tag of an entry. Tagged pointers use the same bits that are used
to distinguish value entries from normal pointers, so each user must
Some users want to tag the pointers they store in the XArray. You can
call xa_tag_pointer() to create an entry with a tag, xa_untag_pointer()
to turn a tagged entry back into an untagged pointer and xa_pointer_tag()
to retrieve the tag of an entry. Tagged pointers use the same bits that
are used to distinguish value entries from normal pointers, so you must
decide whether they want to store value entries or tagged pointers in
any particular XArray.

Expand All @@ -56,10 +51,9 @@ conflict with value entries or internal entries.
An unusual feature of the XArray is the ability to create entries which
occupy a range of indices. Once stored to, looking up any index in
the range will return the same entry as looking up any other index in
the range. Setting a mark on one index will set it on all of them.
Storing to any index will store to all of them. Multi-index entries can
be explicitly split into smaller entries, or storing ``NULL`` into any
entry will cause the XArray to forget about the range.
the range. Storing to any index will store to all of them. Multi-index
entries can be explicitly split into smaller entries, or storing ``NULL``
into any entry will cause the XArray to forget about the range.

Normal API
==========
Expand Down Expand Up @@ -87,17 +81,11 @@ If you want to only store a new entry to an index if the current entry
at that index is ``NULL``, you can use xa_insert() which
returns ``-EBUSY`` if the entry is not empty.

You can enquire whether a mark is set on an entry by using
xa_get_mark(). If the entry is not ``NULL``, you can set a mark
on it by using xa_set_mark() and remove the mark from an entry by
calling xa_clear_mark(). You can ask whether any entry in the
XArray has a particular mark set by calling xa_marked().

You can copy entries out of the XArray into a plain array by calling
xa_extract(). Or you can iterate over the present entries in
the XArray by calling xa_for_each(). You may prefer to use
xa_find() or xa_find_after() to move to the next present
entry in the XArray.
xa_extract(). Or you can iterate over the present entries in the XArray
by calling xa_for_each(), xa_for_each_start() or xa_for_each_range().
You may prefer to use xa_find() or xa_find_after() to move to the next
present entry in the XArray.

Calling xa_store_range() stores the same entry in a range
of indices. If you do this, some of the other operations will behave
Expand All @@ -124,6 +112,31 @@ xa_destroy(). If the XArray entries are pointers, you may wish
to free the entries first. You can do this by iterating over all present
entries in the XArray using the xa_for_each() iterator.

Search Marks
------------

Each entry in the array has three bits associated with it called marks.
Each mark may be set or cleared independently of the others. You can
iterate over marked entries by using the xa_for_each_marked() iterator.

You can enquire whether a mark is set on an entry by using
xa_get_mark(). If the entry is not ``NULL``, you can set a mark on it
by using xa_set_mark() and remove the mark from an entry by calling
xa_clear_mark(). You can ask whether any entry in the XArray has a
particular mark set by calling xa_marked(). Erasing an entry from the
XArray causes all marks associated with that entry to be cleared.

Setting or clearing a mark on any index of a multi-index entry will
affect all indices covered by that entry. Querying the mark on any
index will return the same result.

There is no way to iterate over entries which are not marked; the data
structure does not allow this to be implemented efficiently. There are
not currently iterators to search for logical combinations of bits (eg
iterate over all entries which have both ``XA_MARK_1`` and ``XA_MARK_2``
set, or iterate over all entries which have ``XA_MARK_0`` or ``XA_MARK_2``
set). It would be possible to add these if a user arises.

Allocating XArrays
------------------

Expand Down Expand Up @@ -180,6 +193,8 @@ No lock needed:
Takes RCU read lock:
* xa_load()
* xa_for_each()
* xa_for_each_start()
* xa_for_each_range()
* xa_find()
* xa_find_after()
* xa_extract()
Expand Down Expand Up @@ -419,10 +434,9 @@ you last processed. If you have interrupts disabled while iterating,
then it is good manners to pause the iteration and reenable interrupts
every ``XA_CHECK_SCHED`` entries.

The xas_get_mark(), xas_set_mark() and
xas_clear_mark() functions require the xa_state cursor to have
been moved to the appropriate location in the xarray; they will do
nothing if you have called xas_pause() or xas_set()
The xas_get_mark(), xas_set_mark() and xas_clear_mark() functions require
the xa_state cursor to have been moved to the appropriate location in the
XArray; they will do nothing if you have called xas_pause() or xas_set()
immediately before.

You can call xas_set_update() to have a callback function
Expand Down
13 changes: 13 additions & 0 deletions Documentation/devicetree/bindings/net/fsl-fman.txt
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,19 @@ PROPERTIES
The settings and programming routines for internal/external
MDIO are different. Must be included for internal MDIO.

- fsl,erratum-a011043
Usage: optional
Value type: <boolean>
Definition: Indicates the presence of the A011043 erratum
describing that the MDIO_CFG[MDIO_RD_ER] bit may be falsely
set when reading internal PCS registers. MDIO reads to
internal PCS registers may result in having the
MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and
read data (MDIO_DATA[MDIO_DATA]) is correct.
Software may get false read error when reading internal
PCS registers through MDIO. As a workaround, all internal
MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit.

For internal PHY device on internal mdio bus, a PHY node should be created.
See the definition of the PHY node in booting-without-of.txt for an
example of how to define a PHY (Internal PHY has no interrupt line).
Expand Down
8 changes: 5 additions & 3 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -6198,6 +6198,7 @@ ETHERNET PHY LIBRARY
M: Andrew Lunn <[email protected]>
M: Florian Fainelli <[email protected]>
M: Heiner Kallweit <[email protected]>
R: Russell King <[email protected]>
L: [email protected]
S: Maintained
F: Documentation/ABI/testing/sysfs-class-net-phydev
Expand Down Expand Up @@ -8570,7 +8571,7 @@ S: Maintained
F: drivers/platform/x86/intel-vbtn.c

INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
M: Stanislaw Gruszka <[email protected]>
M: Stanislaw Gruszka <[email protected]>
L: [email protected]
S: Supported
F: drivers/net/wireless/intel/iwlegacy/
Expand Down Expand Up @@ -11500,6 +11501,7 @@ F: drivers/net/dsa/

NETWORKING [GENERAL]
M: "David S. Miller" <[email protected]>
M: Jakub Kicinski <[email protected]>
L: [email protected]
W: http://www.linuxfoundation.org/en/Net
Q: http://patchwork.ozlabs.org/project/netdev/list/
Expand Down Expand Up @@ -13840,7 +13842,7 @@ S: Maintained
F: arch/mips/ralink

RALINK RT2X00 WIRELESS LAN DRIVER
M: Stanislaw Gruszka <[email protected]>
M: Stanislaw Gruszka <[email protected]>
M: Helmut Schaa <[email protected]>
L: [email protected]
S: Maintained
Expand Down Expand Up @@ -16622,7 +16624,7 @@ F: kernel/time/ntp.c
F: tools/testing/selftests/timers/

TIPC NETWORK LAYER
M: Jon Maloy <jon.maloy@ericsson.com>
M: Jon Maloy <jmaloy@redhat.com>
M: Ying Xue <[email protected]>
L: [email protected] (core kernel code)
L: [email protected] (user apps, general discussion)
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
VERSION = 5
PATCHLEVEL = 5
SUBLEVEL = 0
EXTRAVERSION = -rc6
EXTRAVERSION = -rc7
NAME = Kleptomaniac Octopus

# *DOCUMENTATION*
Expand Down
5 changes: 5 additions & 0 deletions arch/arm/boot/dts/am335x-boneblack-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,11 @@
};

/ {
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x20000000>; /* 512 MB */
};

clk_mcasp0_fixed: clk_mcasp0_fixed {
#clock-cells = <0>;
compatible = "fixed-clock";
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/am43x-epos-evm.dts
Original file line number Diff line number Diff line change
Expand Up @@ -848,13 +848,15 @@
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi0_pins_default>;
pinctrl-1 = <&spi0_pins_sleep>;
ti,pindir-d0-out-d1-in = <1>;
};

&spi1 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi1_pins_default>;
pinctrl-1 = <&spi1_pins_sleep>;
ti,pindir-d0-out-d1-in = <1>;
};

&usb2_phy1 {
Expand Down
7 changes: 3 additions & 4 deletions arch/arm/kernel/hyp-stub.S
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,9 @@ ARM_BE8(orr r7, r7, #(1 << 25)) @ HSCTLR.EE
#if !defined(ZIMAGE) && defined(CONFIG_ARM_ARCH_TIMER)
@ make CNTP_* and CNTPCT accessible from PL1
mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1
lsr r7, #16
and r7, #0xf
cmp r7, #1
bne 1f
ubfx r7, r7, #16, #4
teq r7, #0
beq 1f
mrc p15, 4, r7, c14, c1, 0 @ CNTHCTL
orr r7, r7, #3 @ PL1PCEN | PL1PCTEN
mcr p15, 4, r7, c14, c1, 0 @ CNTHCTL
Expand Down
6 changes: 1 addition & 5 deletions arch/powerpc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -455,11 +455,7 @@ config PPC_TRANSACTIONAL_MEM
config PPC_UV
bool "Ultravisor support"
depends on KVM_BOOK3S_HV_POSSIBLE
select ZONE_DEVICE
select DEV_PAGEMAP_OPS
select DEVICE_PRIVATE
select MEMORY_HOTPLUG
select MEMORY_HOTREMOVE
depends on DEVICE_PRIVATE
default n
help
This option paravirtualizes the kernel to run in POWER platforms that
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy0: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xf1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy6: ethernet-phy@0 {
reg = <0x0>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy1: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xf3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy7: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy0: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy1: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe5000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy2: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe7000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy3: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe9000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy4: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@400000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xeb000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy5: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xf1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy14: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xf3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy15: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy8: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy9: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe5000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy10: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe7000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy11: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xe9000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy12: ethernet-phy@0 {
reg = <0x0>;
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ fman@500000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xeb000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */

pcsphy13: ethernet-phy@0 {
reg = <0x0>;
Expand Down
Loading

0 comments on commit 4d8773b

Please sign in to comment.