1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys/dev
Steven Hartland 85c9dd9d89 Prevent overflow issues in timeout processing
Previously, any timeout value for which (timeout * hz) will overflow the
signed integer, will give weird results, since callout(9) routines will
convert negative values of ticks to '1'. For unsigned integer overflow we
will get sufficiently smaller timeout values than expected.

Switch from callout_reset, which requires conversion to int based ticks
to callout_reset_sbt to avoid this.

Also correct isci to correctly resolve ccb timeout.

This was based on the original work done by Eygene Ryabinkin
<rea@freebsd.org> back in 5 Aug 2011 which used a macro to help avoid
the overlow.

Differential Revision:	https://reviews.freebsd.org/D1157
Reviewed by:	mav, davide
MFC after:	1 month
Sponsored by:	Multiplay
2014-11-21 21:01:24 +00:00
..
aac Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
aacraid
acpi_support The SYSCTL data pointers can come from userspace and must not be 2014-10-28 12:00:39 +00:00
acpica Use the correct device. Note this commit complements r274386. 2014-11-11 19:42:10 +00:00
adb No need to check if devd is running before posting an event. 2014-06-21 00:53:56 +00:00
adlink
advansys Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
ae Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
age Mechanically convert to if_inc_counter(). 2014-09-18 21:01:41 +00:00
agp Initial attachment of the agp(4) to Haswell IGP. There is no handling 2014-11-11 12:56:30 +00:00
aha Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
ahb Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
ahci Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
aic Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
aic7xxx shared_scb_data set, but never used, remove it. 2014-08-08 11:47:04 +00:00
alc Remove ALC_LOCK_ASSERT in alc_stop_queue(). This function is now 2014-10-13 01:06:40 +00:00
ale Fix a long standing bug in MAC statistics register access. One 2014-10-08 01:03:32 +00:00
alpm Move all the power management (SMBus) drivers to their own directory, 2014-09-23 06:31:15 +00:00
altera Add Altera Parallel IO (PIO) device driver. 2014-11-18 14:12:19 +00:00
amdpm Move all the power management (SMBus) drivers to their own directory, 2014-09-23 06:31:15 +00:00
amdsbwd
amdsmb Move amdsmb and nfsmb from dev/pci to their own device directory. 2014-09-23 05:54:18 +00:00
amdtemp Add one more AMD Kaveri APU device ID. 2014-10-13 13:13:42 +00:00
amr Set but not used variables eliminated. 2014-08-08 11:47:09 +00:00
an Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
arcmsr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
asmc The SYSCTL data pointers can come from userspace and must not be 2014-10-28 12:00:39 +00:00
asr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
ata Add another PCI ID for JMB368 PATA controller. 2014-10-20 13:18:52 +00:00
ath Convert the callouts back to using mutexes. 2014-11-15 01:18:49 +00:00
atkbdc Convert from timeout(9) to callout(9). 2014-09-22 14:27:26 +00:00
auxio
bce - Provide bce_get_counter() to return counters that are not collected, 2014-09-25 07:22:24 +00:00
beri Add BERI-specific virtio mmio "platform" device. 2014-11-19 14:49:29 +00:00
bfe Mechanically convert to if_inc_counter(). 2014-09-18 21:03:13 +00:00
bge - Remove empty wrappers ether_poll_[de]register_drv(). [1] 2014-09-28 14:05:18 +00:00
bktr Replace cvsweb link wihg svnweb URL in bktr(4) release notes. 2014-08-30 18:01:45 +00:00
bm Mechanically convert to if_inc_counter(). 2014-09-18 21:05:59 +00:00
buslogic Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
bvm
bwi Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
bwn Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
bxe Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
cadence Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
cardbus Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
cas Mechanically convert to if_inc_counter(). 2014-09-18 20:53:02 +00:00
ce Convert most BPF_TAP users to BPF_MTAP. 2014-09-28 19:05:22 +00:00
cesa
cfe Convert remaining {g,s}etenv->kern_{g,s}etenv 2014-10-17 17:34:05 +00:00
cfi Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
ciss Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
cm Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
cmx
coretemp
cp Convert most BPF_TAP users to BPF_MTAP. 2014-09-28 19:05:22 +00:00
cpuctl Make cpuctl_do_cpuid() and cpuctl_do_cpuid_count() return void. 2014-06-24 06:52:32 +00:00
cpufreq
cs Mechanically convert to if_inc_counter(). 2014-09-18 21:14:46 +00:00
ct Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
ctau Don't pass RF_ALLOCATED to bus_alloc_resource(). 2014-10-10 19:12:04 +00:00
cx Don't pass RF_ALLOCATED to bus_alloc_resource(). 2014-10-10 19:12:04 +00:00
cxgb In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
cxgbe cxgbe(4): figure out the max payload size and save it for later. 2014-11-19 20:16:56 +00:00
cy
dc Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
dcons
de Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
digi Don't pass RF_ALLOCATED to bus_alloc_resource(). 2014-10-10 19:12:04 +00:00
dpms
dpt Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
drm Remove always false comparison. 2014-09-03 09:58:59 +00:00
drm2 drm/radeon: Lower priority of a message related to invalid EDID 2014-11-16 17:53:48 +00:00
dwc Mechanically convert to if_inc_counter(). 2014-09-27 20:43:01 +00:00
e1000 Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ed Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
eisa
en Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
ep Mechanically convert to if_inc_counter(). 2014-09-18 20:11:28 +00:00
esp target is unsigned, so don't compare it < 0 for range test. 2014-08-07 21:56:32 +00:00
et - Provide igb_get_counter() to return counters that are not collected, 2014-09-24 11:23:55 +00:00
etherswitch Add another revision of the AR8327. 2014-07-26 21:33:17 +00:00
ex Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
exca
fatm Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
fb vt(4): Fix mouse cursor handling in vt_fb/creator_vt/ofwfb 2014-08-27 15:10:28 +00:00
fdc Merge the PC98 fdc(4) driver into the MI driver. While here, replace 2014-09-25 20:40:24 +00:00
fdt The ranges parent bus address may just be a tag to the entry in the parent 2014-11-20 17:03:40 +00:00
fe Mechanically convert to if_inc_counter(). 2014-09-18 20:15:53 +00:00
ffec Mechanically convert to if_inc_counter(). 2014-09-18 20:58:04 +00:00
filemon
firewire Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
flash
fxp - Remove empty wrappers ether_poll_[de]register_drv(). [1] 2014-09-28 14:05:18 +00:00
gem Mechanically convert to if_inc_counter(). 2014-09-18 20:21:46 +00:00
glxiic Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
glxsb This is the much-discussed major upgrade to the random(4) device, known to you all as /dev/random. 2014-10-30 21:21:53 +00:00
gpio Make gpio_default_map_gpios() static. No functional changes. 2014-11-18 17:37:33 +00:00
gxemul Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
hatm Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
hifn Don't destroy bus_dma maps created by bus_dmamem_alloc(). In some cases, 2014-06-10 20:25:45 +00:00
hme Mechanically convert to if_inc_counter(). 2014-09-18 21:07:05 +00:00
hpt27xx Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
hptiop Various fixes to hptiop(4): 2014-08-05 23:35:19 +00:00
hptmv Various fixes to hptmv(4): 2014-08-05 23:58:49 +00:00
hptnr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
hptrr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
hwpmc Clamp too-large hwpmc callchaindepth to the maximum 2014-11-20 23:16:19 +00:00
hyperv Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
ic
ichsmb
ichwd
ida A dma tag alignment should be 1 (not 0) when a device can dma at any address. 2014-11-06 18:14:12 +00:00
ie Convert most BPF_TAP users to BPF_MTAP. 2014-09-28 19:05:22 +00:00
ieee488
if_ndis Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
iicbus Allow i2c bus speed to be configured via hints, FDT data, and sysctl. 2014-11-18 01:54:31 +00:00
iir Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
intpm Move all the power management (SMBus) drivers to their own directory, 2014-09-23 06:31:15 +00:00
io
ipmi
ips - Use the existing driver lock in cdevsw methods and remove D_NEEDGIANT. 2014-11-13 22:06:57 +00:00
ipw Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
isci Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
iscsi In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
iscsi_initiator Fix old iSCSI initiator to work with new CAM locking. 2014-09-30 16:17:12 +00:00
ismt Add ismt(4) driver. 2014-05-20 19:55:06 +00:00
isp Fix build without INVARIANTS, broken by r274675. 2014-11-19 13:04:25 +00:00
ispfw
iwi Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
iwn Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
ixgb Provide ixgb_get_counter(). 2014-09-28 07:40:26 +00:00
ixgbe Fix r273112: do not turn DROP_EN by default. 2014-11-16 18:08:00 +00:00
ixl After r274205 unbreak NOIP kernels. vsi is now also used outside 2014-11-07 11:34:06 +00:00
jme Mechanically convert to if_inc_counter(). 2014-09-24 11:33:43 +00:00
joy
kbd
kbdmux
ksyms
le Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
led
lge Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
lmc - Provide lmc_get_counter() to return counters that are not collected, 2014-09-25 07:00:31 +00:00
malo Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
mbox
mc146818 Use FreeBSD-bit-checking-style 2014-10-10 14:17:42 +00:00
mca
mcd Add locking to mcd(4) and mark MPSAFE. 2014-11-18 21:51:01 +00:00
md For md(4), posix shm(3) and tmpfs(5), free swap space used by paged in 2014-07-28 14:27:05 +00:00
mem
mfi Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
mge Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
mii Add driver for Micrel KSZ9021 Gigabit Ethernet Transceiver (PHY). 2014-10-21 09:14:16 +00:00
mk48txx
mlx Add missing calls to bus_dmamap_unload() when freeing static DMA 2014-06-13 18:20:44 +00:00
mly Add locking to mly(4) and mark MPSAFE. 2014-11-18 21:55:50 +00:00
mmc fwsectors and fwheads used to be somehwat arbitrary. However, they are 2014-10-16 19:52:12 +00:00
mn
mpr Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
mps Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
mpt Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
mrsas Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
mse Add locking and mark MPSAFE. 2014-10-11 19:36:59 +00:00
msk Eliminate unnecessary checking for M_EXT on mbufs returned by m_getjcl(). 2014-10-13 06:51:40 +00:00
mvs Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
mwl Mechanically convert to if_inc_counter(). 2014-09-18 20:18:55 +00:00
mxge Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
my Mechanically convert to if_inc_counter(). 2014-09-18 20:59:59 +00:00
nand Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
ncr Lock ncr(4) and mark it MPSAFE along with various other fixes: 2014-09-25 18:43:52 +00:00
ncv Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
netfpga10g/nf10bmac Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
netmap add support for private knote lock (reduces lock contention), 2014-11-13 00:40:34 +00:00
nfe Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
nfsmb Move amdsmb and nfsmb from dev/pci to their own device directory. 2014-09-23 05:54:18 +00:00
nge Mechanically convert to if_inc_counter(). 2014-09-18 20:23:34 +00:00
nmdm Fix issue with nmdm and leading zeros in device name. 2014-09-10 05:44:15 +00:00
nsp Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
ntb
null Add missing privilege check when setting the dump device. Before that change it 2014-11-11 04:48:09 +00:00
nvd
nvme Use bitwise OR instead of logical OR when constructing value for 2014-06-10 21:40:43 +00:00
nvram
nvram2env Convert remaining {g,s}etenv->kern_{g,s}etenv 2014-10-17 17:34:05 +00:00
nxge Don't bother clearing maps for static DMA allocations to NULL. Instead, 2014-06-17 18:10:06 +00:00
oce Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
ofw Allow i2c bus speed to be configured via hints, FDT data, and sysctl. 2014-11-18 01:54:31 +00:00
patm Follow up to r225617. In order to maximize the re-usability of kernel code 2014-10-16 18:04:43 +00:00
pbio
pccard Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
pccbb Fix typo pointed out by avg@ and Joerg Sonnenberger. Add a clarifying 2014-11-18 17:06:46 +00:00
pcf
pci Revert r274635 as it's completely wrong. 2014-11-19 11:05:45 +00:00
pcn Mechanically convert to if_inc_counter(). 2014-09-18 20:24:47 +00:00
pdq Mechanically convert to if_inc_counter(). 2014-09-18 20:44:53 +00:00
powermac_nvram
ppbus Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
ppc
proto
pst Cleanups to pst(4): 2014-11-18 21:58:57 +00:00
pty
puc puc(4): add an entry for the Oxford Semiconductor OXPCIe952 1S1P card. 2014-10-23 18:03:27 +00:00
qlxgb Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
qlxgbe Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
qlxge Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
quicc
ral Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
random Update comment. 2014-11-11 14:30:35 +00:00
rc
re It seems multicast filtering of RTL8168F does not work. Workaround 2014-10-21 01:31:24 +00:00
rl Mechanically convert to if_inc_counter(). 2014-09-19 10:33:23 +00:00
rndtest
rp Use the callout(9) API instead of timeout(9). To do this more cleanly, 2014-11-11 18:15:05 +00:00
rt Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
safe make this compile on arm... bus_size_t is not size_t, and it has 2014-10-29 02:23:50 +00:00
sbni Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
scc
scd Add locking to scd(4) and mark MPSAFE. 2014-11-18 22:02:37 +00:00
sdhci class, subclass and progif were never used, so don't bother setting 2014-10-13 16:23:51 +00:00
sec
sf Fix typo. 2014-09-19 03:55:19 +00:00
sfxge Fixup the setting of the baud rate. 2014-10-02 22:05:48 +00:00
sge Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
si Fix build of si(4) and enable it in LINT on amd64 and i386. 2014-08-20 16:07:17 +00:00
siba Remove some unused variables. 2014-05-16 21:19:17 +00:00
siis Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
sio Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
sis Mechanically convert to if_inc_counter(). 2014-09-18 20:09:35 +00:00
sk Eliminate unnecessary checking for M_EXT on mbufs returned by m_getjcl(). 2014-10-13 06:51:40 +00:00
smbus
smc Fx a type from r271817; it's IFCOUNTER_* not IFNET_*. 2014-09-18 22:10:49 +00:00
sn Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
snc Mechanically convert to if_inc_counter(). 2014-09-18 20:43:17 +00:00
snp
sound Partially fix indentation issues to improve readability helping cooperation with 2014-11-04 23:10:58 +00:00
speaker
spibus
ste Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
stg Lock the scsi_low code and the drivers which use it along with other 2014-11-20 20:50:05 +00:00
stge Mechanically convert to if_inc_counter(). 2014-09-18 21:16:05 +00:00
streams Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
sym Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
syscons Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
tdfx
terasic Correct typo in comment 2014-07-29 14:41:28 +00:00
ti - Mechanically convert to if_inc_counter() the rest of counters. 2014-09-26 10:47:57 +00:00
tl Mechanically convert to if_inc_counter(). 2014-09-18 20:03:45 +00:00
tpm
trm Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
tsec Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
twa
twe
tws Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
tx Mechanically convert to if_inc_counter(). 2014-09-18 20:06:10 +00:00
txp - Provide txp_get_counter() to return counters that are not collected, 2014-09-24 11:58:23 +00:00
uart Make uart_bus_fdt a decendant of ofwbus 2014-11-12 21:41:15 +00:00
ubsec Don't check maps for static DMA allocations against NULL to see if an 2014-06-13 19:34:34 +00:00
usb Add Trendnet TEW-646UBH. 2014-11-19 05:38:45 +00:00
utopia
vge Mechanically convert to if_inc_counter(). 2014-09-18 20:30:47 +00:00
viapm Move all the power management (SMBus) drivers to their own directory, 2014-09-23 06:31:15 +00:00
viawd
virtio Prevent overflow issues in timeout processing 2014-11-21 21:01:24 +00:00
vkbd
vmware/vmxnet3 Provide vmxnet3_get_counter() to return counters that are not collected, 2014-09-25 08:36:11 +00:00
vr Mechanically convert to if_inc_counter(). 2014-09-18 20:17:27 +00:00
vt vt(4): Support syscons' SC_HISTORY_SIZE to configure history size 2014-11-04 23:51:35 +00:00
vte - Provide vte_get_counter() to return counters that are not collected, 2014-09-24 11:31:46 +00:00
vx Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
vxge Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
watchdog
wb Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
wbwd
wds Add locking to wds(4) and mark MPSAFE. 2014-11-18 22:12:51 +00:00
wi - Provide wi_get_counter() to return counters that are not collected, 2014-09-24 12:19:00 +00:00
wl Various fixes for wl(4): 2014-11-20 20:09:18 +00:00
wpi Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
wtap Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
xe Mechanically convert to if_inc_counter(). 2014-09-19 03:51:26 +00:00
xen opt_global.h is included automatically in the build. No need to 2014-11-18 17:06:56 +00:00
xl Mechanically convert to if_inc_counter(). 2014-09-18 20:35:22 +00:00