#
1.151 |
|
20-Aug-2022 |
riastradh |
usbnet(9): New usbnet_ispromisc(un).
Replaces ifp->if_flags & IFF_PROMISC in multicast filter updates.
|
#
1.150 |
|
03-Mar-2022 |
riastradh |
usbnet: Omit needless detachcv name parameter to usbnet_attach.
|
#
1.149 |
|
03-Mar-2022 |
riastradh |
usbnet: Factor usbnet_init_rx_tx out into usbnet_if_init.
Make it private; no need for drivers to call it any more.
|
#
1.148 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit redundant device reset via *_uno_stop on init.
Only those drivers where *_uno_stop is just *_reset, and *_uno_init immediately calls *_reset afterward, are affected.
|
#
1.147 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: From *_uno_init, call *_uno_stop, not usbnet_stop.
Make usbnet_stop private now that no drivers use it.
None of the driver-independent logic in usbnet_stop has any effect at this point because we are guaranteed not to be running, so only the driver-dependent logic in *_uno_stop (at most) is needed.
For drivers with no *_uno_stop, just omit the call to usbnet_stop altogether.
Some of this logic is obviously redundant with the subsequent call to *_reset -- to be addressed in a subsequent commit.
|
#
1.146 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless isdying tests in *_uno_init.
usbnet(9) already checks this immediately before calling *_uno_init.
|
#
1.145 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless usbnet core lock and assertions.
During attach, the caller has exclusive access to the usbnet until usbnet_attach_ifp. At other times, register access is serialized either by the usbnet multicast lock or by IFNET_LOCK.
|
#
1.144 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Avoid undefined behaviour if read reg fails.
Some callers don't check the error code, e.g. ~all the mii phy drivers using PHY_READ. Just return zero if the device is gone or the xfer fails for any other reason.
|
#
1.143 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit redundant multicast filter update on init.
|
#
1.142 |
|
03-Mar-2022 |
riastradh |
usbnet: Apply hardware multicast filter updates synchronously again.
To make this work:
1. Do it only under a new lock, unp_mcastlock. This lock lives at IPL_SOFTCLOCK so it can be taken from network stack callouts. It is forbidden to acquire the usbnet core lock under unp_mcastlock.
2. Do it only after usbnet_init_rx_tx and before usbnet_stop; if issued at any other time, drop the update on the floor.
3. Make usbnet_init_rx_tx apply any pending multicast filter updates under the lock before setting the flag that allows SIOCADDMULTI or SIOCDELMULTI to apply the updates.
4. Remove core lock asserts from various drivers' register access routines. This is necessary because the multicast filter updates are done with register reads/writes, but _cannot_ take the core lock when the caller holds softnet_lock.
This now programs the hardware multicast filter redundantly in many drivers which already explicitly call *_uno_mcast from the *_uno_init routines. This is probably harmless, but it will likely be better to remove the explicit calls.
|
#
1.141 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless uno_mcast locked subroutines.
uno_mcast is now called with the core lock already held so there is no need for a separate locked subroutine.
|
#
1.140 |
|
03-Mar-2022 |
riastradh |
usbnet: Take the core lock around uno_mcast.
Every driver does this already. This will enable us to change the lock that serializes access to the registers so we can go back to doing this synchronously in SIOCADDMULTI/SIOCDELMULTI.
|
#
1.139 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless uno_init locked subroutines.
uno_init is now called with the core lock already held so there is no need for a separate locked subroutine.
|
#
1.138 |
|
03-Mar-2022 |
riastradh |
usbnet: Make the tx/rx locks private to usbnet.c.
Suffice it for the drivers to know that uno_tx_prepare and uno_rx_loop have exclusive access to the chain, and, for tx, exclusive access to the mbuf.
|
#
1.137 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy during attach.
usbnet_detach cannot run until the attach routine has finished (unless a driver goes out of its way to tie its shoelaces together and explicitly call it during the attach routine, which none of them do), so there is no need to hang onto a reference count that we release before attach returns.
|
#
1.136 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy in uno_mcast.
This callback always runs with IFNET_LOCK held, and during a task that usbnet_detach prevents scheduling anew and waits for finishing before completing the detach, so there is no need to hang onto a reference count here.
|
#
1.135 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy in uno_init.
This callback always runs with the IFNET_LOCK held, and the interface cannot be detached until the IFNET_LOCK is released, so there is no need to hang onto a reference count here. (None of the usbnet drivers touch the IFNET_LOCK except to verify it is held sometimes.)
|
#
1.134 |
|
03-Mar-2022 |
riastradh |
usbnet: Split multicast filter reprogramming into separate operation.
|
#
1.133 |
|
03-Mar-2022 |
riastradh |
usbnet: Enter uno_init with the core lock held.
This reduces code in all drivers except urndis(4) and aue(4).
However, it's still safe for urndis to drop the core lock because the ifnet is locked, and the ifnet lock covers the DOWN->UP (uno_init) and UP->DOWN (uno_stop) transitions.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.132 |
|
01-Mar-2021 |
jakllsch |
reduce aprint_error(9) abuse
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406
|
#
1.131 |
|
27-Mar-2020 |
nisimura |
branches: 1.131.4;
- change to use rcvfilt_locked() name to clarify the intent. - stylise receive filter manipulation logic. - use ETHER_F_ALLMULTI flag.
|
#
1.130 |
|
15-Mar-2020 |
thorpej |
Define and implement a locking protocol for the ifmedia / mii layers: - MP-safe drivers provide a mutex to ifmedia that is used to serialize access to media-related structures / hardware regsiters. Converted drivers use the new ifmedia_init_with_lock() function for this. The new name is provided to ease the transition. - Un-converted drivers continue to call ifmedia_init(), which will supply a compatibility lock to be used instead. Several media-related entry points must be aware of this compatibility lock, and are able to acquire it recursively a limited number of times, if needed. This is a SPIN mutex with priority IPL_NET. - This same lock is used to serialize access to PHY registers and other MII-related data structures.
The PHY drivers are modified to acquire and release the lock, as needed, and assert the lock is held as a diagnostic aid.
The "usbnet" framework has had an overhaul of its internal locking protocols to fit in with the media / mii changes, and the drivers adapted.
USB wifi drivers have been changed to provide their own adaptive mutex to the ifmedia later via a new ieee80211_media_init_with_lock() function. This is required because the USB drivers need an adaptive mutex.
Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.
mcx also now calls ifmedia_init_with_lock() because it needs to also use an adaptive mutex. The mcx driver still needs to be fully converted to NET_MPSAFE.
|
Revision tags: is-mlppp-base
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.150 |
|
03-Mar-2022 |
riastradh |
usbnet: Omit needless detachcv name parameter to usbnet_attach.
|
#
1.149 |
|
03-Mar-2022 |
riastradh |
usbnet: Factor usbnet_init_rx_tx out into usbnet_if_init.
Make it private; no need for drivers to call it any more.
|
#
1.148 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit redundant device reset via *_uno_stop on init.
Only those drivers where *_uno_stop is just *_reset, and *_uno_init immediately calls *_reset afterward, are affected.
|
#
1.147 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: From *_uno_init, call *_uno_stop, not usbnet_stop.
Make usbnet_stop private now that no drivers use it.
None of the driver-independent logic in usbnet_stop has any effect at this point because we are guaranteed not to be running, so only the driver-dependent logic in *_uno_stop (at most) is needed.
For drivers with no *_uno_stop, just omit the call to usbnet_stop altogether.
Some of this logic is obviously redundant with the subsequent call to *_reset -- to be addressed in a subsequent commit.
|
#
1.146 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless isdying tests in *_uno_init.
usbnet(9) already checks this immediately before calling *_uno_init.
|
#
1.145 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless usbnet core lock and assertions.
During attach, the caller has exclusive access to the usbnet until usbnet_attach_ifp. At other times, register access is serialized either by the usbnet multicast lock or by IFNET_LOCK.
|
#
1.144 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Avoid undefined behaviour if read reg fails.
Some callers don't check the error code, e.g. ~all the mii phy drivers using PHY_READ. Just return zero if the device is gone or the xfer fails for any other reason.
|
#
1.143 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit redundant multicast filter update on init.
|
#
1.142 |
|
03-Mar-2022 |
riastradh |
usbnet: Apply hardware multicast filter updates synchronously again.
To make this work:
1. Do it only under a new lock, unp_mcastlock. This lock lives at IPL_SOFTCLOCK so it can be taken from network stack callouts. It is forbidden to acquire the usbnet core lock under unp_mcastlock.
2. Do it only after usbnet_init_rx_tx and before usbnet_stop; if issued at any other time, drop the update on the floor.
3. Make usbnet_init_rx_tx apply any pending multicast filter updates under the lock before setting the flag that allows SIOCADDMULTI or SIOCDELMULTI to apply the updates.
4. Remove core lock asserts from various drivers' register access routines. This is necessary because the multicast filter updates are done with register reads/writes, but _cannot_ take the core lock when the caller holds softnet_lock.
This now programs the hardware multicast filter redundantly in many drivers which already explicitly call *_uno_mcast from the *_uno_init routines. This is probably harmless, but it will likely be better to remove the explicit calls.
|
#
1.141 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless uno_mcast locked subroutines.
uno_mcast is now called with the core lock already held so there is no need for a separate locked subroutine.
|
#
1.140 |
|
03-Mar-2022 |
riastradh |
usbnet: Take the core lock around uno_mcast.
Every driver does this already. This will enable us to change the lock that serializes access to the registers so we can go back to doing this synchronously in SIOCADDMULTI/SIOCDELMULTI.
|
#
1.139 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: Omit needless uno_init locked subroutines.
uno_init is now called with the core lock already held so there is no need for a separate locked subroutine.
|
#
1.138 |
|
03-Mar-2022 |
riastradh |
usbnet: Make the tx/rx locks private to usbnet.c.
Suffice it for the drivers to know that uno_tx_prepare and uno_rx_loop have exclusive access to the chain, and, for tx, exclusive access to the mbuf.
|
#
1.137 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy during attach.
usbnet_detach cannot run until the attach routine has finished (unless a driver goes out of its way to tie its shoelaces together and explicitly call it during the attach routine, which none of them do), so there is no need to hang onto a reference count that we release before attach returns.
|
#
1.136 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy in uno_mcast.
This callback always runs with IFNET_LOCK held, and during a task that usbnet_detach prevents scheduling anew and waits for finishing before completing the detach, so there is no need to hang onto a reference count here.
|
#
1.135 |
|
03-Mar-2022 |
riastradh |
usbnet drivers: No need for usbnet_busy in uno_init.
This callback always runs with the IFNET_LOCK held, and the interface cannot be detached until the IFNET_LOCK is released, so there is no need to hang onto a reference count here. (None of the usbnet drivers touch the IFNET_LOCK except to verify it is held sometimes.)
|
#
1.134 |
|
03-Mar-2022 |
riastradh |
usbnet: Split multicast filter reprogramming into separate operation.
|
#
1.133 |
|
03-Mar-2022 |
riastradh |
usbnet: Enter uno_init with the core lock held.
This reduces code in all drivers except urndis(4) and aue(4).
However, it's still safe for urndis to drop the core lock because the ifnet is locked, and the ifnet lock covers the DOWN->UP (uno_init) and UP->DOWN (uno_stop) transitions.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.132 |
|
01-Mar-2021 |
jakllsch |
reduce aprint_error(9) abuse
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406
|
#
1.131 |
|
27-Mar-2020 |
nisimura |
branches: 1.131.4;
- change to use rcvfilt_locked() name to clarify the intent. - stylise receive filter manipulation logic. - use ETHER_F_ALLMULTI flag.
|
#
1.130 |
|
15-Mar-2020 |
thorpej |
Define and implement a locking protocol for the ifmedia / mii layers: - MP-safe drivers provide a mutex to ifmedia that is used to serialize access to media-related structures / hardware regsiters. Converted drivers use the new ifmedia_init_with_lock() function for this. The new name is provided to ease the transition. - Un-converted drivers continue to call ifmedia_init(), which will supply a compatibility lock to be used instead. Several media-related entry points must be aware of this compatibility lock, and are able to acquire it recursively a limited number of times, if needed. This is a SPIN mutex with priority IPL_NET. - This same lock is used to serialize access to PHY registers and other MII-related data structures.
The PHY drivers are modified to acquire and release the lock, as needed, and assert the lock is held as a diagnostic aid.
The "usbnet" framework has had an overhaul of its internal locking protocols to fit in with the media / mii changes, and the drivers adapted.
USB wifi drivers have been changed to provide their own adaptive mutex to the ifmedia later via a new ieee80211_media_init_with_lock() function. This is required because the USB drivers need an adaptive mutex.
Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.
mcx also now calls ifmedia_init_with_lock() because it needs to also use an adaptive mutex. The mcx driver still needs to be fully converted to NET_MPSAFE.
|
Revision tags: is-mlppp-base
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.132 |
|
01-Mar-2021 |
jakllsch |
reduce aprint_error(9) abuse
|
Revision tags: thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base phil-wifi-20200406
|
#
1.131 |
|
27-Mar-2020 |
nisimura |
- change to use rcvfilt_locked() name to clarify the intent. - stylise receive filter manipulation logic. - use ETHER_F_ALLMULTI flag.
|
#
1.130 |
|
15-Mar-2020 |
thorpej |
Define and implement a locking protocol for the ifmedia / mii layers: - MP-safe drivers provide a mutex to ifmedia that is used to serialize access to media-related structures / hardware regsiters. Converted drivers use the new ifmedia_init_with_lock() function for this. The new name is provided to ease the transition. - Un-converted drivers continue to call ifmedia_init(), which will supply a compatibility lock to be used instead. Several media-related entry points must be aware of this compatibility lock, and are able to acquire it recursively a limited number of times, if needed. This is a SPIN mutex with priority IPL_NET. - This same lock is used to serialize access to PHY registers and other MII-related data structures.
The PHY drivers are modified to acquire and release the lock, as needed, and assert the lock is held as a diagnostic aid.
The "usbnet" framework has had an overhaul of its internal locking protocols to fit in with the media / mii changes, and the drivers adapted.
USB wifi drivers have been changed to provide their own adaptive mutex to the ifmedia later via a new ieee80211_media_init_with_lock() function. This is required because the USB drivers need an adaptive mutex.
Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.
mcx also now calls ifmedia_init_with_lock() because it needs to also use an adaptive mutex. The mcx driver still needs to be fully converted to NET_MPSAFE.
|
Revision tags: is-mlppp-base
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.131 |
|
27-Mar-2020 |
nisimura |
- change to use rcvfilt_locked() name to clarify the intent. - stylise receive filter manipulation logic. - use ETHER_F_ALLMULTI flag.
|
#
1.130 |
|
15-Mar-2020 |
thorpej |
Define and implement a locking protocol for the ifmedia / mii layers: - MP-safe drivers provide a mutex to ifmedia that is used to serialize access to media-related structures / hardware regsiters. Converted drivers use the new ifmedia_init_with_lock() function for this. The new name is provided to ease the transition. - Un-converted drivers continue to call ifmedia_init(), which will supply a compatibility lock to be used instead. Several media-related entry points must be aware of this compatibility lock, and are able to acquire it recursively a limited number of times, if needed. This is a SPIN mutex with priority IPL_NET. - This same lock is used to serialize access to PHY registers and other MII-related data structures.
The PHY drivers are modified to acquire and release the lock, as needed, and assert the lock is held as a diagnostic aid.
The "usbnet" framework has had an overhaul of its internal locking protocols to fit in with the media / mii changes, and the drivers adapted.
USB wifi drivers have been changed to provide their own adaptive mutex to the ifmedia later via a new ieee80211_media_init_with_lock() function. This is required because the USB drivers need an adaptive mutex.
Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.
mcx also now calls ifmedia_init_with_lock() because it needs to also use an adaptive mutex. The mcx driver still needs to be fully converted to NET_MPSAFE.
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.130 |
|
15-Mar-2020 |
thorpej |
Define and implement a locking protocol for the ifmedia / mii layers: - MP-safe drivers provide a mutex to ifmedia that is used to serialize access to media-related structures / hardware regsiters. Converted drivers use the new ifmedia_init_with_lock() function for this. The new name is provided to ease the transition. - Un-converted drivers continue to call ifmedia_init(), which will supply a compatibility lock to be used instead. Several media-related entry points must be aware of this compatibility lock, and are able to acquire it recursively a limited number of times, if needed. This is a SPIN mutex with priority IPL_NET. - This same lock is used to serialize access to PHY registers and other MII-related data structures.
The PHY drivers are modified to acquire and release the lock, as needed, and assert the lock is held as a diagnostic aid.
The "usbnet" framework has had an overhaul of its internal locking protocols to fit in with the media / mii changes, and the drivers adapted.
USB wifi drivers have been changed to provide their own adaptive mutex to the ifmedia later via a new ieee80211_media_init_with_lock() function. This is required because the USB drivers need an adaptive mutex.
Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.
mcx also now calls ifmedia_init_with_lock() because it needs to also use an adaptive mutex. The mcx driver still needs to be fully converted to NET_MPSAFE.
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.129 |
|
01-Mar-2020 |
nisimura |
introduce AXE_IS_172() conditional to highlight odd ball 172 and invert most IF-THEN-ELSE. consistent white spaces.
|
#
1.128 |
|
01-Mar-2020 |
nisimura |
use DOPAUSE. 772B Lenovo now has working rxpause,txpause
|
#
1.127 |
|
01-Mar-2020 |
nisimura |
simplify single bit tests. no code difference is observed
|
Revision tags: ad-namecache-base3
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
branches: 1.121.2; Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.126 |
|
29-Feb-2020 |
nisimura |
add comments to show the RX filter intent
|
#
1.125 |
|
29-Feb-2020 |
nisimura |
make sure to accept bcast frame all the time
|
#
1.124 |
|
29-Feb-2020 |
nisimura |
iron out receive filter multicast/promisc logic
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.123 |
|
24-Feb-2020 |
rin |
0x%#x --> %#x for non-external codes. Also, stop mixing up 0x%x and %#x in single files as far as possible.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.122 |
|
29-Jan-2020 |
thorpej |
Adopt <net/if_stats.h>.
|
Revision tags: ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
#
1.121 |
|
07-Jan-2020 |
maxv |
Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.121 |
|
07-Jan-2020 |
maxv |
Localify, constify.
|
Revision tags: phil-wifi-20191119
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
branches: 1.102.2; remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.120 |
|
26-Aug-2019 |
rin |
PR kern/54486
Revert workaround introduced in rev 1.94: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/usb/if_axe.c#rev1.94
This is a problem specific to ARMv6+, and addressed by arch/arm/conf/Makefile.arm rev 1.50: http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/arm/conf/Makefile.arm#rev1.50
XXX pullup netbsd-9
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.119 |
|
23-Aug-2019 |
mrg |
s/UBSNET_MII_DECL_DEFAULT/USBNET_MII_DECL_DEFAULT/. from sc.dying.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.118 |
|
20-Aug-2019 |
mrg |
couple more changes to usbnet(9):
- MII read/write reg return int instead of usbd_status (requested by skrll) - usbnet_attach_ifp(9) changes arg, two mii-specific flags are placed by a pointer to new struct usbnet_mii. if not NULL, then attach an MII to this interface like previous have_mii parameter. use this to allow ure(4) to properly pass PHY location to mii_attach().
welcome netbsd 9.99.10.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.117 |
|
19-Aug-2019 |
mrg |
move the check against un_phyno from usbnet back into the drivers that do this (axe, axen, mue, smsc, ure.) it made mii scanning only work for phy 0, and aue needs it for at least one device.
fix smsc to return usbd_status not -1 on failure. XXX smsc was writing to '*val' even in error cases, it does not now.
remove a double call to IFQ_SET_READY() (noticed by chuq).
avoid unlock+instant relock by using usbnet_lock_mii_un_locked().
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.116 |
|
16-Aug-2019 |
mrg |
make the default debug level zero.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.115 |
|
15-Aug-2019 |
mrg |
- usbnet_rx_loop_cb's usbd_xfer parameter is never used and available in the usbnet_chain if needed. remove it - usbnet media status change already set link to false, don't repeat this in every driver - don't clear link in stop, nothing was re-enabling it for non-MII - add optional uno_tick_cb(struct usbnet *un) that is called from the usbnet tick timer - remove wrong debug sysctl prototype
rx_loop and timer are kernel versions changes, but hopefully this is the last one for usbnet. working with 3 more drivers now (cue, mue and url), leaving only aue, kue, upl and umb undone (aue may work with previously supported devices, mine doesn't work with our driver, kue and upl have patches for testing and umb is undone.)
|
#
1.114 |
|
14-Aug-2019 |
mrg |
introduce usbnet_set_dying(). will be used by url(4) conversion. bump version.
introduce USBNET_MODULE() that encompasses almost all the module specific code for usbnet modules. they still need to include the relevant ioconf.c, but everything else is now just, eg,
USBNET_MODULE(axen)
|
#
1.113 |
|
11-Aug-2019 |
mrg |
don't set dv_private. it's a bad pattern and only didn't trip kmem_free() lossage because struct usbnet is at the start of the softc.
for now, enforce this as part of the ABI.
catch up urndis with tx_prepare checking buffer length, and also add an assert to usbnet_start_locked() to match.
|
#
1.112 |
|
11-Aug-2019 |
mrg |
void -Wsign-compare issue and add a stupid cast.
revert this if m_pkthdr.len becomes unsigned.
|
#
1.111 |
|
11-Aug-2019 |
mrg |
copy a pattern from if_udav.c, which already had "too much" check.
even though overflow or underflow is really unlikely here, reorder various expressions to reduce the likelyhood even further.
|
#
1.110 |
|
11-Aug-2019 |
mrg |
in tx_prepare callback make sure to reject any mbuf that is larger than can fit in the buffer. done at the driver and not usbnet layer because the driver knows how much beyond the mbuf data needs to be sent (headers and trailers.)
axen(4) had a KASSERT() for this condition, but there's no invariant here we can check so it's best as an error return.
XXX: only tested on these drivers, needs to be copied to udav, smsc and urndis after testing as well as the not commited conversions.
|
#
1.109 |
|
10-Aug-2019 |
mrg |
reduce the scope of struct usbnet: - move a large number of members internal to usbnet.c's new "struct usbnet_private". - provide accessors for a few of these - move struct usbnet_cdata into usbnet.c as well, but move bufsz, list count, and xfer flags back out into struct usbnet, and have them set as part of the setup efore usbnet_attach() - split the intr pipe parts into their own structure - move all the main usbnet*lock* code into usbnet.c too
usbnet_attach() goes down to 2 args, and the inputs needed are now the full contents of 'struct usbnet' besides the driver owned 'un_flags' and usbnet owned 'un_pri'.
welcome netbsd 9.99.6.
|
#
1.108 |
|
09-Aug-2019 |
mrg |
use new un_flags member of usbnet: - axen(4) and cdce(4) are now able to use struct usbnet directly as softc, udav also done but untested
|
#
1.107 |
|
09-Aug-2019 |
mrg |
update usbnet some: - move rx/tx xfer flags into usbnet_cdata - move the callbacks into usbnet_ops structure - move rx/tx xfer flags arguments from usbnet_init_rx_tx() and move them all into usbnet_attach() arguments - s/miibus/mii/ in some places for consistency
other clean up: - create wrapper functions for callbacks, move knowledge about special handling (OK to be missing, error eating) there. - use cdata pointer if already available - provide some more macros (will be real functions later) for accessing usbnet members, use existing ones more
bump kernel version.
|
#
1.106 |
|
06-Aug-2019 |
mrg |
for ethernet usb network devices, print the mac addr in usbnet.
|
#
1.105 |
|
06-Aug-2019 |
mrg |
extend usbnet to cope with if_upl, if_smsc, and if_umb needs:
- usbnet_enqueue() can set mbuf flags and csum_data - usbnet_input() for non-ethernet based devices (upl, umb) - allow a complete override for ioctl() - remove converted list -- we have compiling and/or working patches for all the devices except for umb(4), will be merged as testing happens
hopefully this is the last ABI change, though it may end up being extended for additional smsc(4) support.
hello for real netbsd 9.99.3!
|
#
1.104 |
|
04-Aug-2019 |
mrg |
convert axe(4) and ure(4) to usbnet.
axe loses 838 lines (37%) and ure loses 716 lines (36%).
|
#
1.103 |
|
01-Aug-2019 |
mrg |
fix locking botch.
|
Revision tags: netbsd-9-base
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.102 |
|
21-Jul-2019 |
mrg |
remove unused structure members. this brings most <foo>_chain and <foo>_cdata structures into being identical for usb ethernet drivers.
upl(4) and url(4) need more work.
|
#
1.101 |
|
21-Jul-2019 |
mrg |
remove unused axe_accum and axe_idx members of struct axe_chain.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.100 |
|
15-Jul-2019 |
mrg |
adjust axe(4) similar to recent axen(4)/cdce(4)/ure(4) updates (which were in turn partly based upon smsc(4) changes): - mark network interface MPSAFE, and use MPSAFE calls - convert to local tick task doing watchdog timeout - add global, tx and rx locks - add ratelimited tx error message - split many functions into locked/unlocked version - use more const - fix some comments - remove spl - don't bother with OACTIVE and do it all internally (axe_tx_cnt)
additional changes here: - use axe_stop() to abort pipes in detach
fixes a crash potential i only saw when almost finished debugging these changes..
|
#
1.99 |
|
14-Jul-2019 |
mrg |
move software parts out of the "reg" header.
|
Revision tags: phil-wifi-20190609
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
branches: 1.90.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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.98 |
|
28-May-2019 |
msaitoh |
Use ETHER_LOCK()/ETHER_UNLOCK() for all ethernet drivers to protect ec_multi*.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.97 |
|
23-May-2019 |
msaitoh |
Whitespace fix (mainly tabify).
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.96 |
|
23-May-2019 |
msaitoh |
-No functional change: - KNF - u_int*_t -> uint*_t.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127
|
#
1.95 |
|
22-Jan-2019 |
msaitoh |
Change MII PHY read/write API from:
int (*mii_readreg_t)(device_t, int, int); void (*mii_writereg_t)(device_t, int, int, int); to:
int (*mii_readreg_t)(device_t, int, int, uint16_t *); int (*mii_writereg_t)(device_t, int, int, uint16_t);
Now we can test if a read/write operation failed or not by the return value.
In 802.3 spec says that the PHY shall not respond to read/write transaction to the unimplemented register(22.2.4.3). Detecting timeout can be used to check whether a register is implemented or not (if the register conforms to the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.
Note that I noticed that the following code do infinite loop in the read/wirte function. If it accesses unimplemented PHY register, it will hang. It should be fixed:
arm/at91/at91emac.c arm/ep93xx/epe.c arm/omap/omapl1x_emac.c mips/ralink/ralink_eth.c arch/powerpc/booke/dev/pq3etsec.c(read) dev/cadence/if_cemac.c <- hkenken dev/ic/lan9118.c
Tested with the following device:
axe+ukphy axe+rgephy axen+rgephy (tested by Andrius V) wm+atphy wm+ukphy wm+igphy wm+ihphy wm+makphy sk+makphy sk+brgphy sk+gentbi msk+makphy sip+icsphy sip+ukphy re+rgephy bge+brgphy bnx+brgphy gsip+gphyter rtk+rlphy fxp+inphy (tested by Andrius V) tlp+acphy ex+exphy epic+qsphy vge+ciphy (tested by Andrius V) vr+ukphy (tested by Andrius V) vte+ukphy (tested by Andrius V)
Not tested (MAC): arm:at91emac arm:cemac arm:epe arm:geminigmac arm:enet arm:cpsw arm:emac(omac) arm:emac(sunxi) arm:npe evbppc:temac macppc:bm macppc:gm mips:aumac mips:ae mips:cnmac mips:reth mips:sbmac playstation2:smap powerpc:tsec powerpc:emac(ibm4xx) sgimips:mec sparc:be sf ne(ax88190, dl10019) awge ep gem hme smsh mtd sm age alc ale bce cas et jme lii nfe pcn ste stge tl xi aue mue smsc udav url
Not tested (PHY): amhphy bmtphy dmphy etphy glxtphy ikphy iophy lxtphy nsphyter pnaphy rdcphy sqphy tlphy tqphy urlphy
|
Revision tags: pgoyette-compat-20190118
|
#
1.94 |
|
06-Jan-2019 |
rin |
Fix kernel panic on arm reported by @furandon_pig on Twitter.
Hardware header is 2-byte aligned in RX buffer, not 4-byte. For some architectures, __builtin_memcpy() of GCC 6 attempts to copy 4-byte header at once, which results in alignment error.
|
Revision tags: pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.93 |
|
12-Sep-2018 |
christos |
Don't have modules depend on bpf; they will find the dependency dynamically at runtime. Otherwise builtin modules will complain about non-builtin bpf.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.92 |
|
02-Aug-2018 |
riastradh |
Fix usb_rem_task_wait API.
- Return whether it removed task from queue or not. . True if it was on the queue and we intercepted it before it ran. . False if we could not intercept it: either it wasn't queued, or it already ran. (Up to caller to distinguish these cases.) - Pass an optional interlock like callout_halt.
While here, simplify.
ok mrg@
|
#
1.91 |
|
29-Jul-2018 |
riastradh |
Use callout_halt and usb_rem_task_wait in axe(4).
|
Revision tags: pgoyette-compat-0728 phil-wifi-base
|
#
1.90 |
|
26-Jun-2018 |
msaitoh |
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.
|
Revision tags: pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.89 |
|
27-Apr-2018 |
christos |
use the proper station nodeid read command.
|
#
1.88 |
|
22-Apr-2018 |
christos |
merge duplicated code, back to logging error.
|
Revision tags: pgoyette-compat-0422
|
#
1.87 |
|
21-Apr-2018 |
christos |
downgrade error to debug.
|
#
1.86 |
|
20-Apr-2018 |
christos |
It was not gcc's fault for correctly detecting an uninitialized variable. Fix the uninitialized variable issues by error checking things.
|
#
1.85 |
|
20-Apr-2018 |
christos |
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
|
Revision tags: pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.84 |
|
21-Jan-2018 |
skrll |
branches: 1.84.2; PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.84 |
|
21-Jan-2018 |
skrll |
PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is supplied wherever such a transfer is setup. We can drop USBD_SHORT_XFER_OK as it has not bearing on number of TDs
|
Revision tags: tls-maxphys-base-20171202
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.83 |
|
28-Oct-2017 |
pgoyette |
Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
Revision tags: nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
branches: 1.82.6; Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
branches: 1.80.2; Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.82 |
|
06-Mar-2017 |
ozaki-r |
Add missing function declarations
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.81 |
|
03-Mar-2017 |
msaitoh |
Add missing opt_net_mpsafe.h.
|
Revision tags: nick-nhusb-base-20170204 bouyer-socketcan-base
|
#
1.80 |
|
12-Jan-2017 |
maya |
Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.80 |
|
12-Jan-2017 |
maya |
Appease coverity which is having nightmares about strings not being null-terminated by using strlcpy rather than strncpy when it doesn't matter.
ok christos.
|
Revision tags: pgoyette-localcount-20170107
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
branches: 1.72.2; 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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|
#
1.79 |
|
15-Dec-2016 |
ozaki-r |
Move bpf_mtap and if_ipackets++ on Rx of each driver to percpuq if_input
The benefits of the change are: - We can reduce codes - We can provide the same behavior between drivers - Where/When if_ipackets is counted up - Note that some drivers still update packet statistics in their own way (periodical update) - Moved bpf_mtap run in softint - This makes it easy to MP-ify bpf
Proposed on tech-kern and tech-net
|
Revision tags: nick-nhusb-base-20161204
|
#
1.78 |
|
04-Dec-2016 |
skrll |
Fix a -Werror=sign-compare
|
#
1.77 |
|
04-Dec-2016 |
skrll |
Whitespace
|
#
1.76 |
|
04-Dec-2016 |
skrll |
Sync with FreeBSD/OpenBSD and add support for 88772B devices.
While I'm here convert to USB_DEBUG
|
#
1.75 |
|
25-Nov-2016 |
skrll |
+#include "opt_usb.h"
|
Revision tags: pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
|
#
1.74 |
|
27-Aug-2016 |
skrll |
Fix harmless typo
|
#
1.73 |
|
27-Aug-2016 |
skrll |
flxd's axe(4) - I think.
|
Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907
|
#
1.72 |
|
10-Jun-2016 |
ozaki-r |
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.
|
Revision tags: nick-nhusb-base-20160529
|
#
1.71 |
|
23-Apr-2016 |
skrll |
Merge nick-nhusb
- API / infrastructure changes to support memory management changes. - Memory management improvements and bug fixes. - HCDs should now be MP safe - conversion to KERNHIST based debug - FS/LS isoc support on ehci(4). - conversion to kmem(9) - Some USB 3 support - mostly from Takahiro HAYASHI (t-hash). - interrupt transfers now get proper DMA operations - general bug fixes - kern/48308 - uhub status notification improvements - umass(4) probe fix (applied to HEAD already) - ohci(4) short transfer fix
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319
|
#
1.70 |
|
09-Feb-2016 |
ozaki-r |
Introduce softint-based if_input
This change intends to run the whole network stack in softint context (or normal LWP), not hardware interrupt context. Note that the work is still incomplete by this change; to that end, we also have to softint-ify if_link_state_change (and bpf) which can still run in hardware interrupt.
This change softint-ifies at ifp->if_input that is called from each device driver (and ieee80211_input) to ensure Layer 2 runs in softint (e.g., ether_input and bridge_input). To this end, we provide a framework (called percpuq) that utlizes softint(9) and percpu ifqueues. With this patch, rxintr of most drivers just queues received packets and schedules a softint, and the softint dequeues packets and does rest packet processing.
To minimize changes to each driver, percpuq is allocated in struct ifnet for now and that is initialized by default (in if_attach). We probably have to move percpuq to softc of each driver, but it's future work. At this point, only wm(4) has percpuq in its softc as a reference implementation.
Additional information including performance numbers can be found in the thread at tech-kern@ and tech-net@: http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html
Acknowledgment: riastradh@ greatly helped this work. Thank you very much!
|
Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606
|
#
1.69 |
|
13-Apr-2015 |
riastradh |
Convert sys/dev to use <sys/rndsource.h>.
|
#
1.68 |
|
08-Apr-2015 |
nonaka |
Added pmf hook.
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base tls-maxphys-base
|
#
1.67 |
|
10-Aug-2014 |
tls |
branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.66 |
|
08-Nov-2013 |
roy |
branches: 1.66.2; Add GPIO programming to support more PHY.
Most of the work done by skrll@ taken from FreeBSD, but finished and tested by me using an AX88178 axe and a RTL8211 PHY.
|
#
1.65 |
|
12-Sep-2013 |
martin |
#ifdef some variables just like their use
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
#
1.64 |
|
22-Jan-2013 |
jmcneill |
branches: 1.64.2; - Add a USBD_MPSAFE flag to usbd_open_pipe. If not set, acquire KERNEL_LOCK before invoking xfer callbacks on this pipe. - Add an extra flags parameter to usb_init_task. If USBD_TASKQ_MPSAFE is not present, acquire KERNEL_LOCK before invoking the task callback.
|
#
1.63 |
|
16-Jan-2013 |
christos |
fix misplaced paren
|
#
1.62 |
|
05-Jan-2013 |
christos |
- need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
#
1.61 |
|
27-Dec-2012 |
skrll |
Consistent/Correct error message from failing usbd_set_config.
Use aprint_error_dev.
|
Revision tags: yamt-pagecache-base7
|
#
1.60 |
|
26-Nov-2012 |
christos |
put back rest of the lines that got cut off.
|
#
1.59 |
|
26-Nov-2012 |
christos |
PR/47245: Toby Karyadi: more matches for AX88772B usb ethernet.
|
#
1.58 |
|
25-Nov-2012 |
christos |
PR/47245: Toby Karyadi: Add AX88772B support to axe(4), e.g. for DLINK DUB-E100 C1
|
Revision tags: yamt-pagecache-base6
|
#
1.57 |
|
24-Aug-2012 |
msaitoh |
branches: 1.57.2; Fix typos
|
#
1.56 |
|
22-Jul-2012 |
matt |
Fix mii_statchg to take a 'struct ifnet *' instead of device_t. This fixes problem with a common MDIO bus used for multiple interfaces. Some drivers converted to CFATTACL_DECL_NEW.
|
Revision tags: jmcneill-usbmp-base10
|
#
1.55 |
|
01-Jun-2012 |
nonaka |
Add a dependency on bpf module.
|
Revision tags: yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7
|
#
1.54 |
|
11-Mar-2012 |
mrg |
minor cleanups from usbmp: - move usbd_delay_ms() into usbdivar.h in the usb_subr.c section - minor rcsid fixes - copyright maintenence
|
Revision tags: jmcneill-usbmp-base6
|
#
1.53 |
|
06-Mar-2012 |
mrg |
pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.52 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base
|
#
1.51 |
|
02-Feb-2012 |
tls |
Entropy-pool implementation move and cleanup.
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev.
2) Remove use of NRND as test for presence of entropy-pool code throughout source tree.
3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit.
4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources.
5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each.
ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
|
Revision tags: jmcneill-usbmp-pre-base2 mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.50 |
|
25-Aug-2011 |
pgoyette |
branches: 1.50.2; 1.50.6; Remove some debugging code that was accidentally committed
|
#
1.49 |
|
25-Aug-2011 |
pgoyette |
Update the module command-processing routine to match the ioconf files
|
#
1.48 |
|
23-Aug-2011 |
pgoyette |
Update for modular build
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.47 |
|
03-Nov-2010 |
dyoung |
Stop using the compatibility macros USB_ATTACH(), USB_DETACH(), USB_MATCH(), et cetera. These files produce the same assembly (according to objdump -d) before and after the change, except for if_cue.c where two adjacent instructions inexplicably change order.
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2
|
#
1.46 |
|
14-Aug-2010 |
tsutsui |
Don't free TX mbuf until it's passed to bpf(9).
|
#
1.45 |
|
14-Aug-2010 |
tsutsui |
- use uint8_t for xfer buffers and byte numbers - use bool for sc_dying and sc_attached booleans
|
#
1.44 |
|
14-Aug-2010 |
tsutsui |
No need to keep TX/RX mbufs during xfers in struct axe_chain. All xfers are done against axe_buf allocated by usbd_alloc_buffer() and nothing touched preserved mbufs during xfers.
|
#
1.43 |
|
14-Aug-2010 |
tsutsui |
Fix missed botch in previous.
|
#
1.42 |
|
14-Aug-2010 |
tsutsui |
Make pointer arithmetics of RX buf in axe_rxeof() more readable to avoid further confusion.
|
#
1.41 |
|
14-Aug-2010 |
tsutsui |
Apply rev 1.39 again. The assignment is not dead, but just a leftover that causes a RX bug.
Now axe(4) can receive fragmented packets.
|
#
1.40 |
|
14-Aug-2010 |
tsutsui |
Ugh, no, revert previous.
|
#
1.39 |
|
14-Aug-2010 |
tsutsui |
Remove dead assignment.
|
Revision tags: yamt-nfs-mp-base10
|
#
1.38 |
|
24-Jun-2010 |
tsutsui |
KNF and misc cosmetics.
|
#
1.37 |
|
24-Jun-2010 |
tsutsui |
Remove unused sc->axe_stop_task in softc.
|
#
1.36 |
|
24-Jun-2010 |
tsutsui |
Fix several botches: * in axe_detach(): * call callout_destroy(9) after axe_stop() which calls callout_stop(9) (otherwise gets panic on DIAGNOSTIC and LOCK_DEBUG kernel) * no need to call usbd_abort_pipe() that are done in axe_stop() * no need to call usb_detach_wait() twice * also destroy axe_mii_lock mutex * in axe_tick_task(): * fix an inverted logic
|
#
1.35 |
|
23-Jun-2010 |
pgoyette |
Update if_axe for additional chips and models. Mostly imported from OpenBSD, with significant contribution from FUKAUMI Naoki.
Also addresses PR kern/40456
|
#
1.34 |
|
23-Jun-2010 |
pgoyette |
Fix cut&paste error - the commit log message was correct, just the code got messed up. Thanks cegger@ for noticing!
|
#
1.33 |
|
22-Jun-2010 |
pgoyette |
Make sure we unlock before exit.
|
Revision tags: uebayasi-xip-base1
|
#
1.32 |
|
05-Apr-2010 |
joerg |
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf check into the inline functions as well the fourth argument for bpf_attach.
|
Revision tags: yamt-nfs-mp-base9 uebayasi-xip-base
|
#
1.31 |
|
19-Jan-2010 |
pooka |
branches: 1.31.2; 1.31.4; Redefine bpf linkage through an always present op vector, i.e. #if NBPFILTER is no longer required in the client. This change doesn't yet add support for loading bpf as a module, since drivers can register before bpf is attached. However, callers of bpf can now be modularized.
Dynamically loadable bpf could probably be done fairly easily with coordination from the stub driver and the real driver by registering attachments in the stub before the real driver is loaded and doing a handoff. ... and I'm not going to ponder the depths of unload here.
Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
|
Revision tags: matt-premerge-20091211
|
#
1.30 |
|
06-Dec-2009 |
dyoung |
Simplify several device-activation hooks.
|
Revision tags: jym-xensuspend-nbase
|
#
1.29 |
|
23-Sep-2009 |
plunky |
fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
Revision tags: yamt-nfs-mp-base8
|
#
1.28 |
|
04-Sep-2009 |
dyoung |
Change spaces to tabs and remove some unnecessary parentheses. No functional change intended.
|
#
1.27 |
|
04-Sep-2009 |
dyoung |
Expand <dev/usb/usb_port.h> definitions, and lightly unifdef(1).
|
Revision tags: yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.26 |
|
07-Nov-2008 |
dyoung |
*** Summary ***
When a link-layer address changes (e.g., ifconfig ex0 link 02:de:ad:be:ef:02 active), send a gratuitous ARP and/or a Neighbor Advertisement to update the network-/link-layer address bindings on our LAN peers.
Refuse a change of ethernet address to the address 00:00:00:00:00:00 or to any multicast/broadcast address. (Thanks matt@.)
Reorder ifnet ioctl operations so that driver ioctls may inherit the functions of their "class"---ether_ioctl(), fddi_ioctl(), et cetera---and the class ioctls may inherit from the generic ioctl, ifioctl_common(), but both driver- and class-ioctls may override the generic behavior. Make network drivers share more code.
Distinguish a "factory" link-layer address from others for the purposes of both protecting that address from deletion and computing EUI64.
Return consistent, appropriate error codes from network drivers.
Improve readability. KNF.
*** Details ***
In if_attach(), always initialize the interface ioctl routine, ifnet->if_ioctl, if the driver has not already initialized it. Delete if_ioctl == NULL tests everywhere else, because it cannot happen.
In the ioctl routines of network interfaces, inherit common ioctl behaviors by calling either ifioctl_common() or whichever ioctl routine is appropriate for the class of interface---e.g., ether_ioctl() for ethernets.
Stop (ab)using SIOCSIFADDR and start to use SIOCINITIFADDR. In the user->kernel interface, SIOCSIFADDR's argument was an ifreq, but on the protocol->ifnet interface, SIOCSIFADDR's argument was an ifaddr. That was confusing, and it would work against me as I make it possible for a network interface to overload most ioctls. On the protocol->ifnet interface, replace SIOCSIFADDR with SIOCINITIFADDR. In ifioctl(), return EPERM if userland tries to invoke SIOCINITIFADDR.
In ifioctl(), give the interface the first shot at handling most interface ioctls, and give the protocol the second shot, instead of the other way around. Finally, let compatibility code (COMPAT_OSOCK) take a shot.
Pull device initialization out of switch statements under SIOCINITIFADDR. For example, pull ..._init() out of any switch statement that looks like this:
switch (...->sa_family) { case ...: ..._init(); ... break; ... default: ..._init(); ... break; }
Rewrite many if-else clauses that handle all permutations of IFF_UP and IFF_RUNNING to use a switch statement,
switch (x & (IFF_UP|IFF_RUNNING)) { case 0: ... break; case IFF_RUNNING: ... break; case IFF_UP: ... break; case IFF_UP|IFF_RUNNING: ... break; }
unifdef lots of code containing #ifdef FreeBSD, #ifdef NetBSD, and #ifdef SIOCSIFMTU, especially in fwip(4) and in ndis(4).
In ipw(4), remove an if_set_sadl() call that is out of place.
In nfe(4), reuse the jumbo MTU logic in ether_ioctl().
Let ethernets register a callback for setting h/w state such as promiscuous mode and the multicast filter in accord with a change in the if_flags: ether_set_ifflags_cb() registers a callback that returns ENETRESET if the caller should reset the ethernet by calling if_init(), 0 on success, != 0 on failure. Pull common code from ex(4), gem(4), nfe(4), sip(4), tlp(4), vge(4) into ether_ioctl(), and register if_flags callbacks for those drivers.
Return ENOTTY instead of EINVAL for inappropriate ioctls. In zyd(4), use ENXIO instead of ENOTTY to indicate that the device is not any longer attached.
Add to if_set_sadl() a boolean 'factory' argument that indicates whether a link-layer address was assigned by the factory or some other source. In a comment, recommend using the factory address for generating an EUI64, and update in6_get_hw_ifid() to prefer a factory address to any other link-layer address.
Add a routing message, RTM_LLINFO_UPD, that tells protocols to update the binding of network-layer addresses to link-layer addresses. Implement this message in IPv4 and IPv6 by sending a gratuitous ARP or a neighbor advertisement, respectively. Generate RTM_LLINFO_UPD messages on a change of an interface's link-layer address.
In ether_ioctl(), do not let SIOCALIFADDR set a link-layer address that is broadcast/multicast or equal to 00:00:00:00:00:00.
Make ether_ioctl() call ifioctl_common() to handle ioctls that it does not understand.
In gif(4), initialize if_softc and use it, instead of assuming that the gif_softc and ifp overlap.
Let ifioctl_common() handle SIOCGIFADDR.
Sprinkle rtcache_invariants(), which checks on DIAGNOSTIC kernels that certain invariants on a struct route are satisfied.
In agr(4), rewrite agr_ioctl_filter() to be a bit more explicit about the ioctls that we do not allow on an agr(4) member interface.
bzero -> memset. Delete unnecessary casts to void *. Use sockaddr_in_init() and sockaddr_in6_init(). Compare pointers with NULL instead of "testing truth". Replace some instances of (type *)0 with NULL. Change some K&R prototypes to ANSI C, and join lines.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 wrstuden-revivesa-base
|
#
1.25 |
|
24-May-2008 |
cube |
branches: 1.25.4; 1.25.6; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
Revision tags: hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 yamt-nfs-mp-base yamt-pf42-base
|
#
1.24 |
|
05-Apr-2008 |
cegger |
branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base matt-armv6-nbase mjf-devfs-base hpcarm-cleanup-base
|
#
1.23 |
|
07-Feb-2008 |
dyoung |
branches: 1.23.6; Start patching up the kernel so that a network driver always has the opportunity to handle an ioctl before generic ifioctl handling occurs. This will ease extending the kernel and sharing of code between drivers.
First steps: Make the signature of ifioctl_common() match struct ifinet->if_ioctl. Convert SIOCSIFCAP and SIOCSIFMTU to the new ifioctl() regime, throughout the kernel.
|
Revision tags: bouyer-xeni386-nbase bouyer-xeni386-base
|
#
1.22 |
|
19-Jan-2008 |
dyoung |
Make many ethernet drivers share the common code for MII media handling, ether_mediastatus() and ether_mediachange(). Check for a non-ENXIO error return from mii_mediachg(). (ENXIO indicates that a PHY is suspended.)
This patch shrinks the source code size by 979 lines. There was a 5100-byte savings on the NetBSD/i386 kernel configuration, ALL.
I have made a few miscellaneous changes, too:
gem(4): use LIST_EMPTY(), LIST_FOREACH(). mtd(4): handle media ioctls, for a change! axe(4): do not track link status in sc->axe_link any longer nfe(4), aue(4), axe(4), udav(4), url(4): do not reset all PHYs on a change of media
Except for the change to mtd(4), no functional changes are intended.
XXX This patch affects more architectures than I can feasibly XXX compile and run. I have compiled macppc, sparc64, i386. I XXX have run the patches on i386 boxen with bnx(4) and sip(4). XXX Compiling and running on evbmips (MERAKI, ADM5120) is in XXX progress.
|
Revision tags: bouyer-xeni386-merge1 vmlocking2-base3 yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase matt-armv6-base jmcneill-pm-base reinoud-bufcleanup-base
|
#
1.21 |
|
05-Dec-2007 |
ad |
branches: 1.21.4; lockmgr -> mutex
|
Revision tags: nick-csl-alignment-base5 vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base vmlocking-base
|
#
1.20 |
|
01-Sep-2007 |
dyoung |
branches: 1.20.6; 1.20.8; Change a bazillion occurrences of code resembling this,
error = (cmd == SIOCADDMULTI) ? ether_addmulti(ifr, &sc->sc_ec) : ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386 ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
|
Revision tags: matt-mips64-base nick-csl-alignment-base yamt-idlelwp-base8 thorpej-atomic-base mjf-ufs-trans-base
|
#
1.19 |
|
13-Mar-2007 |
drochner |
branches: 1.19.6; 1.19.10; 1.19.12; Introduce different autoconf interface attributes for USB drivers matching (and handling) a whole device and those which match an interface only. This will allow to enforce some rules, eg that the former don't use interface information for matching or that the latter don't modify global device state. The previous way left too much freedom do the drivers which led to inconsistencies and abuse. For now, I've not changed locators and submatch rules, this will happen later. There should not be any change in behaviour, except in the case of some drivers which did behave inconsistently: if_atu, if_axe, uep: matched the configured device in the interface stage, but did configuration again. I've converted them to match in the device stage. ustir, utoppy: matched in the interface stage, but only against vendor/device information, and used any configuration/interface without checking. Changed to match in device stage, and added some simple code to configure and use the first interface. If you have one of those devices, please test!
|
#
1.18 |
|
04-Mar-2007 |
christos |
branches: 1.18.2; 1.18.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 itohy-usb1-base wrstuden-fixsa-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 newlock2-base netbsd-4-base
|
#
1.17 |
|
16-Nov-2006 |
christos |
branches: 1.17.4; 1.17.10; __unused removal on arguments; approved by core.
|
#
1.16 |
|
31-Oct-2006 |
joerg |
Split the USB task queue into two parts, one for normal device tasks and one for tasks of the host controllers. This is needed for drivers like ural(4) that want to do synchronous USB transfers from the task handler. Before the split timeouts could not be handled correctly as the task thread was still blocked. From FreeBSD.
|
Revision tags: yamt-splraiseipl-base2
|
#
1.15 |
|
12-Oct-2006 |
christos |
- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 rpaulo-netinet-merge-pcb-base
|
#
1.14 |
|
07-Sep-2006 |
dogcow |
branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 elad-kernelauth-base simonb-timecounters-base
|
#
1.13 |
|
19-Mar-2006 |
david |
Free allocated memory if attach fails.
From Coverity CID 2329
|
Revision tags: peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5 yamt-readahead-base3 ktrace-lwp-base
|
#
1.12 |
|
28-Nov-2005 |
augustss |
branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12; Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in an interrupt context. From kern/32172 by darkstar@city-net.com.
|
Revision tags: yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base
|
#
1.11 |
|
10-Nov-2005 |
augustss |
branches: 1.11.2; Abuse types a little less.
|
#
1.10 |
|
10-Nov-2005 |
tron |
Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
Revision tags: yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base
|
#
1.9 |
|
30-May-2005 |
christos |
branches: 1.9.2; - const poisoning - eliminate variable shadowing
|
#
1.8 |
|
11-May-2005 |
augustss |
Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
Revision tags: yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.7 |
|
27-Feb-2005 |
perry |
branches: 1.7.2; nuke trailing whitespace
|
Revision tags: yamt-km-base2 yamt-km-base kent-audio1-beforemerge kent-audio1-base
|
#
1.6 |
|
30-Oct-2004 |
thorpej |
branches: 1.6.2; 1.6.6; 1.6.8; When adding/deleting multicast addresses, only whack the address filter if the interface is marked RUNNING.
Fixes kern/27678.
|
#
1.5 |
|
26-Oct-2004 |
augustss |
Protect MII reads and writes properly against multiple access. Set full duplex mode when status tells us to. (I can now get 4Mbyte/s instead of 20kbyte/s rx speed.)
|
#
1.4 |
|
24-Oct-2004 |
augustss |
Dont use lockmgr() from interrupt context.
|
#
1.3 |
|
24-Oct-2004 |
augustss |
Get rid of an oddly placed assert().
|
#
1.2 |
|
23-Oct-2004 |
augustss |
Alphabetize.
|
#
1.1 |
|
23-Oct-2004 |
augustss |
Both FreeBSD and OpenBSD use Bill Paul axe driver instead of my uax driver. Maybe because it actually works on with hardware besides mine? :) So we switch to axe too.
|