# USB stack improvements GSoC - Week 8

DevFeed: [USB stack improvements GSoC - Week 8](<https://devfeed.tech/articles/usb-stack-improvements-gsoc-week-8-33047.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/usb-stack-improvements-gsoc-week-8/>)

Published: 2016-07-18T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [USB](<https://devfeed.tech/topics/usb.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [controllers](<https://devfeed.tech/tags/controllers.md>), [free](<https://devfeed.tech/tags/free.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [handling](<https://devfeed.tech/tags/handling.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [mutex](<https://devfeed.tech/tags/mutex.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [safety](<https://devfeed.tech/tags/safety.md>), [state](<https://devfeed.tech/tags/state.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [usb](<https://devfeed.tech/tags/usb.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

## AI overview

A week-eight GSoC progress report describes USB stack work in usbhub, including stability fixes, handling of removal and surprise-removal IRPs, synchronization of the FDO child list with a guarded mutex, and PnP state tracking.

## Source excerpt

I have spent this week on improvements of realization and done stability fixes in usbhub PDO/FDO. I have prepared usbhub FDO's handling of removal and surprise-removal IRPs. We'll receive surprise-removal IRP on HUB unexpected removal, or on USB controller removal from PCI port. Here hub should "let know" all its children that their parent is removed and on next removal they also can be removed. For now this code path can't be tested because none of our host controllers can be removed now(they are failing query remove).