deraadt [Sun, 18 Aug 2024 15:09:49 +0000 (15:09 +0000)]
Driver was not calling the child activate functions in the correct way.
There is a child -- wsmouse, which has an activate function, so this
is another oversight...
deraadt [Sun, 18 Aug 2024 15:03:01 +0000 (15:03 +0000)]
For DVACT_RESUME, let the children know we are ready *after* calling
our own wakeup(). The wakeup() won't result in anything running now
because DVACT_RESUME is running in "cold !=0, interrupts blocked,
scheduler stopped", but it is idiomatically incorrect to inform your
children you are ready before you are ready.
phessler [Sun, 18 Aug 2024 14:58:47 +0000 (14:58 +0000)]
add qwz firmware
deraadt [Sun, 18 Aug 2024 14:42:56 +0000 (14:42 +0000)]
Most audio drivers were incorrectly (or not at all) informing their children
about suspend/resume related events, and they all have audio.c as a child,
which definately needs to know!
ok ratchov
deraadt [Sun, 18 Aug 2024 14:35:14 +0000 (14:35 +0000)]
there are azalia that will fail to attach. in the activate function for
DVACT_QUIESCE, this was handled by doing nothing. however, the other
DVACT methods were still trying to touch the device. This needs to
bail out earlier.
ok ratchov
kettenis [Sun, 18 Aug 2024 11:10:10 +0000 (11:10 +0000)]
Add Meteor Lake support.
ok jsg@
kettenis [Sun, 18 Aug 2024 11:08:47 +0000 (11:08 +0000)]
Don't short-circuit interrupt handling when the sc_dying flag is set. Just
don't forward reports to the child drivers instead. This fixes an issue
with hardware that sends an interrupt in response to a reset request when
a level-triggered interrupt is used. In that case the interrupt would
just keep triggering when we issue a reset when we resume (when sc_dying
is set) since we didn't clear the interrupt condition by reading from the
device.
ok mlarkin@, deraadt@
tb [Sun, 18 Aug 2024 11:04:55 +0000 (11:04 +0000)]
Remove documentation for X509_REQ_[gs]et_extension_nids
These functions have been disabled for a while and they will be removed
in the next major bump.
kettenis [Sun, 18 Aug 2024 10:50:22 +0000 (10:50 +0000)]
Some machines have more than one DCP, so apldcp(4) can attach multiple
times. So make the task pool private to each instance to avoid
initializing the pool again, which would panic the kernel.
ok tobhe@
tb [Sun, 18 Aug 2024 10:02:10 +0000 (10:02 +0000)]
Drop OpenSSL 3.0 interop testing infrastructure
The openssl 3.0 port was removed nearly a year ago shortly after the 7.4
release.
tb [Sun, 18 Aug 2024 09:14:17 +0000 (09:14 +0000)]
Add support for openssl32 in interop test
mpi [Sun, 18 Aug 2024 08:23:58 +0000 (08:23 +0000)]
Get rid of intermediate copy before passing events to userland.
From Christian Ludwig with some tweaks.
mpi [Sun, 18 Aug 2024 08:18:49 +0000 (08:18 +0000)]
Do not cache pages belonging to memory ranges with a `use' count.
Such pages belong to the DMA or ISA memory ranges and caching them
accelerate their exhaustion. On amd64, at least, the kernel relies
on having low pages available at any time and cannot recover from
their exhaustion.
Should prevent livelocks reported by jsg@ and tb@ on amd64.
ok deraadt@
mpi [Sun, 18 Aug 2024 08:01:03 +0000 (08:01 +0000)]
Remove outdated comment about UVM_PLA_WAITOK and the pagedaemon.
ok miod@, mlarkin@
stsp [Sun, 18 Aug 2024 07:34:45 +0000 (07:34 +0000)]
plug a memory leak in qwx(4) by freeing vifs when the interface goes down
deraadt [Sun, 18 Aug 2024 03:25:04 +0000 (03:25 +0000)]
add missing child activate handling, found due to idiom inspection
tested by phessler, input from kettenis
deraadt [Sun, 18 Aug 2024 02:59:51 +0000 (02:59 +0000)]
Upon resume, run usb_attach_roothub() in DVACT_WAKEUP rather than DVACT_RESUME.
The usb root hub is a software construct, not actual hardware, and the code
has a potential to reach sleeping points (which won't work because DVACT_RESUME
runs cold).
deraadt [Sun, 18 Aug 2024 02:53:08 +0000 (02:53 +0000)]
If FADT indicates FADT_POWER_S0_IDLE_CAPABLE, print "S0ix" instead
of "S0" on the acpi: sleep states line. (In my view, this flag-bit
announces that the hardware vendor + bios vendor + microsoft have agreed
this machine has enough "features" that S0 suspend is about as good or
better than S3, for various criteria).
ok kettenis mlarkin
guenther [Sun, 18 Aug 2024 02:25:51 +0000 (02:25 +0000)]
Use struct __sFILE instead of FILE in thread locking callback
declarations to reduce <stdio.h> pollution. Declare __isthreaded
in thread_private.h where it's really needed.
ok deraadt@
guenther [Sun, 18 Aug 2024 02:22:29 +0000 (02:22 +0000)]
Adjust locale/rune*.h files so <stdio.h> and <wchar.h> get pulled
into fewer files that don't need them.
ok deraadt@
guenther [Sun, 18 Aug 2024 02:20:29 +0000 (02:20 +0000)]
Pull in <stdio.h> (for snprintf()) directly instead of
assuming some local .h will pull it in
ok deraadt@
mlarkin [Sat, 17 Aug 2024 20:50:06 +0000 (20:50 +0000)]
Use 'int ch' instead of 'char ch' in one place for getopt.
Forgot one change during an earlier commit; use 'int ch' to make builds
complete without warning on arm64.
ok dv
denis [Sat, 17 Aug 2024 15:42:20 +0000 (15:42 +0000)]
Replace homemade copy_of() with strdup()
OK tb@
deraadt [Sat, 17 Aug 2024 15:10:00 +0000 (15:10 +0000)]
icc_detach was not listed in cfattach
mpi [Sat, 17 Aug 2024 13:35:01 +0000 (13:35 +0000)]
Use km_alloc(9) to allocate USPACE instead of uvm_pglistalloc(9).
ok miod@
kettenis [Sat, 17 Aug 2024 10:41:24 +0000 (10:41 +0000)]
Skip the FADT check on OpenBSD. Without it the GPU (and display) will
remain on in suspend-to-idle on some machines. There is a comment
warning that this is risky, but let's find out how risky thus really is.
ok deraadt@
kettenis [Sat, 17 Aug 2024 10:38:21 +0000 (10:38 +0000)]
The amdgpu(4) code uses separate code paths for suspend and hibernate.
Use the ACPI sleep state to determine which path to go down into. This
fixes (un)hibernate again after the fix for S0/S3 broke it.
Using the ACPI sleep state for this is not ideal. If we ever want to
support amdgpu(4) on architectures without ACPI, we'll need a different
solution.
ok jsg@
kettenis [Sat, 17 Aug 2024 10:33:56 +0000 (10:33 +0000)]
Linux doesn't consider S4 to be a suspend target state.
ok jsg@
denis [Sat, 17 Aug 2024 09:52:11 +0000 (09:52 +0000)]
Allow PPP interface to run in an rdomain and get a default route installed in the same routing domain
Input and OK claudio@
phessler [Sat, 17 Aug 2024 09:48:31 +0000 (09:48 +0000)]
effectively revert revision 1.7.
The original reason was some corner cases around COPY relocations, which
caused problems for miniperl which directly modified environ and accessed
environ via libc functions.
This causes duplicate symbols for environ/__progname in some (poorly written)
apps, but is allowed on most other architectures.
Since the time this was added other arm architecture changes mean that we
don't need it, so remove it.
debugged with kettenis@ and jca@
tested and OK guenther@
tb [Sat, 17 Aug 2024 09:19:04 +0000 (09:19 +0000)]
Zap a trailing comma to appease mandoc -Tlint
tb [Sat, 17 Aug 2024 09:17:27 +0000 (09:17 +0000)]
sync
tb [Sat, 17 Aug 2024 09:16:37 +0000 (09:16 +0000)]
Remove docs of various X509_TRUST "functionality" that no longer exists
Some macros are still exposed, but apart from the loss of a very nice way
of saying "this is completely misdesigned, overengineered and not properly
thought through" the only thing we would have learned from it is that this
stuff is "probably useless".
florian [Sat, 17 Aug 2024 09:07:33 +0000 (09:07 +0000)]
Since we are not using a pid file the manuals render a bit strange.
Pointed out by tb
miod [Sat, 17 Aug 2024 08:45:22 +0000 (08:45 +0000)]
Checkpoint of work-in-progress attempt to support the FireGL-UX board. This
particular sti(4) device relies upon undocumented callbacks from the kernel,
and will default to iodc code otherwise.
The device now initializes correctly, but writes to the frame buffer memory
freeze the system due to bad interaction with the ROM even though it is
disabled at the PCI level - unfortunately I'm currently out of hair to pull
at the moment to make any progress on this.
No functional change intended for other sti(4) devices.
miod [Sat, 17 Aug 2024 08:41:25 +0000 (08:41 +0000)]
Correct capitalization of FXe and use decimal version numbering for
rom features, to match what dmesg reports.
djm [Sat, 17 Aug 2024 08:35:04 +0000 (08:35 +0000)]
mention that
ed25519 is the default key type generated and
clarify that rsa-sha2-512 is the default signature scheme when RSA
is in use. Based on GHPR505 from SebastianRzk
djm [Sat, 17 Aug 2024 08:23:04 +0000 (08:23 +0000)]
fix minor memory leak in Subsystem option parsing;
from Antonio Larrosa via GHPR515
stsp [Sat, 17 Aug 2024 08:12:46 +0000 (08:12 +0000)]
enable qwx(4) ext irqs earlier for suspend/resume
Enable ext IRQs like the Linux driver does it, not later. I did this
differently due to problems in early development that have since
been fixed.
Fixes an interrupt storm during resume which prevents things like
key installation from working, leaving the network link dead.
djm [Sat, 17 Aug 2024 08:09:50 +0000 (08:09 +0000)]
fix swapping of source and destination addresses in some sshd log messages
jsg [Sat, 17 Aug 2024 07:02:13 +0000 (07:02 +0000)]
avoid uninitialised var use in nfs_serv.c error paths
some functions have a nfsmout label with code that assumes NDINIT has
been called
nfsrv_rename has two NDINIT calls, the nfsmout code assumes both are
setup but is only jumped to when none/one is setup
found with llvm scan-build
checked by deraadt@ beck@, ok miod@
yasuoka [Sat, 17 Aug 2024 03:28:22 +0000 (03:28 +0000)]
Fix some memory leaks in the RADIUS part.
ok tobhe
deraadt [Sat, 17 Aug 2024 02:35:00 +0000 (02:35 +0000)]
whitespace
deraadt [Sat, 17 Aug 2024 02:31:15 +0000 (02:31 +0000)]
perusing drivers on other systems, there appears to be some cynism about
how this chip comes out of D3 and when the RESET register is touched.
Some systems were still wasn't resuming reliabily, but adding these
delays has eliminated resume-hangs.
ok kettenis mlarkin
deraadt [Sat, 17 Aug 2024 02:28:45 +0000 (02:28 +0000)]
The dwiic_init() routine is used at startup to read various chip
registers, make some decisions, and then program other registers. After
a resume, it is pointless, and potentially incorrect to read such registers
again, which a BIOS or something may not have initialized, and we are
better off using the remembered soft-state to init cleanly. So craft a
custom block of chip restoration, and do it while the chip is stopped hard.
ok kettenis mlarkin
deraadt [Sat, 17 Aug 2024 02:24:03 +0000 (02:24 +0000)]
dwiic_activate did not inform sub-devices with config_activate_children()
calls from the correct places, so their DVACT_QUIESCE and DVACT_WAKEUP
were incorrect, and led to those sub-drivers (ihidev and imt) racing
against dwiic hardware re-initialization.
ok kettenis mlarkin
deraadt [Sat, 17 Aug 2024 02:14:20 +0000 (02:14 +0000)]
dwiic resume is almost exclusively a "hardware state restore", and
not a "restart transaction", so the job should get done at DVACT_RESUME
time.
ok kettenis mlarkin
jsg [Sat, 17 Aug 2024 01:55:03 +0000 (01:55 +0000)]
skip Controller Save State (CSS) and Controller Restore State (CRS)
on AMD 17h/1xh xHCI
avoids problem with resume after CRS was introduced in xhci.c rev 1.133
uhub0: device problem, disabling port 2
uhub1: device problem, disabling port 1
reported by brynet@ and reproduced on t495, ok kettenis@
guenther [Fri, 16 Aug 2024 23:09:25 +0000 (23:09 +0000)]
Cast to unsigned char after or'ing in the meta bit, so the compiler
doesn't complain when it's implicitly converted to plain char in an
assignment, and to make sure it's not negative when used as an array index.
ok miod@
guenther [Fri, 16 Aug 2024 22:58:54 +0000 (22:58 +0000)]
Delete duplicated x{m,re}alloc() declarations and add argument types
to a function pointer definition.
ok miod@
guenther [Fri, 16 Aug 2024 22:57:44 +0000 (22:57 +0000)]
Delete bogus test of array being NULL
ok miod@
guenther [Fri, 16 Aug 2024 22:57:03 +0000 (22:57 +0000)]
strn?casecmp() config bits were incomplete. We have them so
just delete the bogus declarations. Also, getopt() is in <unistd.h>
so pull that in during the remapping of it.
ok miod@
guenther [Fri, 16 Aug 2024 22:53:32 +0000 (22:53 +0000)]
Fix precedence lossage reported by clang that results in
bad buffer size.
ok miod@
deraadt [Fri, 16 Aug 2024 16:57:02 +0000 (16:57 +0000)]
sync
mpi [Fri, 16 Aug 2024 16:19:03 +0000 (16:19 +0000)]
Atomically modify `nthreads' and move proc_free() out of KERNEL_LOCK().
ok jca@
florian [Fri, 16 Aug 2024 16:11:06 +0000 (16:11 +0000)]
Remove reference to telnet(1).
telnet(1) doesn't have anything to do with login(1), maybe telnetd(8)
did, but that was taken behind the barn nearly 20 years ago.
Earlier version OK miod
Input dtucker
OK jmc, sthen, deraadt
florian [Fri, 16 Aug 2024 16:10:27 +0000 (16:10 +0000)]
telnet(1) is not a good example for logging in over the network.
OK jmc, sthen, deraadt
florian [Fri, 16 Aug 2024 16:00:30 +0000 (16:00 +0000)]
Add pledge & unveil.
The rpc library needs read access to the rpc database in
/etc/rpc. Other than that rpcinfo only uses AF_INET sockets.
With -b, rpcinfo(8) uses gethostbyaddr(3) to report hosts that
responded, so add "dns" pledge as well.
OK bluhm, miod
deraadt [Fri, 16 Aug 2024 15:27:11 +0000 (15:27 +0000)]
whitespace
jan [Fri, 16 Aug 2024 13:02:44 +0000 (13:02 +0000)]
vio(4): Don't set IPv4 checksum OK flag for rx packets.
The virtio specification just address TCP/UDP checksum offloading.
Thus, we have to check the IPv4 checksum in our stack.
ok sf@
miod [Fri, 16 Aug 2024 12:22:17 +0000 (12:22 +0000)]
Fix bounds checking in wsmux_getmux().
kettenis [Fri, 16 Aug 2024 10:49:57 +0000 (10:49 +0000)]
Set CONFIG_AMD_PMC. We don't have the corresponding driver just yet, but
it seems that Linux is just overcautious in disabling S0 suspend when the
driver isn't included in the kernel config. And we plan to implement the
driver soon anyway.
ok jsg@
kettenis [Fri, 16 Aug 2024 10:46:46 +0000 (10:46 +0000)]
Hook up a few more bits of suspend/resume power management code. This
fixes S3 suspend/resume on the Lenovo ThinCentre M715q with:
amdgpu0: RAVEN GC 9.1.0 8 CU rev 0x01
and also fixes S0 suspend/resume on various laptops with AMD graphics
provided we disable a few checks (which will be done in a separate
commit).
ok jsg@
kettenis [Fri, 16 Aug 2024 10:26:20 +0000 (10:26 +0000)]
drm/amd: Stop evicting resources on APUs in suspend
From Mario Limonciello
3a9626c816db901def438dc2513622e281186d39 in mainline linux
yasuoka [Fri, 16 Aug 2024 09:54:21 +0000 (09:54 +0000)]
Make sure that the uptime field is always updated. Previously it was
used before initialized when the database has a session.
yasuoka [Fri, 16 Aug 2024 09:52:16 +0000 (09:52 +0000)]
Free memory as much as possible. Also, fix a use-after-free when exiting.
yasuoka [Fri, 16 Aug 2024 09:50:09 +0000 (09:50 +0000)]
Send a reply to the control client when DAE is timed out instead of
silence. Also, fix a broken error string.
yasuoka [Fri, 16 Aug 2024 09:45:52 +0000 (09:45 +0000)]
Delete req_modified. Which is not used.
mvs [Fri, 16 Aug 2024 09:20:34 +0000 (09:20 +0000)]
Introduce PR_MPSYSCTL flag to mark mp-safe (*pr_sysctl)() handlers and
unlock both divert_sysctl() and divert6_sysctl(). Unlock them together,
because they are identical and pretty simple:
- DIVERTCTL_RECVSPACE and DIVERTCTL_SENDSPACE - atomically accessed
integers;
- DIVERTCTL_STATS - per-CPU counters;
ok bluhm
robert [Fri, 16 Aug 2024 06:42:21 +0000 (06:42 +0000)]
add 7.7 syspatch pubkey
deraadt [Fri, 16 Aug 2024 04:14:27 +0000 (04:14 +0000)]
delete disabled ACPI-related code in here, this power management is
done at a different level, and nothing needs to be done here
ok kettenis
patrick [Fri, 16 Aug 2024 00:26:54 +0000 (00:26 +0000)]
Align more register addresses and data structures with ath12k.
patrick [Thu, 15 Aug 2024 23:23:06 +0000 (23:23 +0000)]
Further minor cleanup for improved readability, with the major change that
FW now seems to come up after providing regdb parsed out of the board file.
patrick [Thu, 15 Aug 2024 22:01:37 +0000 (22:01 +0000)]
Initial patchset on top of the qwx(4) to adjust for ath12k. Still not
working yet, but it's better to continue polishing this in-tree.
deraadt [Thu, 15 Aug 2024 17:30:40 +0000 (17:30 +0000)]
whitespace
kettenis [Thu, 15 Aug 2024 17:17:05 +0000 (17:17 +0000)]
Upon resume, restore the saved state. Newer Intel xHCI controller (e.g.
those on Meteor Lake) need this, otherwise the ports are dead after
resume.
ok mglocker@, deraadt@
deraadt [Thu, 15 Aug 2024 16:55:06 +0000 (16:55 +0000)]
sync
deraadt [Thu, 15 Aug 2024 14:43:28 +0000 (14:43 +0000)]
sync
claudio [Thu, 15 Aug 2024 13:26:16 +0000 (13:26 +0000)]
Regen some OK files since the bgpctl rib header changed.
Friendly reminder by anton@
dlg [Thu, 15 Aug 2024 12:20:20 +0000 (12:20 +0000)]
add BIOCSETFNR, which is like BIOCSETF but doesnt reset the buffer or stats.
from Matthew Luckie <mjl@luckie.org.nz> via tech@
deraadt@ likes it.
job [Thu, 15 Aug 2024 11:30:43 +0000 (11:30 +0000)]
Ensure synchronization jobs are stopped when the timeout is reached
OK tb@ claudio@
patrick [Thu, 15 Aug 2024 11:26:03 +0000 (11:26 +0000)]
sync
patrick [Thu, 15 Aug 2024 11:25:37 +0000 (11:25 +0000)]
Add Qualcomm WCN7850
sthen [Thu, 15 Aug 2024 10:25:25 +0000 (10:25 +0000)]
add 77-fw pubkey
tb [Thu, 15 Aug 2024 09:46:39 +0000 (09:46 +0000)]
bsd.port.mk: typo dbp -> dpb
tb [Thu, 15 Aug 2024 09:29:12 +0000 (09:29 +0000)]
Document DWZ and fix a few mandoc lints
from espie
claudio [Thu, 15 Aug 2024 09:22:12 +0000 (09:22 +0000)]
Call repo_check_timeout() before colleting the POLLOUT fds. Since
repo_abort() called by repo_check_timeout() will add messages to
be sent out.
OK tb@
claudio [Thu, 15 Aug 2024 09:13:13 +0000 (09:13 +0000)]
Add filtered support to bgplgd.
OK tb@
yasuoka [Thu, 15 Aug 2024 07:24:28 +0000 (07:24 +0000)]
Accept empty lines for authopts to fix the parser to accept the old
syntax. It was broken by parse.y 1.18. Found by Mike at mgm51.com.
guenther [Thu, 15 Aug 2024 06:27:24 +0000 (06:27 +0000)]
unifdef for S_I{FLNK,FIFO,FSOCK}. For the operations where we use
access() (-r, -w, -x, -e) do them without requiring stat() to succeed first.
ok tb@ deraadt@
jsg [Thu, 15 Aug 2024 03:24:29 +0000 (03:24 +0000)]
drm/radeon: Remove __counted_by from StateArray.states[]
From Bill Wendling
ea12dbf570ef1cbbf857dfa80fbdd66cc0e4612b in linux-6.6.y/6.6.46
2bac084468847cfe5bbc7166082b2a208514bb1c in mainline linux
jsg [Thu, 15 Aug 2024 03:22:41 +0000 (03:22 +0000)]
drm/dp_mst: Skip CSN if topology probing is not done yet
From Wayne Lin
28c060cd370d2718345452f4182cba115b7367e8 in linux-6.6.y/6.6.46
ddf983488c3e8d30d5c2e2b315ae7d9cd87096ed in mainline linux
jsg [Thu, 15 Aug 2024 03:20:40 +0000 (03:20 +0000)]
drm/client: fix null pointer dereference in drm_client_modeset_probe
From Ma Ke
d64fc94f7bb24fc2be0d6bd5df8df926da461a6d in linux-6.6.y/6.6.46
113fd6372a5bb3689aba8ef5b8a265ed1529a78f in mainline linux
jsg [Thu, 15 Aug 2024 03:18:56 +0000 (03:18 +0000)]
drm/i915/gem: Adjust vma offset for framebuffer mmap offset
From Andi Shyti
d73de3c6447644c65ed0e9a368328713dc28fb18 in linux-6.6.y/6.6.46
1ac5167b3a90c9820daa64cc65e319b2d958d686 in mainline linux
jsg [Thu, 15 Aug 2024 03:15:06 +0000 (03:15 +0000)]
drm/amdgpu: Forward soft recovery errors to userspace
From Joshua Ashton
0da0b06165d83a8ecbb6582d9d5a135f9d38a52a in linux-6.6.y/6.6.46
829798c789f567ef6ba4b084c15b7b5f3bd98d51 in mainline linux
jsg [Thu, 15 Aug 2024 03:12:41 +0000 (03:12 +0000)]
drm/amd/display: Skip Recompute DSC Params if no Stream on Link
From Fangzhi Zuo
718d83f66fb07b2cab89a1fc984613a00e3db18f in linux-6.6.y/6.6.46
50e376f1fe3bf571d0645ddf48ad37eb58323919 in mainline linux
jsg [Thu, 15 Aug 2024 03:10:37 +0000 (03:10 +0000)]
drm/i915/gem: Fix Virtual Memory mapping boundaries calculation
From Andi Shyti
4b09513ce93b3dcb590baaaff2ce96f2d098312d in linux-6.6.y/6.6.46
8bdd9ef7e9b1b2a73e394712b72b22055e0e26c3 in mainline linux
jsg [Thu, 15 Aug 2024 03:08:00 +0000 (03:08 +0000)]
drm/amd/display: Add null checker before passing variables
From Alex Hung
4cc2a94d96caeb3c975acdae7351c2f997c32175 in linux-6.6.y/6.6.46
8092aa3ab8f7b737a34b71f91492c676a843043a in mainline linux
jsg [Thu, 15 Aug 2024 03:06:09 +0000 (03:06 +0000)]
drm/amd/pm: Fix the null pointer dereference for vega10_hwmgr
From Bob Zhou
2e538944996d0dd497faf8ee81f8bfcd3aca7d80 in linux-6.6.y/6.6.46
50151b7f1c79a09117837eb95b76c2de76841dab in mainline linux
jsg [Thu, 15 Aug 2024 03:04:18 +0000 (03:04 +0000)]
drm/amdgpu: Add lock around VF RLCG interface
From Victor Skvortsov
1adb5ebe205e96af77a93512e2d5b8c437548787 in linux-6.6.y/6.6.46
e864180ee49b4d30e640fd1e1d852b86411420c9 in mainline linux