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@infinera.com 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