Commit Graph

198316 Commits

Author SHA1 Message Date
Adrian Chadd
565248e2ad Use a static buffer in wpi_cmd - rather than alloc/free'ing the
beacon buffer frequently.

PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:50:23 +00:00
Adrian Chadd
0b455e8fba Use WPI_RSSI_OFFSET instead of stat->noise (always 0 for me)
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:48:32 +00:00
Adrian Chadd
7e0d52321f Fix debug category in wpi_read_eeprom_band()
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:48:00 +00:00
Adrian Chadd
d138d3badc Move IBSS assocation processing to wpi_newassoc().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:46:24 +00:00
Adrian Chadd
4eaf2ee348 wpi_tx_done() shouldn't wait for wpi_start().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:45:43 +00:00
Adrian Chadd
7964dd56b7 Add node table lock - addresses LOR in wpi_node_free().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:44:52 +00:00
Adrian Chadd
f736d89885 Optimise sc->rev processing.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:43:58 +00:00
Adrian Chadd
45ac43f30f Use ring->queued for WPI_CMD_TX_DATA only.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:43:22 +00:00
Adrian Chadd
10550f6135 Move some code under WPI_LOCK().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:42:41 +00:00
Adrian Chadd
0b093122eb Remove unnecessary locking.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:41:57 +00:00
Adrian Chadd
ff62db1d9d Eliminate the WPI_FLAG_BUSY flag.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:40:59 +00:00
Adrian Chadd
63f576999e Add separate lock for TX queues.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:40:11 +00:00
Adrian Chadd
0ebca24555 Wrap node addition in STA mode into wpi_add_sta_node().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:35:25 +00:00
Adrian Chadd
eca2eb395c Replace kernel unit allocator with local set of functions.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:34:26 +00:00
Adrian Chadd
f15520d9b0 Move key processing in wpi_tx_data.
(This is in preparation for further work to support hardware encryption.)

PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:33:13 +00:00
Adrian Chadd
f319a41c66 Remove some un-needed variables.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:32:12 +00:00
Adrian Chadd
7167f5fc02 Reformatting - break lines ~ 80 characters.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:31:21 +00:00
Adrian Chadd
7f1299c5cd wpi_intr(): remove duplicate code
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:30:03 +00:00
Adrian Chadd
8e4cf38ac7 Replace few numbers with named constants.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:29:22 +00:00
Adrian Chadd
a5e093b0e0 Wrap cast to (struct wpi_node *) into WPI_NODE macros
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:23:58 +00:00
Adrian Chadd
76fdf7eb35 msleep() -> mtx_sleep()
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:22:16 +00:00
Adrian Chadd
cb0de40f2a Fix warning: Value stored to 'supportsa' is never read.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:21:30 +00:00
Adrian Chadd
96dadeb0aa Fix error handling in wpi_scan().
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:20:43 +00:00
Adrian Chadd
bb086d4e83 Fix indentation - non-functional change.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:19:54 +00:00
Adrian Chadd
ebf62e08fb Check some variables only on active TX rings
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:19:01 +00:00
Adrian Chadd
5f25a0e970 Use correct pointer for wpi_softc
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:18:09 +00:00
Adrian Chadd
01729242e5 Fix panics in wpi_tx_done() when powersave is enabled
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:17:25 +00:00
Adrian Chadd
71258eb207 Fix races between wpi_rx_done() and wpi_stop()
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:15:10 +00:00
Adrian Chadd
e336bd5499 Divide ackfailcnt by 2 (firmware decreases rate after two unsuccessful retries)
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:13:58 +00:00
Adrian Chadd
811fe0a8fb Run callout_reset() with mutex held.
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:13:07 +00:00
Adrian Chadd
0c66281c5f Add missed ieee80211_draintask()
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:12:16 +00:00
Adrian Chadd
9facf2b90a Fix a typo (IEEE80211_S_SCAN -> IEEE80211_F_SCAN)
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:10:55 +00:00
Adrian Chadd
893edbea10 Fix mbuf mapping errors in wpi_cmd2() + add check for nsegs
PR:		kern/197143
Submitted by:	Andriy Voskoboinyk <s3erios@gmail.com>
2015-03-15 20:09:47 +00:00
Andrew Turner
d051c9457e Move the x86 specific files to be built in the amd64 loader.efi. This will
help with importing the arm and arm64 versions of loader.efi.
2015-03-15 19:00:35 +00:00
Alexander Motin
811a355f1a According to Linux and QEMU, s/n equal to buffer is not zero-terminated.
This makes same s/n reported for both virtio and AHCI drivers.

MFC after:	2 weeks
2015-03-15 17:45:16 +00:00
Ian Lepore
207e72288c Remove redundant sysctl_handle_string() calls, the sbuf auto-drain takes
care of that.

Reviewed by:	erj@
2015-03-15 17:39:38 +00:00
Alexander Motin
f2e62de7d9 Close potential race on blockif_close().
Reported by:	vangyzen
MFC after:	2 weeks
2015-03-15 16:18:03 +00:00
Alexander Motin
7315946b80 Fix networking problem after r280026.
I've missed that network driver sometimes returns taken request back to
available queue without processing.  Add new helper function for that case.

Reported by:	flo
MFC after:	2 weeks
2015-03-15 16:09:39 +00:00
Alexander Motin
e72d4950e1 Give AHCI disk serial based on backing file path same as for virtio block.
It is still not good that they may intersect on different hosts, but that
is better then intersecting on the same host.

MFC after:	2 weeks
2015-03-15 15:29:03 +00:00
Robert Watson
9dcce6e267 Now that DTrace stack traces handle exception frames better, skip fewer
stack frames for FBT 'entry' probes on ARM.

MFC after:	3 days
Sponsored by:	DARPA, AFRL
2015-03-15 15:19:02 +00:00
Robert Watson
2a1d3dee4f On ARM, unlike some other architectures, saved $pc values from in-kernel
traps do appear in the regular call stack, rather than only in a special
trap frame, so we don't need to inject the trap-frame $pc into a returned
stack trace in DTrace.

MFC after:	3 days
Sponsored by:	DARPA, AFRL
2015-03-15 15:17:34 +00:00
Alexander Motin
066a8f1411 Rewrite virtio block device driver to work asynchronously and use the block
I/O interface.

Asynchronous operation, based on r280026 change, allows to not block virtual
CPU during I/O processing, that on slow/busy storage can take seconds.
Use of recently improved block I/O interface allows to process multiple
requests same time, that improves random I/O performance on wide storages.

Benchmarks of virtual disk, backed by ZVOL on RAID10 pool of 4 HDDs, show
~3.5 times random read performance improvements, while no degradation on
linear I/O.  Guest CPU usage during test dropped from 100% to almost zero.

MFC after:	2 weeks
2015-03-15 14:57:11 +00:00
Robert Watson
808d83b01a Replace the completely arbitrary '3' with '9' for the number of frames to
skip using the DTrace 'profile' provider on ARM.  This causes stack traces
to skip various driver-and callout-related things as they do on x86, where
the likewise arbitrary values are '6' (32-bit) and '10' (64-bit) for
similar sorts of reasons.

MFC after:	3 days
Sponsored by:	DARPA, AFRL
2015-03-15 14:12:40 +00:00
Dimitry Andric
70aad3bf07 Upgrade our copy of clang, llvm and lldb to 3.6.0 release.
Please note that from 3.5.0 onwards, clang/llvm/lldb require C++11
support to build; see UPDATING for more information.

Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.6.0/tools/clang/docs/ReleaseNotes.html>

Thanks to Ed Maste for the lldb part of this upgrade.

Exp-run:	antoine
2015-03-15 13:31:13 +00:00
Dimitry Andric
df6508c726 Merge ^/head r279995 through r280029. 2015-03-15 11:58:52 +00:00
Dimitry Andric
302cd48a04 Bump __FreeBSD_version again, and set real dates in UPDATING and
ObsoleteFiles.inc, in preparation for the merge back to head.
2015-03-15 11:56:43 +00:00
Alexander Motin
fdb7e97f87 Modify virtqueue helpers added in r253440 to allow queuing.
Original virtqueue design allows queued and out-of-order processing, but
helpers added in r253440 suppose only direct blocking in-order one.
It could be fine for network, etc., but it is a huge limitation for storage
devices.
2015-03-15 11:37:07 +00:00
Baptiste Daroussin
e509c88862 Import mdocml 1.13.3 2015-03-15 11:35:39 +00:00
Baptiste Daroussin
0ae9da150d Import mdocml 1.13.3 2015-03-15 11:28:48 +00:00
Alexander Motin
7e8e553940 Block delete capability for read-only devices.
Submitted by:	neel
MFC after:	2 weeks
2015-03-15 08:09:56 +00:00