Skip to contentSkip to conversation

forcedeth: cat /sys/class/net/eth0/carrier = Invalid argument

DISCUSSION Justin P. mattock 2 participants 3 messages Mar 22, 2010 – Mar 23, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

I've pushed my kernel from the latest HEAD to 2.6.31 and am still seeing:
cat /sys/class/net/eth0/carrier
cat: carrier: Invalid argument

with my other machine using sky2
the same results is:
cat /sys/class/net/eth0/carrier
0

is there anything on this? before I start
a bisect.(looking through bugzilla, I couldn't
see anything related).

Justin P. Mattock

maintainer
#1 lore raw

From: "Justin P. mattock" <[email protected]>
Date: Mon, 22 Mar 2010 10:36:18 -0700

Quoted 5 lines

I've pushed my kernel from the latest HEAD to 2.6.31 and am still seeing:
cat /sys/class/net/eth0/carrier
cat: carrier: Invalid argument

Quoted 8 lines

with my other machine using sky2
the same results is:
cat /sys/class/net/eth0/carrier
0

is there anything on this? before I start
a bisect.(looking through bugzilla, I couldn't
see anything related).

A device is not able to indicate carrier accurately when the device is not currently running.

So you will get an -EINVAL until the device is brought up.

The reason is that most drivers don't even probe the link or negotiate link speed and flow control until the device is brought up. Many don't even power up the PHY when the device is down, in order to save power.

So the behavior you observe is completely expected.

#2 lore raw
Quoted 13 lines · David Miller

From: "Justin P. mattock"<[email protected]>
Date: Mon, 22 Mar 2010 10:36:18 -0700

Quoted 10 lines

I've pushed my kernel from the latest HEAD to 2.6.31 and am still seeing:
cat /sys/class/net/eth0/carrier
cat: carrier: Invalid argument

with my other machine using sky2
the same results is:
cat /sys/class/net/eth0/carrier
0

Quoted 8 lines
Quoted 3 lines

is there anything on this? before I start
a bisect.(looking through bugzilla, I couldn't
see anything related).

A device is not able to indicate carrier accurately when the device is not currently running.

So you will get an -EINVAL until the device is brought up.

ah.. the machine was up and running but nothing was running (no dhclient, streaming music, etc..)
now
just ran the machine with ethernet,(up and running) and carrier reported 1

Quoted 8 lines

The reason is that most drivers don't even probe the link or negotiate link speed and flow control until the device is brought up. Many don't even power up the PHY when the device is down, in order to save power.

So the behavior you observe is completely expected.

cool, this had me confused.

Thanks for the info on this..
(no bisect for this).

Justin P. Mattock