{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":38370535,"defaultBranch":"master","name":"linux","ownerLogin":"brgl","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-07-01T12:41:35.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3023613?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1707733696.0","currentOid":""},"activityList":{"items":[{"before":"52f4fa98e69c5c539b3b7f5adb23be4a374afb60","after":"6ab4c542d6621a0e33b702dc893ea9d63e2e0bba","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-05-14T08:45:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"4de8440992cddbd0134a21d6b26593756bd3842c","after":"52f4fa98e69c5c539b3b7f5adb23be4a374afb60","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-05-11T08:06:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"26f837166fb8f162a6fe7fe3b76ae3b7af7b47fa","after":"4de8440992cddbd0134a21d6b26593756bd3842c","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-04-26T17:19:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"105a2f5c36106da98cd6c724e6a0e7e1e9830766","after":"26f837166fb8f162a6fe7fe3b76ae3b7af7b47fa","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-04-05T16:00:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"0737d488b495d4e3416203daf67ce86f044790c5","after":"105a2f5c36106da98cd6c724e6a0e7e1e9830766","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-04-05T13:06:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"7b2cade72bed84dd2ddb6992121c84cd218296cb","after":"0737d488b495d4e3416203daf67ce86f044790c5","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-04-05T13:03:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem used to have a serious problem with undefined behavior\nand use-after-free bugs on hot-unplug of GPIO chips. This can be\nconsidered a corner-case by some as most GPIO controllers are enabled\nearly in the boot process and live until the system goes down but most\nGPIO drivers do allow unbind over sysfs, many are loadable modules that\ncan be (force) unloaded and there are also GPIO devices that can be\ndynamically detached, for instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim) or described on the device-tree.\n\nThis driver is aimed as a helper in spotting any regressions in\nhot-unplug handling in GPIOLIB.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"acf70bf0f8835ae072307196dd1574952c5f8882","after":"7b2cade72bed84dd2ddb6992121c84cd218296cb","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-03-20T10:00:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"9af955736b00c92a6f79b4d367d2ecec4ecbfac5","after":"acf70bf0f8835ae072307196dd1574952c5f8882","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-03-20T09:34:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"7b7d04f93c035baf09c49313402ec63ba2f20740","after":"9af955736b00c92a6f79b4d367d2ecec4ecbfac5","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-03-05T17:42:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"dcf65bada836f793ca33d7b358f8f62a15136f25","after":"7b7d04f93c035baf09c49313402ec63ba2f20740","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-27T21:11:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"f3b2857e4ba85531aed65b75362d2a34819c5276","after":"dcf65bada836f793ca33d7b358f8f62a15136f25","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-26T16:18:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"e08f4227aa0ff42ed5a13199e3a543d6931cb848","after":"f3b2857e4ba85531aed65b75362d2a34819c5276","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-26T10:21:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"5a130e5e052735c6a809a1aadbf8197a10d91ef8","after":"e08f4227aa0ff42ed5a13199e3a543d6931cb848","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-22T15:50:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"aa541c903a8835ab521da2dba577e42c90f8c949","after":"5a130e5e052735c6a809a1aadbf8197a10d91ef8","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-21T18:49:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"b50df934d27781e30c7c12c7178b8908a2a9346d","after":"aa541c903a8835ab521da2dba577e42c90f8c949","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-21T16:35:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"gpio: virtuser: new virtual driver\n\nThe GPIO subsystem has a serious problem with undefined behavior and\nuse-after-free bugs on hot-unplug of GPIO chips. This can be considered a\ncorner-case by some as most GPIO controllers are enabled early in the\nboot process and live until the system goes down but most GPIO drivers\ndo allow unbind over sysfs, many are loadable modules that can be (force)\nunloaded and there are also GPIO devices that can be dynamically detached,\nfor instance CP2112 which is a USB GPIO expender.\n\nBugs can be triggered both from user-space as well as by in-kernel users.\nWe have the means of testing it from user-space via the character device\nbut the issues manifest themselves differently in the kernel.\n\nThis is a proposition of adding a new virtual driver - a configurable\nGPIO consumer that can be configured over configfs (similarly to\ngpio-sim).\n\nThe configfs interface allows users to create dynamic GPIO lookup tables\nthat are registered with the GPIO subsystem. Every config group\nrepresents a consumer device. Every sub-group represents a single GPIO\nlookup. The device can work in three modes: just keeping the line\nactive, toggling it every second or requesting its interrupt and\nreporting edges. Every lookup allows to specify the key, offset and\nflags as per the lookup struct defined in linux/gpio/machine.h.\n\nThe module together with gpio-sim allows to easily trigger kernel\nhot-unplug errors. A simple use-case is to create a simulated chip,\nsetup the consumer to lookup one of its lines in 'monitor' mode, unbind\nthe simulator, unbind the consumer and observe the fireworks in dmesg.\n\nThis driver is aimed as a helper in tackling the hot-unplug problem in\nGPIO as well as basis for future regression testing once the fixes are\nupstream.\n\nSigned-off-by: Bartosz Golaszewski ","shortMessageHtmlLink":"gpio: virtuser: new virtual driver"}},{"before":"1b7daea19d37f646916f21bb162bcbec6b5f8408","after":"b50df934d27781e30c7c12c7178b8908a2a9346d","ref":"refs/heads/topic/gpio-virtual-consumer","pushedAt":"2024-02-16T20:25:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"},"commit":{"message":"fixup","shortMessageHtmlLink":"fixup"}},{"before":"7fefab2f60ca341e770981e380297e5da6f6d638","after":null,"ref":"refs/heads/topic/spidev-sem-v2","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"2a740928077761b61a61f7c77cb817fb374dbcf2","after":null,"ref":"refs/heads/topic/set-active-low","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"dd20f5048c919a21930c080bca7ea92b5eabb1f7","after":null,"ref":"refs/heads/topic/rx8010-regmap-v3","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"2b12ae8843c30e93750d23de873609b47f83c847","after":null,"ref":"refs/heads/topic/rx8010-regmap-v2","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"91e135b108f274ba36b022e61a6a2138ca6c301e","after":null,"ref":"refs/heads/topic/rx8010-regmap","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"6db19547612967ad3889de19469375de50a3e5d4","after":null,"ref":"refs/heads/topic/rtc-remove-old-API","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"3cd31fd9b3b609eb4e3150f705ac78b7367fab79","after":null,"ref":"refs/heads/topic/rtc-i2c-dummy-v3","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"1814fef59435ef340c1ae662df1790984c901df9","after":null,"ref":"refs/heads/topic/rtc-devres-rework","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"8e1c67d564251691ea0f5af446a6bc2f82979e70","after":null,"ref":"refs/heads/topic/regmap-inlines","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"fc4f080e87cc47791fa522a48bf160af3b5645ea","after":null,"ref":"refs/heads/topic/pinctrl-numberspace","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"09bd215e98a21b8fd74a6b46079f014ee18a332b","after":null,"ref":"refs/heads/topic/ngpio-devprop-v3","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"02721e7e2dde0d174456a8ed38340ce6354b1449","after":null,"ref":"refs/heads/topic/new-gpio-mockup","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"d76215d98e74b947727b57d91d4fe01137b93fab","after":null,"ref":"refs/heads/topic/mdiobus-devres","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}},{"before":"fdedff8cc9a87d095da9a02d21b89e3ee6b53689","after":null,"ref":"refs/heads/topic/irq_sim_rework-v5","pushedAt":"2024-02-12T10:28:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"brgl","name":"Bartosz Gołaszewski","path":"/brgl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3023613?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEST1F6gA","startCursor":null,"endCursor":null}},"title":"Activity · brgl/linux"}