Commit Graph

5860 Commits

Author SHA1 Message Date
Daniil Lunev
1ca9c92919 emmc: add check "name" sysattr is not NULL
At this point it has to be present, but better have the check for
correctness sake.
Follow up of
64fa633e30

Change-Id: I51b5995e25dc4dc4ec63b90af271cd90650d184d
2021-07-12 23:16:51 -05:00
Daniil Lunev
64fa633e30 emmc: use sysattr insted of udev attr lookup for device name
/run/udev/data/b* location of eMMC devices appears to be inaccessible
early on in the boot process which makes fwupd to skip eMMC devices if
the daemon started too early. ID_NAME udev attribute is effectively
copied from the sysfs attribute [1], thus making use of it is more
reliable.

[1] 1ed38f4174/etc/udev/rules.d/60-persistent-storage.rules (42)

Change-Id: I66b92dfeb13ec61b4d8166dd32a2460b6fbf92c2
2021-07-12 20:16:01 -05:00
Richard Hughes
73b9f8bd53 Allow multiple devices to set WAIT_FOR_REPLUG
This also means we no longer pass in just one device to the
fu_device_list_wait_for_replug() function, but we rather wait for *all*
of the active devices.

This also cleans up the confusion on whether the engine should wait for
the 'root' device or the child device as either (or both) can be set as
required.

This makes the replug far more predictable for devices that have
children even in bootloader mode.
2021-07-12 19:02:19 +01:00
Richard Hughes
89064bf410 trivial: Downgrade a warning to avoid a lot of extra code 2021-07-12 19:01:55 +01:00
Richard Hughes
8eecefeb3b trivial: Allow the cache to build in arch CI 2021-07-12 19:01:55 +01:00
Richard Hughes
b2ee236060 trivial: Show a critical warning if a device has no context 2021-07-12 19:01:55 +01:00
Richard Hughes
d938ab62e6 trivial: Add fu_device_add_guid_full() to control behaviour 2021-07-12 19:01:55 +01:00
Richard Hughes
53538685fc trivial: Add FU_DEVICE_INSTANCE_FLAG_NO_QUIRKS to avoid quirk matches 2021-07-12 19:01:55 +01:00
Richard Hughes
9c31d1fadd trivial: Set the FuContext on more devices 2021-07-12 19:01:55 +01:00
Richard Hughes
4934690a30 trivial: Add some useful debugging when auto-removing devices 2021-07-12 19:01:55 +01:00
Crag Wang
e35678e07b trivial: override support for fwupd build by runtime environment variable 2021-07-12 12:57:37 +01:00
Richard Hughes
e4aeb99296 trivial: Fix oss-fuzz by installing missing deps 2021-07-12 10:33:38 +01:00
Richard Hughes
488f2e1f37 Export the EFI and IFD parsers
We'll need to use this from another plugin soon.
2021-07-12 10:33:38 +01:00
Richard Hughes
0cc06f032c Add a flag to open and close with the parent device
This is a common pattern that is used in lots of plugins, so move the
logic into common code.
2021-07-11 16:37:47 +01:00
Richard Hughes
df297d3ee2 superio: Always ensure the version string is NUL terminated
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
f1dbd42934 superio: Fix a buffer overread when using --verbose
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
772f116104 superio: Hide more debugging output by default 2021-07-10 13:51:28 +01:00
Richard Hughes
ef807240f7 realtek-mst: Show the write failure when using --verbose
Spotted by Coverity.
2021-07-10 13:51:28 +01:00
Richard Hughes
f01eb3808c pixart-rf: Read the payload status after getting the command response
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
a19e94eb5a pixart-rf: Hide more debug output behind --verbose 2021-07-10 13:51:28 +01:00
Richard Hughes
a84b76573a trivial: Set the remove delay on the child automatically 2021-07-10 07:37:59 +01:00
Richard Hughes
3b84bb2135 trivial: Set the backend ID on children if unset
This allows children of devices that derive from FuUdevDevice to be
removed correctly.
2021-07-10 07:37:59 +01:00
Richard Hughes
f89cb3850b Add a device flag to control child removal
At the moment the device list auto-removes children when the parent is
removed. This was originally working around the bug that the child
devices had no backend ID, and thus were not matched like the parent
in fu_engine_backend_device_removed_cb() and removed automatically.

Using the workaround means that the children are potentially removed
before the parent depending on the order of the device list -- which
might be modified by replug events.

I think the old cleanup is probably an anti-pattern, and going forward
composite devices should probably define _NO_AUTO_REMOVE_CHILDREN but
we don't want to change this behaviour for plugins already expecting
the old flow, or for devices with no parent backend IDs.
2021-07-09 19:46:41 +01:00
Richard Hughes
30ce27440e trivial: Fix s390x rpmbuild 2021-07-09 17:02:52 +01:00
Richard Hughes
a117b7da12 trivial: Correctly show negative device order numbers 2021-07-09 17:01:45 +01:00
Richard Hughes
65b3115b48 trivial: Move the builder docs to docdir
Fixes https://github.com/fwupd/fwupd/issues/3464
2021-07-09 16:40:36 +01:00
Richard Hughes
10cd248948 redfish: Restore compatibility with old libcurl versions
Making the redfish plugin disabled on RHEL 8 was... unpopular.
2021-07-09 16:30:30 +01:00
Richard Hughes
48c98a5564 trivial: Don't fail tests on old GLib versions
We were silently depending on 2.61.0 by accident.
2021-07-09 16:18:25 +01:00
Richard Hughes
f34c5d4eb6 trivial: Print the GUIDs in the order they were added
This fixes the self tests on old GLib versions as the order of the
GHashTableIter is not guaranteed to be stable.
2021-07-09 15:43:45 +01:00
Richard Hughes
5eabab90f4 trivial: Don't set a device ID if setting a physical ID
This isn't actually doing anything as setting a physical ID invalides
the manually-set ID.
2021-07-09 14:08:12 +01:00
Richard Hughes
d4bd5cca5a Standardize some of the device summary text
This is supposed to be 'Sentence case' with no trailing fullstop.
2021-07-09 07:07:07 +01:00
Richard Hughes
5343a4a083 Export the build timestamp from plugins 2021-07-08 16:31:07 +01:00
Richard Hughes
7e77eb3e41 trivial: Add the missing quirk key
This fixes a nag warning every time we rebuild the silo.
2021-07-08 16:31:07 +01:00
Richard Hughes
a923ae2804 redfish: Refactor plugin and add some unit tests 2021-07-08 15:35:02 +01:00
Richard Hughes
5458480356 Add a flag which inhibits children automatically
Fixes https://github.com/fwupd/fwupd/issues/3454
2021-07-07 12:50:27 +01:00
Richard Hughes
ef73701aa1 trivial: Provide FWUPD_PLUGIN_FLAG_AUTH_REQUIRED for future usage 2021-07-06 20:12:17 +01:00
Richard Hughes
4fb8c7ad51 trivial: Fix precommit issue
Weird.
2021-07-06 17:33:33 +01:00
Richard Hughes
5f42fcb0c4 redfish: Port FuRedfishClient to derive from FuBackend 2021-07-06 17:13:16 +01:00
Richard Hughes
ad825eac24 redfish: Allow discovery of Redfish BMCs specified by VID-PID or MAC
Also, allow overriding the data using the config file.
2021-07-06 17:13:16 +01:00
Richard Hughes
167046b4ce trivial: Fallback to text if the multiline description was invalid XML 2021-07-06 11:07:46 -05:00
Richard Hughes
121cffe7d8 trivial: Export fwupd_device_has_icon()
This is useful in self tests.
2021-07-06 16:47:50 +01:00
Richard Hughes
dfaae2e837 Move amdgpu safety check into the plugin
There are now multiple plugins using drm_dp_aux_dev interface which
may potentially be combined with an amdgpu. Prevent exercising this
interface with any plugin using DP aux unless a new enough kernel is
installed.
2021-07-04 17:49:36 +01:00
Ricky Wu
825cf474ef
plugins: rts54hub: update rts54hub.quirk (#3445)
rts54hub: update rts54hub.quirk 

add Acer Dock ID
2021-07-03 16:50:28 +01:00
Richard Hughes
974d63851d Allow calculating the CRC-16 with the CCITT polynomial 2021-07-03 13:49:50 +01:00
Yuan-Chen Cheng
c593ca6d4b trivial: vendor-directory typo 2021-07-03 10:17:31 +01:00
Richard Hughes
a5de6f0248 acpi-phat: Prevent a corrupt PHAT table from allocating ~4GB of memory
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35761
2021-07-02 21:28:39 +01:00
Richard Hughes
24eec8c533 Copy the device update state when replugging
At the moment we saving the new state as 'unknown' which explains why
we're getting so few LVFS reports uploaded for USB devices that perform
a replug...

Tested with a ColorHug2.
2021-07-02 21:28:22 +01:00
Richard Hughes
7b209bb2c1 Watch for children added or removed after setup has been completed
Some devices may 'discover' child devices during poll, rather than the
more usual case of adding them as children during setup.
2021-07-02 13:27:10 +01:00
Richard Hughes
7830ed5812 trivial: Fix accidental ABI break when adding ->ready()
If adding an entry into the class function table then the padding has
to be decremented unless the SO version is incremented.

Fixes out-of-tree plugins failing to load with:

   GLib-GObject: Specified class size for type 'FuXxxDevice' is smaller
   than the parent type's 'FuDevice' class size
2021-07-02 11:51:35 +01:00
William Wilson
238e8b8781 Compile with the flashrom plugin in Ubuntu now that flashrom is being included in main (https://bugs.launchpad.net/ubuntu/+source/flashrom/+bug/1912371) 2021-07-01 17:45:32 +01:00