Re: [PATCH 05/14] fs: don't allow kernel reads and writes without iter ops

2020-10-02 Thread Linus Torvalds
On Thu, Oct 1, 2020 at 3:41 PM Al Viro  wrote:
>
> Better
> loff_t dummy = 0;
> ...
> wr = __kernel_write(file, data, bytes, &dummy);

No, just fix __kernel_write() to work correctly.

The fact is, NULL _is_ the right pointer for ppos these days.

That commit by Christoph is buggy: it replaces new_sync_write() with a
buggy open-coded version.

Notice how new_sync_write does

kiocb.ki_pos = (ppos ? *ppos : 0);
,,,
if (ret > 0 && ppos)
*ppos = kiocb.ki_pos;

but the open-coded version doesn't.

So just fix that in linux-next. The *last* thing we want is to have
different semantics for the "same" kernel functions.

   Linus


[PATCH v4 net-next 2/2] powerpc: dts: t1040rdb: add ports for Seville Ethernet switch

2020-10-02 Thread Vladimir Oltean
Define the network interface names for the switch ports and hook them up
to the 2 QSGMII PHYs that are onboard.

A conscious decision was taken to go along with the numbers that are
written on the front panel of the board and not with the hardware
numbers of the switch chip ports.

Signed-off-by: Vladimir Oltean 
Reviewed-by: Maxim Kochetkov 
Reviewed-by: Andrew Lunn 
---
Changes in v4:
- Retargeted to net-next.
- Fixed the port labels (ETH5 was ETH4, ETH7 was ETH6, ETH9 was ETH8,
  ETH11 was ETH10).

Changes in v3:
Renamed interfaces from swpN to ETHN, as per Andrew Lunn's suggestion.

Changes in v2:
Use the existing way of accessing the mdio bus and not labels.

 arch/powerpc/boot/dts/fsl/t1040rdb.dts | 107 +
 1 file changed, 107 insertions(+)

diff --git a/arch/powerpc/boot/dts/fsl/t1040rdb.dts 
b/arch/powerpc/boot/dts/fsl/t1040rdb.dts
index 65ff34c49025..af0c8a6f5613 100644
--- a/arch/powerpc/boot/dts/fsl/t1040rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t1040rdb.dts
@@ -64,6 +64,40 @@ mdio@fc000 {
phy_sgmii_2: ethernet-phy@3 {
reg = <0x03>;
};
+
+   /* VSC8514 QSGMII PHY */
+   phy_qsgmii_0: ethernet-phy@4 {
+   reg = <0x4>;
+   };
+
+   phy_qsgmii_1: ethernet-phy@5 {
+   reg = <0x5>;
+   };
+
+   phy_qsgmii_2: ethernet-phy@6 {
+   reg = <0x6>;
+   };
+
+   phy_qsgmii_3: ethernet-phy@7 {
+   reg = <0x7>;
+   };
+
+   /* VSC8514 QSGMII PHY */
+   phy_qsgmii_4: ethernet-phy@8 {
+   reg = <0x8>;
+   };
+
+   phy_qsgmii_5: ethernet-phy@9 {
+   reg = <0x9>;
+   };
+
+   phy_qsgmii_6: ethernet-phy@a {
+   reg = <0xa>;
+   };
+
+   phy_qsgmii_7: ethernet-phy@b {
+   reg = <0xb>;
+   };
};
};
};
@@ -76,3 +110,76 @@ cpld@3,0 {
 };
 
 #include "t1040si-post.dtsi"
+
+&seville_switch {
+   status = "okay";
+};
+
+&seville_port0 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_0>;
+   phy-mode = "qsgmii";
+   label = "ETH5";
+   status = "okay";
+};
+
+&seville_port1 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_1>;
+   phy-mode = "qsgmii";
+   label = "ETH4";
+   status = "okay";
+};
+
+&seville_port2 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_2>;
+   phy-mode = "qsgmii";
+   label = "ETH7";
+   status = "okay";
+};
+
+&seville_port3 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_3>;
+   phy-mode = "qsgmii";
+   label = "ETH6";
+   status = "okay";
+};
+
+&seville_port4 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_4>;
+   phy-mode = "qsgmii";
+   label = "ETH9";
+   status = "okay";
+};
+
+&seville_port5 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_5>;
+   phy-mode = "qsgmii";
+   label = "ETH8";
+   status = "okay";
+};
+
+&seville_port6 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_6>;
+   phy-mode = "qsgmii";
+   label = "ETH11";
+   status = "okay";
+};
+
+&seville_port7 {
+   managed = "in-band-status";
+   phy-handle = <&phy_qsgmii_7>;
+   phy-mode = "qsgmii";
+   label = "ETH10";
+   status = "okay";
+};
+
+&seville_port8 {
+   ethernet = <&enet0>;
+   status = "okay";
+};
-- 
2.25.1



[PATCH v4 net-next 1/2] powerpc: dts: t1040: add bindings for Seville Ethernet switch

2020-10-02 Thread Vladimir Oltean
Add the description of the embedded L2 switch inside the SoC dtsi file
for NXP T1040.

Signed-off-by: Vladimir Oltean 
Reviewed-by: Maxim Kochetkov 
Reviewed-by: Andrew Lunn 
---
Changes in v4:
Retargeting to net-next.

Changes in v3:
Added definition for frame extraction interrupt, even if the driver
doesn't use it at the moment.

Changes in v2:
Make switch node disabled by default.

 arch/powerpc/boot/dts/fsl/t1040si-post.dtsi | 78 +
 1 file changed, 78 insertions(+)

diff --git a/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi 
b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
index 315d0557eefc..f58eb820eb5e 100644
--- a/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
@@ -628,6 +628,84 @@ mdio@fd000 {
status = "disabled";
};
};
+
+   seville_switch: ethernet-switch@80 {
+   compatible = "mscc,vsc9953-switch";
+   reg = <0x80 0x29>;
+   interrupts = <26 2 0 0>;
+   interrupt-names = "xtr";
+   little-endian;
+   #address-cells = <1>;
+   #size-cells = <0>;
+   status = "disabled";
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   seville_port0: port@0 {
+   reg = <0>;
+   status = "disabled";
+   };
+
+   seville_port1: port@1 {
+   reg = <1>;
+   status = "disabled";
+   };
+
+   seville_port2: port@2 {
+   reg = <2>;
+   status = "disabled";
+   };
+
+   seville_port3: port@3 {
+   reg = <3>;
+   status = "disabled";
+   };
+
+   seville_port4: port@4 {
+   reg = <4>;
+   status = "disabled";
+   };
+
+   seville_port5: port@5 {
+   reg = <5>;
+   status = "disabled";
+   };
+
+   seville_port6: port@6 {
+   reg = <6>;
+   status = "disabled";
+   };
+
+   seville_port7: port@7 {
+   reg = <7>;
+   status = "disabled";
+   };
+
+   seville_port8: port@8 {
+   reg = <8>;
+   phy-mode = "internal";
+   status = "disabled";
+
+   fixed-link {
+   speed = <2500>;
+   full-duplex;
+   };
+   };
+
+   seville_port9: port@9 {
+   reg = <9>;
+   phy-mode = "internal";
+   status = "disabled";
+
+   fixed-link {
+   speed = <2500>;
+   full-duplex;
+   };
+   };
+   };
+   };
 };
 
 &qe {
-- 
2.25.1



[PATCH v4 net-next 0/2] Add Seville Ethernet switch to T1040RDB

2020-10-02 Thread Vladimir Oltean
Seville is a DSA switch that is embedded inside the T1040 SoC, and
supported by the mscc_seville DSA driver inside drivers/net/dsa/ocelot.

This series adds this switch to the SoC's dtsi files and to the T1040RDB
board file.

I would like to send this series through net-next. There is no conflict
with other patches submitted to T1040 device tree. Maybe this could at
least get an ACK from devicetree maintainers.

Vladimir Oltean (2):
  powerpc: dts: t1040: add bindings for Seville Ethernet switch
  powerpc: dts: t1040rdb: add ports for Seville Ethernet switch

 arch/powerpc/boot/dts/fsl/t1040rdb.dts  | 107 
 arch/powerpc/boot/dts/fsl/t1040si-post.dtsi |  78 ++
 2 files changed, 185 insertions(+)

-- 
2.25.1