On Thu, 2022-06-02 at 20:09 +0200, Joakim Tjernlund wrote: > On Thu, 2022-06-02 at 10:56 -0700, Stephen Hemminger wrote: > > On Thu, 2 Jun 2022 17:15:13 +0000 > > Joakim Tjernlund <Joakim.Tjernlund@xxxxxxxxxxxx> wrote: > > > > > On Thu, 2022-06-02 at 09:57 -0700, Jakub Kicinski wrote: > > > > On Thu, 2 Jun 2022 16:26:18 +0000 Joakim Tjernlund wrote: > > > > > On Thu, 2022-06-02 at 08:56 -0700, Stephen Hemminger wrote: > > > > > > > Sure, our HW has config/state changes that makes it impossible for net driver > > > > > > > to touch and registers or TX pkgs(can result in System Error exception in worst case. > > > > > > > > What is "our HW", what kernel driver does it use and why can't the > > > > kernel driver take care of making sure the device is not accessed > > > > when it'd crash the system? > > > > > > It is a custom asic with some homegrown controller. The full config path is too complex for kernel too > > > know and depends on user input. The cashing/TX TMO part was not part of the design plans and > > > I have been down this route with the HW designers without success. > > > > Changing upstream code to support out of tree code? > > The risk of breaking current users for something that no one else uses > > is a bad idea. > > There are in tree users too, see fixed_phy_change_carrier(), I am not asking for adding > a new feature, just making an existing one more usable. > > > > > > > > > > > > Maybe so but it seems to me that this limitation was put in place without much thought. > > > > > > > > Don't make unnecessary disparaging statements about someone else's work. > > > > Whoever that person was. > > > > > > That was not meant the way you read it, sorry for being unclear. > > > The commit from 2012 simply says: > > > net: allow to change carrier via sysfs > > > > > > Make carrier writable > > > > > > > Setting carrier from userspace was added to support VPN's etc; > > in general it was not meant as hardware workaround. > > > > Often using operstate is better with complex hardware did you look at that? > > You mean? > ls -l /sys/class/net/sgmii/operstate > -r--r--r-- 1 root root 4096 Mar 9 12:46 /sys/class/net/sgmii/operstate > > I did, but operstate here is not writeable. > Did you perhaps mean some other operstate ? > Looked a little deeper and found: ip link set eth0 carrier off/on which works regardless of eth0 UP/DOWN state for me. Exactly what I am asking net-sysfs to allow as well. if net-sysfs carrier and ip link set eth0 carrier are the same function it makes sense they have the same privs, right? Jocke