| History log of /src/sys/dev/ic/malo.c |
| Revision | | Date | Author | Comments |
| 1.21 |
| 07-Sep-2024 |
andvar | spelling and grammar fixes, mainly in comments.
|
| 1.20 |
| 24-Dec-2021 |
riastradh | malo(4): Fix line breaks in attach output.
|
| 1.19 |
| 16-Jun-2021 |
riastradh | if_attach and if_initialize cannot fail, don't test return value
These were originally made failable back in 2017 when if_initialize allocated a softint in every interface for link state changes, so that it could fail gracefully instead of panicking:
https://mail-index.NetBSD.org/source-changes/2017/10/23/msg089053.html
However, this spawned many seldom- or never-tested error branches, which are risky to have around. And that softint in every interface has since been replaced by a single global workqueue, because link state changes require thread context but not low latency or high throughput:
https://mail-index.NetBSD.org/source-changes/2020/02/06/msg113759.html
So there is no longer any reason for if_initialize to fail. (The subroutine if_stats_init can't fail because percpu_alloc can't fail either.)
There is a snag: the softint_establish in if_percpuq_create could fail, potentially leading to bad consequences later on trying to use the softint. This change doesn't introduce any new bugs because of the snag -- if_percpuq_attach was already broken. However, the snag can be better addressed without spawning error branches, either by using a single softint or making softints less scarce.
(Separate commit will change the signatures of if_attach and if_initialize to return void, scheduled to ride whatever is the next convenient kernel bump.)
Patch and testing on amd64 and evbmips64-eb by maya@; commit message soliloquy, and compile-testing on evbppc/i386/earmv7hf, by me.
|
| 1.18 |
| 29-Jan-2020 |
thorpej | branches: 1.18.10; Adopt <net/if_stats.h>.
|
| 1.17 |
| 10-Nov-2019 |
chs | branches: 1.17.2; in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT and remove code to handle failures that can no longer happen.
|
| 1.16 |
| 22-Sep-2019 |
kamil | Reduce always true comparison in malo_cmd_set_txpower()
powerlevel is already checked for >=30 in the previous condition.
Found by the lgtm bot.
|
| 1.15 |
| 14-Dec-2018 |
jakllsch | use callout_destroy in malo_detach, not callout_stop
|
| 1.14 |
| 14-Dec-2018 |
jakllsch | always use correct function to free our copy of the microcode
|
| 1.13 |
| 03-Sep-2018 |
riastradh | Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
| 1.12 |
| 26-Jun-2018 |
msaitoh | branches: 1.12.2; Implement the BPF direction filter (BIOC[GS]DIRECTION). It provides backward compatibility with BIOC[GS]SEESENT ioctl. The userland interface is the same as FreeBSD.
This change also fixes a bug that the direction is misunderstand on some environment by passing the direction to bpf_mtap*() instead of checking m->m_pkthdr.rcvif.
|
| 1.11 |
| 26-Jun-2018 |
msaitoh | bpf_mtap*() after ieee80211_encap() should be bpf_mtap3() rather than bpf_mtap(). bpf_mtap3() is for raw bpf.
|
| 1.10 |
| 23-Oct-2017 |
msaitoh | branches: 1.10.2; If if_initialize() failed in the attach function, free resources and return.
|
| 1.9 |
| 02-Feb-2017 |
nonaka | branches: 1.9.6; wlan interfaces make interrupt routine running on softint context.
see http://mail-index.netbsd.org/tech-kern/2016/12/06/msg021281.html
tested device: * ath at pci: AR5212, AR5424 * athn at pci: AR9287 * ipw at pci: 2100BG * iwi at pci: 2915ABG * iwm at pci: 3165, 7260, 8260 * iwn at pci: 4945, 6235 * ral at pci: RT2560 * rtwn at pci: RTL8192CE
|
| 1.8 |
| 10-Jun-2016 |
ozaki-r | branches: 1.8.2; 1.8.4; Introduce m_set_rcvif and m_reset_rcvif
The API is used to set (or reset) a received interface of a mbuf. They are counterpart of m_get_rcvif, which will come in another commit, hide internal of rcvif operation, and reduce the diff of the upcoming change.
No functional change.
|
| 1.7 |
| 26-May-2016 |
ozaki-r | Introduce M_CLEARCTX and use it instead of open-coding rcvif
No functional change.
|
| 1.6 |
| 26-May-2016 |
ozaki-r | Use M_GETCTX
No functional change.
|
| 1.5 |
| 11-Mar-2016 |
macallan | malo_rx_desc::status is uint8_t, so don't try to endian-twiddle it
|
| 1.4 |
| 11-Mar-2016 |
christos | PR/50948: David Binderman: Fix misplaced parens
|
| 1.3 |
| 05-Aug-2012 |
degroote | branches: 1.3.2; 1.3.4; 1.3.18; Add pmf(9) handler to malo(4) wireless driver
|
| 1.2 |
| 30-Jul-2012 |
degroote | Add missing $NetBSD$ tags and __KERNEL_RCSID().
|
| 1.1 |
| 30-Jul-2012 |
degroote | Add malo(4)@pci driver for Marvell Libertas wireless adaptor
Ported from OpenBSD Known issues : - contrary to OpenBSD one, only support pci at the moment, because I don't have the necessary hardware to test PCMCIA / CARDUS Marvell Card - not connected to pmf(9) (unable to test it)
|
| 1.3.18.4 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
| 1.3.18.3 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
| 1.3.18.2 |
| 29-May-2016 |
skrll | Sync with HEAD
|
| 1.3.18.1 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
| 1.3.4.2 |
| 30-Oct-2012 |
yamt | sync with head
|
| 1.3.4.1 |
| 05-Aug-2012 |
yamt | file malo.c was added on branch yamt-pagecache on 2012-10-30 17:21:05 +0000
|
| 1.3.2.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
| 1.8.4.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.8.2.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.9.6.2 |
| 31-Jul-2018 |
martin | Pull up following revision(s) (requested by msaitoh in ticket #952):
sys/dev/ic/malo.c: revision 1.11
bpf_mtap*() after ieee80211_encap() should be bpf_mtap3() rather than bpf_mtap(). bpf_mtap3() is for raw bpf.
|
| 1.9.6.1 |
| 10-Dec-2017 |
snj | Pull up following revision(s) (requested by msaitoh in ticket #427): sys/arch/amiga/dev/if_bah_zbus.c: 1.17 sys/arch/arm/broadcom/bcm53xx_eth.c: 1.30 sys/arch/powerpc/booke/dev/pq3etsec.c: 1.32 sys/arch/usermode/dev/if_veth.c: 1.9 sys/dev/ic/an.c: 1.66 sys/dev/ic/athn.c: 1.17 sys/dev/ic/atw.c: 1.162 sys/dev/ic/bwi.c: 1.33 sys/dev/ic/dwc_gmac.c: 1.41-1.42 sys/dev/ic/malo.c: 1.10 sys/dev/ic/rt2560.c: 1.31 sys/dev/ic/rt2661.c: 1.36 sys/dev/ic/rt2860.c: 1.29 sys/dev/ic/rtw.c: 1.127 sys/dev/ic/rtwvar.h: 1.46 sys/dev/ic/smc90cx6.c: 1.71 sys/dev/ic/smc90cx6var.h: 1.12 sys/dev/ic/wi.c: 1.244 sys/dev/pci/if_ipw.c: 1.66 sys/dev/pci/if_iwi.c: 1.104 sys/dev/pci/if_iwm.c: 1.76 sys/dev/pci/if_iwn.c: 1.86 sys/dev/pci/if_rtwn.c: 1.13 sys/dev/pci/if_wm.c: 1.541 sys/dev/pci/if_wpi.c: 1.79 sys/dev/pci/ixgbe/ixgbe.c: 1.106 sys/dev/pci/ixgbe/ixv.c: 1.73 via patch sys/dev/pcmcia/if_malo_pcmcia.c: 1.15 sys/dev/scsipi/if_se.c: 1.95 sys/dev/usb/if_upl.c: 1.60 sys/net/if.c: 1.396 sys/net/if.h: 1.241 sys/net/if_arc.h: 1.23 sys/net/if_arcsubr.c: 1.78 sys/net/if_bridge.c: 1.136-1.137 sys/net/if_etherip.c: 1.39 sys/net/if_faith.c: 1.56 sys/net/if_gif.c: 1.131 sys/net/if_loop.c: 1.96 sys/net/if_mpls.c: 1.30 sys/net/if_pppoe.c: 1.129 sys/net/if_srt.c: 1.27 sys/net/if_stf.c: 1.102 sys/net/if_tap.c: 1.100 sys/net/if_vlan.c: 1.105 sys/netinet/ip_carp.c: 1.91 sys/rump/net/lib/libshmif/if_shmem.c: 1.73-1.74 sys/rump/net/lib/libvirtif/if_virt.c: 1.55-1.56 if_initalize() and if_attach() failed when resource allocation failed (e.g. allocating softint). Without this change, it panics. It's bad because resource shortage really occured when a lot of pseudo interface is created. To avoid this problem, don't panic and change return value of if_initialize() and if_attach() to int. Caller fanction will be recover from error cleanly by checking the return value. Return if bah_attach_subr() failed. If if_attach() failed in the attach function, return. - If if_initialize() failed in the attach function, free resources and return. - Add some missing frees in bridge_clone_destroy(). - KNF If error occured in bcmeth_ccb_attach(), free resources and return. If error occured in pq3etsec_attach(), free resources and return. If error occured in the attach function, free resources and return. - If if_initialize() failed in athn_attach(), free resources and return. - Add missing pmf_event_deregister() in athn_detach(). - Free resources correctly on some errors in atw_attach(). - Use apint*() insread of printf() in the attach function. If if_initialize() failed in the attach function, return. - If if_initialize() failed in the attach function, free resources and return. - Add missing dwc_gmac_free_dma_rings() and mutex_destroy() when attach failed. - If if_initialize() failed in the attach function, free resources and return. - ifp is always not NULL in iwi_detach(). Check correctly with ifp->if_softc. - If if_initialize() failed in the attach function, free resources and return. - Fix error path in the attach function correctly. If if_initialize() failed in the attach function, free resources and return. If if_attach() failed in the attach function, free resources and return. - If if_initialize() failed in the attach function, free resources and return. - KNF - If if_attach() failed in the attach function, free resources and return. - KNF Fix compile error. Fix compile error. We don't need '&mii', but just 'mii' for mii_detach(). Don't free sc_rthash twice
|
| 1.10.2.3 |
| 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
| 1.10.2.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
| 1.10.2.1 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
| 1.12.2.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
| 1.12.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
| 1.12.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
| 1.17.2.1 |
| 29-Feb-2020 |
ad | Sync with head.
|
| 1.18.10.1 |
| 17-Jun-2021 |
thorpej | Sync w/ HEAD.
|