In iommu_gas_lowermatch and iommu_gas_uppermatch, a subtree search is
quickly terminated if the largest available free space in the subtree
is below a limit, where that limit is related to the size of the
allocation request. However, that limit is too small; it does not
account for both of the guard pages that will surround the allocated
space, but only for one of them. Consequently, it permits the search
to proceed through nodes that cannot produce a successful allocation
for all the requested space. Fix that limit to improve search
performance.
Reviewed by: alc, kib
Submitted by: Weixi Zhu (wxzhu@rice.edu)
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D35414
(cherry picked from commit b831865fe3)
iommu_bus_dmamap_load_something1 includes code for handling the
possibility of splitting a buffer that is needlessly complex.
Simplify it.
Reviewed by: alc, kib
MFC after: 3 weeks
Tested by: pho (previous revisions)
Differential Revision: https://reviews.freebsd.org/D35232
(cherry picked from commit 04e86ae357)
'command' is too generic for something specific to the kernel debugger;
change this so it is less likely to collide with local variable names.
Also rename struct command_table to struct db_command_table.
Reviewed by: markj
MFC after: 1 week
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D35367
(cherry picked from commit 4ef7db5a7e)
This is slightly more optimized than checking panicstr directly. For
most of these instances performance doesn't matter, but let's make
KERNEL_PANICKED() the common idiom.
Reviewed by: mjg
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D35373
(cherry picked from commit 35eb9b10c2)
Create a wrapper for newbus to take giant and for busses to take it too.
bus_topo_lock() should be called before interacting with newbus routines
and unlocked with bus_topo_unlock(). If you need the topology lock for
some reason, bus_topo_mtx() will provide that.
Sponsored by: Netflix
Reviewed by: mav
Differential Revision: https://reviews.freebsd.org/D31831
(cherry picked from commit c6df6f5322)
In the clean_mr() error path the 'mr' should be freed.
Linux commit:
5942d8ae411775b76e5e1ab0cce57b0666516f2d
PR: 264653
Sponsored by: NVIDIA Networking
(cherry picked from commit e4d178d093)
mlx4_QP_FLOW_STEERING_DETACH_wrapper first removes the steering
rule (which results in freeing the rule structure), and then
references a field in this struct (the qp number) when releasing the
busy-status on the rule's qp.
Since this memory was freed, it could reallocated and changed.
Therefore, the qp number in the struct may be incorrect,
so that we are releasing the incorrect qp. This leaves the rule's qp
in the busy state (and could possibly release an incorrect qp as well).
Fix this by saving the qp number in a local variable, for use after
removing the steering rule.
Linux commit:
3b01fe7f91c8e4f9afc4fae3c5af72c14958d2d8
PR: 264469
Sponsored by: NVIDIA Networking
(cherry picked from commit dd2a8c8f72)
mlx4_delete_all_resources_for_slave() in the resource tracker should free
all memory allocated for a slave. While releasing memory of fs_rule,
it misses releasing memory of fs_rule->mirr_mbox.
Linux commit:
461d5f1b59490ce0096dfda45e10038c122a7892
PR: 264249
Sponsored by: NVIDIA Networking
(cherry picked from commit f29c9901a4)
In function mlx4_opreq_action(), pointer "mailbox" is not released,
when mlx4_cmd_box() return and error, causing a memory leak bug.
Fix this issue by going to "out" label, mlx4_free_cmd_mailbox() can
free this pointer.
Linux commit:
febfd9d3c7f74063e8e630b15413ca91b567f963
PR: 264056
Sponsored by: NVIDIA Networking
(cherry picked from commit 527762b2f7)
External events can cause the backlight level to change (AC adapter
plug/unplug for example) so cache the value there too.
PR: 257796
Sponsored by: Beckhoff Automation GmbH & Co. KG
MFC after: 1 week
(cherry picked from commit e26ef41f79)
Apply 6987c47569 to igc. This is not
expected to have any benefit on current parts with current observed PBA
sizes but will avoid surprises if they are increased in future chips.
Approved by: grehan
Differential Revision: https://reviews.freebsd.org/D35217
(cherry picked from commit 9b88ecd674)
Use a sx lock to permit uiomove directly into/out of the the per-port
buffers. In addition, the sx lock provides a stronger guarantee that
I think this driver wants which is to single-thread read and write
calls even while paused. Finally, replace tsleep with dummy wait
channels with calls to pause_sig to more clearly communicate the
intent.
Differential Revision: https://reviews.freebsd.org/D35081
(cherry picked from commit 51f481235c)
0 should only be returned from probe in legacy drivers that need to
preserve softc state between probe and attach.
Differential Revision: https://reviews.freebsd.org/D35080
(cherry picked from commit 4942e8df47)
The port number is still stored in the unit (si_drv0) but is the
entire unit value now.
While here, removed checks for NULL softc since those can never happen
from cdevsw routines. This also resulted in the close method becoming
a no-op, so it has been removed.
Differential Revision: https://reviews.freebsd.org/D35078
(cherry picked from commit 0db65574bb)
Rather than a detour via the devclass and hardcoding unit 0.
While here, remove a check for sc being NULL. It will never be NULL
when attach is called.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D35010
(cherry picked from commit 1ac10fa429)
Rather than fetching the softc using the controller's unit number as
an index into the devclass.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D35004
(cherry picked from commit a9e5e04e64)
Rather than fetching the softc using the controller's unit number as
an index into the devclass.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D34993
(cherry picked from commit 517a8a715a)
- Make descriptions a bit more human-friendly.
- Don't attempt to probe fan safe speeds, this model does not provide
one.
PR: 260781
(cherry picked from commit dc484aed0a)