Commit Graph

59799 Commits

Author SHA1 Message Date
Jérôme Duval
984ec35f2a exfat: fix block count for bigger disks. 2019-02-25 21:32:41 +01:00
John Scipione
65c0d507d3 MidiPlayer: Fix crash when dropping a midi file
Window must be locked or MidiRunThread crashes with a segment violation.

Change-Id: I9d5d0fa477475a9b5ba877aea3d6583690aacb2b
Reviewed-on: https://review.haiku-os.org/c/1080
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>
2019-02-25 11:57:46 +00:00
Murai Takashi
5b88998b2d media-add-ons/mixer: Fix -Werror=class-memaccess
Fix -Werror=class-memaccess, pointed by gcc8.
* AudioMixer.cpp: replace memset() with media_format.Clear().
* MixerAddOn.cpp: remove unneed memset(), since constractor of
  media_format already runs memset().

Change-Id: Idfb68c4d3190aeed725d905e46b0f85354962bc9
Reviewed-on: https://review.haiku-os.org/c/1112
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>
2019-02-25 11:56:40 +00:00
Augustin Cavalier
9cd8943940 XHCI: Rework locking in HandleTransferComplete.
We need to hold the endpoint lock while reading the TD list on
the endpoint, as otherwise we have no guarantee that the pointers
will not be modified while we are looking at them.

Since this is the only consumer of _UnlinkDescriptorForPipe, just
make that function assume a lock, and then do all locking within
HandleTransferComplete.
2019-02-24 14:49:10 -05:00
harsh jain
7495b57bcc refactor(MenuWorld): code refactor for stddlg
Change-Id: Id73404d29ea75f61663e0306eeeb559286d77281
Reviewed-on: https://review.haiku-os.org/c/1072
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-02-24 19:46:30 +00:00
PulkoMandy
fcffcb1576 RepositoryRules: fix typo
This went through review too fast, the wrong variable name was used so
the package name was not listed...

Change-Id: I81d4aa57fdb65297ae9f63ebf123d7a6395a99b6
Reviewed-on: https://review.haiku-os.org/c/1109
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-24 19:45:14 +00:00
Humdinger
53c1d392cb WebPositive: Fix/rearrange elements in Settings window.
The Browse button was misplaced when the "Start up" setting was
introduced recently. Moving it back into the "Download folder" row.

Move the "Download folder" row to the bottom of the group.

Have the text field of the days-of-history BSpinner not stretch
the whole window width.

Change-Id: I00260126cf7594f435899fa821e8bf79bb475ba8
Reviewed-on: https://review.haiku-os.org/c/1110
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-24 19:30:50 +00:00
François Revol
54a4352649 Coding Style Police
Change-Id: I93ebe389dbc685f4277cf32c4d0a6d529c81a354
2019-02-24 15:54:34 +01:00
François Revol
447b98e474 net_socket: Fix deferencing NULL+8 in KDL commands
Change-Id: I50d4dab27699614b0bfc977e10d6d11cbb5f79fa
2019-02-24 04:44:10 +01:00
PulkoMandy
6f7d94a13d vm: fix stack erase when printing 64bit value
Getting 64 bytes of data in a 32 bit variable is a bad idea

Change-Id: I760e1cfb996a9be053dbc50d6610b3e865cde65d
Reviewed-on: https://review.haiku-os.org/c/1096
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-23 23:50:37 +00:00
Augustin Cavalier
65ceb4c931 XHCI: Rewrite transfer-complete handling code.
* Don't set the IOC bit on the link TRB in LinkDescriptorForPipe. We don't
   want to know about this' completion, only about the other transfers
   completion and statuses. This should halve the interrupt rate.
 * Check if this is an Event Data TRB, and return an error if it is.
   (I haven't managed to trigger this code, but it is theoretically possible.)
 * Rewrite loops for clarity and consistency.
 * Use the correct offset when checking for the TRB.
   - Don't rely on the trb_count to tell us whether the TRB is in the TD,
     but just check the address based on MAX_TRBS_PER_TD.
   - Previously, as the link TRB would trigger an interrupt, we could rely
     on that to determine when the transfer finished. But that of course
     did not tell us the correct status, as the link TRB is techically in a
     different TD, as it isn't linked to the previous TRBs. Now we always use
     "count - 1", which will be the final TRB in the TD, properly speaking.
 * Print errors when we fail to find the TRB for any reason.

Reading multiple GB and abusing "stat" on a usb_disk following this commit
only managed to stall my usb_hid attached mouse once in multiple rounds of
testing, which seems a marked improvement; previously only a few hundred MB
and not that much abuse of "stat" were needed to actually trigger the stall.
So it seems this improves the stall situation considerably.
2019-02-23 17:08:10 -05:00
Augustin Cavalier
6a00da689e XHCI: Tweak comment in SubmitControlRequest.
Re-add page number, and fix verb tense while I'm at it.
2019-02-23 15:07:44 -05:00
Jérôme Duval
150ce798c2 XHCI: calls FreeDescriptor before returning.
introduced in the previous commit.
2019-02-23 21:01:00 +01:00
Jérôme Duval
342c997667 XHCI: revert part of c409803d6f
The TRB_3_DIR bit on the Status Stage was previously correctly set as per the spec:
Table 4-6: Status Stage TRB and Device-to-host and wLength > 0 means DIR OUT.

Also free descriptors when _LinkDescriptorForPipe fails.
2019-02-23 20:33:12 +01:00
PulkoMandy
e12480694e bootstrap: a little more explicit error if things are wrong
There seems to be a problem with the way we set the gcc_bootstrap
package build to depend on the bootstrap package with haiku headers.
If said package cannot be built (for example some definitions are
missing for a new architecture), we end up passing an empty string as
the package to use to haikuporter.

The error message given by Haikuporter is confusing, and not easy to
investigate. So, intercept the error earlier to save time for the next
person to hit this problem.

Change-Id: I64f326e5cb3bb0d44632864ad38ad10bb88d0c7b
Reviewed-on: https://review.haiku-os.org/c/1082
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-23 16:30:50 +00:00
Adrien Destugues
5629675a32 sparc: add defines and minimum set of required files
Gets the stage0 bootstrap to run.
Imlementation is probably nonsense at this point.

Change-Id: I10876efbb54314b864c0ad951152757cdb2fd366
Reviewed-on: https://review.haiku-os.org/c/1061
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-23 16:30:50 +00:00
Murai Takashi
be6c334335 STXTTranslator: Fix dead initialization
* Fix dead initialization at line 596. Pointed out
  by clang static analyzer.
* As a result, 'BMallocIO encodingIO' at line 524
  becomes unused, so delete it and header.

Change-Id: Ia62184fe0682a2eedeee42a513faccabdd3d1b59
Reviewed-on: https://review.haiku-os.org/c/1079
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-02-23 16:02:13 +00:00
Augustin Cavalier
88180e2f80 XHCI: Allow commands to time out after 1s instead of stalling forever.
This seems to occur when trying to stop endpoints in certain scenarios,
at least.
2019-02-22 17:14:23 -05:00
Augustin Cavalier
358dd70e16 XHCI: Initialize all fields during endpoint setup.
As we reuse memory on a device for endpoints, this is potentially a
functional change.
2019-02-22 17:12:03 -05:00
Augustin Cavalier
c4db8aba7b XHCI: Delete the device in FreeDevice() before tearing down internal state.
We don't properly tear down endpoints, etc. yet, but when we do, this will
be important as the device destructors are what tells us to do that.
2019-02-22 17:09:09 -05:00
Augustin Cavalier
1464b156f7 XHCI: Minor non-functional cleanups. 2019-02-22 17:08:10 -05:00
Augustin Cavalier
da8c1a9a40 USB: Don't loop endlessly waiting for a physical buffer.
This is used quite a lot in critical transfer paths, so we don't
want to lock things up if no buffers are available for whatever reason.
Wait 2 seconds, and if we didn't get anything by then, return B_NO_MEMORY.

Possibly fixes or helps with certain USB-related lockups.
2019-02-22 13:32:27 -05:00
Augustin Cavalier
7b53b3c2e4 XHCI: Don't compute the error code twice.
No functional change.
2019-02-22 13:32:27 -05:00
Augustin Cavalier
c409803d6f XHCI: Refactoring and fixes to SubmitControlRequest.
* Rearrange some basic setup to be more towards the top of the function,
   so we have less things to tear down upon failures.
 * Don't double-initialize qwtrb0 of the Setup Stage (no functional change.)
 * Rework Data Stage initialization considerably:
   - TD_SIZE refers to the number of remaining TRBs in this TD. As we only
     use 1 TRB for the Data Stage TD at present, this should be 0, not 1.
   - Actually copy data for outbound transfers. (This code does get hit,
     so I'm not sure how it wasn't a problem previously.)
 * Initialize the first quadbit of the Status Stage. (Potentially a
   functional change.)
 * Set the TRB_3_DIR bit on the Status Stage correctly as per the spec.
   (See inline comment.)

Device initialization seems to behave much more smoothly now; at least on
my hardware, the "error Parameter" doesn't happen anymore, and of course
anything depending on outbound Control transfers will now work correctly.
I now get much better speeds from usb_disk, but I still see usb_hid stalls
after this patch.
2019-02-22 13:32:26 -05:00
Jérôme Duval
14263044aa exfat: avoid overflow in Volume::ClusterToBlock(). 2019-02-22 18:38:52 +01:00
Augustin Cavalier
a54fc27a11 XHCI: Check the device object initialized successfully before adding it.
Fixes various NULL dereferences in other parts of the USB stack
when the XHCI controller is not behaving quite as expected.

Possibly related to #13403.
2019-02-22 01:23:08 -05:00
Augustin Cavalier
c7f186b23f XHCI: Make some errors more descriptive.
Also contains some minor coding style cleanup.
2019-02-22 00:39:36 -05:00
Augustin Cavalier
aa5cb68bc6 kernel/fs: NULL is a valid buffer to pass to ioctl().
Another bug exposed by hrev52905. Discovered because Expander was
not displaying archive contents anymore.
2019-02-21 22:12:32 -05:00
Augustin Cavalier
60497373d0 USB: Pack the usb_request_data struct.
We really should not be writing raw structs out to devices
for endianness' sake, but that's currently what *all* the
USB bus drivers do with this struct. So, add the _PACKED flag
to ensure it's always precisely 8 bytes.

Additionally, remove memory_chunk, as nothing uses it anymore.
2019-02-21 20:15:58 -05:00
Augustin Cavalier
03d1fd2b7e kernel/elf: Ignore PT_EH_FRAME for kernel add-ons.
We do the same thing in runtime_loader. Silences a lot
of warnings.
2019-02-21 17:06:09 -05:00
Augustin Cavalier
f564d526ab freebsd_network: Initialize some variables.
The cases where these were uninitialized are panics, but
continuable panics, so it makes sense to initialize them anyway.

Spotted by Clang.
2019-02-21 17:05:44 -05:00
Augustin Cavalier
10fbcafdf9 freebsd_iflib: Add a function declaration to nvlist.c.
Same reason as previous commit.
2019-02-21 17:05:06 -05:00
Augustin Cavalier
7b5d0b3510 freebsd_network: Reorder if_var.h slightly.
Some of the functions moved lower in this commit use functions
that were previously defined below them, which was a warning in
GCC but an error in Clang.
2019-02-21 17:04:49 -05:00
Augustin Cavalier
2fc0c84112 ArchitectureRules: Add -Wno-builtin-requires-header to Clang flags.
It warns when you try to use some standard library functions
without including the system headers, which we don't
care about as we are providing the system headers in the tree.
2019-02-21 14:04:05 -05:00
Augustin Cavalier
86dfe1d9a8 BAffineTransform: Remove "register" storage class.
Long since deprecated, and compilers can figure this out on
their own now. Fixes a lot of errors in Clang.
2019-02-21 14:03:05 -05:00
Augustin Cavalier
4dd5af2f75 build_cross_tools_gcc4: Handle $PATH having spaces in it properly.
Fixes the build of the cross tools under WSL.
2019-02-21 14:02:13 -05:00
Augustin Cavalier
5a7156f435 build_cross_tools_gcc4: Clear "missing" scripts instead of touching files.
This just stops the errors from occuring rather than trying to
rebuild the files at all. This is much cleaner, and solves
a few cases that the other method did not.
2019-02-21 14:01:40 -05:00
Barrett17
83a69e16c5 MediaExtractor and MediaWriter fix constness
* Fixes an ugly hack, where the codec was initialized in the
InitCheck and prevented the method to be const too.
2019-02-21 17:43:11 +01:00
Barrett17
2caa4ec708 codec_kit: Fix build 2019-02-21 17:36:55 +01:00
Barrett17
cb19342b80 dvd_streamer: API Update 2019-02-21 16:39:59 +01:00
Barrett17
486872713c http_streamer: API update 2019-02-21 16:39:58 +01:00
Barrett17
662583b300 MediaStreamer: Extend API to support DVD navigation
* This is a general review of the code and includes a rework
 of the sniffing API.
2019-02-21 16:39:58 +01:00
François Revol
d18fe1c54c loader: disable scaling on nvidia VESA BIOS
cf. https://patchwork.kernel.org/patch/7113461/

Change-Id: I3f564bd1037aeb4b539f495d57397446ae14e5ed
2019-02-21 05:28:56 +01:00
François Revol
38c4c8bfa9 kernel: fix mount arguments checks from userland
Since NULL is not considered a user address anymore, we must check for
it first.

This fixes the "mount: Bad address" error after hrev52905.

Change-Id: If60ea58bb81b6c35c6bf27ecfa9b29bd7a25d8aa
2019-02-21 03:14:23 +01:00
Augustin Cavalier
fe9e1e0c4f package_infos: Restore old compat version in x86_64.
The x86_64 buildmaster was only updated past the R1~beta1 version
a few weeks ago, so most packages still have a R1~alpha4_pm dependency.
Thus thus broke the build. Revert it for now so we don't do that.
2019-02-20 19:43:37 -05:00
Adrien Destugues
a6a6e3a842 Package kit: add likely-useful architectures
Required for bootstrapping them.

Change-Id: I179d8c73b08688946049bf18ff9151ef047e449b
Reviewed-on: https://review.haiku-os.org/c/1071
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-20 22:29:36 +00:00
Adrien Destugues
a54059b3f0 Update package_infos
- Bump year to 2019
- Adjust compat version, use alpha1 for x86 and generic packages, and
beta1 for other architectures since that's where they first appeared
(we will probably bump to beta2 for arm/sparc/ppc when we release
them for real?)

Change-Id: Ibb0968feb28731898776335eba01d34dcb758625
Reviewed-on: https://review.haiku-os.org/c/1069
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-02-20 22:29:36 +00:00
Augustin Cavalier
5fd8023312 XHCI: Disable Stop/SetTRD/Reset again.
They don't seem to particularly help, and there are reports
that this broke XHCI completely on some devices.

This reverts commit a21f7b525b.
2019-02-20 16:37:03 -05:00
Augustin Cavalier
01796e78f4 kernel/x86: Re-introduce the 1MB lower barrier.
It was removed in 2008 to make VM86 work, which is now gone.

Fixes #14911.
2019-02-20 15:37:06 -05:00
Augustin Cavalier
10aa58d7c3 kernel/vm: Make sure the base address is larger than fBase.
This is technically only a functional change following the previous
commit, which unconditionally made sure the address was larger than
the base except for B_EXACT_ADDRESS. Essentially this makes sure
that if an address is passed which is smaller than the base is
passed in, it won't immediately fail just by being too small.

Checked against BeOS (0x0 passed to create_area with B_BASE_ADDRESS
succeeds, and returns 0x2000 consistently.) This is also needed
to not break userland initialization following the next commit.
2019-02-20 15:33:32 -05:00