Commit Graph

61079 Commits

Author SHA1 Message Date
Augustin Cavalier
2591d679e5 XHCI: Fix endpoint deadlock in CancelQueuedTransfers.
If a transfer completed before the StopEndpoint did,
HandleTransferComplete would try to lock the endpoint,
resulting in a deadlock, and so StopEndpoint would
always time out in this case.

May help with #15161, #15141, #15215, #15416, #15657.
2020-02-08 23:44:33 -05:00
Augustin Cavalier
f62329b34d USB: Explore ports when something is connected without a status change.
It seems that many controllers do not report status changes following
the hand-off from the BIOS, so we were never probing those ports
and reporting the devices attached to them.

The BSDs do something similar (although it seems to only do this
on the first explore, not always.)

This fixes booting off of USB3 ports from most Intel controllers,
as well as a variety of others with similar behavior.

Fixes #15000.
2020-02-08 16:33:02 -05:00
Adrien Destugues
0e280da525 SecureSocket: fix non-blocking reads
OpenSSL says we should retry when a non-blocking read finds no data is
pending. But in that case we should not retry immediately, because the
operation should be non-blocking.
2020-02-08 22:21:27 +01:00
Augustin Cavalier
3a63d1efff EFI: Restore the previous logic for BOOT_VOLUME_BOOTED_FROM_IMAGE.
Fixes booting from USB drives on my machine after previous changes.
2020-02-08 16:00:40 -05:00
Augustin Cavalier
5be6527a63 ImageRules: Use mformat's -f argument.
Should not be a functional change, but reading the docs, I'm not sure
our arguments were valid here, so this should be more correct.
2020-02-08 15:45:18 -05:00
Augustin Cavalier
b8852a24a6 XHCI: Do not set "Interrupt Short Packet" on transfers.
Before the refactor to use Event Data TRBs, this was necessary
to detect short packet conditions. Now that we use Event Data
TRBs, the hardware will send us an Event Data event even on
Short Packet conditions, so this is redundant.

Fixes log spam of "TRB ... not found in the endpoint", as
this was causing duplicate event postings. Also potentially
fixes instability seen when those messages were present.
2020-02-08 13:36:51 -05:00
Augustin Cavalier
78b224583c configure: Building GCC2-only Haiku is not supported anymore.
Fixes #15682.
2020-02-08 13:25:23 -05:00
Augustin Cavalier
07ec2cf013 EHCI: Call PrepareKernelAccess before writing descriptor chains.
Fixes #15653.
2020-02-08 13:16:13 -05:00
Augustin Cavalier
7e8263e589 libroot/stdio: Use the proper macros for isnan/isinf. 2020-02-08 12:58:09 -05:00
Fredrik Holmqvist
bc8cfa3a8c EFI: Use BlockIO to find bootable disks
There is one efi_block_io_protocol per disk and one per partition.
All we need to do is find the disk ones and let Haiku find
bootable partitions.

There is a special case for a device with one fixed partition
which does not have one for disk, but it is unlikely we will
ever want to boot from such a device.

Fixes #15587.

Change-Id: I915870d6d3b19947bc58b32a969f9f89d2d2245d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2232
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-08 17:38:38 +00:00
Fredrik Holmqvist
0d932a49ad Revert "loader: fetch all potential boot partitions for boot device."
This reverts commit e888217124.

Change-Id: I06be82ac863f615796d9edc86f5ef903b8123a9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2231
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-08 17:38:38 +00:00
Augustin Cavalier
2b19786285 Tracker: Remove unused variable.
Fixes the build (due to a -Werror).
2020-02-08 12:34:00 -05:00
Adrien Destugues
445de1d348 Use Input preferences
And remove Mouse, Keyboard and Touchpad.

Userguide and localizations will need to be updated.

Change-Id: I4543b2b63367cd13562c542610bad34b5934b103
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2210
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-08 17:03:19 +00:00
Olivier Coursière
4c8c060bc4 Make the FilePermissionView font size aware
Change-Id: Ibf100e1068a4807dca34c827acdd195e7effd535
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2196
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-08 16:38:09 +00:00
Panagiotis Vasilopoulos
6b853c782e Mail: small improvements to rediffmail
Change-Id: I51d4de7bf672f6828ab497f0836ac08df2c969a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2233
Reviewed-by: humdinger <humdingerb@gmail.com>
2020-02-08 16:35:32 +00:00
Murai Takashi
438da76623 fat: Add missing 'else'
Fix PVS V646

Change-Id: Ie4635f4c29e22d8f78abcb0cf9f043108d3a3405
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2228
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-02-08 16:35:24 +00:00
Murai Takashi
2e37c88d2b haikudepot: Fix 'new[]' array freed with 'delete'
buffer is allocated by new[] in _UnpackCaptcha(), but freed by delete.
Pointed out by LGTM.

Change-Id: I6feee3f9791950c33bbc2037c7809e21f250fa47
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2226
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-02-08 16:35:11 +00:00
Murai Takashi
d029e65f6f mkdos: Add missing 'else'
Fix PVS V646

Change-Id: Iddf45b1383ec8d272fb733970ba52390d3072ef2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2229
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-02-08 12:39:29 +00:00
Murai Takashi
77402344df app_server: Add missing 'else'
Fix PVS V646

Change-Id: I8f8f33b4c7cd3f7454e1605c445d6e942a554999
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2230
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-02-08 12:16:16 +00:00
Autocomitter
5833d3b64c Update translations from Pootle 2020-02-08 08:50:46 +00:00
Adrien Destugues
31ff65f62f Installer: better computation for minimal window width
The width of the status messages should not depend on the width of the
logo. Reserve about 30 characters no matter which logo is used (this is
slightly larger than it used to be).

Fixes #15679.
2020-02-06 22:39:43 +01:00
Adrien Destugues
145f127f3a Input preferences: fix crash and add icon
Fixes #15680.
2020-02-06 22:30:12 +01:00
Jérôme Duval
4438fc6589 runtime_loader: code clean up after hrev53827
avoid double free in destructor.

Change-Id: I28bd412b2323c3d80e63711885e87dd64e6165fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2224
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-02-06 21:00:34 +00:00
Murai Takashi
b8476a30d7 ntfs: Fix PVS V595
Check pointers against NULL befor using them.

Change-Id: I84fc7d60179fff46f78302e212bbcf7e5105126b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2223
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-02-06 17:07:53 +00:00
Adrien Destugues
ffd6c2f4bd input_server: use a better name for trackpoint devices
Now that the names are visible in Input preferences, let's try to have
better ones

Change-Id: Ia67e57c449e0ad292ce573b50a1e533d84c90d68
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2209
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 07:29:13 +00:00
Ryan Leavengood
0a3f71b26f Build fix for gcc2: Declare variables before checking for NULL 2020-02-06 00:18:05 -05:00
Ryan Leavengood
246caab548 Fix build: missing semi-colon in fortune 2020-02-05 21:34:53 -05:00
Rob Gill
40ee778c63 Fix memory leaks
* Delete/free as appropriate

   Most cases involve not freeing memory after encountering error or
   unexpected situation (identified via cppcheck static analysis)

Change-Id: I90ba2fca518b00d2dfa9ec1ddbcebe1920a34b7c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1038
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:45:11 +00:00
François Revol
f0ba8f6aca TCP: Fix Zero Window Probes.
I did some tcpdump recording, and I believe we confuse the receiver
with our Zero Window Probe, because we don't resent even though it only
ACKs the previous segment, and we keep sending things after it:

 * we send the last segment before window is closed, next seg = N,
 * we get ACK for N, with window=0
 * we send Zero Window Probe with 1 byte, next seg = N+1,
 * we eventually get a window>0 ACK still at N,
 * we start sending stuff again, but starting from N+1,
 * receiver keeps ACKing N because it never accepted it.

It seems sending either 1 or 0 byte is valid for a ZWP, although I'm not
entirely sure. At least it's easier to handle 0 than 1, and it seems to work.
Wireshark shows them as duplicate ACKs, but they get the thing going.

References:
 * RFC 793: https://tools.ietf.org/html/rfc793#section-3.7
 * RFC 6429: https://tools.ietf.org/html/rfc6429
 * Wireshark wiki: https://www.wireshark.org/docs/wsug_html_chunked/ChAdvTCPAnalysis.html

Should fix #13769.

Change-Id: I95264ebbbb8c66c23411dfce6fc41871e0427166
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1188
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:41:05 +00:00
Murai Takashi
934ad06cf1 reiserfs: Fix PVS V595
Check 'name' pointer against NULL before using it.

Change-Id: I8b40ee28a12210d1989cc717ecb67d6e1c0a1544
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2205
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:12:58 +00:00
Murai Takashi
7eaa780a81 emulex_oce: Fix PVS V595
Check 'mq' pointer against NULL before using it.

Change-Id: I785940616c9ec9c0c168975388a728e88b36d1d8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2204
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:12:26 +00:00
Murai Takashi
0d56abf253 libroot/add-ons/icu: Fix PVS V595
Check 'in' pointer against NULL before using it.

Change-Id: I4d7605df168b6e4f8a2ae61ff942ce1a8ba78321
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2203
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:11:53 +00:00
Murai Takashi
24ffd29c7d runtime_loader: Fix PVS V595
Add NULL check for fValuesResolved, since malloc() might
return NULL.

Change-Id: I3849ddfcffd7712fec3d90546244c6b17e4d0f77
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2202
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:11:06 +00:00
Adrien Destugues
a206dcc221 usb hid: implement horizontal scrollwheel
- Fix USB_hid_page_consumer.h: some values are skipped in the spec so
  our defines were off
- Handle the horizontal wheel on my mouse which is declared as a
  CON_AC_PAN, but otherwise works just like the vertical wheel
- Input server and interface kit already handle the events properly
  (they were available for serial mice already).

Change-Id: Ie0080ebb27e9478bcfe9f9dc5fd2a936ae05a848
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2201
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:10:10 +00:00
François Revol
8a0fd7e14e m68k: use generic stack_trace for now
Change-Id: I76638296ac0d92f4be5e7138b52f8e7e40e403eb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2218
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-06 00:07:15 +00:00
François Revol
f1d285df02 m68k: more atomic stubbing
Change-Id: Ic8f0078068b0d01973d67424187d11bd2bef019f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2217
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:07:15 +00:00
François Revol
0960949012 m68k: build fix
Change-Id: I3e2b106d5b14a84523e74024616a5c168f011e1a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2216
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:07:15 +00:00
François Revol
66f88b473a m68k: stub out more TLS
Change-Id: Ia226dcf996556622faf66798647447f2311fbb03
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2215
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-02-06 00:07:15 +00:00
François Revol
f614bad4a6 m68k: fix linking atari_m68k loader
Change-Id: Idb266a55bf72d14a0ebe9a4ee16a981f39b8adec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2214
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-06 00:07:15 +00:00
François Revol
086766edf9 m68k: fix math in libroot
Change-Id: Icd50c5887d1b96818c620046b20ba51aac55ec18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2212
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-06 00:03:15 +00:00
Adrien Destugues
0f9ffb37c1 Add a Person file to tracker new templates
Fixes #9397.
2020-02-05 21:25:22 +01:00
X512
b3de8bea44 Package Kit: convert HTTP error code only on BHttpRequest
Other request types exists such as BFileRequest.

Fixes #15675.

Change-Id: Ib2e07fad4dd9f682d2b9fc0cdbf0ca60ecd3adfb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2200
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: François Revol <revol@free.fr>
2020-02-05 14:55:45 +00:00
Kyle Ambroff-Kao
5f4f455cfd test/storage: Fix BFile tests
After this patch "UnitTester BFile" runs with no failures.

This includes some changes to NodeTest as well since the BFile suite
inherits some tests from it, but "UnitTester BNode" doesn't pass yet.

FileTest:
* Fix format strings in log messages to use the correct types and
  quite warnings.

* Test for expected behavior with BFile(..., B_READ_ONLY | B_ERASE_FILE)

  There is a table in the BFile tests which is used as input for a
  series of tests which construct BFile objects with various
  permutations of the mode parameter.

  For two of these, the combination of B_ERASE_FILE and B_READ_ONLY
  are used for the file mode. The system rejects these with the error
  B_NOT_ALLOWED. This is enforced in bfs_open(), which looks for that
  particular combination (O_RDONLY | O_TRUNC).

  I tested this on BeOS R5 and it will indeed let you create a
  BFile(path, B_READ_ONLY | B_ERASE_FILE) which basically replaces the
  file at path with an empty file.

  The Haiku behavior seems way more sensible, so I'm changing these
  tests to match its current behavior.

* BFile(..., B_READ_ONLY).SetSize() isn't allowed.

  BeOS R5 allowed you create a BFile with the B_READ_ONLY flag and
  then successfully set the size of the file with
  BFile::SetSize(). Haiku doesn't, and that seems way better. Updating
  BFileTest::SizeTest to match Haiku behavior.

  One whole sub-test was removed from FileTest::SizeTest because it
  calls SetSize() on a `B_READ_ONLY | B_ERASE_FILE` BFile. This is
  redundant as other tests in this suite already verify that it is not
  possible to construct a BFile with that combination of flags.

NodeTest:
* Fix tests to match Haiku's max attribute length.

  Many of these tests assume that the max size of an attribute name is
  255 bytes, and it was in BeOS R5, which I just confirmed.

  But Haiku allows 256 bytes. In 4069e1f30 some compromise was struck
  that allowed this to avoid breaking userspace which had been allowed
  to use 256 byte keys at some point.

* WriteAttr, ReadAttr and RemoveAttr all return B_NAME_TOO_LONG if an
  attribute name longer than 256 bytes (excluding null terminator) are
  provided.

* Disable NodeTest::AttrRenameTest since attr rename is not supported

  Tests in BNodeTest (inherited by BFile tests) exercize
  BNode::RenameAttr(), but from what I can see attribute renaming is
  not implemented at all. bfs_rename_attr() has a TODO comment and
  just always returns EOPNOTSUPP (B_NOT_SUPPORTED). And that is the
  value returned from BNode::RenameAttr() in these tests.

  So for now I made these tests just check that B_NOT_SUPPORTED is
  returned from BNode::RenameAttr(), so when this functionality is
  implemented these tests will fail and can be cleaned up.

Change-Id: I6cfe90ca45f3a8afa709edc9b85e648fdc865e82
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2182
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-05 14:54:18 +00:00
François Revol
15e39e1c67 elf2aout: Fix for 32bit
Sadly the NetBSD elf2aout only support 32bit, and this one from FreeBSD
only supports 64bit. This one was simpler to fix because it only handles
basic stuff.

Change-Id: I70165f680ec1cd95c156d4116f9d96c6b4ac53b0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2206
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-05 14:52:31 +00:00
Ryan Leavengood
e10de1ecf5 Visually align shortcuts in menus
In a menu, we use the right side both for submenu arrows and shortcuts.
As a result, when an entry has both a shortcut and a submenu, its
shortcut is not aligned with others, and this does not look so nice.

The spacing for the arrow appears only if there is a submenu in any of
the items in the parent menu.

Change-Id: If91fdcdad36abb0141fb05d1f59141f89540c1db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/355
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>
2020-02-04 23:06:54 +00:00
John Scipione
dcf9675793 Deskbar: Improve auto-raise and auto-hide
Activate auto-raise on the screen edge inside the Deskbar window
frame. Set the event mask to B_POINTER_EVENTS when auto-raise or
auto-hide is on and set the event mask back to 0 when we turn off
auto-raise and auto-hide. Before this change you had to click a
window twice to get it to rise above of a raised Deskbar, with
this change you only have to click once to make the window rise
above Deskbar.

The auto-hide show and hide bounds are unchanged.

There was another bug where the window was not hiding correctly in
auto-hide mode when you moused over the status bar in horizontal
mode. This was happening because the where parameter of
TBarView::MouseMoved and TBarView::MouseDown was yielding
coordinates relative to the status tray when the mouse was over
the status tray and not the current view meaning that
TBarView::Frame().Contains(where) would return false over the
status tray. Inspecting the where parameter showed that the x-
coordinate was reset back to 0 when you mouse over the status tray.
To fix this issue I pulled the screen_where field out of
CurrentMessage() instead since this yields the correct value.

The calendar window input focus has been fixed in auto-raise mode
so that you can click on calendar even when it is above Deskbar.
You may also click a window on top of Deskbar in auto-raise mode
without the Deskbar window being raised.

Don't hide Deskbar when Calendar is showing in auto-hide mode.

Put comment inside else block inside { }.

Return from TBarView::MouseDown() calling ansestor method.

Quit fCalendarWindow on TimeView deconstructor if it exists (even if
it is not curently being shown.)

Fixes #8923 #14493

Change-Id: I7ed67fdbc30a93d2782b3ab6b6738b86ec5e4043
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1966
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-04 20:17:56 +00:00
Adrien Destugues
53db2fc8cf Installer: Missing break
Leading to opening two Installer windows after closing EULA.

Thanks to Diver for reporting!
2020-02-04 21:10:12 +01:00
Adrien Destugues
79ded8ca16 Reduce polling interval for low-speed devices
Fixes #7651, my Logitech gamepad works.

Change-Id: Ia3f92ba817576946dabee262a2fd5af8102a109f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2198
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2020-02-04 20:05:10 +00:00
Jaroslaw Pelczar
78fea2759f arm64: Enforce PIC build of kernel
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I4d4acf91865b182d9fd5f500978705854e0638e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1855
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-02-04 03:36:20 +00:00
François Revol
0ef0921d99 Package Kit: Return proper errors in FetchFileJob
This should give more meaningful errors in pkgman
(not so sure, feel free to tweak the mapping),
and also avoid running the next job if fetching failed.

Change-Id: If76968f705ff25f7ecf1a5f91d88a02040d24665
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2186
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>
2020-02-04 02:18:09 +00:00