- 05 7月, 2015 3 次提交
-
-
由 Allen Hubbe 提交于
The same message "qp %d: Link Down\n" was printed at two locations in ntb_transport. Change the messages so they are distinct. Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: NJon Mason <jdmason@kudzu.us>
-
由 Dave Jiang 提交于
The transport was writing and then reading the peer scratch pad, essentially reading what it just wrote instead of exchanging any information with the peer. The transport expects the peer values to be the same as the local values, so this issue was not obvious. Signed-off-by: NDave Jiang <dave.jiang@intel.com> Signed-off-by: NJon Mason <jdmason@kudzu.us>
-
由 Allen Hubbe 提交于
Change ntb_hw_intel to use the new NTB hardware abstraction layer. Split ntb_transport into its own driver. Change it to use the new NTB hardware abstraction layer. Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: NJon Mason <jdmason@kudzu.us>
-
- 02 7月, 2015 1 次提交
-
-
由 Allen Hubbe 提交于
This patch only moves files to their new locations, before applying the next two patches adding the NTB Abstraction layer. Splitting this patch from the next is intended make distinct which code is changed only due to moving the files, versus which are substantial code changes in adding the NTB Abstraction layer. Signed-off-by: NAllen Hubbe <Allen.Hubbe@emc.com> Signed-off-by: NJon Mason <jdmason@kudzu.us>
-
- 14 9月, 2014 2 次提交
-
-
由 Dave Jiang 提交于
The NTB translate register must have the value to be BAR size aligned. This alignment check make sure that the DMA memory allocated has the proper alignment. Another requirement for NTB to function properly with memory window BAR size greater or equal to 4M is to use the CMA feature in 3.16 kernel with the appropriate CONFIG_CMA_ALIGNMENT and CONFIG_CMA_SIZE_MBYTES set. Signed-off-by: NDave Jiang <dave.jiang@intel.com> Signed-off-by: NJon Mason <jdmason@kudzu.us>
-
由 Jon Mason 提交于
The detection of an uneven number of queues on the given memory windows was not correct. The mw_num is zero based and the mod should be division to spread them evenly over the mw's. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
- 08 4月, 2014 2 次提交
-
-
由 Jon Mason 提交于
Some white space and 80 char overruns corrected. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Provide a better event interface between the client and transport Signed-off-by: NJon Mason <jon.mason@intel.com>
-
- 21 11月, 2013 3 次提交
-
-
由 Jon Mason 提交于
Disable interrupts and poll under high load Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
dmaengine_get() causes the initialization of the per-cpu channel tables. It needs to be called prior to dma_find_channel(). Initial version by Dan Williams <dan.j.williams@intel.com> Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
A WARN_ON is being hit in ntb_qp_link_work due to the NTB transport link being down while the ntb qp link is still active. This is caused by the transport link being brought down prior to the qp link worker thread being terminated. To correct this, shutdown the qp's prior to bringing the transport link down. Also, only call the qp worker thread if it is in interrupt context, otherwise call the function directly. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
- 15 11月, 2013 2 次提交
-
-
Remove no longer needed DMA unmap flags: - DMA_COMPL_SKIP_SRC_UNMAP - DMA_COMPL_SKIP_DEST_UNMAP - DMA_COMPL_SRC_UNMAP_SINGLE - DMA_COMPL_DEST_UNMAP_SINGLE Cc: Vinod Koul <vinod.koul@intel.com> Cc: Tomasz Figa <t.figa@samsung.com> Cc: Dave Jiang <dave.jiang@intel.com> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NJon Mason <jon.mason@intel.com> Acked-by: NMark Brown <broonie@linaro.org> [djbw: clean up straggling skip unmap flags in ntb] Signed-off-by: NDan Williams <dan.j.williams@intel.com>
-
Use the generic unmap object to unmap dma buffers. Cc: Vinod Koul <vinod.koul@intel.com> Cc: Tomasz Figa <t.figa@samsung.com> Cc: Dave Jiang <dave.jiang@intel.com> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com> Acked-by: NJon Mason <jon.mason@intel.com> [djbw: fix up unmap len, and GFP flags] Signed-off-by: NDan Williams <dan.j.williams@intel.com>
-
- 06 9月, 2013 4 次提交
-
-
由 Jon Mason 提交于
Add "data" ntb_register_db_callback parameter description comment and correct poor spelling. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Remove unused pci_dev variable from ntb_transport_free() Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Many variable names in the NTB driver refer to the primary or secondary side. However, these variables will be used to access the reverse case when in NTB-RP mode. Make these names more generic in anticipation of NTB-RP support. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Allocate and use a DMA engine channel to transmit and receive data over NTB. If none is allocated, fall back to using the CPU to transfer data. Signed-off-by: NJon Mason <jon.mason@intel.com> Reviewed-by: NDan Williams <dan.j.williams@intel.com> Reviewed-by: NDave Jiang <dave.jiang@intel.com>
-
- 04 9月, 2013 2 次提交
-
-
由 Jon Mason 提交于
There is a Xeon hardware errata related to writes to SDOORBELL or B2BDOORBELL in conjunction with inbound access to NTB MMIO Space, which may hang the system. To workaround this issue, use one of the memory windows to access the interrupt and scratch pad registers on the remote system. This bypasses the issue, but removes one of the memory windows from use by the transport. This reduction of MWs necessitates adding some logic to determine the number of available MWs. Since some NTB usage methodologies may have unidirectional traffic, the ability to disable the workaround via modparm has been added. See BF113 in http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-c5500-c3500-spec-update.pdf See BT119 in http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdfSigned-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Debugfs was setup in NTB to only have a single debugfs directory. This resulted in the leaking of debugfs directories and files when multiple NTB devices were present, due to each device stomping on the variables containing the previous device's values (thus preventing them from being freed on cleanup). Correct this by creating a secondary directory of the PCI BDF for each device present, and nesting the previously existing information in those directories. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
- 16 5月, 2013 8 次提交
-
-
由 Jon Mason 提交于
Fix issue with adding multiple ntb client devices to the ntb virtual bus. Previously, multiple devices would be added with the same name, resulting in crashes. To get around this issue, add a unique number to the device when it is added. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
The system will appear to lockup for long periods of time due to the NTB driver spending too much time in memcpy. Avoid this by reducing the number of packets that can be serviced on a given interrupt. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
The ring logic of the NTB receive buffer/transmit memory window requires there to be at least 2 payload sized allotments. For the minimal size case, split the buffer into two and set the transport_mtu to the appropriate size. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
If the NTB link toggles, the driver could stop receiving due to the tx_index not being set to 0 on the transmitting size on a link-up event. This is due to the driver expecting the incoming data to start at the beginning of the receive buffer and not at a random place. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Each link-up will allocate a new NTB receive buffer when the NTB properties are negotiated with the remote system. These allocations did not check for existing buffers and thus did not free them. Now, the driver will check for an existing buffer and free it if not of the correct size, before trying to alloc a new one. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
64bit BAR sizes are permissible with an NTB device. To support them various modifications and clean-ups were required, most significantly using 2 32bit scratch pad registers for each BAR. Also, modify the driver to allow more than 2 Memory Windows. Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Dan Carpenter 提交于
->remote_rx_info and ->rx_info are struct ntb_rx_info pointers. If we add sizeof(struct ntb_rx_info) then it goes too far. Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NJon Mason <jon.mason@intel.com>
-
由 Jon Mason 提交于
Correct instances of variable dereferencing before checking its value on the functions exported to the client drivers. Also, add sanity checks for all exported functions. Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NJon Mason <jon.mason@intel.com>
-
- 22 1月, 2013 1 次提交
-
-
由 Jon Mason 提交于
Address the sparse warnings and resulting fallout Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 21 1月, 2013 10 次提交
-
-
由 Jon Mason 提交于
If the NTB client driver enqueues the maximum number of rx buffers, it will not be able to re-enqueue another in its callback handler due to a lack of free entries. This can be avoided by adding the current entry to the free queue prior to calling the client callback handler. With this change, ntb_netdev will no longer encounter a rx error on its first packet. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
CPU reads across NTB are slow(er) and can hang the local system if an ECC error is encountered on the remote. To work around the need for a read, have the remote side write its current position in the rx buffer to the local system's buffer and use that to see if there is room when transmitting. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Correct gcc warning of using too much stack debugfs_read. This is done by kmallocing the buffer instead of using the char array on stack. Also, shrinking the buffer to something closer to what is currently being used. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Whitespace cleanups found via `indent` Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Declare ntb_bus_type static to remove it from name space, and remove unused ntb_get_max_spads function. Found via `make namespacecheck`. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Use simple_open for debugfs instead of recreating it in the NTB driver. Caught by coccicheck. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Move all cancel_delayed_work_sync to a work thread to prevent sleeping in interrupt context (when the NTB link goes down). Caught via 'Sleep inside atomic section checking' Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Since it is possible for the memory windows on the two NTB connected systems to be different sizes, the divergent sizes must be accounted for in the segmentation of the MW's on each side. Create separate size variables and initialization as necessary. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
mmiowb is not sufficient to flush the data and is causing data corruption. Change to wmb and the data corruption is no more. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
Attempts to probe client ntb drivers without ntb hardware present will result in null pointer dereference due to the lack of the ntb bus device being registers. Check to see if this is the case, and fail all calls by the clients registering their drivers. Signed-off-by: NJon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 18 1月, 2013 2 次提交
-
-
由 Greg Kroah-Hartman 提交于
These are now gone from the kernel, so remove them from the newly-added drivers before they start to cause build errors for people. Cc: Jon Mason <jon.mason@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jon Mason 提交于
A PCI-Express non-transparent bridge (NTB) is a point-to-point PCIe bus connecting 2 systems, providing electrical isolation between the two subsystems. A non-transparent bridge is functionally similar to a transparent bridge except that both sides of the bridge have their own independent address domains. The host on one side of the bridge will not have the visibility of the complete memory or I/O space on the other side of the bridge. To communicate across the non-transparent bridge, each NTB endpoint has one (or more) apertures exposed to the local system. Writes to these apertures are mirrored to memory on the remote system. Communications can also occur through the use of doorbell registers that initiate interrupts to the alternate domain, and scratch-pad registers accessible from both sides. The NTB device driver is needed to configure these memory windows, doorbell, and scratch-pad registers as well as use them in such a way as they can be turned into a viable communication channel to the remote system. ntb_hw.[ch] determines the usage model (NTB to NTB or NTB to Root Port) and abstracts away the underlying hardware to provide access and a common interface to the doorbell registers, scratch pads, and memory windows. These hardware interfaces are exported so that other, non-mainlined kernel drivers can access these. ntb_transport.[ch] also uses the exported interfaces in ntb_hw.[ch] to setup a communication channel(s) and provide a reliable way of transferring data from one side to the other, which it then exports so that "client" drivers can access them. These client drivers are used to provide a standard kernel interface (i.e., Ethernet device) to NTB, such that Linux can transfer data from one system to the other in a standard way. Signed-off-by: NJon Mason <jon.mason@intel.com> Reviewed-by: NNicholas Bellinger <nab@linux-iscsi.org> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-