summaryrefslogtreecommitdiff
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Add the sfxge(4) device driver, providing support for 10Gb Ethernet adaptersPhilip Paeps2011-11-2845-0/+38371
| | | | | | | | | | | | | | | | | based on Solarflare SFC9000 family controllers. The driver supports jumbo frames, transmit/receive checksum offload, TCP Segmentation Offload (TSO), Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO, and Receive Side Scaling (RSS) using MSI-X interrupts. This work was sponsored by Solarflare Communications, Inc. My sincere thanks to Ben Hutchings for doing a lot of the hard work! Sponsored by: Solarflare Communications, Inc. Approved by: re (bz) Notes: svn path=/releng/9.0/; revision=228101
* MFC r227805:Bernhard Schmidt2011-11-252-1/+29
| | | | | | | | | | | | | | | The DC calibration result obtained during initialization can't be passed over to the runtime firmware on 6050 devices. Instead let the runtime firmware do the calibration itself. This fixes support for the 6050 series devices. Submitted by: kevlo Approved by: re (kib) Obtained from: OpenBSD Tested by: lx, Tz-Huan Huang(earlier version) Notes: svn path=/releng/9.0/; revision=227968
* MFC r227547:Bjoern A. Zeeb2011-11-231-1/+1
| | | | | | | | | | | | | | | | | The maximum TSO frame size should be: maximum IP datagram size (65535 bytes) + Ethernet header size (14 bytes) + 2 * VLAN tag size (4 bytes) [1]. [1] We need to multiply by 2 to account for the double VLAN tag provision added in IEEE 802.1ad. Submitted by: David Somayajulu (david.somayajulu qlogic.com) Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227892
* MFC: r227537Marius Strobl2011-11-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it turns out, r186347 actually is insufficient to avoid the use of the curthread-accessing part of mtx_{,un}lock(9) when using a r210623-style curthread implementation on sparc64, crashing the kernel in its early cycles as PCPU isn't set up, yet (and can't be set up as OFW is one of the things we need for that, which leads to a chicken-and-egg problem). What happens is that due to the fact that the idea of r210623 actually is to allow the compiler to cache invocations of curthread, it factors out obtaining curthread needed for both mtx_lock(9) and mtx_unlock(9) to before the branch based on kobj_mutex_inited when compiling the kernel without the debugging options. So change kobj_class_compile_static(9) to just never acquire kobj_mtx, effectively restricting it to its documented use, and add a kobj_init_static(9) for initializing objects using a class compiled with the former and that also avoids using mutex(9) (and malloc(9)). Also assert in both of these functions that they are used in their intended way only. While at it, inline kobj_register_method() and kobj_unregister_method() as there wasn't much point for factoring them out in the first place and so that a reader of the code has to figure out the locking for fewer functions missing a KOBJ_ASSERT. Tested on powerpc{,64} by andreast. Reviewed by: nwhitehorn (earlier version), jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227712
* MFC r226679:Bernhard Schmidt2011-11-161-0/+1
| | | | | | | | | | | | | Let net80211 also know about stopped BA sessions. This fixes some issues where the driver assumed that BA resources are still available due to net80211 saying so. PR: 161407, 159768 Tested by: cperciva, rene Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227571
* MFC r226404:Eitan Adler2011-11-161-0/+33
| | | | | | | | | | | | - add support for I-O DATA RSA-PCI2/R PR: kern/142999 Submitted by: Takefu Kenji <takefu@airport.fm> Approved by: jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227566
* MFC r227409:Xin LI2011-11-151-0/+6
| | | | | | | | | | | | | | | Do a dummy read to flush the interrupt ACK that we just performed, ensuring that everything is really, truly consistent. This fixes certain cases where one will see various: mfi0: COMMAND 0xffffffXXXXXXXXXX TIMEOUT AFTER XX SECONDS Submitted by: scottl Ok'ed by: jhb Approved by: re (kib) Notes: svn path=/releng/9.0/; revision=227534
* MFC 226302:John Baldwin2011-11-093-7/+27
| | | | | | | | | | | | If an allocation for a specific resource range fails because it is not in a decoded range for an ACPI Host-PCI bridge, try to allocate it from the ACPI system resource range. If that works, permit the resource allocation regardless. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227397
* MFC: r227006, r227281, r227282Marius Strobl2011-11-072-0/+726
| | | | | | | | | | | | | | | | | Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and replace amd(4) with the former in the amd64, i386 and pc98 GENERIC kernel configuration files. Besides duplicating functionality, amd(4), which previously also supported the AMD Am53C974, unlike esp(4) is no longer maintained and has accumulated enough bit rot over time to always cause a panic during boot as long as at least one target is attached to it (see PR 124667). PR: 124667 Approved by: re (kib) Obtained from: NetBSD (based on) Notes: svn path=/stable/9/; revision=227305
* MFC: r226947, r226949, r227284Marius Strobl2011-11-073-121/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Use device_t rather than the NetBSDish struct device. - Move esp_devclass to ncr53c9x.c in order to allow different bus front-ends to use it. - Use KOBJMETHOD_END. - Remove the gl_clear_latched_intr hook as it's not needed for any of the chips nor the front-ends supported in FreeBSD and likely never will be. - Correct the DMA constraints and only limit the tag used for the transfer buffers to 32-bit DMA as that address is written into a 32-bit register. - The ESP200 also only supports up to 64k transfers. - Don't let the DMA and SBus front-end supply a maximum transfer size larger than MAXPHYS as that's the maximum the upper layers use and we otherwise just waste resources unnecessarily. - Initialize the ECB callout and don't zero the handle when returning ECBs to the free list so that ncr53c9x_callout() actually is called with the driver lock held. - On detach the driver lock should be held across cam_sim_free() according to isp(4) and a panic received. - Check the return value of NCRDMA_SETUP(), i.e. bus_dmamap_load(9), and try to handle failures gracefully. - In ncr53c9x_action() replace N calls to xpt_done() in a switch with just one at the end. - On XPT_PATH_INQ report "NCR" rather than "Sun" as the vendor as the former is somewhat more correct as well as the maximum supported transfer size via maxio in order to take advantage of controllers that that can handle more than DFLTPHYS. - Freeze the device queue if a request didn't complete without error and isn't already frozen. - Print the number of MESSAGE (EXTENDED) rejected. - Fix the path encoded in the multiple inclusion protection of ncr53c9xvar.h. - Correct the DMA constraints used in the LSI64854 core to not exceed the maximum supported transfer size and include the boundary so we don't need to check on every setup of a DMA transfer. - Let the bus DMA map callbacks do nothing in case of an error. - Correctly handle > 64k transfers for FAS366 in the LSI64854. A new feature flag NCR_F_LARGEXFER was introduced so we just need to check for this one and not for individual controllers supporting large transfers in several places. - Let the LSI64854 core load transfer buffers using BUS_DMA_NOWAIT as the NCR53C9x core can't handle EINPROGRESS. Due to lack of bounce buffers support, sparc64 doesn't actually use EINPROGRESS and likely never will, as an example for writing additional front-ends for the NCR53C9x core it makes sense to set BUS_DMA_NOWAIT anyway though. - Some minor cleanup. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227302
* MFC: r226995, r227042Marius Strobl2011-11-0622-1968/+799
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Import the common MII bitbang'ing code from NetBSD and convert drivers to take advantage of it instead of duplicating it. This reduces the size of the i386 GENERIC kernel by about 8k. The only potential in-tree users left unconverted are ed(4) and xe(4). Xe(4) generally should be changed to use miibus(4) instead of implementing PHY handling on its own, as otherwise it makes not much sense to add a dependency on miibus(4)/mii_bitbang(4) to it just for the MII bitbang'ing code. Ed(4) has some chip specific things interwinded with the MII bitbang'ing code and it's unclear whether it can be converted to common code, at least not without thorough testing of all the various chips supported by ed(4). The common MII bitbang'ing code also is useful in the embedded space for using GPIO pins to implement MII access. - Based on lessons learnt with dc(4) (see r185750), add bus barriers to the MII bitbang read and write functions of the other drivers converted in order to ensure the intended ordering. Given that register access via an index register as well as register bank/window switching is subject to the same problem, also add bus barriers to the respective functions of smc(4), tl(4) and xl(4). - Sprinkle some const. Thanks to the following testers: Andrew Bliznak (nge(4)), nwhitehorn@ (bm(4)), yongari@ (sis(4) and ste(4)) Thanks to Hans-Joerg Sirtl for supplying hardware to test stge(4). Reviewed by: yongari (subset of drivers) Approved by: re (kib) Obtained from: NetBSD (partially) Notes: svn path=/stable/9/; revision=227277
* MFC r227064:Bjoern A. Zeeb2011-11-0616-0/+6769
| | | | | | | | | | | | | Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30 for 3200 and 8200 series cards. Submitted by: David C Somayajulu (david.somayajulu@qlogic.com), Qlogic Corporation Approved by: re (kib) Notes: svn path=/stable/9/; revision=227268
* MFC: r227001Marius Strobl2011-11-061-1/+1
| | | | | | | | | | | | | | | Increase the IOC port initialization timeouts by ten times to what the corresponding Linux driver uses. This allows mpt(4) to still recognize all good SATA devices in presence of a defective one, which takes about 45 seconds. In the long term we probably should implement the logic used by mpt2sas(4) allowing IOC port initialization to complete at a later time. Submitted by: Andrew Boyer Approved by: re (kib) Notes: svn path=/stable/9/; revision=227230
* MFC: r226154, r226165Marius Strobl2011-11-065-34/+38
| | | | | | | | | | | | | | | | | | | | - Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY drivers that only ever attach to a particular MAC driver, i.e. inphy(4), ruephy(4) and xlphy(4), to the directory where the respective MAC driver lives and only compile it into the kernel when the latter is also there, also removing it from miibus.ko and moving it into the module of the respective MAC driver. - While at it, rename exphy.c, which comes from NetBSD where the MAC driver it corresponds to also is named ex(4) instead of xl(4) but that in FreeBSD actually identifies itself as xlphy(4), and its function names accordingly for consistency. - Additionally while at it, fix some minor style issues like whitespace in the register headers and add multi-inclusion protection to inphyreg.h. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227229
* MFC r227075:Hans Petter Selasky2011-11-061-0/+5
| | | | | | | | | Fix for panic at USB controller attach failure during cold boot. Approved by: re (kib) Notes: svn path=/stable/9/; revision=227216
* MFC r226896:Konstantin Belousov2011-11-051-1/+18
| | | | | | | | | | | Fix an implicit dependency between the MFI driver and CAM that had grown due to an API change in CAM. It's once again possible to link a static kernel with 'mfi' without requiring 'scbus' as well. Ditto for KLD loading. Approved by: re (bz) Notes: svn path=/stable/9/; revision=227117
* MFC r226903, r225777, r226221 and r226534:Hans Petter Selasky2011-11-015-3/+53
| | | | | | | | | | | Add some new USB device IDs and some USB device quirks. Improve the USB mass storage auto quirk detection. PR: usb/161798, usb/160911 Approved by: re (kib) Notes: svn path=/stable/9/; revision=227007
* MFC r226887:Xin LI2011-10-312-2/+1
| | | | | | | | | | Don't expose a constant array into global namespace. Reported by: Ruslan Yakovlev <quazi bk ru> via yongari Approved by: re (kib) Notes: svn path=/stable/9/; revision=226969
* MFC: r226381Marius Strobl2011-10-294-309/+322
| | | | | | | | | | | | | Merge from NetBSD: - Remove clause 3 and 4 from TNF licenses. - Fix memset usage. - Various cleanup. - Kill caddr_t. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226917
* Merge from r225950:Marius Strobl2011-10-294-10/+46
| | | | | | | | | | Set the sense residual properly. Reviewed by: ken Approved by: re (kib) Notes: svn path=/stable/9/; revision=226910
* MFC r226803:Hans Petter Selasky2011-10-294-2/+17
| | | | | | | | | | | Fix suspend and resume of non-super-speed USB devices in the generic XHCI driver. There appears to be some minor logic missing for this feature to work. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226904
* MFC r226695-226696:Pyun YongHyeon2011-10-271-1/+5
| | | | | | | | | | | | | | r226695: Fix a regression introduced in r218832. For TX status check, driver should use a TX list DMA tag. r226696: Add missing bus_dmamap_sync() in setup frame transmit. Approved by: re (kensmith) Notes: svn path=/stable/9/; revision=226822
* Add a "kern.features.ata_cam" sysctl in the kernel when the ATA_CAM kernelCraig Rodrigues2011-10-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | option is defined. This sysctl can be queried by feature_present(3). Query for this feature in /sbin/atacontrol and /usr/sbin/burncd. If these utilities detect that ATA_CAM is enabled, then these utilities will error out. These utilities are compatible with the old ATA driver, but are incomptible with the new ATA_CAM driver. By erroring out, we give end-users an idea as to what remedies to use, and reduce the need for them to file PR's. For atacontrol, camcontrol must be used instead, and for burncd, alternative utilties from the ports collection must be used such as sysutils/cdrtools. In future, maybe someone can re-write burncd to work with ATA_CAM, but at least for now, we give a somewhat useful error message to end users. PR: 160979 Reviewed by: jh, Arnaud Lacombe <lacombar at gmail dot com> Approved by: re (kib) Reported by: Joe Barbish <fbsd8 at a1poweruser dot com> Notes: svn path=/stable/9/; revision=226800
* MFC: r226406Christian Brueffer2011-10-231-0/+1
| | | | | | | | | Properly free resources in case of an error. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226670
* MFC: r226398, r226442Christian Brueffer2011-10-231-1/+1
| | | | | | | | | | Move the allocation of usrbufs down a few lines to avoid leaking it in case of an error. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226667
* Fix bmiss notifications, events should be sent when NOT scanning.Bernhard Schmidt2011-10-221-1/+1
| | | | | | | Approved by: re (kib) Notes: svn path=/stable/9/; revision=226626
* MFC r226476:Xin LI2011-10-201-1/+1
| | | | | | | | | | Return BUS_PROBE_DEFAULT instead of 0 (BUS_PROBE_SPECIFIC), allowing vendor provided driver to override in kernel driver. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226582
* MFC r226208:Konstantin Belousov2011-10-201-0/+1
| | | | | | | | | | Do not ignore block offsets. PR: kern/160943 Approved by: re (bz) Notes: svn path=/stable/9/; revision=226576
* MFC: r226149Christian Brueffer2011-10-151-1/+1
| | | | | | | | | Fix an infinite loop in siba_bwn_suspend(). Approved by: re (kib) Notes: svn path=/stable/9/; revision=226389
* MFC: r226146Christian Brueffer2011-10-151-4/+0
| | | | | | | | | | Remove dead code, "error" doesn't change between this check and the previous one. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226387
* MFC: r226116Christian Brueffer2011-10-151-0/+1
| | | | | | | | | Add missing va_end() to clean up after va_start(). Approved by: re (kib) Notes: svn path=/stable/9/; revision=226385
* MFC: r226176Marius Strobl2011-10-121-0/+1
| | | | | | | | | | | Recognize the Intel(R) Centrino(R) Wireless-N 130. PR: 161162 Submitted by: Mikhail Tsatsenko Approved by: re (kib) Notes: svn path=/stable/9/; revision=226315
* MFC r226219Hans Petter Selasky2011-10-121-0/+3
| | | | | | | | | Fix panic due to re-using in-use modem unit number. Approved by: re (kib) Notes: svn path=/stable/9/; revision=226306
* MFC r226118:Marius Strobl2011-10-123-0/+3
| | | | | | | | | | | | Sync with ahc(4)/ahd(4)/sym(4) etc: Zero any sense not transferred by the device as the SCSI specification mandates that any untransferred data should be assumed to be zero. Reviewed by: ken Approved by: re (kib) Notes: svn path=/stable/9/; revision=226303
* MFC: r226095Marius Strobl2011-10-122-7/+19
| | | | | | | | | | | | Merge from r225950 (merged to stable/9 in r226067): Set the sense residual properly. Reviewed by: ken Approved by: re (kib) Notes: svn path=/stable/9/; revision=226288
* MFC r226026:Xin LI2011-10-079-0/+4544
| | | | | | | | | | | | | Add the 9750 SATA+SAS 6Gb/s RAID controller card driver, tws(4). Many thanks for their contiued support to FreeBSD. This is version 10.80.00.003 from codeset 10.2.1 [1] Obtained from: LSI http://kb.lsi.com/Download16574.aspx [1] Approved by: re (kib) Notes: svn path=/stable/9/; revision=226115
* MFC r225950:Kenneth D. Merry2011-10-0610-61/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add descriptor sense support to CAM, and honor sense residuals properly in CAM. Desriptor sense is a new sense data format that originated in SPC-3. Among other things, it allows for an 8-byte info field, which is necessary to pass back block numbers larger than 4 bytes. This change adds a number of new functions to scsi_all.c (and therefore libcam) that abstract out most access to sense data. This includes a bump of CAM_VERSION, because the CCB ABI has changed. Userland programs that use the CAM pass(4) driver will need to be recompiled. camcontrol.c: Change uses of scsi_extract_sense() to use scsi_extract_sense_len(). Use scsi_get_sks() instead of accessing sense key specific data directly. scsi_modes: Update the control mode page to the latest version (SPC-4). scsi_cmds.c, scsi_target.c: Change references to struct scsi_sense_data to struct scsi_sense_data_fixed. This should be changed to allow the user to specify fixed or descriptor sense, and then use scsi_set_sense_data() to build the sense data. ps3cdrom.c: Use scsi_set_sense_data() instead of setting sense data manually. cam_periph.c: Use scsi_extract_sense_len() instead of using scsi_extract_sense() or accessing sense data directly. cam_ccb.h: Bump the CAM_VERSION from 0x15 to 0x16. The change of struct scsi_sense_data from 32 to 252 bytes changes the size of struct ccb_scsiio, but not the size of union ccb. So the version must be bumped to prevent structure mis-matches. scsi_all.h: Lots of updated SCSI sense data and other structures. Add function prototypes for the new sense data functions. Take out the inline implementation of scsi_extract_sense(). It is now too large to put in a header file. Add macros to calculate whether fields are present and filled in fixed and descriptor sense data scsi_all.c: In scsi_op_desc(), allow the user to pass in NULL inquiry data, and we'll assume a direct access device in that case. Changed the SCSI RESERVED sense key name and description to COMPLETED, as it is now defined in the spec. Change the error recovery action for a number of read errors to prevent lots of retries when the drive has said that the block isn't accessible. This speeds up reconstruction of the block by any RAID software running on top of the drive (e.g. ZFS). In scsi_sense_desc(), allow for invalid sense key numbers. This allows calling this routine without checking the input values first. Change scsi_error_action() to use scsi_extract_sense_len(), and handle things when invalid asc/ascq values are encountered. Add a new routine, scsi_desc_iterate(), that will call the supplied function for every descriptor in descriptor format sense data. Add scsi_set_sense_data(), and scsi_set_sense_data_va(), which build descriptor and fixed format sense data. They currently default to fixed format sense data. Add a number of scsi_get_*() functions, which get different types of sense data fields from either fixed or descriptor format sense data, if the data is present. Add a number of scsi_*_sbuf() functions, which print formatted versions of various sense data fields. These functions work for either fixed or descriptor sense. Add a number of scsi_sense_*_sbuf() functions, which have a standard calling interface and print the indicated field. These functions take descriptors only. Add scsi_sense_desc_sbuf(), which will print a formatted version of the given sense descriptor. Pull out a majority of the scsi_sense_sbuf() function and put it into scsi_sense_only_sbuf(). This allows callers that don't use struct ccb_scsiio to easily utilize the printing routines. Revamp that function to handle descriptor sense and use the new sense fetching and printing routines. Move scsi_extract_sense() into scsi_all.c, and implement it in terms of the new function, scsi_extract_sense_len(). The _len() version takes a length (which should be the sense length - residual) and can indicate which fields are present and valid in the sense data. Add a couple of new scsi_get_*() routines to get the sense key, asc, and ascq only. mly.c: Rename struct scsi_sense_data to struct scsi_sense_data_fixed. sbp_targ.c: Use the new sense fetching routines to get sense data instead of accessing it directly. sbp.c: Change the firewire/SCSI sense data transformation code to use struct scsi_sense_data_fixed instead of struct scsi_sense_data. This should be changed later to use scsi_set_sense_data(). ciss.c: Calculate the sense residual properly. Use scsi_get_sense_key() to fetch the sense key. mps_sas.c, mpt_cam.c: Set the sense residual properly. iir.c: Use scsi_set_sense_data() instead of building sense data by hand. iscsi_subr.c: Use scsi_extract_sense_len() instead of grabbing sense data directly. umass.c: Use scsi_set_sense_data() to build sense data. Grab the sense key using scsi_get_sense_key(). Calculate the sense residual properly. isp_freebsd.h: Use scsi_get_*() routines to grab asc, ascq, and sense key values. Calculate and set the sense residual. Approved by: re (kib) Sponsored by: Spectra Logic Corporation Notes: svn path=/stable/9/; revision=226067
* MFC r225878:Andrey V. Elsukov2011-10-061-0/+7
| | | | | | | | | | | | Add Oxford Semiconductor OXPCIe952 (0x1c38) 1 port serial card. PR: kern/160895 Submitted by: Konstantin V. Krotov Approved by: re (kib) Notes: svn path=/stable/9/; revision=226061
* MFC r225869:Alexander Motin2011-10-022-40/+64
| | | | | | | | | | | | | | | - Add special support for the MFI_CMD ioctl with MFI_CMD_STP command, used by present MegaCLI version. It has some special meaning for the first s/g list entry, while the main s/g list begins from the the second entry, and those lists should remain separate after loading to the busdma map. - Fix bug in 32bit ioctl compatibility shims when s/g list consists of more then on element. Approved by: re (kib) Notes: svn path=/stable/9/; revision=225918
* MFC r225789:Alexander Motin2011-09-291-0/+1
| | | | | | | | | Add one more ID for the Marvell 88SE9128 6Gbps SATA controller. Approved by: re (kib) Notes: svn path=/stable/9/; revision=225873
* Update netfront so that it queries and honors publishedJustin T. Gibbs2011-09-211-16/+52
| | | | | | | | | | | | | | | | | | | | | | | back-end features. sys/dev/xen/netfront/netfront.c: o Add xn_query_features() which reads the XenStore and records the TSO, LRO, and chained ring-request support of the backend. o Rename xn_configure_lro() to xn_configure_features() and use this routine to manage the setup of TSO, LRO, and checksum offload. o In create_netdev(), initialize if_capabilities and if_hwassist to the capabilities found on all backends. Delegate configuration of if_capenable and the TSO flag if if_hwassist to xn_configure_features(). Reported by: Hugo Silva (fix inspired by patch provided) Approved by: re MFC after: 1 week Notes: svn path=/head/; revision=225709
* Modify the netfront driver so it can successfully attach toJustin T. Gibbs2011-09-211-11/+29
| | | | | | | | | | | | | | | | | | | | PV devices with the ioemu attribute set. sys/dev/xen/netfront/netfront.c: o If a mac address for the interface cannot be found in the front-side XenStore tree, look for an entry in the back-side tree. With ioemu devices, the emulator does not populate the front side tree and neither does Xend. o Return an error rather than panic when an attach attempt fails. Reported by: Janne Snabb (fix inspired by patch provided) PR: kern/154302 Approved by: re Notes: svn path=/head/; revision=225708
* Correct suspend/resume support in the Netfront driver.Justin T. Gibbs2011-09-211-26/+54
| | | | | | | | | | | | | | | | | | | | | | | | Sponsored by: BQ Internet sys/dev/xen/netfront/netfront.c: o Implement netfront_suspend(), a specialized suspend handler for the netfront driver. This routine simply disables the carrier so the driver is idle during system suspend processing. o Fix a leak when re-initializing LRO during a link reset. o In netif_release_tx_bufs(), when cleaning up the grant references for our TX ring, use gnttab_end_foreign_access_ref instead of attempting to grant the page again. o In netif_release_tx_bufs(), we do not track mbufs associated with mbuf chains, but instead just free each mbuf directly. Use m_free(), not m_freem(), to avoid double frees of mbufs. o Refactor some code to enhance clarity. Approved by: re MFC after: 1 week Notes: svn path=/head/; revision=225707
* Add suspend/resume support to the Xen blkfront driver.Justin T. Gibbs2011-09-212-46/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sponsored by: BQ Internet sys/dev/xen/blkfront/block.h: sys/dev/xen/blkfront/blkfront.c: Remove now unused blkif_vdev_t from the blkfront soft. sys/dev/xen/blkfront/blkfront.c: o In blkfront_suspend(), indicate the desire to suspend by changing the softc connected state to SUSPENDED, and then wait for any I/O pending on the remote peer to drain. Cancel suspend processing if I/O does not drain within 30 seconds. o Enable and update blkfront_resume(). Since I/O is drained prior to the suspension of the VM, the complicated recovery process performed by other Xen blkfront implementations is avoided. We simply tear down the connection to our old peer, and then re-connect. o In blkif_initialize(), fix a resource leak and botched return if we cannot allocate shadow memory for our requests. o In blkfront_backend_changed(), correct our response to the XenbusStateInitialised state. This state indicates that our backend peer has published sufficient data for blkfront to publish ring information and other XenStore data, not that a connection can occur. Blkfront now will only perform connection processing in response to the XenbusStateConnected state. This corrects an issue where blkfront connected before the backend was ready during resume processing. Approved by: re MFC after: 1 week Notes: svn path=/head/; revision=225705
* Properly handle suspend/resume events in the Xen deviceJustin T. Gibbs2011-09-201-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | framework. Sponsored by: BQ Internet sys/xen/xenbus/xenbusb.c: o In xenbusb_resume(), publish the state transition of the resuming device into XenbusStateIntiailising so that the remote peer can see it. Recording the state locally is not sufficient to trigger a re-connect sequence. o In xenbusb_resume(), defer new-bus resume processing until after the remote peer's XenStore address has been updated. The drivers may need to refer to this information during resume processing. sys/xen/xenbus/xenbusb_back.c: sys/xen/xenbus/xenbusb_front.c: Register xenbusb_resume() rather than bus_generic_resume() as the handler for device_resume events. sys/xen/xenstore/xenstore.c: o Fix grammer in a comment. o In xs_suspend(), pass suspend events on to the child devices (e.g. xenbusb_front/back, that are attached to the XenStore. Approved by: re MFC after: 1 week Notes: svn path=/head/; revision=225704
* Avoid starting the USB transfer if an error is already pending.Hans Petter Selasky2011-09-201-4/+6
| | | | | | | | | | | | This change fixes a race in device side mode during clear-stall from host, which can cause data to be sent too early on the given endpoint. Approved by: re (kib) MFC after: 1 week Notes: svn path=/head/; revision=225695
* Manually set the channel when using monitor mode - the firmwareAdrian Chadd2011-09-201-0/+12
| | | | | | | | | | | | doesn't select it automatically. Submitted by: nox Reviewed by: bschmidt Approved by: re PR: kern/160815 Notes: svn path=/head/; revision=225686
* #PROCHOT assertion is sticky after reading the MSR (accordingly withAttilio Rao2011-09-191-1/+4
| | | | | | | | | | | | | | Intel manuals) it must be cleared by writing a 0. Fix that. Sponsored by: Sandvine Incorporated Reported by: rstone Reviewed by: delphij, emaste, rstone Approved by: re (kib) MFC after: 1 week Notes: svn path=/head/; revision=225662
* Clear transmit checksum offload context state upon lem(4) interfaceRyan Stone2011-09-171-0/+1
| | | | | | | | | | | | | | initialization. Prior to this change packets may be transmitted with an incorrect checksum. Em(4) already has an equivalent change in r213234. Obtained From: Sandvine MFC After: 1 week Approved by: re (bz) Notes: svn path=/head/; revision=225640
* In order to maximize the re-usability of kernel code in user space thisKip Macy2011-09-169-14/+14
| | | | | | | | | | | | | | | | patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls. Reviewed by: rwatson Approved by: re (bz) Notes: svn path=/head/; revision=225617