#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
8c4ee0b2 |
|
23-Nov-2023 |
Alexander Motin <mav@FreeBSD.org> |
Use xpt_path_sbuf() in few drivers xpt_path_string() is now a wrapper around xpt_path_sbuf(). Using it to than concatenate result to another sbuf makes no sense. Just call xpt_path_sbuf() directly. MFC after: 1 month
|
#
180c0240 |
|
18-Sep-2023 |
Mina Galić <freebsd@igalic.co> |
virtio: remove virtio_alloc_virtqueues' flags arg Summary: the flags argument is unused. Its initial design idea has been superceded by the addition of virtio_setup_intr and related APIs. Sponsored by: The FreeBSD Foundation Reviewers: bryanv Reviewed By: bryanv Subscribers: cognet, imp Differential Revision: https://reviews.freebsd.org/D41850
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
5c4c96d3 |
|
06-May-2022 |
John Baldwin <jhb@FreeBSD.org> |
virtio: Remove unused devclass arguments to DRIVER_MODULE.
|
#
b25ddb78 |
|
13-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
virtio: Use __diagused for variables only used in KASSERT().
|
#
5b81e2e1 |
|
16-May-2021 |
Mark Johnston <markj@FreeBSD.org> |
virtio_scsi: Zero stack-allocated CCBs Fixes: 3394d4239b ("cam: allocate CCBs from UMA for SCSI and ATA IO") Reported by: syzbot+2e9ce63919709feb3d1c@syzkaller.appspotmail.com Reviewed by: trasz Sponsored by: The FreeBSD Foundation
|
#
633218ee |
|
20-Jan-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
virtio: Reduce boilerplate for device driver module definitions Rather than have every device register itself for both virtio_pci and virtio_mmio, provide a VIRTIO_DRIVER_MODULE wrapper to declare both, merge VIRTIO_SIMPLE_PNPTABLE with VIRTIO_SIMPLE_PNPINFO and make the latter register for both buses. This also has the benefit of abstracting away the available transports and their names. Reviewed by: bryanv Differential Revision: https://reviews.freebsd.org/D28073
|
#
e6cc42f1 |
|
18-Jan-2021 |
Bryan Venteicher <bryanv@FreeBSD.org> |
virtio: Handle possible failure of virtio_finalize_features() Try to standardize how drivers negotiate feature and the function names Reviewed by: grehan (mentor) Differential Revision: https://reviews.freebsd.org/D27930
|
#
15be4953 |
|
18-Jan-2021 |
Bryan Venteicher <bryanv@FreeBSD.org> |
virtio_scsi: Add modern (V1) support Reviewed by: grehan (mentor) Differential Revision: https://reviews.freebsd.org/D27903
|
#
cd853791 |
|
27-Nov-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Make MAXPHYS tunable. Bump MAXPHYS to 1M. Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys. Make b_pages[] array in struct buf flexible. Size b_pages[] for buffer cache buffers exactly to atop(maxbcachebuf) (currently it is sized to atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1. The +1 for pbufs allow several pbuf consumers, among them vmapbuf(), to use unaligned buffers still sized to maxphys, esp. when such buffers come from userspace (*). Overall, we save significant amount of otherwise wasted memory in b_pages[] for buffer cache buffers, while bumping MAXPHYS to desired high value. Eliminate all direct uses of the MAXPHYS constant in kernel and driver sources, except a place which initialize maxphys. Some random (and arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted straight. Some drivers, which use MAXPHYS to size embeded structures, get private MAXPHYS-like constant; their convertion is out of scope for this work. Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs, dev/siis, where either submitted by, or based on changes by mav. Suggested by: mav (*) Reviewed by: imp, mav, imp, mckusick, scottl (intermediate versions) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27225
|
#
068dbf36 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
virtio: clean up empty lines in .c and .h files
|
#
a1da7a46 |
|
06-May-2020 |
Jessica Clarke <jrtc27@FreeBSD.org> |
virtio: Support MMIO bus for all devices The bus is independent of the device, so all devices can be attached to either a PCI bus or an MMIO bus. For example, QEMU's virtio-rng-device gives the MMIO variant of virtio-rng-pci, and is now detected. Reviewed by: andrew, br, brooks (mentor) Approved by: andrew, br, brooks (mentor) Differential Revision: https://reviews.freebsd.org/D24730
|
#
adbf6af7 |
|
23-Jan-2020 |
Andriy Gapon <avg@FreeBSD.org> |
virtio_scsi: use max target ID plus one as the initiator ID This bus does not really have a concept of the initiator ID, so use a guaranteed dummy one that won't conflict with any real target. This change fixes a problem with virtio_scsi on GCE where disks get sequential target IDs starting from one. If there are seven or more disks, then a disk with the target ID of seven would not be discovered by FreeBSD as that ID was reserved as the initiator ID -- see scsi_scan_bus(). Discussed with: bryanv MFC after: 2 weeks Sponsored by: Panzura
|
#
df840654 |
|
21-Jun-2019 |
Eric van Gyzen <vangyzen@FreeBSD.org> |
VirtIO SCSI: validate seg_max on attach Until r349278, bhyve presented a seg_max to the guest that was too large. Detect this case and clamp it to the virtqueue size. Otherwise, we would fail the "too many segments to enqueue" assertion in virtqueue_enqueue(). I hit this by running a guest with a MAXPHYS of 256 KB. Reviewed by: bryanv cem MFC after: 1 week Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D20703
|
#
0f6040f0 |
|
03-Jun-2019 |
Conrad Meyer <cem@FreeBSD.org> |
virtio(4): Add PNP match metadata for virtio devices Register MODULE_PNP_INFO for virtio devices using the newbus PNP information provided by the previous commit. Matching can be quite simple; existing probe routines only matched on bus (implicit) and device_type. The same matching criteria are retained exactly, but is now also available to devmatch(8). Reviewed by: bryanv, markj; imp (earlier version) Differential Revision: https://reviews.freebsd.org/D20407
|
#
e5355d33 |
|
12-Apr-2019 |
Alexander Motin <mav@FreeBSD.org> |
Fix SCSI sense data pass through. MFC after: 1 week Sponsored by: iXsystems, Inc.
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
4195c7de |
|
04-Jan-2017 |
Alan Somers <asomers@FreeBSD.org> |
Always null-terminate ccb_pathinq.(sim_vid|hba_vid|dev_name) The sim_vid, hba_vid, and dev_name fields of struct ccb_pathinq are fixed-length strings. AFAICT the only place they're read is in sbin/camcontrol/camcontrol.c, which assumes they'll be null-terminated. However, the kernel doesn't null-terminate them. A bunch of copy-pasted code uses strncpy to write them, and doesn't guarantee null-termination. For at least 4 drivers (mpr, mps, ciss, and hyperv), the hba_vid field actually overflows. You can see the result by doing "camcontrol negotiate da0 -v". This change null-terminates those fields everywhere they're set in the kernel. It also shortens a few strings to ensure they'll fit within the 16-character field. PR: 215474 Reported by: Coverity CID: 1009997 1010000 1010001 1010002 1010003 1010004 1010005 CID: 1331519 1010006 1215097 1010007 1288967 1010008 1306000 CID: 1211924 1010009 1010010 1010011 1010012 1010013 1010014 CID: 1147190 1010017 1010016 1010018 1216435 1010020 1010021 CID: 1010022 1009666 1018185 1010023 1010025 1010026 1010027 CID: 1010028 1010029 1010030 1010031 1010033 1018186 1018187 CID: 1010035 1010036 1010042 1010041 1010040 1010039 Reviewed by: imp, sephe, slm MFC after: 4 weeks Sponsored by: Spectra Logic Corp Differential Revision: https://reviews.freebsd.org/D9037 Differential Revision: https://reviews.freebsd.org/D9038
|
#
85c9dd9d |
|
21-Nov-2014 |
Steven Hartland <smh@FreeBSD.org> |
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
|
#
8c457c88 |
|
25-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Read each field of the configuration individually In the forthcoming VirtIO spec, the device configuration is always in little endian instead of guest edian. This is a noop change for now.
|
#
31ac0399 |
|
24-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Remove spaces before tabs in the function prototype list
|
#
22525db5 |
|
12-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Add unmapped IO support to virtio_scsi(4)
|
#
bf51187b |
|
12-Jan-2014 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Remove incorrect bit shift when assigning the LUN request field This caused duplicate targets appearing on Google Compute Engine instances. PR: kern/185626 Submitted by: Venkatesh Srinivas <venkateshs@google.com> MFC after: 3 days
|
#
4d5919ec |
|
04-Jul-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Merge virtio_scsi change from projects/virtio r252680: Fix SIM lock not owned panic The CAM locking requirements of registering an async callback has changed so the SIM lock must be held. Remove code that explicitly dropped the lock around the register. Also return CAM_SEL_TIMEOUT instead of CAM_TID_INVALID for bad targets to avoid a lot console spam during bus scans. MFC after: 1 month
|
#
abd6790c |
|
04-Jul-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Merge virtio changes from projects/virtio Contains projects/virtio commits: r245738: virtio: Minor man page tweaks r246060: virtio: Cleanup feature description printing r246306: virtio: Remove old debugging flag r247238: virtio: Remove PRIx64 macros from format strings r247239: virtio: Constify some fields r247240: virtio: Minor code simplifications r249962: virtio: Update to my freebsd.org email address MFC after: 1 month
|
#
6632efe4 |
|
04-Jul-2013 |
Bryan Venteicher <bryanv@FreeBSD.org> |
Convert VirtIO to use ithreads instead of taskqueues Contains projects/virtio commits: r245709: Each VirtIO device was scheduling its own taskqueue(9) to do the off-level interrupt handling. ithreads(9) is the more nature way to do this. The primary motivation for this work to better support network multiqueue. r245710: virtio: Change virtqueue intr handlers to return void r245711: virtio_blk: Remove interrupt taskqueue r245721: vtnet: Remove interrupt taskqueue r245722: virtio_scsi: Remove interrupt taskqueue r245747: vtnet: Remove taskqueue fields missed in r245721 MFC after: 1 month
|
#
e5dfa058 |
|
14-Apr-2013 |
Alexander Motin <mav@FreeBSD.org> |
MFprojects/camlock r248982: Stop abusing xpt_periph in random plases that really have no periph related to CCB, for example, bus scanning. NULL value is fine in such cases and it is correctly logged in debug messages as "noperiph". If at some point we need some real XPT periphs (alike to pmpX now), quite likely they will be per-bus, and not a single global instance as xpt_periph now.
|
#
dd0b4fb6 |
|
12-Feb-2013 |
Konstantin Belousov <kib@FreeBSD.org> |
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback. The cam changes unify the bus_dmamap_load* handling in cam drivers. The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map. Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
|
#
ac4b6bcd |
|
13-Dec-2012 |
Bryan Venteicher <bryanv@FreeBSD.org> |
virtio: Start taskqueues threads after attach cannot fail If virtio_setup_intr() failed during boot, we would hang in taskqueue_free() -> taskqueue_terminate() for all the taskq threads to terminate. This will never happen since the scheduler is not running by this point. Reported by: neel, grehan Approved by: grehan (mentor)
|
#
2aaf349c |
|
11-Dec-2012 |
Bryan Venteicher <bryanv@FreeBSD.org> |
virtio_scsi: Remove duplicated lines These must have been accidently copied from the if statement a few lines later. Also remove parameter name from function prototype. Approved by: grehan (mentor)
|
#
64d8b0b4 |
|
12-Oct-2012 |
Alexander Motin <mav@FreeBSD.org> |
Fix build with PAE enabled. I doubt any code uses CAM_SCATTER_VALID or CAM_DATA_PHYS, or they ever correctly worked, but make this build at least.
|
#
2f001371 |
|
11-Oct-2012 |
Peter Grehan <grehan@FreeBSD.org> |
Virtio SCSI driver Submitted by: Bryan Venteicher bryanv at daemoninthecloset dot org Reviewed by: grehan
|