History log of /src/sys/dev/usb/if_axe.c |
Revision | | Date | Author | Comments |
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.
|
1.132 |
| 01-Mar-2021 |
jakllsch | reduce aprint_error(9) abuse
|
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.
|
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
|
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>.
|
1.121 |
| 07-Jan-2020 |
maxv | branches: 1.121.2; Localify, constify.
|
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.
|
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.
|
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.
|
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
|
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.
|
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.
|
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).
|
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.
|
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.
|
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)
|
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
|
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.
|
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.
|
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.
|
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
|
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"
|
1.74 |
| 27-Aug-2016 |
skrll | Fix harmless typo
|
1.73 |
| 27-Aug-2016 |
skrll | flxd's axe(4) - I think.
|
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.
|
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
|
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!
|
1.69 |
| 13-Apr-2015 |
riastradh | Convert sys/dev to use <sys/rndsource.h>.
|
1.68 |
| 08-Apr-2015 |
nonaka | Added pmf hook.
|
1.67 |
| 10-Aug-2014 |
tls | branches: 1.67.2; 1.67.4; 1.67.8; Merge tls-earlyentropy branch into HEAD.
|
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
|
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.
|
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
|
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.
|
1.55 |
| 01-Jun-2012 |
nonaka | Add a dependency on bpf module.
|
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
|
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
|
1.52 |
| 24-Feb-2012 |
mrg | remove any remnants of freebsd/openbsd code.
|
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.
|
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
|
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.
|
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.
|
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.
|
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.
|
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.
|
1.30 |
| 06-Dec-2009 |
dyoung | Simplify several device-activation hooks.
|
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.
|
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).
|
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.
|
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.
|
1.24 |
| 05-Apr-2008 |
cegger | branches: 1.24.2; 1.24.4; 1.24.6; use aprint_*_dev and device_xname
|
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.
|
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.
|
1.21 |
| 05-Dec-2007 |
ad | branches: 1.21.4; lockmgr -> mutex
|
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.
|
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.
|
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.
|
1.15 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.14 |
| 07-Sep-2006 |
dogcow | branches: 1.14.2; 1.14.4; remove more vestiges of CCITT, LLC, HDLC, NS, and NSIP.
|
1.13 |
| 19-Mar-2006 |
david | Free allocated memory if attach fails.
From Coverity CID 2329
|
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.
|
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.
|
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.
|
1.7 |
| 27-Feb-2005 |
perry | branches: 1.7.2; nuke trailing whitespace
|
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.6.8.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.6.6.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.6.2.5 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.6.2.4 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.6.2.3 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.6.2.2 |
| 02-Nov-2004 |
skrll | Sync with HEAD.
|
1.6.2.1 |
| 30-Oct-2004 |
skrll | file if_axe.c was added on branch ktrace-lwp on 2004-11-02 07:53:02 +0000
|
1.7.2.1 |
| 10-Nov-2005 |
snj | Pull up following revision(s) (requested by tron in ticket #950): sys/dev/usb/if_axe.c: revision 1.10 Apply big endian fixes submitted by Garrett D'Amore in PR kern/32032.
|
1.9.2.6 |
| 11-Feb-2008 |
yamt | sync with head.
|
1.9.2.5 |
| 21-Jan-2008 |
yamt | sync with head
|
1.9.2.4 |
| 07-Dec-2007 |
yamt | sync with head
|
1.9.2.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.9.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.9.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.11.2.1 |
| 29-Nov-2005 |
yamt | sync with head.
|
1.12.12.1 |
| 28-Mar-2006 |
tron | Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
|
1.12.10.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.12.8.2 |
| 14-Sep-2006 |
yamt | sync with head.
|
1.12.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.12.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.12.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.14.4.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.14.4.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.14.2.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.17.10.6 |
| 25-Jun-2007 |
itohy | Add support of AX88178 and AX88772 (based on OpenBSD). (beware new Tx/Rx code, totally untested)
New devices from FreeBSD/OpenBSD: - AboCom UFE2000 USB2.0 Fast Ethernet Adapter - Acer Communications & Multimedia EP-1427X-2 Ethernet - ASIX AX88178 USB 2.0 10/100 Ethernet adapter - ASIX AX88772 USB 2.0 10/100 Ethernet adapter - ATen UC210T Ethernet - Belkin F5D5055 Ethernet adapter - Billionton USB2AR Ethernet - Cisco-Linksys USB200M v2 - D-Link DUB-E100 rev B1 - Good Way Technology GWUSB2E - I-O DATA ETG-US2 - Ethernet port in the JVC MP-PRX1 port replicator. - Linksys USB1000 - OQO model 01+ Ethernet - Planex GU-1000T
Whitespace police.
|
1.17.10.5 |
| 22-Jun-2007 |
itohy | - Execute callback functions as tasks on FreeBSD. - Cleanup.
|
1.17.10.4 |
| 18-Jun-2007 |
itohy | Pullup 1.19 (attach driver per interface) with #ifdef USB_USE_IFATTACH.
|
1.17.10.3 |
| 17-Jun-2007 |
itohy | Pullup 1.18 in a different way.
|
1.17.10.2 |
| 13-Jun-2007 |
itohy | - Convert to use usbd_map_buffer_mbuf() and eliminate mbuf-memory copy. - Use common code in usb_ethersubr.[ch] and reduce duplicated code. - Use ether_ioctl() to handle llinfo (what is it?) properly.
XXX Untested, missing hardware.
|
1.17.10.1 |
| 22-May-2007 |
itohy | Overhaul of USB stack, mostly DMA related
This applies to NetBSD 4.99.13 (March 1, 2007)
usbdi(9) interface is based on FreeBSD version, excluding - removal of portability code
Patch most NetBSD changes, excluding - DMA memory "reserve", since we don't need contiguous buffers any longer - volatiles in DMA structure, since it should not be needed with proper bus_dmamap_sync(9)s
DMA/non-DMA memory management overhaul - Move all DMA related code to usb_mem.[ch] (add usb_alloc_buffer_dma(), usb_free_buffer_dma(), etc.). XXX Should usb_mem.[ch] be renamed as usb_mem_dma.[ch] ? - Add corresponding non-DMA code to usb_mem_nodma.[ch] . Currently just use malloc(9). - Above files are conditionally used by config framework (added attributes to conf/files and dev/usb/files.usb). - Add diagnostic panics when resource allocation is requested on interrupt context. - Change memory allocations (that require context) from NOWAIT to WAITOK.
Allocate DMA/non-DMA buffer per host interface, not globally. advantage: Buffers can be freed on detaching host interface. Activity of a host interface does not affect others. disadvantages: It possibly consumes more memory.
API changes - usbd_alloc_xfer() is changed: old: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev); new: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev, usbd_pipe_handle pipe); - pipe argument of usbd_setup_*xfer() are now unused XXX the pipe argument should be removed? - add mapping APIs - async request will be processed as a task (kernel thread context), and delayed to some extent - usbdivar.h: struct usbd_xfer: renamed a member "allocbuf" to "hcbuffer" (mapped/allocated/refered buffer for HCI driver) - usb_port.h: change usb_proc_ptr from struct ptoc * to struct lwp * - usb_port.h: add usb_sigproc_ptr for psignal(9) (struct proc *) - usb.h: add UE_MAXPKTSZ(ep) and UE_MAXPKTSZ_MASK macros for USB 2.0
changes to USB device drivers - atu, aue, axe, cdce, cue, kue, rum, udav, upl, ural, url, uaudio, ubt, ucom, ugen, uhidev, uirda, ulpt, umidi, urio, uscanner, ustir, utoppy: * catch up API change of usbd_alloc_xfer() - umass, usscanner: * catch up API change of usbd_alloc_xfer() * eliminate memory copy for large transfer
ohci - free resources on detach - add lots of bus_dmamap_sync() operations - simplify the code of loading std chain - rewrite code of looking up TD/ITD from DMA addr by using allocation chunk - add workaround for CMD Tech 670 and 673 chipsets - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
slhci - allocate xfer and slhci_xfer at once, and simplify relevant code - add slhci_detach() - remove second arg of slhci_attach() since it is the same as the first arg. - add support for "mapping" (no, it doesn't map since it doesn't do DMA) buffer and mbuf - add pcmcia frontend - NOT TESTED, missing hardware
ehci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf - done only simple test
uhci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
To do - review, test, debug - rewrite network drivers to utilize usbd_map_buffer_mbuf() - rewrite uaudio(4) to eliminate memcpy - "pipe" argument of usbd_setup_*xfer() should eventually be removed
|
1.17.4.2 |
| 24-Mar-2007 |
yamt | sync with head.
|
1.17.4.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.18.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.18.2.2 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.18.2.1 |
| 13-Mar-2007 |
ad | Sync with head.
|
1.19.12.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.19.12.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.19.12.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.19.10.2 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.19.10.1 |
| 03-Sep-2007 |
jmcneill | Sync with HEAD.
|
1.19.6.1 |
| 03-Sep-2007 |
skrll | Sync with HEAD.
|
1.20.8.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.20.6.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.20.6.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.21.4.1 |
| 20-Jan-2008 |
bouyer | Sync with HEAD
|
1.23.6.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.23.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.24.6.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.24.4.5 |
| 09-Oct-2010 |
yamt | sync with head
|
1.24.4.4 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.24.4.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.24.4.2 |
| 16-Sep-2009 |
yamt | sync with head
|
1.24.4.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.24.2.1 |
| 04-Jun-2008 |
yamt | sync with head
|
1.25.6.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.25.4.1 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.31.4.3 |
| 05-Mar-2011 |
rmind | sync with head
|
1.31.4.2 |
| 03-Jul-2010 |
rmind | sync with head
|
1.31.4.1 |
| 30-May-2010 |
rmind | sync with head
|
1.31.2.3 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.31.2.2 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.31.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.50.6.5 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
1.50.6.4 |
| 06-Mar-2012 |
mrg | sync to -current
|
1.50.6.3 |
| 26-Feb-2012 |
mrg | rename old usb_detach_wakeup/wait to usb_detach_{wake,wakeup}old().
|
1.50.6.2 |
| 24-Feb-2012 |
mrg | sync to -current.
|
1.50.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.50.2.5 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.50.2.4 |
| 23-Jan-2013 |
yamt | sync with head
|
1.50.2.3 |
| 16-Jan-2013 |
yamt | sync with (a bit old) head
|
1.50.2.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.50.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.57.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.57.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.57.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.64.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.66.2.1 |
| 07-Apr-2014 |
tls | Be a little more clear and consistent about harvesting entropy from devices:
1) deprecate RND_FLAG_NO_ESTIMATE
2) define RND_FLAG_COLLECT_TIME, RND_FLAG_COLLECT_VALUE
3) define RND_FLAG_ESTIMATE_TIME, RND_FLAG_ESTIMATE_VALUE
4) define RND_FLAG_DEFAULT: RND_FLAG_COLLECT_TIME| RND_FLAG_COLLECT_VALUE|RND_FLAG_ESTIMATE_TIME
5) Make entropy harvesting from environmental sensors a little more generic and remove it from individual sensor drivers.
6) Remove individual open-coded delta-estimators for values from a few places in the tree (uvm, environmental drivers).
7) 0 -> RND_FLAG_DEFAULT, actually gather entropy from various drivers that had stubbed out code, other minor cleanups.
|
1.67.8.3 |
| 31-Mar-2017 |
skrll | Fix build
|
1.67.8.2 |
| 26-Jan-2017 |
skrll | Sync with HEAD/nhusb
|
1.67.8.1 |
| 06-Sep-2016 |
skrll | First pass at netbsd-7 updated with USB code from HEAD
|
1.67.4.16 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.67.4.15 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.67.4.14 |
| 03-Feb-2017 |
skrll | Simplify. No functional change.
|
1.67.4.13 |
| 12-Dec-2016 |
skrll | WIP MPification
|
1.67.4.12 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.67.4.11 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.67.4.10 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.67.4.9 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.67.4.8 |
| 28-Dec-2015 |
skrll | Strictly follow the sequence abort pipe, destroy xfers, and close pipe as API now requires. Plug some memory leaks in some drivers while doing this.
Also, remove up_refcnt as it was broken and helped leak more memory.
|
1.67.4.7 |
| 06-Oct-2015 |
skrll | Move from usbd_{alloc,free}_xfer and usbd_{alloc,free}_buffer to usbd_{create,destroy}_xfer. The API change will allow future changes to HCDs to simplify the transfer resource allocation and activation.
Several devices tested including ucom, umass, smsc, uvideo, and uaudio.
|
1.67.4.6 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.67.4.5 |
| 21-Mar-2015 |
skrll | Add prefixes to attach_arg structure member names. No functional change.
|
1.67.4.4 |
| 19-Mar-2015 |
skrll | Do the same as OpenBSD and get rid of the *_handle typedefs and use plain structures insteads
|
1.67.4.3 |
| 06-Dec-2014 |
skrll | KNF. Remove argument name from function declarations.
No functional change.
|
1.67.4.2 |
| 03-Dec-2014 |
skrll | The grand renaming of structure members.
No functional change.
|
1.67.4.1 |
| 02-Dec-2014 |
skrll | Step #1 of memory allocation re-organisation.
Centralised the buffer allocation routine which now supports DMA and non-DMA capable host controllers. Remove the ubm_{alloc,free}m methods from usbd_bus_methods.
The buffer allocation is only allowed in thread context and, therefore, negates the usefulness of the reserve dma code which is removed in this change.
USBD_NO_COPY is also no longer required as usbd_transfer and usbd_transfer_complete now track buffer usage and handle any copying.
|
1.67.2.4 |
| 08-Aug-2018 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1626):
sys/dev/usb/if_cue.c: revision 1.80 sys/dev/usb/umcs.c: revision 1.11 sys/dev/usb/umcs.c: revision 1.12 sys/dev/usb/if_ural.c: revision 1.56 sys/dev/usb/if_run.c: revision 1.28 sys/dev/usb/if_ural.c: revision 1.57 sys/dev/usb/if_run.c: revision 1.29 sys/dev/usb/uatp.c: revision 1.16 sys/dev/usb/uatp.c: revision 1.17 sys/dev/usb/if_axe.c: revision 1.91 sys/dev/usb/if_axe.c: revision 1.92 sys/dev/usb/if_zyd.c: revision 1.49 sys/dev/usb/if_axen.c: revision 1.15 sys/dev/usb/if_url.c: revision 1.60 sys/dev/usb/if_udav.c: revision 1.54 sys/dev/usb/if_axen.c: revision 1.16 sys/dev/usb/if_udav.c: revision 1.55 sys/dev/usb/if_athn_usb.c: revision 1.28 sys/dev/usb/if_athn_usb.c: revision 1.29 sys/dev/usb/if_urtw.c: revision 1.16 sys/dev/usb/if_urtw.c: revision 1.17 sys/dev/usb/if_cue.c: revision 1.79 sys/dev/usb/if_rum.c: revision 1.62 sys/dev/usb/if_urtwn.c: revision 1.61 sys/dev/usb/if_rum.c: revision 1.63 sys/dev/usb/if_urtwn.c: revision 1.63 sys/dev/usb/usb.c: revision 1.170 sys/dev/usb/usb.c: revision 1.171 sys/dev/usb/if_smsc.c: revision 1.35 sys/dev/usb/if_smsc.c: revision 1.36 sys/dev/usb/if_zyd.c: revision 1.50 sys/dev/usb/if_aue.c: revision 1.144 sys/dev/usb/if_aue.c: revision 1.145 sys/dev/usb/usb_subr.c: revision 1.225 sys/dev/usb/usb_subr.c: revision 1.226 sys/dev/usb/if_upgt.c: revision 1.21 sys/dev/usb/usbdi.h: revision 1.93 sys/dev/usb/if_upgt.c: revision 1.22 sys/dev/usb/if_url.c: revision 1.59 sys/dev/usb/usbdi.h: revision 1.95 sys/dev/usb/if_otus.c: revision 1.34 sys/dev/usb/if_atu.c: revision 1.62 sys/dev/usb/if_otus.c: revision 1.35 sys/dev/usb/if_atu.c: revision 1.63
New function usb_rem_task_wait(dev, task, queue).
If task is scheduled to run, removes it from the queue. If it may have already begun to run, waits for it to complete. Caller must guarantee it will not switch to another queue. If caller guarantees it will not be scheduled again, then usb_rem_task_wait guarantees it is not running on return.
This will enable us to fix a litany of bugs in detach where we currently fail to wait for a pending task.
Use usb_rem_task_wait in various drivers.
|
1.67.2.3 |
| 19-Feb-2018 |
snj | Pull up following revision(s) (requested by skrll in ticket #1556): sys/dev/usb/if_athn_usb.c: 1.25 sys/dev/usb/if_atu.c: 1.56 sys/dev/usb/if_aue.c: 1.142 sys/dev/usb/if_axe.c: 1.84 sys/dev/usb/if_axen.c: 1.12 sys/dev/usb/if_cdce.c: 1.45 sys/dev/usb/if_cue.c: 1.77 sys/dev/usb/if_kue.c: 1.91 sys/dev/usb/if_otus.c: 1.32 sys/dev/usb/if_rum.c: 1.59 sys/dev/usb/if_run.c: 1.25 sys/dev/usb/if_smsc.c: 1.33 sys/dev/usb/if_udav.c: 1.52 sys/dev/usb/if_upgt.c: 1.18 sys/dev/usb/if_upl.c: 1.61 sys/dev/usb/if_ural.c: 1.53 sys/dev/usb/if_url.c: 1.57 sys/dev/usb/if_urndis.c: 1.17 sys/dev/usb/if_urtw.c: 1.14 sys/dev/usb/if_urtwn.c: 1.56 sys/dev/usb/if_zyd.c: 1.45 sys/dev/usb/irmce.c: 1.4 sys/dev/usb/pseye.c: 1.24 sys/dev/usb/ubt.c: 1.60 sys/dev/usb/ucom.c: 1.120 sys/dev/usb/udsir.c: 1.6 sys/dev/usb/ugen.c: 1.137 sys/dev/usb/uhso.c: 1.27 sys/dev/usb/uirda.c: 1.43 sys/dev/usb/ulpt.c: 1.99 sys/dev/usb/umass.c: 1.163 sys/dev/usb/umidi.c: 1.74 sys/dev/usb/uscanner.c: 1.82 sys/dev/usb/usscanner.c: 1.43 sys/dev/usb/ustir.c: 1.39 sys/dev/usb/utoppy.c: 1.30 sys/dev/usb/uvideo.c: 1.46 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
|
1.67.2.2 |
| 05-Apr-2017 |
snj | Pull up following revision(s) (requested by skrll in ticket #1395): share/man/man4/axe.4: netbsd-7-nhusb share/man/man4/axen.4: netbsd-7-nhusb share/man/man4/cdce.4: netbsd-7-nhusb share/man/man4/uaudio.4: netbsd-7-nhusb share/man/man4/ucom.4: netbsd-7-nhusb share/man/man4/uep.4: netbsd-7-nhusb share/man/man4/urtw.4: netbsd-7-nhusb share/man/man4/usb.4: netbsd-7-nhusb share/man/man4/uyap.4: netbsd-7-nhusb share/man/man4/xhci.4: netbsd-7-nhusb share/man/man9/usbdi.9: netbsd-7-nhusb sys/arch/amd64/conf/ALL: netbsd-7-nhusb sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb sys/arch/arm/imx/files.imx23: netbsd-7-nhusb sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb sys/arch/i386/conf/ALL: netbsd-7-nhusb sys/arch/i386/conf/GENERIC: netbsd-7-nhusb sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb sys/conf/files: netbsd-7-nhusb sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb sys/dev/ic/sl811hs.c: netbsd-7-nhusb sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb sys/dev/isa/slhci_isa.c: netbsd-7-nhusb sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb sys/dev/pci/ehci_pci.c: netbsd-7-nhusb sys/dev/pci/ohci_pci.c: netbsd-7-nhusb sys/dev/pci/uhci_pci.c: netbsd-7-nhusb sys/dev/pci/xhci_pci.c: netbsd-7-nhusb sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb sys/dev/usb/TODO: netbsd-7-nhusb sys/dev/usb/TODO.usbmp: netbsd-7-nhusb sys/dev/usb/aubtfwl.c: netbsd-7-nhusb sys/dev/usb/auvitek.c: netbsd-7-nhusb sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb sys/dev/usb/auvitek_video.c: netbsd-7-nhusb sys/dev/usb/auvitekvar.h: netbsd-7-nhusb sys/dev/usb/ehci.c: netbsd-7-nhusb sys/dev/usb/ehcireg.h: netbsd-7-nhusb sys/dev/usb/ehcivar.h: netbsd-7-nhusb sys/dev/usb/emdtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb sys/dev/usb/emdtvvar.h: netbsd-7-nhusb sys/dev/usb/ezload.c: netbsd-7-nhusb sys/dev/usb/ezload.h: netbsd-7-nhusb sys/dev/usb/files.usb: netbsd-7-nhusb sys/dev/usb/hid.c: netbsd-7-nhusb sys/dev/usb/hid.h: netbsd-7-nhusb sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb sys/dev/usb/if_atu.c: netbsd-7-nhusb sys/dev/usb/if_atureg.h: netbsd-7-nhusb sys/dev/usb/if_aue.c: netbsd-7-nhusb sys/dev/usb/if_auereg.h: netbsd-7-nhusb sys/dev/usb/if_axe.c: netbsd-7-nhusb sys/dev/usb/if_axen.c: netbsd-7-nhusb sys/dev/usb/if_axenreg.h: netbsd-7-nhusb sys/dev/usb/if_axereg.h: netbsd-7-nhusb sys/dev/usb/if_cdce.c: netbsd-7-nhusb sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb sys/dev/usb/if_cue.c: netbsd-7-nhusb sys/dev/usb/if_cuereg.h: netbsd-7-nhusb sys/dev/usb/if_kue.c: netbsd-7-nhusb sys/dev/usb/if_kuereg.h: netbsd-7-nhusb sys/dev/usb/if_otus.c: netbsd-7-nhusb sys/dev/usb/if_otusvar.h: netbsd-7-nhusb sys/dev/usb/if_rum.c: netbsd-7-nhusb sys/dev/usb/if_rumreg.h: netbsd-7-nhusb sys/dev/usb/if_rumvar.h: netbsd-7-nhusb sys/dev/usb/if_run.c: netbsd-7-nhusb sys/dev/usb/if_runvar.h: netbsd-7-nhusb sys/dev/usb/if_smsc.c: netbsd-7-nhusb sys/dev/usb/if_smscreg.h: netbsd-7-nhusb sys/dev/usb/if_smscvar.h: netbsd-7-nhusb sys/dev/usb/if_udav.c: netbsd-7-nhusb sys/dev/usb/if_udavreg.h: netbsd-7-nhusb sys/dev/usb/if_upgt.c: netbsd-7-nhusb sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb sys/dev/usb/if_upl.c: netbsd-7-nhusb sys/dev/usb/if_ural.c: netbsd-7-nhusb sys/dev/usb/if_uralreg.h: netbsd-7-nhusb sys/dev/usb/if_uralvar.h: netbsd-7-nhusb sys/dev/usb/if_url.c: netbsd-7-nhusb sys/dev/usb/if_urlreg.h: netbsd-7-nhusb sys/dev/usb/if_urndis.c: netbsd-7-nhusb sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb sys/dev/usb/if_urtw.c: netbsd-7-nhusb sys/dev/usb/if_urtwn.c: netbsd-7-nhusb sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb sys/dev/usb/if_zyd.c: netbsd-7-nhusb sys/dev/usb/if_zydreg.h: netbsd-7-nhusb sys/dev/usb/irmce.c: netbsd-7-nhusb sys/dev/usb/moscom.c: netbsd-7-nhusb sys/dev/usb/motg.c: netbsd-7-nhusb sys/dev/usb/motgvar.h: netbsd-7-nhusb sys/dev/usb/ohci.c: netbsd-7-nhusb sys/dev/usb/ohcireg.h: netbsd-7-nhusb sys/dev/usb/ohcivar.h: netbsd-7-nhusb sys/dev/usb/pseye.c: netbsd-7-nhusb sys/dev/usb/slurm.c: netbsd-7-nhusb sys/dev/usb/stuirda.c: netbsd-7-nhusb sys/dev/usb/u3g.c: netbsd-7-nhusb sys/dev/usb/uark.c: netbsd-7-nhusb sys/dev/usb/uatp.c: netbsd-7-nhusb sys/dev/usb/uaudio.c: netbsd-7-nhusb sys/dev/usb/uberry.c: netbsd-7-nhusb sys/dev/usb/ubsa.c: netbsd-7-nhusb sys/dev/usb/ubsa_common.c: netbsd-7-nhusb sys/dev/usb/ubsavar.h: netbsd-7-nhusb sys/dev/usb/ubt.c: netbsd-7-nhusb sys/dev/usb/uchcom.c: netbsd-7-nhusb sys/dev/usb/ucom.c: netbsd-7-nhusb sys/dev/usb/ucomvar.h: netbsd-7-nhusb sys/dev/usb/ucycom.c: netbsd-7-nhusb sys/dev/usb/udl.c: netbsd-7-nhusb sys/dev/usb/udl.h: netbsd-7-nhusb sys/dev/usb/udsbr.c: netbsd-7-nhusb sys/dev/usb/udsir.c: netbsd-7-nhusb sys/dev/usb/uep.c: netbsd-7-nhusb sys/dev/usb/uftdi.c: netbsd-7-nhusb sys/dev/usb/uftdireg.h: netbsd-7-nhusb sys/dev/usb/ugen.c: netbsd-7-nhusb sys/dev/usb/ugensa.c: netbsd-7-nhusb sys/dev/usb/uhci.c: netbsd-7-nhusb sys/dev/usb/uhcireg.h: netbsd-7-nhusb sys/dev/usb/uhcivar.h: netbsd-7-nhusb sys/dev/usb/uhid.c: netbsd-7-nhusb sys/dev/usb/uhidev.c: netbsd-7-nhusb sys/dev/usb/uhidev.h: netbsd-7-nhusb sys/dev/usb/uhmodem.c: netbsd-7-nhusb sys/dev/usb/uhso.c: netbsd-7-nhusb sys/dev/usb/uhub.c: netbsd-7-nhusb sys/dev/usb/uipad.c: netbsd-7-nhusb sys/dev/usb/uipaq.c: netbsd-7-nhusb sys/dev/usb/uirda.c: netbsd-7-nhusb sys/dev/usb/uirdavar.h: netbsd-7-nhusb sys/dev/usb/ukbd.c: netbsd-7-nhusb sys/dev/usb/ukbdmap.c: netbsd-7-nhusb sys/dev/usb/ukyopon.c: netbsd-7-nhusb sys/dev/usb/ukyopon.h: netbsd-7-nhusb sys/dev/usb/ulpt.c: netbsd-7-nhusb sys/dev/usb/umass.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.c: netbsd-7-nhusb sys/dev/usb/umass_isdata.h: netbsd-7-nhusb sys/dev/usb/umass_quirks.c: netbsd-7-nhusb sys/dev/usb/umass_quirks.h: netbsd-7-nhusb sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb sys/dev/usb/umassvar.h: netbsd-7-nhusb sys/dev/usb/umcs.c: netbsd-7-nhusb sys/dev/usb/umct.c: netbsd-7-nhusb sys/dev/usb/umidi.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb sys/dev/usb/umodem.c: netbsd-7-nhusb sys/dev/usb/umodem_common.c: netbsd-7-nhusb sys/dev/usb/umodemvar.h: netbsd-7-nhusb sys/dev/usb/ums.c: netbsd-7-nhusb sys/dev/usb/uplcom.c: netbsd-7-nhusb sys/dev/usb/urio.c: netbsd-7-nhusb sys/dev/usb/urio.h: netbsd-7-nhusb sys/dev/usb/usb.c: netbsd-7-nhusb sys/dev/usb/usb.h: netbsd-7-nhusb sys/dev/usb/usb_mem.c: netbsd-7-nhusb sys/dev/usb/usb_mem.h: netbsd-7-nhusb sys/dev/usb/usb_quirks.c: netbsd-7-nhusb sys/dev/usb/usb_quirks.h: netbsd-7-nhusb sys/dev/usb/usb_subr.c: netbsd-7-nhusb sys/dev/usb/usbdevices.config: netbsd-7-nhusb sys/dev/usb/usbdevs: netbsd-7-nhusb sys/dev/usb/usbdevs.h: netbsd-7-nhusb sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb sys/dev/usb/usbdi.c: netbsd-7-nhusb sys/dev/usb/usbdi.h: netbsd-7-nhusb sys/dev/usb/usbdi_util.c: netbsd-7-nhusb sys/dev/usb/usbdi_util.h: netbsd-7-nhusb sys/dev/usb/usbdivar.h: netbsd-7-nhusb sys/dev/usb/usbhid.h: netbsd-7-nhusb sys/dev/usb/usbhist.h: netbsd-7-nhusb sys/dev/usb/usbroothub.c: netbsd-7-nhusb sys/dev/usb/usbroothub.h: netbsd-7-nhusb sys/dev/usb/usbroothub_subr.c: delete sys/dev/usb/usbroothub_subr.h: delete sys/dev/usb/uscanner.c: netbsd-7-nhusb sys/dev/usb/uslsa.c: netbsd-7-nhusb sys/dev/usb/usscanner.c: netbsd-7-nhusb sys/dev/usb/ustir.c: netbsd-7-nhusb sys/dev/usb/uthum.c: netbsd-7-nhusb sys/dev/usb/utoppy.c: netbsd-7-nhusb sys/dev/usb/uts.c: netbsd-7-nhusb sys/dev/usb/uvideo.c: netbsd-7-nhusb sys/dev/usb/uvisor.c: netbsd-7-nhusb sys/dev/usb/uvscom.c: netbsd-7-nhusb sys/dev/usb/uyap.c: netbsd-7-nhusb sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb sys/dev/usb/uyurex.c: netbsd-7-nhusb sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb sys/dev/usb/xhci.c: netbsd-7-nhusb sys/dev/usb/xhcireg.h: netbsd-7-nhusb sys/dev/usb/xhcivar.h: netbsd-7-nhusb sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb sys/external/bsd/drm2/include/linux/err.h: delete sys/external/bsd/drm2/include/linux/workqueue.h: delete sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb sys/external/bsd/drm2/linux/linux_work.c: delete sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb sys/modules/i915drmkms/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete sys/rump/dev/lib/libusb/opt/opt_usb.h: delete sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete sys/sys/mbuf.h: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb Merge netbsd-7-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 - Change the SOFTINT level from NET to SERIAL for the USB softint handler. This gives the callback a chance of running when another softint handler at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of the network stack. - kern/49065 - ifconfig tun0 ... sequence locks up system / lockup: softnet_lock held across usb xfr - kern/50491 - unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2 - kern/51395 - USB Ethernet makes xhci hang - Various improvements to slhci(4) - Various improvements to dwc2(4)
|
1.67.2.1 |
| 18-Sep-2016 |
snj | Pull up following revision(s) (requested by skrll in ticket #1245): sys/dev/usb/if_axe.c: revision 1.73, 1.74 sys/dev/usb/usbdevs: revision 1.716 Add flxd's axe(4) -- flxd's axe(4) - I think. -- Fix harmless typo
|
1.72.2.2 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.72.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.80.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.82.6.5 |
| 28-Aug-2020 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1599):
sys/dev/usb/if_atu.c: revision 1.73 sys/dev/usb/if_axe.c: apply patch sys/dev/usb/if_axen.c: apply patch
atu(4): Reject packets larger than MCLBYTES.
|
1.82.6.4 |
| 08-Aug-2018 |
martin | Pull up following revision(s) (requested by riastradh in ticket #963):
sys/dev/usb/if_cue.c: revision 1.80 sys/dev/usb/umcs.c: revision 1.11 sys/dev/usb/umcs.c: revision 1.12 sys/dev/usb/if_ural.c: revision 1.56 sys/dev/usb/if_run.c: revision 1.28 sys/dev/usb/if_ural.c: revision 1.57 sys/dev/usb/if_run.c: revision 1.29 sys/dev/usb/uatp.c: revision 1.16 sys/dev/usb/uatp.c: revision 1.17 sys/dev/usb/if_axe.c: revision 1.91 sys/dev/usb/if_axe.c: revision 1.92 sys/dev/usb/if_zyd.c: revision 1.49 sys/dev/usb/if_axen.c: revision 1.15 sys/dev/usb/if_url.c: revision 1.60 sys/dev/usb/if_udav.c: revision 1.54 sys/dev/usb/if_axen.c: revision 1.16 sys/dev/usb/if_udav.c: revision 1.55 sys/dev/usb/if_athn_usb.c: revision 1.28 sys/dev/usb/if_athn_usb.c: revision 1.29 sys/dev/usb/if_urtw.c: revision 1.16 sys/dev/usb/if_urtw.c: revision 1.17 sys/dev/usb/if_cue.c: revision 1.79 sys/dev/usb/if_rum.c: revision 1.62 sys/dev/usb/if_urtwn.c: revision 1.61 sys/dev/usb/if_rum.c: revision 1.63 sys/dev/usb/if_urtwn.c: revision 1.63 sys/dev/usb/usb.c: revision 1.170 sys/dev/usb/usb.c: revision 1.171 sys/dev/usb/if_smsc.c: revision 1.35 sys/dev/usb/if_smsc.c: revision 1.36 sys/dev/usb/if_zyd.c: revision 1.50 sys/dev/usb/if_aue.c: revision 1.144 sys/dev/usb/if_aue.c: revision 1.145 sys/dev/usb/usb_subr.c: revision 1.225 sys/dev/usb/usb_subr.c: revision 1.226 sys/dev/usb/if_upgt.c: revision 1.21 sys/dev/usb/usbdi.h: revision 1.93 sys/dev/usb/if_upgt.c: revision 1.22 sys/dev/usb/if_url.c: revision 1.59 sys/dev/usb/usbdi.h: revision 1.95 sys/dev/usb/if_otus.c: revision 1.34 sys/dev/usb/if_atu.c: revision 1.62 sys/dev/usb/if_otus.c: revision 1.35 sys/dev/usb/if_atu.c: revision 1.63
New function usb_rem_task_wait(dev, task, queue).
If task is scheduled to run, removes it from the queue. If it may have already begun to run, waits for it to complete. Caller must guarantee it will not switch to another queue. If caller guarantees it will not be scheduled again, then usb_rem_task_wait guarantees it is not running on return.
This will enable us to fix a litany of bugs in detach where we currently fail to wait for a pending task.
Use usb_rem_task_wait in various drivers.
|
1.82.6.3 |
| 07-May-2018 |
martin | Pull up following revision(s) (requested by nonaka in ticket #782):
sys/dev/usb/if_axe.c: revision 1.85-1.89
propagate pullup-782 for NetBSD-8 to HEAD (gcc uninitialized)
It was not gcc's fault for correctly detecting an uninitialized variable.
Fix the uninitialized variable issues by error checking things. downgrade error to debug.
merge duplicated code, back to logging error.
use the proper station nodeid read command.
|
1.82.6.2 |
| 31-Jan-2018 |
martin | Pull up following revision(s) (requested by skrll in ticket #509): sys/dev/usb/if_ural.c: revision 1.53 sys/dev/usb/if_run.c: revision 1.25 sys/dev/usb/ustir.c: revision 1.39 sys/dev/usb/irmce.c: revision 1.4 sys/dev/usb/if_urtwn.c: revision 1.56 sys/dev/usb/pseye.c: revision 1.24 sys/dev/usb/if_rum.c: revision 1.59 sys/dev/usb/if_upl.c: revision 1.61 sys/dev/usb/ucom.c: revision 1.120 sys/dev/usb/if_zyd.c: revision 1.45 sys/dev/usb/if_axen.c: revision 1.12 sys/dev/usb/umidi.c: revision 1.74 sys/dev/usb/if_udav.c: revision 1.52 sys/dev/usb/if_athn_usb.c: revision 1.25 sys/dev/usb/usscanner.c: revision 1.43 sys/dev/usb/ualea.c: revision 1.6 - 1.9 sys/dev/usb/if_upgt.c: revision 1.18 sys/dev/usb/if_atu.c: revision 1.56 sys/dev/usb/utoppy.c: revision 1.30 sys/dev/usb/ubt.c: revision 1.60 sys/dev/usb/if_urtw.c: revision 1.14 sys/dev/usb/uirda.c: revision 1.43 sys/dev/usb/umass.c: revision 1.163 sys/dev/usb/if_cdce.c: revision 1.45 sys/dev/usb/if_cue.c: revision 1.77 sys/dev/usb/if_kue.c: revision 1.91 sys/dev/usb/uvideo.c: revision 1.46 sys/dev/usb/uhso.c: revision 1.27 sys/dev/usb/if_smsc.c: revision 1.33 sys/dev/usb/ugen.c: revision 1.137 sys/dev/usb/if_axe.c: revision 1.84 sys/dev/usb/if_aue.c: revision 1.142 sys/dev/usb/uscanner.c: revision 1.82 sys/dev/usb/if_urndis.c: revision 1.17 sys/dev/usb/udsir.c: revision 1.6 sys/dev/usb/if_url.c: revision 1.57 sys/dev/usb/if_otus.c: revision 1.32 sys/dev/usb/ulpt.c: revision 1.99
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
ualea: Tidy up a bit. Fulfil requests completely. Don't subtract uninitialized pktsize in error path.
|
1.82.6.1 |
| 02-Nov-2017 |
snj | Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- 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. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr.
|
1.84.2.7 |
| 26-Jan-2019 |
pgoyette | Sync with HEAD
|
1.84.2.6 |
| 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.84.2.5 |
| 30-Sep-2018 |
pgoyette | Ssync with HEAD
|
1.84.2.4 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.84.2.3 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.84.2.2 |
| 02-May-2018 |
pgoyette | Synch with HEAD
|
1.84.2.1 |
| 22-Apr-2018 |
pgoyette | Sync with HEAD
|
1.90.2.2 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.90.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.102.2.2 |
| 01-Sep-2019 |
martin | Pull up following revision(s) (requested by rin in ticket #146):
sys/arch/arm/conf/Makefile.arm: revision 1.50 sys/dev/usb/if_axe.c: revision 1.120
PR kern/54486
Workaround for alignment faults on ARMv6+, at least occur with axe(4) and athn(4) drivers.
For ARMv6+, unaligned access is enabled by default. However, it cannot be used for non-cacheable memory, which is used as DMA buffers. This results in alignment faults above. A real fix is to use cacheable memory as DMA buffers. However, it breaks some drivers, awge(4) and vchiq(4) at least.
Until we figure out problems and fix them, we choose a fail-safe workaround here; forbid unaligned memory access for whole kernel. Affects on performance is negligibly small as far as we can see.
XXX pullup netbsd-9
-
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.102.2.1 |
| 01-Sep-2019 |
martin | Pull up following revision(s) (requested by mrg in ticket #135):
distrib/sets/lists/comp/mi 1.2279 distrib/sets/lists/modules/mi 1.123 share/man/man9/Makefile 1.438 share/man/man9/usbnet.9 1.1-1.9 sys/dev/ic/rndisreg.h 1.3 sys/dev/usb/TODO 1.47-1.52 sys/dev/usb/TODO.usbmp 1.15,1.16 sys/dev/usb/files.usb 1.157-1.167 sys/dev/usb/if_aue.c 1.155-1.161 sys/dev/usb/if_auereg.h 1.30-1.32 sys/dev/usb/if_axe.c 1.103-1.119 sys/dev/usb/if_axen.c 1.51-1.53,1.55-1.67 sys/dev/usb/if_axenreg.h 1.15 sys/dev/usb/if_cdce.c 1.54-1.67 sys/dev/usb/if_cue.c 1.85,1.86 sys/dev/usb/if_cuereg.h 1.23 sys/dev/usb/if_kue.c 1.97-1.100 sys/dev/usb/if_kuereg.h 1.23,1.24 sys/dev/usb/if_mue.c 1.51-1.55 sys/dev/usb/if_muereg.h 1.6 sys/dev/usb/if_muevar.h 1.9 sys/dev/usb/if_smsc.c 1.46-1.61 sys/dev/usb/if_smscreg.h 1.6 sys/dev/usb/if_smscvar.h delete sys/dev/usb/if_udav.c 1.60-1.71 sys/dev/usb/if_udavreg.h 1.14,1.15 sys/dev/usb/if_upl.c 1.65,1.66 sys/dev/usb/if_ure.c 1.15-1.31 sys/dev/usb/if_urevar.h 1.4,1.5 sys/dev/usb/if_url.c 1.67-1.70 sys/dev/usb/if_urlreg.h 1.14 sys/dev/usb/if_urndis.c 1.22-1.33 sys/dev/usb/if_urtwn.c 1.72 sys/dev/usb/ohci.c 1.290 sys/dev/usb/uhub.c 1.143 sys/dev/usb/usb.c 1.180 sys/dev/usb/usb.h 1.118 sys/dev/usb/usb_mem.c 1.71 sys/dev/usb/usb_subr.c 1.238,1.239 sys/dev/usb/usbdevs 1.772 sys/dev/usb/usbdi.c 1.183,1.186 sys/dev/usb/usbdi.h 1.97 sys/dev/usb/usbdi_util.c 1.75 sys/dev/usb/usbhist.h 1.5,1.6 sys/dev/usb/usbnet.c 1.1-1.24 sys/dev/usb/usbnet.h 1.1-1.14 sys/dev/usb/usbroothub.c 1.9 sys/dev/usb/xhci.c 1.109,1.110 sys/modules/Makefile 1.223 sys/modules/usbnet/Makefile 1.1
usbnet(9): Add common framework for USB network devices. This bring various safety fixes to all updated drivers, and includes locking clean up, detach safety when being used or not, separate rx/tx locks to improve performance, porting to NET_MPSAFE, many edge/error case bugs in drivers fixed, as well as resovling PRs 54303 and 54308. These drivers are converted: axe(4), axen(4), aue(4), cdce(4), cue(4), kue(4), mue(4), smsc(4), udav(4), upl(4), ure(4), url(4), and urndis(4).
|
1.121.2.1 |
| 29-Feb-2020 |
ad | Sync with head.
|
1.131.4.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|