Commit Graph

61467 Commits

Author SHA1 Message Date
Augustin Cavalier
18e9c8885f nvme_disk: Use DMAResource for bouncing.
This is a "best of both worlds" approach: if nvme_disk
determines the I/O can be done with no bouncing at all,
it will do so; otherwise, the I/O is done by the _bounce
method that uses DMAResource.

Thanks to mmlr for helping investigate some of the DMAResource
crashes and other oddities.

Fixes #15818 and #15123.
2020-04-27 23:37:01 -04:00
Augustin Cavalier
1b3ccbc50b nvme_disk: Overhaul to use physical-buffer-based I/O.
This fixes the virtual/physical mixup problems that plagued
the driver until now.

This is rather inefficent, though, as it does its own page-based
bouncing instead of using DMAResource. That will come in the
next commit.
2020-04-27 22:49:51 -04:00
Augustin Cavalier
c1c239fefb kernel: Add mechanism in IOBuffer & IORequest to clamp the last iovec.
This is needed by CreateSubRequest, which creates a sub-request
using some subset of the passed IO vectors. In the case that the
last vector will not be fully used, we need to clamp its size
in the sub-request to the remaining length.

do_iterative_fd_io, used by vfs_read_pages (which is in turn
used by the file cache) used this to split up requests
into their constituent block-run requests. So, previously,
the invalid IO requests created by this could, under one possible
interpretation, overwrite valid file data and cause disk corruption.

It is slightly unfortunate that generic_size_t has no unsigned
equivalent, so we are left with 0 as the magic number here,
instead of -1. However, the passed "length" remains unchanged,
so any callers that pass the wrong value for lastVecSize
will be trapped by the assert added in the previous commit

Fixes #15912 (the assert added in the previous commit),
and potentially disk corruption caused by this.
2020-04-27 22:30:50 -04:00
Augustin Cavalier
d939cacf6b kernel: Add assert in IOBuffer::SetVecs() that the passed length is the actual length.
These are, at present, triggered on rare invocations of vfs_read_pages.

See #15912.
2020-04-27 22:30:50 -04:00
X512
8ff2f81f6b test_app_server: add RemoteHWInterface
Change-Id: I67473c9df4a81aab42d2bb92f93078abc3d7b6d4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2512
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-28 00:45:19 +00:00
X512
f569b97029 test_app_server: add multiple screen support
Change-Id: I89fb30936160615d28aebb36c8b1f84690007de7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2511
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-28 00:45:19 +00:00
Leorize
04fac889f7 net_socket: getpeername now only works on connected socket
Per POSIX.1-2008, getpeername() shall fails if the socket is not
connected.

With this change, it's no longer possible to retrieve the peer from
connectionless protocols such as UDP, even if a peer is assigned to them
via connect(). The same behavior can be replicated among
POSIX-compatible operating systems such as Linux.

Fixes #15081

Change-Id: Ia5631971200959a3d3815332ff1969c4b4dd289b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2421
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-28 00:44:24 +00:00
bitigchi
a67bbcb799 Display localised application/preference names by default
By default, Haiku does not provide localised names for applications and
preference names. This commit changes the default setting to 'true',
for displaying the localised variants.

This is generally bad UX, especially for the preference preflets,
since the user will have no idea where to go if he/she does not
speak English (even will not be able to find this setting presumably).

Change-Id: I17dea9428541be50e27227ba15f9afcde21a99d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2002
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Reviewed-by: humdinger <humdingerb@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-28 00:44:07 +00:00
Michael Lotz
943383c889 DMAResource: Remove incorrect early unlock.
When bounce buffers were changed from fixed to dynamic in hrev27185, the
early unlock in case of physical vectors was not removed. This would
lead to an unprotected fBounceBuffers list and the possibility for
multiple operations to share the same bounce buffer vecs, leading to
disk corruption. This would not happen when used purely under the
IOScheduler as all translations are done from a single thread there.
With the nvme_disk driver that runs requests in parallel, this was
however easy to trigger.

Change-Id: I46bd55cd5d86174523d3f745b6c8800dae02babc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2524
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-28 00:43:31 +00:00
Adrien Destugues
5fd6feed3e Tracker: fix checkbox positions in InfoWindow.
Fixes #15914.
2020-04-27 20:17:51 +02:00
CruxBox
eab542ef03 xfs: Init AG Free Space Management
Currently need to make the B+Tree for AG Free Space Management.
The functions or the code for this task isn't complete. Sharing for
reference.

Change-Id: I1e29832b9645bd527962128a8c85b7ca24c7fd50
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2378
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-27 10:28:49 +00:00
Jérôme Duval
03f4263ea5 acpi_als: driver for ALS ACPI devices
Change-Id: I24068c7b3e1c5863d39d0a805a32acfeb93ad422
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2505
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-27 07:38:40 +00:00
Jérôme Duval
ceb94d0080 wmi: some ASUS laptops need have ALS forced enabled
Change-Id: Ie0752419b1e60d78cdfe60e5b35303a09db10400
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2504
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-27 07:38:40 +00:00
Jérôme Duval
97f2b91169 smbios: add module to match SMBios vendor and product
Change-Id: Ib7848da1c22c42a1a9030891159f4e852c6c1ecd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2503
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-27 07:38:40 +00:00
X512
bd3b700484 screenmode: fix MIME signature
Change-Id: Id7f1ffea799b4843076abe4e791d949dcb2f0339
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2518
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-26 17:37:18 +00:00
José Manuel Ferrer Ortiz
ffbe5ecde2 Time: Fix flattening of countries with one subitem and no timezone on the parent.
Fixes #15907.

Change-Id: I10d81ca92539b3430607c10ebaa9fe7f1080ef0b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2517
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-26 17:35:26 +00:00
Kyle Ambroff-Kao
6f9f7e02a8 tests/HttpTest: Fix build on x86_gcc2
* std::istreambuf_iterator<T> template isn't available until C++11.
* std::vector<T>::cbegin() is not available
* Add missing include of errno.h

Change-Id: Ice344f6b0f93bf72d9120674607878c4c3e8ef54
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2515
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-26 16:53:07 +00:00
Paradoxon
a688d43f35 HaikuDepot: Add a version column.
Makes it easier to find the latest version of a app.

Fixes #15668.

Change-Id: I26e939cd7ac4c590d856a2b093cc52098fa14301
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2488
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-25 18:58:14 +00:00
Autocomitter
dc0bc42494 Update translations from Pootle 2020-04-25 09:02:45 +00:00
X512
eeff891b9d Message screensaver: style fixes
Change-Id: Ifd910a517411e888eaee0efda2fa18838a1023d7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2513
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-24 23:51:12 +00:00
X512
3ed66cafba Message screensaver: fix array delete[] problem on clang, style fixes
Change-Id: Ic0182e81e9267c69b92ed60a85026eb45cda3a2d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2407
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-24 22:34:07 +00:00
X512
6d31c23459 test_app_server: fix build
Change-Id: I5fa78adf04bf4380e340d470eb98377e574d3801
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2510
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-24 22:30:15 +00:00
Niels Sascha Reedijk
5365cf366b SoftwareUpdater: show localized name in Deskbar
Reported by bitigchi in #15554. Thanks!
2020-04-24 17:40:54 +01:00
Niels Sascha Reedijk
f766999fae Network preference: show localized name in Deskbar
Switch to B_TRANSLATE_SYSTEM_NAME to use translations in Deskbar.

Reported by victordomingos, thanks!

Change-Id: Ie841b5b19009858ac20f789fc99551df177fbff4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2508
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-24 15:25:56 +00:00
Augustin Cavalier
d26bbf4c90 build: Remove perl from the Development set.
This caused the nightly builds to fail, because perl is apparently
a dependency of something in the base set already.
2020-04-23 21:26:43 -04:00
Jérôme Duval
19692eed95 OptionalPackages: add missing dependencies
for Development: automake and autoconf require perl
for DevelopmentMin: makefile_engine requires make and mkdepend

Change-Id: Ica2bace17a233e2e589e139208e468870b1cc84e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2507
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-23 15:43:08 +00:00
Augustin Cavalier
5332b1ce28 freebsd_network: Remove bogus KASSERT.
As pointed out by halamix, root_size is set to > 0 during
radix_bitmap creation, and never changed after that. So
this is a bogus check.

Fixes #14941.
2020-04-23 01:05:33 -04:00
Augustin Cavalier
ccb11fb4f2 libnvme_haiku: Name mutexes after the function they are allocated in. 2020-04-23 01:02:36 -04:00
Augustin Cavalier
9f703d301c libnvme: Unset ctrlr on teardown.
This way we do not attempt to tear down more than once,
which triggers an assert in mutex destruction.
2020-04-23 01:02:17 -04:00
Augustin Cavalier
9a3a70f437 libnvme: Add better asserts in SGL-to-PRP request conversion.
Taken from upstream (SPDK).
2020-04-23 01:01:47 -04:00
Augustin Cavalier
b0460580c5 libnvme: Export controller SGL support in nvme_ctrlr_stat.
libnvme has routines to convert SGL requests into PRP ones,
but they can only go so far, so some requests are truly
SGL-only.
2020-04-23 01:01:11 -04:00
Augustin Cavalier
b36c8cff54 libnvme: Add comments about what data buffers must be physically contiguous. 2020-04-23 00:59:18 -04:00
Jérôme Duval
ddcb56f2ac bootloader: support older kernels.
if no microcode is found, we can also omit the optional fields.
should help with #15891

Change-Id: I2fcb63ccb0cdf77caf7d5e1770c254561b231a18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2506
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-04-21 16:46:10 +00:00
Niels Sascha Reedijk
5d573f8375 Various translation fixes.
Closes tickets #15892 and #15893
2020-04-21 13:38:36 +01:00
Augustin Cavalier
d4304f4384 nvme_disk: Correct get_memory_map invocation.
Passing "1" as the bytes argument instead of "0" means that
get_memory_map would never return an error in the case that
one physical_entry was not enough for the vaddr's map.

This reveals the true cause of the disk corruptions:
libnvme is assuming some of the passed buffers are
physically contiguous, and they are not.
2020-04-21 00:41:57 -04:00
Augustin Cavalier
21b312b61e nvme_disk: Queue requests if there are already requests queued.
This way, we don't do I/O out-of-order within a qpair under
heavy load conditions.
2020-04-20 23:53:12 -04:00
Augustin Cavalier
fdfb71a406 nvme_disk: Further rework of qpair locking behavior.
This makes the logic, especially around queued requests,
much more robust.
2020-04-20 23:50:46 -04:00
Augustin Cavalier
b6fccb7930 nvme_disk: Add an interrupt await timeout.
This way, if something stalls in an unexpected way, the whole system
won't just hang.

Should "fix" #15874, but there is probably some other underlying
problem.
2020-04-20 23:49:24 -04:00
Augustin Cavalier
6ef25b8505 nvme_disk: Request callbacks in libnvme are called with the qpair lock held.
Fixes #15880.
2020-04-20 23:48:25 -04:00
Augustin Cavalier
0f839b9e8c kernel/module: Panic if search_module is called during gKernelStartup.
The VFS has not been initialized at this point, so we can't use it.
Should catch #15865.
2020-04-20 23:47:46 -04:00
Jérôme Duval
12a968998a pch_i2c: build fix 2020-04-20 19:25:15 +02:00
Humdinger
367a1cd989 Input prefs: fix missing translation strings 2020-04-20 18:02:38 +02:00
Jérôme Duval
9aacbbbbc1 HaikuImage: add i2c bus manager and pch_i2c bus
add i2c bin tool

Change-Id: Id83e1ec4f008d3728120dcf5a7f43c4b621c1272
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2486
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-20 14:58:02 +00:00
Jérôme Duval
1baf45b64b wmi: add ACPI WMI implementation
add a WMI Asus driver, to control keyboard backlight brightness.

Change-Id: Ib86f70b4a407178b0a1f532269387a55915cc460
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2485
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-20 14:56:59 +00:00
Jérôme Duval
526752bc02 acpi: add ACPI_DEVICE_UID_ITEM
Change-Id: I6f1dba7d9d757859375e2339141ba92559d5cf9b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2484
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2020-04-20 14:56:59 +00:00
X512
04ff1cfaef i2c bus_raw: fix passing cmdBuffer, handle large buffer size
Change-Id: Ia2965d465899d087f0cbf8f7b07a7a326ed305db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2496
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-20 14:56:16 +00:00
X512
b29db8ebbb AutoDeleter: add Get method for FileDescriptorCloser
This allows to use FileDescriptorCloser as unique pointer for file descriptor.

Change-Id: I4c768fafba6ed35658b2fdb075b9b547f53bc8da
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2495
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-20 14:56:16 +00:00
X512
9219768a97 scsi: add device names
Change-Id: Ifca8911a095ee93daf1b4976a037dbd7c016e923
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2494
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-04-20 14:56:16 +00:00
Niels Sascha Reedijk
ffc770c1f4 HaikuDepot: remove double space after full stop
Reported by translator loic (thanks!). The double space is only removed in
user-facing strings, I did not touch the comments.

For those interested in an internet controversy, search the internet for
the origins of the double space after a period. In any case, for consistency with
other user facing strings, go to a single space after a period.
2020-04-20 08:45:46 +01:00
Andrew Lindesay
eaf026de4a HaikuDepot: Fix Label on User Rating
Resolves #11639

Change-Id: I45d3952d1dd0fc998cf589b5180c0a81ab1f63b6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2501
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-04-20 07:15:44 +00:00