make[5]: Entering directory
`/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1’
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC net/core/net-sysfs.o
net/core/net-sysfs.c: In function ‘netdev_queue_attr_show’:
net/core/net-sysfs.c:803:31: error: ‘struct netdev_queue’ has no member
named ‘kobj’
net/core/net-sysfs.c:803:31: warning: type defaults to ‘int’ in
declaration of ‘__mptr’
net/core/net-sysfs.c:803:31: warning: initialization from incompatible
pointer type
net/core/net-sysfs.c:803:31: error: ‘struct netdev_queue’ has no member
named ‘kobj’
net/core/net-sysfs.c: In function ‘netdev_queue_attr_store’:
net/core/net-sysfs.c:816:31: error: ‘struct netdev_queue’ has no member
named ‘kobj’
net/core/net-sysfs.c:816:31: warning: type defaults to ‘int’ in
declaration of ‘__mptr’
net/core/net-sysfs.c:816:31: warning: initialization from incompatible
pointer type
net/core/net-sysfs.c:816:31: error: ‘struct netdev_queue’ has no member
named ‘kobj’
net/core/net-sysfs.c: In function ‘netdev_queue_release’:
net/core/net-sysfs.c:1194:31: error: ‘struct netdev_queue’ has no
member named ‘kobj’
net/core/net-sysfs.c:1194:31: warning: type defaults to ‘int’ in
declaration of ‘__mptr’
net/core/net-sysfs.c:1194:31: warning: initialization from incompatible
pointer type
net/core/net-sysfs.c:1194:31: error: ‘struct netdev_queue’ has no
member named ‘kobj’
net/core/net-sysfs.c: In function ‘netdev_queue_add_kobject’:
net/core/net-sysfs.c:1213:31: error: ‘struct netdev_queue’ has no
member named ‘kobj’
net/core/net-sysfs.c:1216:18: error: ‘struct net_device’ has no member
named ‘queues_kset’
net/core/net-sysfs.c: In function ‘netdev_queue_update_kobjects’:
net/core/net-sysfs.c:1258:28: error: ‘struct netdev_queue’ has no
member named ‘kobj’
net/core/net-sysfs.c:1260:21: error: ‘struct netdev_queue’ has no
member named ‘kobj’
net/core/net-sysfs.c: In function ‘register_queue_kobjects’:
net/core/net-sysfs.c:1274:5: error: ‘struct net_device’ has no member
named ‘queues_kset’
net/core/net-sysfs.c:1276:10: error: ‘struct net_device’ has no member
named ‘queues_kset’
net/core/net-sysfs.c: In function ‘remove_queue_kobjects’:
net/core/net-sysfs.c:1315:21: error: ‘struct net_device’ has no member
named ‘queues_kset’
make[7]: ***** [net/core/net-sysfs.o] Error 1
make[6]: ***** [net/core] Error 2
make[5]: ***** [net] Error 2
make[5]: Leaving directory
`/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1’
make[4]: *****
[/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.1.1/.image]
Error 2
make[4]: Leaving directory
`/home/cero1/src/cerowrt/target/linux/ar71xx’
make[3]: ***** [install] Error 2
make[3]: Leaving directory `/home/cero1/src/cerowrt/target/linux’
make[2]: ***** [target/linux/install] Error 2
make[2]: Leaving directory `/home/cero1/src/cerowrt’
make[1]: *****
[/home/cero1/src/cerowrt/staging_dir/target-mips_r2_uClibc-0.9.32/stamp/.target_install]
Error 2
make[1]: Leaving directory `/home/cero1/src/cerowrt’
Still unfixed.
3.0 is also failing to build.
My attempt at wedging BQL support into the ag71xx driver, however,
fails. It does
get one packet out… So I have to look harder at the relevant drivers
and see where
I went wrong.
[ 12.560000] USB Mass Storage support registered.
[ 17.050000] ———–[ cut here ]———–
[ 17.050000] WARNING: at net/sched/sch_generic.c:256
dev_watchdog+0x178/0x280()
[ 17.060000] NETDEV WATCHDOG: eth0 (ag71xx): transmit queue 0 timed
out
[ 17.060000] Modules linked in: usb_storage ohci_hcd ehci_hcd
sd_mod ext4 jbd2 mbcache usbcore usb_common scsi_mod nls_base crc16
leds_gpio button_hotplug(O) gpio_keys_polled input_polldev
input_core
[ 17.080000] Call Trace:
[ 17.080000] [<802818e8>] dump_stack+0x8/0x34
[ 17.090000] [<80075e58>] warn_slowpath_common+0x78/0xa4
[ 17.090000] [<80075f0c>] warn_slowpath_fmt+0x2c/0x38
[ 17.100000] [<801fd2dc>] dev_watchdog+0x178/0x280
[ 17.100000] [<80080528>] run_timer_softirq+0x14c/0x1ec
[ 17.110000] [<8007b674>] __do_softirq+0xac/0x15c
[ 17.110000] [<8007b87c>] do_softirq+0x48/0x68
[ 17.120000] [<80062bec>] ret_from_irq+0x0/0x4
[ 17.120000] [<80062de0>] r4k_wait+0x20/0x40
[ 17.130000] [<800648a8>] cpu_idle+0x24/0x44
[ 17.130000] [<803148c8>] start_kernel+0x37c/0x39c
[ 17.130000]
[ 17.140000] –[ end trace ad0f0a4fc2f62e9d ]–
[ 17.140000] eth0: tx timeout
[ 17.140000] eth0: link down
[ 17.150000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 17.150000] eth0: link up (1000Mbps/Full duplex)
[ 27.050000] eth0: tx timeout
[ 27.050000] eth0: link down
[ 27.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 27.050000] eth0: link up (1000Mbps/Full duplex)
[ 32.830000] eth0: link down
[ 35.940000] Compat-wireless backport release:
compat-wireless-2011-11-29
[ 35.940000] Backport based on wireless-testing.git master-2011-12-01
[ 35.970000] cfg80211: Calling CRDA to update world regulatory domain
[ 36.390000] NET: Registered protocol family 10
[ 36.850000] cfg80211: World regulatory domain updated:
[ 36.850000] cfg80211: (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[ 36.860000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 36.870000] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300
mBi, 2000 mBm)
[ 36.880000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300
mBi, 2000 mBm)
[ 36.880000] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 36.890000] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 37.870000] PCI: Enabling device 0000:00:11.0 (0000 -> 0002)
[ 37.890000] ath: EEPROM regdomain: 0x0
[ 37.890000] ath: EEPROM indicates default country code should be
used
[ 37.890000] ath: doing EEPROM country->regdmn map search
[ 37.890000] ath: country maps to regdmn code: 0x3a
[ 37.890000] ath: Country alpha2 being used: US
[ 37.890000] ath: Regpair used: 0x3a
[ 37.890000] ieee80211 phy0: Selected rate control algorithm
‘minstrel_ht’
[ 37.890000] Registered led device: ath9k-phy0
[ 37.890000] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000,
irq=40
[ 37.900000] PCI: Enabling device 0000:00:12.0 (0000 -> 0002)
[ 37.910000] ath: eeprom contains invalid mac address:
ff:ff:ff:ff:ff:ff
[ 37.920000] ath: random mac address will be used: ea:79:26:a7:81:75
[ 37.920000] ath: EEPROM regdomain: 0x0
[ 37.920000] ath: EEPROM indicates default country code should be
used
[ 37.920000] ath: doing EEPROM country->regdmn map search
[ 37.920000] ath: country maps to regdmn code: 0x3a
[ 37.920000] ath: Country alpha2 being used: US
[ 37.920000] ath: Regpair used: 0x3a
[ 37.930000] ieee80211 phy1: Selected rate control algorithm
‘minstrel_ht’
[ 37.930000] Registered led device: ath9k-phy1
[ 37.930000] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000,
irq=41
[ 37.940000] cfg80211: Calling CRDA for country: US
[ 38.160000] cfg80211: Regulatory domain changed to country: US
[ 38.170000] cfg80211: (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[ 38.180000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300
mBi, 2700 mBm)
[ 38.180000] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300
mBi, 1700 mBm)
[ 38.190000] cfg80211: (5250000 KHz - 5330000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 38.200000] cfg80211: (5490000 KHz - 5600000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 38.210000] cfg80211: (5650000 KHz - 5710000 KHz @ 40000 KHz), (300
mBi, 2000 mBm)
[ 38.220000] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300
mBi, 3000 mBm)
[ 38.360000] PPP generic driver version 2.4.2
[ 38.450000] tun: Universal TUN/TAP device driver, 1.6
[ 38.450000] tun: © 1999-2004 Max Krasnyansky maxk@qualcomm.com
[ 38.480000] IPv6 over IPv4 tunneling driver
[ 38.580000] GRE over IPv4 demultiplexor driver
[ 38.640000] GRE over IPv4 tunneling driver
[ 38.720000] ip_tables: © 2000-2006 Netfilter Core Team
[ 38.890000] NET: Registered protocol family 24
[ 38.950000] nf_conntrack version 0.5.0 (963 buckets, 3852 max)
[ 39.050000] PPTP driver version 0.8.5
[ 39.290000] xt_time: kernel timezone is -0000
[ 39.480000] ip6_tables: © 2000-2006 Netfilter Core Team
[ 41.350000] ADDRCONF (NETDEV_UP): ge00: link is not ready
[ 43.030000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 43.030000] se00: link up (1000Mbps/Full duplex)
[ 48.080000] ADDRCONF (NETDEV_UP): sw00: link is not ready
[ 50.770000] ADDRCONF (NETDEV_UP): gw01: link is not ready
[ 53.050000] se00: tx timeout
[ 53.050000] se00: link down
[ 53.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 53.050000] se00: link up (1000Mbps/Full duplex)
[ 53.470000] ADDRCONF (NETDEV_UP): sw10: link is not ready
[ 57.840000] gw01: Creating new IBSS network, BSSID ce:05:e9:34:0c:37
[ 57.840000] ADDRCONF (NETDEV_CHANGE): gw01: link becomes ready
[ 58.750000] ADDRCONF (NETDEV_UP): gw11: link is not ready
[ 63.050000] se00: tx timeout
[ 63.050000] se00: link down
[ 63.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 63.050000] se00: link up (1000Mbps/Full duplex)
[ 67.040000] gw11: Creating new IBSS network, BSSID a2:37:f6:1d:cc:2e
[ 67.040000] ADDRCONF (NETDEV_CHANGE): gw11: link becomes ready
[ 73.050000] se00: tx timeout
[ 73.050000] se00: link down
[ 73.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 73.050000] se00: link up (1000Mbps/Full duplex)
[ 83.050000] se00: tx timeout
[ 83.050000] se00: link down
[ 83.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 83.050000] se00: link up (1000Mbps/Full duplex)
[ 93.050000] se00: tx timeout
[ 93.050000] se00: link down
[ 93.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 93.050000] se00: link up (1000Mbps/Full duplex)
[ 103.050000] se00: tx timeout
[ 103.050000] se00: link down
[ 103.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 103.050000] se00: link up (1000Mbps/Full duplex)
[ 113.050000] se00: tx timeout
[ 113.050000] se00: link down
[ 113.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 113.050000] se00: link up (1000Mbps/Full duplex)
[ 123.050000] se00: tx timeout
[ 123.050000] se00: link down
[ 123.050000] ar71xx: pll_reg 0xb8050010: 0x11110000
[ 123.050000] se00: link up (1000Mbps/Full duplex)
Networking support --> Networking options --> RPS
Because ‘struct netdev_queue’ has the member ‘kobj’ only when
CONFIG_RPS is defined.
So does ‘queues_kset’ in ‘struct net_device’.
You can find the definition in ‘include/linux/netdevice.h’.
struct net_device {
...
#ifdef CONFIG_RPS
struct kset *queues_kset;
struct netdev_rx_queue *_rx;
/* Number of RX queues allocated at register_netdev() time */
unsigned int num_rx_queues;
/* Number of RX queues currently active in device */
unsigned int real_num_rx_queues;
#ifdef CONFIG_RFS_ACCEL
/* CPU reverse-mapping for RX completion interrupts, indexed by RX queue number. Assigned by driver.
* This must only be set if the ndo_rx_flow_steer operation is defined. */
struct cpu_rmap *rx_cpu_rmap;
#endif
#endif
...
};
...
struct netdev_queue {
...
#ifdef CONFIG_RPS
struct kobject kobj;
#endif
...
} ____cacheline_aligned_in_smp;
Have a good day!
cerowrt/target/linux/ar71xx/files/arch/mips/ar71xx