Re: 8.1 stable ar9285 ath0 problem
Hi! UPDATE: Oh, one more thing. Upon loading the ath driver a couple of days ago I got a kernel panic and freeze. It panicked and then the system froze. The driver can scan for access points and associates to the AP, but then the kernl delivers the message in /var/log/message (kernel: ath0: bb hang detected, resetting) that the ath driver froze. I disabled the reset, and used the 9285 (asus eeepc 1015PE) sucessfully, while still a bit flakey. I'm in a conference right now, so a bit busy. See http://opsec.eu/backup/patch-ath-reset And if you see 'unknown subtype' messages if doing ifconfig -m wlan0, maybe http://opsec.eu/backup/patch-ifmedia will help as well. -- p...@opsec.eu+49 171 310137210 years to go ! ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org
Re : ath(4) hostap with fake MAC/BSSID results in station dropping packets when associated
Hi Martin, I got similar problem from my PC using a Netgear WG311T PCI wireless card. ath0: Atheros 5212 mem 0x4010-0x4010 irq 11 at device 8.0 on pci1 ath0: AR2413 mac 7.9 RF2413 phy 4.5 I have joined all my config files, and the results of the commands : # dmesg # ifconfig # dhclient wlan0 Also, I have opened before your mail to the list, a thread on FreeBSD Forums http://forums.freebsd.org/showthread.php?t=16373 --- En date de : Mer 28.7.10, Martin na...@web.de a écrit : De: Martin na...@web.de Objet: ath(4) hostap with fake MAC/BSSID results in station dropping packets when associated À: freebsd-stable@freebsd.org Date: Mercredi 28 juillet 2010, 22h24 Hi, I noticed a bug that was introduced somewhere in the Atheros 9280 support in 8.1-RELEASE when used as a station. I had this already running correctly with 7.x releases. What happens: I cannot connect to a hostap ath(4) (Atheros 2413) when using a fake MAC/BSSID (on the hostap!). How to reproduce it: 1) Put this into your rc.local on your hostap machine and replace xx's by an address of your choice (first octet needs to have lowest bit 0): ifconfig ath0 ether xx:xx:xx:xx:xx:xx 2) Start hostapd (must be configured, of course). Eventually you need to set BSSID also in hostapd.conf. 3) Try to connect with an Atheros 9280. You don't need to fake MAC address here (I'm only talking about the hostap MAC/BSSID). What you get: - You get association. This is OK, so far. - Try DHCP. You won't see packets arriving at the station. They are not recognized and filtered somewhere. - When you watch with tcpdump on the hostap interface you'll see DHCP requests arriving and being answered. - I further noticed, even you don't have any IP (set to 0.0.0.0, because of failed DHCP), you can see packets being sent to different machines - You can try to setup a static address, but when you ping the station, you don't see a ping arriving (watch tcpdump on the station wireless interface and try to ping from the hostap machine). Further information: - This only affects ath(4) and I could only see this on Atheros 9280, because I don't have any other ath(4) adapters at the moment. - I tried rum(4). It does not have any problems like this. DHCP and everything else works with this driver (of course with a fake MAC/BSSID!). - Running 8.1-RELEASE on all machines. Kernel is GENERIC, but on hostap machine there is ALTQ added (should not affect anything, as I said, I had this running already). - hostapd is configured with 11g, WPA2 and passwords in hostapd.wpapsk. WME is switched off, because it does not work at all for me. I can provide more information, if needed. -- Martin ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org dhclient_wlan0 Description: Binary data dmesg Description: Binary data ifconfig Description: Binary data wpa_supplicant.conf Description: Binary data rc.conf Description: Binary data ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org
Re: 8.x grudges
Mikhail T. mi+t...@aldan.algebra.com wrote: The motherboard version -- I'm not sure still. Something like nVidia nForce2 -- does that identify it enough? Install ports/sysutils/dmidecode and type (as root): # dmidecode -t system -t baseboard It will tell you the vendor and product name, among other things. Best regards Oliver -- Oliver Fromme, secnetix GmbH Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd If Java had true garbage collection, most programs would delete themselves upon execution. -- Robert Sewell ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org
Re: 8.1 stable ar9285 ath0 problem
well i just patched recompiled. Its evwn worse now. Now the var,log,messages log is even more flooded with the said messages. /Sent from Nokia 5800 On 7/29/10, Kurt Jaeger p...@opsec.eu wrote: Hi! UPDATE: Oh, one more thing. Upon loading the ath driver a couple of days ago I got a kernel panic and freeze. It panicked and then the system froze. The driver can scan for access points and associates to the AP, but then the kernl delivers the message in /var/log/message (kernel: ath0: bb hang detected, resetting) that the ath driver froze. I disabled the reset, and used the 9285 (asus eeepc 1015PE) sucessfully, while still a bit flakey. I'm in a conference right now, so a bit busy. See http://opsec.eu/backup/patch-ath-reset And if you see 'unknown subtype' messages if doing ifconfig -m wlan0, maybe http://opsec.eu/backup/patch-ifmedia will help as well. -- p...@opsec.eu+49 171 310137210 years to go ! ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org
Re: Unable to install 8.x on a PowerEdge R810
Kind of a large patch, but in order to make an omlette, you need to break a few servers. This is a diff against -CURRENT, not stable-8 as I didn't get a chance to test it. It is directly based off of changes that peter@ made to the Yahoo FreeBSD 7 tree. I have compile and boot tested this on my local machines, but I don't have 64 CPU machines to test upon. Sean Here is a patch version that applies to stable-8 at the moment. I changed 2 more cases where the data types were wrong, one in a printf and a case where a negative truth value was being used. Sea Index: sys/kern/subr_smp.c === --- sys/kern/subr_smp.c (revision 210622) +++ sys/kern/subr_smp.c (working copy) @@ -181,7 +181,7 @@ id = td-td_oncpu; if (id == NOCPU) return; - ipi_selected(1 id, IPI_AST); + ipi_selected(cputomask(id), IPI_AST); } /* @@ -318,7 +318,7 @@ CTR1(KTR_SMP, restart_cpus(%x), map); /* signal other cpus to restart */ - atomic_store_rel_int(started_cpus, map); + atomic_store_rel_long(started_cpus, map); /* wait for each to clear its bit */ while ((stopped_cpus map) != 0) @@ -399,7 +399,7 @@ if (((1 i) map) != 0 !CPU_ABSENT(i)) ncpus++; if (ncpus == 0) - panic(ncpus is 0 with map=0x%x, map); + panic(ncpus is 0 with map=0x%lx, map); /* obtain rendezvous lock */ mtx_lock_spin(smp_ipi_mtx); @@ -415,10 +415,10 @@ atomic_store_rel_int(smp_rv_waiters[0], 0); /* signal other processors, which will enter the IPI with interrupts off */ - ipi_selected(map ~(1 curcpu), IPI_RENDEZVOUS); + ipi_selected(map ~cputomask(curcpu), IPI_RENDEZVOUS); /* Check if the current CPU is in the map */ - if ((map (1 curcpu)) != 0) + if ((map cputomask(curcpu)) != 0) smp_rendezvous_action(); if (teardown_func == smp_no_rendevous_barrier) @@ -490,7 +490,7 @@ panic(Built bad topology at %p. CPU count %d != %d, top, top-cg_count, mp_ncpus); if (top-cg_mask != all_cpus) - panic(Built bad topology at %p. CPU mask 0x%X != 0x%X, + panic(Built bad topology at %p. CPU mask 0x%lX != 0x%lX, top, top-cg_mask, all_cpus); return (top); } @@ -531,7 +531,7 @@ parent-cg_children++; for (; parent != NULL; parent = parent-cg_parent) { if ((parent-cg_mask child-cg_mask) != 0) - panic(Duplicate children in %p. mask 0x%X child 0x%X, + panic(Duplicate children in %p. mask 0x%lX child 0x%lX, parent, parent-cg_mask, child-cg_mask); parent-cg_mask |= child-cg_mask; parent-cg_count += child-cg_count; Index: sys/kern/sched_ule.c === --- sys/kern/sched_ule.c (revision 210622) +++ sys/kern/sched_ule.c (working copy) @@ -851,7 +851,7 @@ * IPI the target cpu to force it to reschedule with the new * workload. */ - ipi_selected(1 TDQ_ID(low), IPI_PREEMPT); + ipi_cpu(TDQ_ID(low), IPI_PREEMPT); } tdq_unlock_pair(high, low); return (moved); @@ -974,7 +974,7 @@ return; } tdq-tdq_ipipending = 1; - ipi_selected(1 cpu, IPI_PREEMPT); + ipi_cpu(cpu, IPI_PREEMPT); } /* @@ -2413,7 +2413,7 @@ cpu = ts-ts_cpu; ts-ts_cpu = sched_pickcpu(td, 0); if (cpu != PCPU_GET(cpuid)) - ipi_selected(1 cpu, IPI_PREEMPT); + ipi_cpu(cpu, IPI_PREEMPT); #endif } @@ -2644,11 +2644,11 @@ sbuf_printf(sb, %*sgroup level=\%d\ cache-level=\%d\\n, indent, , indent, cg-cg_level); - sbuf_printf(sb, %*s cpu count=\%d\ mask=\0x%x\, indent, , + sbuf_printf(sb, %*s cpu count=\%d\ mask=\0x%lx\, indent, , cg-cg_count, cg-cg_mask); first = TRUE; for (i = 0; i MAXCPU; i++) { - if ((cg-cg_mask (1 i)) != 0) { + if ((cg-cg_mask cputomask(i)) != 0) { if (!first) sbuf_printf(sb, , ); else Index: sys/kern/kern_ktr.c === --- sys/kern/kern_ktr.c (revision 210622) +++ sys/kern/kern_ktr.c (working copy) @@ -207,7 +207,7 @@ if ((ktr_mask mask) == 0) return; cpu = KTR_CPU; - if (((1 cpu) ktr_cpumask) == 0) + if ((cputomask(cpu) ktr_cpumask) == 0) return; #if defined(KTR_VERBOSE) || defined(KTR_ALQ) td = curthread; Index: sys/kern/kern_pmc.c === --- sys/kern/kern_pmc.c (revision 210622) +++ sys/kern/kern_pmc.c (working copy) @@ -34,6 +34,7 @@ #include opt_hwpmc_hooks.h #include sys/types.h +#include sys/systm.h #include sys/pmc.h #include sys/pmckern.h #include sys/smp.h @@ -110,7 +111,7 @@ { #ifdef SMP return (pmc_cpu_is_present(cpu) - (hlt_cpus_mask (1 cpu)) == 0); + (hlt_cpus_mask cputomask(cpu)) == 0); #else return (1); #endif @@ -137,7 +138,7 @@ pmc_cpu_is_primary(int cpu) { #ifdef SMP - return ((logical_cpus_mask (1 cpu)) == 0); + return ((logical_cpus_mask cputomask(cpu)) == 0); #else return (1); #endif Index: sys/kern/subr_pcpu.c === --- sys/kern/subr_pcpu.c
Re: Unable to install 8.x on a PowerEdge R810
Kind of a large patch, but in order to make an omlette, you need to break a few servers. This is a diff against -CURRENT, not stable-8 as I didn't get a chance to test it. It is directly based off of changes that peter@ made to the Yahoo FreeBSD 7 tree. I have compile and boot tested this on my local machines, but I don't have 64 CPU machines to test upon. Sean Here is a patch version that applies to stable-8 at the moment. I changed 2 more cases where the data types were wrong, one in a printf and a case where a negative truth value was being used. Sea Index: sys/kern/subr_smp.c === --- sys/kern/subr_smp.c (revision 210622) +++ sys/kern/subr_smp.c (working copy) @@ -181,7 +181,7 @@ id = td-td_oncpu; if (id == NOCPU) return; - ipi_selected(1 id, IPI_AST); + ipi_selected(cputomask(id), IPI_AST); } /* @@ -318,7 +318,7 @@ CTR1(KTR_SMP, restart_cpus(%x), map); /* signal other cpus to restart */ - atomic_store_rel_int(started_cpus, map); + atomic_store_rel_long(started_cpus, map); /* wait for each to clear its bit */ while ((stopped_cpus map) != 0) @@ -399,7 +399,7 @@ if (((1 i) map) != 0 !CPU_ABSENT(i)) ncpus++; if (ncpus == 0) - panic(ncpus is 0 with map=0x%x, map); + panic(ncpus is 0 with map=0x%lx, map); /* obtain rendezvous lock */ mtx_lock_spin(smp_ipi_mtx); @@ -415,10 +415,10 @@ atomic_store_rel_int(smp_rv_waiters[0], 0); /* signal other processors, which will enter the IPI with interrupts off */ - ipi_selected(map ~(1 curcpu), IPI_RENDEZVOUS); + ipi_selected(map ~cputomask(curcpu), IPI_RENDEZVOUS); /* Check if the current CPU is in the map */ - if ((map (1 curcpu)) != 0) + if ((map cputomask(curcpu)) != 0) smp_rendezvous_action(); if (teardown_func == smp_no_rendevous_barrier) @@ -490,7 +490,7 @@ panic(Built bad topology at %p. CPU count %d != %d, top, top-cg_count, mp_ncpus); if (top-cg_mask != all_cpus) - panic(Built bad topology at %p. CPU mask 0x%X != 0x%X, + panic(Built bad topology at %p. CPU mask 0x%lX != 0x%lX, top, top-cg_mask, all_cpus); return (top); } @@ -531,7 +531,7 @@ parent-cg_children++; for (; parent != NULL; parent = parent-cg_parent) { if ((parent-cg_mask child-cg_mask) != 0) - panic(Duplicate children in %p. mask 0x%X child 0x%X, + panic(Duplicate children in %p. mask 0x%lX child 0x%lX, parent, parent-cg_mask, child-cg_mask); parent-cg_mask |= child-cg_mask; parent-cg_count += child-cg_count; Index: sys/kern/sched_ule.c === --- sys/kern/sched_ule.c (revision 210622) +++ sys/kern/sched_ule.c (working copy) @@ -851,7 +851,7 @@ * IPI the target cpu to force it to reschedule with the new * workload. */ - ipi_selected(1 TDQ_ID(low), IPI_PREEMPT); + ipi_cpu(TDQ_ID(low), IPI_PREEMPT); } tdq_unlock_pair(high, low); return (moved); @@ -974,7 +974,7 @@ return; } tdq-tdq_ipipending = 1; - ipi_selected(1 cpu, IPI_PREEMPT); + ipi_cpu(cpu, IPI_PREEMPT); } /* @@ -2413,7 +2413,7 @@ cpu = ts-ts_cpu; ts-ts_cpu = sched_pickcpu(td, 0); if (cpu != PCPU_GET(cpuid)) - ipi_selected(1 cpu, IPI_PREEMPT); + ipi_cpu(cpu, IPI_PREEMPT); #endif } @@ -2644,11 +2644,11 @@ sbuf_printf(sb, %*sgroup level=\%d\ cache-level=\%d\\n, indent, , indent, cg-cg_level); - sbuf_printf(sb, %*s cpu count=\%d\ mask=\0x%x\, indent, , + sbuf_printf(sb, %*s cpu count=\%d\ mask=\0x%lx\, indent, , cg-cg_count, cg-cg_mask); first = TRUE; for (i = 0; i MAXCPU; i++) { - if ((cg-cg_mask (1 i)) != 0) { + if ((cg-cg_mask cputomask(i)) != 0) { if (!first) sbuf_printf(sb, , ); else Index: sys/kern/kern_ktr.c === --- sys/kern/kern_ktr.c (revision 210622) +++ sys/kern/kern_ktr.c (working copy) @@ -207,7 +207,7 @@ if ((ktr_mask mask) == 0) return; cpu = KTR_CPU; - if (((1 cpu) ktr_cpumask) == 0) + if ((cputomask(cpu) ktr_cpumask) == 0) return; #if defined(KTR_VERBOSE) || defined(KTR_ALQ) td = curthread; Index: sys/kern/kern_pmc.c === --- sys/kern/kern_pmc.c (revision 210622) +++ sys/kern/kern_pmc.c (working copy) @@ -34,6 +34,7 @@ #include opt_hwpmc_hooks.h #include sys/types.h +#include sys/systm.h #include sys/pmc.h #include sys/pmckern.h #include sys/smp.h @@ -110,7 +111,7 @@ { #ifdef SMP return (pmc_cpu_is_present(cpu) - (hlt_cpus_mask (1 cpu)) == 0); + (hlt_cpus_mask cputomask(cpu)) == 0); #else return (1); #endif @@ -137,7 +138,7 @@ pmc_cpu_is_primary(int cpu) { #ifdef SMP - return ((logical_cpus_mask (1 cpu)) == 0); + return ((logical_cpus_mask cputomask(cpu)) == 0); #else return (1); #endif Index: sys/kern/subr_pcpu.c === --- sys/kern/subr_pcpu.c