| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the ice_if_promisc_set function, the driver currently disables the
IFF_ALLMULTI flag, thereby preventing the activation of multicast mode.
To address this issue, implement appropriate handling to ensure the
flag is managed correctly.
Signed-off-by: Yogesh Bhosale <yogesh.bhosale@intel.com>
Tested by: Gowthamkumar K S <gowtham.kumar.ks@intel.com>
Differential Revision: https://reviews.freebsd.org/D54186
(cherry picked from commit 98bdf63f6e94be42a1787de73608de15bcb3419a)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is an MFC "in spirit" of a685a263b803; the code in this area has
been significantly restructured between 14.x and 15.x, but the general
concept of adding ACPI_DBG2_16550_WITH_GAS (aka 0x12) as a recognized
flavour of ns8250 UART which can be configured via SPCR remains.
Reviewed by: imp
Tested by: David Woodhouse
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D55173
|
| |
|
|
|
|
|
|
|
|
| |
Reviewed by: mhorne
Sponsored by: Klara, Inc.
Obtained from: Intel perfmon (JSON event definitions)
Differential Revision: https://reviews.freebsd.org/D55081
MFC after: 2 days
(cherry picked from commit a3ff85e11925ba1e25465c8ba633356f405f9214)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As part of making the chip-specific mix and match of different accesses
(DMA/bus space) work as desired, the intent is to map the HCB memory as
uncacheable. Prior to VM_MEMATTR_*, the !x86 way of indicating this to
bus_dmamem_alloc(9) was BUS_DMA_COHERENT. Then later on in 2db99100a4,
BUS_DMA_NOCACHE was hooked up to VM_MEMATTR_UNCACHEABLE for x86. As it
turns out, still as of today bus_dmamem_alloc(9) differs in this regard
across architectures. On arm, it still supports BUS_DMA_COHERENT only
for requesting uncacheable DMA and x86 still uses BUS_DMA_NOCACHE only.
On arm64 and riscv, BUS_DMA_COHERENT seems to effectively be an alias
for BUS_DMA_NOCACHE.
Thus, allocate the HCB memory with BUS_DMA_COHERENT | BUS_DMA_NOCACHE,
so we get uncacheable memory on all architectures including x86 and so
loads and stores from/to HCB won't get reordered. However, even on x86
we still need to use at least compiler barriers to achieve the desired
program order.
This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on top of OpenStack and HBAs of type lsiLogic as a result
of loads and stores getting reordered. [1]
While at it:
- Nuke the unused SYM_DRIVER_NAME macro.
- Remove unused/redundant HCB members and correct a comment typo.
PR: 270816 [1]
MFC after: 3 days
(cherry picked from commit b941d1c64e58708c93621cc07ed1c8e5e709cd48)
|
| |
|
|
|
|
|
|
| |
This also fixes sym_cam_free() to tear things down correctly, i. e. in
opposite order of setup, as well as sym_cam_attach() to not free devq
and SIM twice in the failure case.
(cherry picked from commit 518c01b31e96bbe8353a551885a61e7da6aed5f6)
|
| |
|
|
|
|
|
|
| |
The overlap handling of bcopy(9) is not required in these cases.
Obtained from: BSD-licensed Linux sym53c8xx driver
(cherry picked from commit c8e9479c74a2af0f6c665e930091c163bf760fd5)
|
| |
|
|
| |
(cherry picked from commit 48eee744b540ef0413fa1cb543dde6e49e7f2ac4)
|
| |
|
|
|
|
|
|
|
| |
in for() loops. Also, use 'while', where only the
conditional test of 'for' was used.
Reviewed by: sjg
(cherry picked from commit 0050289464fa56ec79e060b8d8378b9ff7145a0e)
|
| |
|
|
|
|
| |
- s/arithmatic/arithmetic/
(cherry picked from commit a17659fe260ce16c1e373b543ca9f13cc14340ea)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The variable reg_rctl stores the value read from reg E1000_RCTL. It
may contain bits E1000_RCTL_VFE and E1000_RCTL_CFIEN which control
VLAN hardware filter feature. The promiscuous mode implies all tagged
or untagged packets should be accepted, so the VLAN hardware filter
feature should be disabled when enabling the promiscuous mode.
Calling em_if_vlan_filter_disable() did the task, but later writing
the value of reg_rctl back to the reg E1000_RCTL may restore the
feature.
Move the calling of em_if_vlan_filter_disable() after writing the reg
to fix that.
PR: 292759
Reviewed by: kbowling
Tested by: vova@zote.me
Fixes: 2796f7cab107 e1000: Fix up HW vlan ops
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D54973
(cherry picked from commit e63ee5fedb8dab51f1bd6d24cc650b68d9663db5)
(cherry picked from commit 8880678b7a47ccfdcc14d3e7cad7f137862dccea)
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit 0a2fb63b4954c540686d387254b65cc6878bd19e)
(cherry picked from commit 3aa4ae2006b50018d9dfa660bcbba1041c104ee1)
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit d12ce84b0d338958b26f6eec86b4967fca8d3bd6)
(cherry picked from commit 270b9f2a4888b19b8434a831effa3c8426dbb934)
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit cb0116af7ac794238b0fa569f2722607924fcad6)
(cherry picked from commit 0b0ddadf39f6499e4b8ef250023b6d7e68c7e2b0)
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit ff29e5bc53e6fafc49d1caceed88cbc9e9223189)
(cherry picked from commit e5d4314fce5a8c1dcc8a01f41858fa115d4f2fb6)
|
| |
|
|
|
|
|
|
|
| |
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit db1844a0e1bcafeb974215033ed682e7fa18cac8)
(cherry picked from commit 7e9fe8e6a1966f559b7985caca7e7c0e19a3f10e)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There're some other drivers want to register and unregister linux
ioctl handler. Move the macro LINUX_IOCTL_SET from tdfx_linux.h to
linux_ioctl.h so that they can also benefit it.
While here, rename the declaration of linux ioctl function to be
consistent with the name of the handler.
Meanwhile, drop a comment about the macro, since its function is
obvious.
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D53158
(cherry picked from commit 790c27317ec1a997a4e5c2bdee9e4acc610c8e3c)
(cherry picked from commit 087e77b52399b8a64bb7a12979322d6027bf550b)
|
| |
|
|
|
|
|
|
|
|
| |
The correct length of an ethernet address is ETHER_ADDR_LEN but not
ETHER_HDR_LEN.
MFC after: 1 week
(cherry picked from commit 85f499be90c15a3de02d1c62ce03b99fab52f925)
(cherry picked from commit 2b01cc15447251862f5e25332fcbf41516f22a3e)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
While here, replace loop copying the MAC address with memcpy() for
better readability.
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D54177
(cherry picked from commit 094626d3a5009a56bf1b763dbdfc681ce371dc99)
(cherry picked from commit c162d7febbc83c1d877876b18ee864213dceca51)
|
| |
|
|
|
|
|
|
|
|
| |
The only possible return value of function xen_intr_init() is 0. Make
it return void to match the prototype of SYSINIT.
MFC after: 1 week
(cherry picked from commit 19061a898ac809c8e9a30839b7200ff13a6eb9c0)
(cherry picked from commit a1efb352f24f2e86c99a4ca94b64384cd991bc09)
|
| |
|
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit ef56b9188937eec1ceef458d02c71c6b890b398a)
(cherry picked from commit 0a30ce95a74e753c6963bc11a461f66ded536d50)
|
| |
|
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit dd256c3fa738b6941f58355c077224c9a227b169)
(cherry picked from commit 6edef6b6364162932379bd172930d82b067177cf)
|
| |
|
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit 05c313cd2cbcc6c0a6ffa97363b70232d02542f3)
(cherry picked from commit 9336f20f89e8b819c8f07125fd6d305d78afd546)
|
| |
|
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit d82653aee7e357916403147dc21d342e6b543106)
(cherry picked from commit d23e3b6e562faee8035f86f099e3319a167daa91)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, the work request to update the TCB state when switching
from plain TCP to TLS is now queued on the connection's offload
transmit queue rather than over the per-port control queue.
This also handles an unlikely edge case that a connection does not
have sufficient credits to transmit other work requests synchronously
such as programming the key in on-card memory or altering TCB fields.
Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D47763
(cherry picked from commit d869395ac4bd248da7c5bdc67afb19ca89fbeeee)
|
| |
|
|
|
|
|
|
| |
Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D47762
(cherry picked from commit a7aab22d2bf36191baa646fc136ca020dad209f3)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is intended to support control work requests that manipulate
connection state but do not transmit data. Raw WRs are transmitted
immediately if possible, otherwise they are queued to an mbufq in the
toe pcb until sufficient credits are available. Raw WRs take
precendence over transmitting socket data.
Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D47761
(cherry picked from commit e2a2a7581c9663a08b8d92a34040d6fcdfc20816)
|
| |
|
|
|
|
|
|
|
|
| |
Use bitfields to pack tx_credits and plen into a single 32-bit word.
Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D47759
(cherry picked from commit 5a38857684907c52982787dbac2c5e5c8abfd4f8)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Certain SR-IOV devices enumerate Virtual Functions (VFs) on a different
PCIe bus than their parent Physical Function (PF). In such cases, the
default subordinate bus range assigned by BIOS may be insufficient to cover
all VFs.
This patch dynamically expands the subordinate bus range by:
- Allocating additional bus numbers using bus_alloc_resource() when VFs are
initialized
- Releasing the reserved bus range during VF deletion via
bus_release_resource()
Reviewed by: jhb
(cherry picked from commit f7951799877c16cb901be1acc8d6643f0693cec4)
|
| |
|
|
|
|
| |
Sponsored by: Chelsio Communications
(cherry picked from commit 54f8c44ecf4a28a649d75ad6d0daaf3206ae9247)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Requests whose immediate data do not end on a 16-byte boundary are
padded with zeroes before the next WR command. Since ULP commands are
8 byte aligned, if there are more than 8 bytes of padding, the
immediate data is padded with zeroes up to an 8 byte boundary and the
last 8 bytes contain a ULP NOOP command.
In the case of exactly 8 bytes of padding, the result should be that
no zeroes are inserted, only the ULP NOOP. However, the code was
actually inserting 8 bytes of zero padding followed by the ULP NOOP
causing the following real command to be misaligned. Fix this by
skipping the zero padding if there exactly 8 padding bytes.
Reported by: Sony Arpita Das @ Chelsio
Sponsored by: Chelsio Communications
(cherry picked from commit 2befd06588325c541d400fcc4915a1adfd1c7d17)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Each C file is compiled separately so these functions can't be inlined
except in the file where they are defined. Since these functions aren't
used outside smartpqi_request.c, just do the simple thing and make them
private to that file.
Reported by: gcc
Reviewed by: jrhall
Fixes: c558eca47970 ("smartpqi: update to version 4660.0.2002")
Differential Revision: https://reviews.freebsd.org/D54732
(cherry picked from commit 75c591b26723711d7a38f2a5df7aecc28198cd83)
|
| |
|
|
|
|
|
| |
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44845
(cherry picked from commit 5e3e4442305d9e5af9862fac73feb0d7f37d4b56)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Building the LINT-NOIP kernel on amd64 with clang 21 results in a
-Werror warning similar to:
sys/dev/mxge/if_mxge.c:1846:44: error: variable 'sum' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer]
1846 | cksum_offset, sizeof(sum), (caddr_t)&sum);
| ^~~
Indeed, if both `INET` and `INET6` are undefined, `sum` is never
initialized. Initialize it to zero to silence the warning.
Reviewed by: jhibbits
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D54730
(cherry picked from commit 74cac745fe302b26ad22114f60735c8b73e90571)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've gotten a report of this breaking a fixed no autoneg setup.
Since no link is worse than what this intends to fix (negotiating full
duplex at forced speed), revert for the undeway 15.0 release cycle
until this can be further reviewed.
PR: 288827
Differential Revision: https://reviews.freebsd.org/D47336
This reverts commit 645c45e297c0fcbbb9d2d24cdeeb124234825019.
(cherry picked from commit 3ff0231c87f360afa4521e635b46f6c711dc4ee3)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since that commit ahci(4), siis(4) and mvs(4) drivers ended up
using wrong command to fetch error information for NCQ commands.
Since ATA errors are not very informative to begin with, the only
noticeable effect is a lack of retries on those errors by CAM.
MFC after: 1 week
PR: 279978
(cherry picked from commit 87085c12ba8fa51f777bc636df67008b45e20d1c)
|
| |
|
|
|
|
|
| |
Reviewed by: Timo Völker
Differential Revision: https://reviews.freebsd.org/D54788
(cherry picked from commit 3d771e0db66da77da5a7f323df1c0638e6b586ea)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for receive checksum offload for TCP/IPv6
and UDP/IPv6. Since receive checksum offload can't be configured
separately for IPv4 and IPv6, IFCAP_RXCSUM and IFCAP_RXCSUM_IPV6
can't be changed independently.
Reviewed by: Timo Völker
Differential Revision: https://reviews.freebsd.org/D54756
(cherry picked from commit 5d8777f3a7aee04eabbc9f3cf12138f9b56e3ebc)
|
| |
|
|
|
|
|
|
|
|
| |
This patch adds support for transmit checksum offload for TCP/IPv6
and UDP/IPv6.
Reviewed by: Timo Völker
Differential Revision: https://reviews.freebsd.org/D54754
(cherry picked from commit aca67c37a5215448828a2974a2ff44e75e9159bc)
|
| |
|
|
|
|
| |
No functional change intended.
(cherry picked from commit 97b177f51fb939943ef920415e541d00789d12f4)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bge interface is special with respect to transmit checksumi
offloading. In the default settings, an bge interface announces TXCSUM
capabilities, but only supports TCP/IPv4 and not UDP/IPv4 due to
limitations of some of the NICs. This results in problems when the bge
interface becomes a member of a bridge. Since currently only the
TXCSUM capabilities are synced when a member is added to a bridge and
not the protocol specific capabilities, this can result in a situation
where UDP packets are sent out using a bge interface without having a
correct checksum.
To mitigate this problem, initially don't announce TXCSUM capabilities,
when UDP transmit checksum is disabled. It is still possible to enable
TXCSUM capabilities via ifconfig.
PR: 291420
Reviewed by: Timo Voelker
Differential Revision: https://reviews.freebsd.org/D54486
(cherry picked from commit bbd30927b1af44226c8de0512912a7fedfce2824)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides two improvements for TCP/IPv4 and UDP/IPv4
transmit checksum offloading:
(1) Use *CIC_SEG instead of *CIC_FULL, since FreeBSD always provides
a pseudo header checksum.
(2) Don't make transmit IPv4 header checksum offloading a prerequisite
for TCP/IPv4 or UDP/IPv4 transmit checksum offloading.
This is the root cause of PR 291696, since right now the epair
interface does not support transmit IPv4 header checksum offloading,
but TCP/IPv4 and UDP/IPv4 transmit checksum offloading.
PR: 291696
Reviewed by: Timo Voelker
Tested by: Marek Benc
Differential Revision: https://reviews.freebsd.org/D54395
(cherry picked from commit f8ddf74175c8013268e65b18750e247306fa088a)
|
| |
|
|
|
|
|
| |
Use sbuf_new_for_sysctl() instead of sbuf_new_auto() when exposing
the flags via sysctl.
(cherry picked from commit 8da838ac31692e381adfc63d83ea49f2adabbf23)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Right now the 64-bit flags field needs to be casted to a 32-bit field,
because clang warns if more than 32-bits are used.
Once clang is fixed, this restriction will be removed and more bits
will be added.
Reviewed by: markj, Timo Völker
Differential Revision: https://reviews.freebsd.org/D54288
(cherry picked from commit 634d9c0d111b630c3d63a1cf25d15c32a37afab8)
|
| |
|
|
|
|
|
|
|
|
| |
Provide the flags used for a vtnet interface via the sysctl tree.
This is mostly used for debugging purposes.
Reviewed by: Timo Völker
Differential Revision: https://reviews.freebsd.org/D54283
(cherry picked from commit e3a0571ad74d8429a95fcae9efc1d91cc109a337)
|
| |
|
|
|
|
|
| |
This allows adding flags in the upper 32 bits in a consistent way.
No functional change intended.
(cherry picked from commit e0c6c4ecfc755b78ac9135033053d2f15c62bf04)
|
| |
|
|
|
|
|
|
|
|
|
| |
As found on RTEMS the argument to if_foreach_llmaddr() was wrong
causing crashes.
Fixes: 51e80820552e0
PR: 290314
(cherry picked from commit 33afdf0e356d84ffe5c62c886f84cf12ba147d3e)
(cherry picked from commit 10c71151ade7b5f021b49b7e117059730a2ddb56)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MediaTek mt76 WiFi cards are advertising FLR support but after issuing
a FLR the chipset is gone. Add a quirk so we can disable FLR. The
current reset code will automatically fall back to a power reset.
This makes the card show up under bhyve where before it would just not
be discovered at all. That should make wifibox work for it and will help
development for a LinuxKPI based mt76 driver as found in framework laptops
as no dedicated machine and constant reboots are needed anymore.
We will likely need to add more PCI vendor/device IDs once we can test
the other device IDs.
After a lot of help from: jhb
Really implemented by: jhb (I just typed and tested)
GH issue: github.com/pgj/freebsd-wifibox/issues/73
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D52728
(cherry picked from commit 4c0e53aced2251eb5ac7eca44e13a6b947be8582)
(cherry picked from commit 3bd015a1a918d060dbef556ddfa6e236f5212330)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like lkpi_pci_get_domain_bus_and_slot() implement lkpi_pci_get_slot()
using pci_find_bsf() instead of pci_find_dbsf() (no domain).
This is needed for a wireless driver.
Unfortunately the name [pci_get_slot()] collides with the native PCI
function. Add a guard around it and disable the use when the native
version is required (in lkpifill_pci_dev() and in bnxt/bnxt_en; if the
latter gets fixed we can probably also fix work around it in the former;
further conflicts in drm-kmod 6.1-lts, 6.6-lts, and master were resolved).
Sponsored by: The FreeBSD Foundation (initially)
Reviewed by: dumbbell
Differential Revision: https://reviews.freebsd.org/D52065
(cherry picked from commit 4179e6b78297369f0cf0eae1076e01e5151c5cbe)
(cherry picked from commit 62c3b77d1d1084dc46663eed52e288307b5c7e64)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
With Linux 6.16 from_timer() got renamed to timer_container_of(); add
the LINUXKPI_VERSION check with a default to the current version.
Update all in-tree consumers (apart from wireless drivers managed
otherwise).
Sponsored by: The FreeBSD Foundation (initially)
Reviewed by: dumbbell
Differential Revision: https://reviews.freebsd.org/D52073
(cherry picked from commit 81cb7c4c8e7bc4951c77fe64a63a847ed6abee38)
(cherry picked from commit 352be5b48ba8b3ec1e3e5dd0dbee4da8d1fa78b0)
|
| |
|
|
|
|
|
|
|
|
| |
No functional change.
Sponsored by: The FreeBSD Foundation
Reviewed by: aokblast, imp
Differential Revision: https://reviews.freebsd.org/D52147
(cherry picked from commit 7dce26eded4e4c8a511ecc7e8522b9a0332386ea)
|