[roll] Roll fuchsia [dwmac] Improve shutdown if Create fails

If the call to Create, which is called when the driver binds, would fail
at certain points it would cause a crash. The dispatchers that were
created would not be properly shut down and then their destructors would
trigger an assert.

This moves the creation of dispatchers after the creation of the
deferred cleanup used to clean up if an error happens. This way the
dispatchers don't exist and therefore can't be destructed until there
is a proper cleanup handler.

This also fixes another issue where the Create call held on to a unique
pointer for too long after DdkAdd. If Create failed between DdkAdd and
the release of the unique pointer the object would be destroyed at the
end of Create and DdkUnbind would then crash because the object was no
longer valid.

Test: Manual testing by inserting failures in Create
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1438300
Original-Revision: 0a876ea2d1d143f29c201412f7236e1db97beb67
GitOrigin-RevId: c36e460bd4a6c149886c8a3394539f4545324f8c
Change-Id: I9a879e6da706b27fbddd637c1803b1249bd17392
1 file changed
tree: 1d5d7df48aee0b2d8e990592b463143b403d3a6b
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.