Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Hi, On 2023/6/7 03:49, Bjorn Helgaas wrote: Match the subject line style: $ git log --oneline drivers/pci/vgaarb.c f321c35feaee PCI/VGA: Replace full MIT license text with SPDX identifier d5109fe4d1ec PCI/VGA: Use unsigned format string to print lock counts 4e6c91847a7f PCI/VGA: Log bridge control messages when adding devices dc593fd48abb PCI/VGA: Remove empty vga_arb_device_card_gone() ... Subject line should be a summary of the commit log, not just "various style fixes". This one needs to say something about vga_str_to_iostate(). Ok, thanks for the educating . On Mon, Jun 05, 2023 at 04:58:30AM +0800, Sui Jingfeng wrote: From: Sui Jingfeng To keep consistent with vga_iostate_to_str() function, the third argument of vga_str_to_iostate() function should be 'unsigned int *'. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 29 +++-- include/linux/vgaarb.h | 8 +++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 5a696078b382..e40e6e5e5f03 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -61,7 +61,6 @@ static bool vga_arbiter_used; static DEFINE_SPINLOCK(vga_lock); static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); - static const char *vga_iostate_to_str(unsigned int iostate) { /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int iostate) return "none"; } -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) +static int vga_str_to_iostate(char *buf, int str_size, unsigned int *io_state) { - /* we could in theory hand out locks on IO and mem -* separately to userspace but it can cause deadlocks */ + /* +* we could in theory hand out locks on IO and mem +* separately to userspace but it can cause deadlocks +*/ Omit all the comment formatting changes. They are distractions from the vga_str_to_iostate() parameter change. I think this patch should be the single line change to the vga_str_to_iostate() prototype so it matches the callers. If you want to do the other comment formatting changes, they're fine, but they should be all together in a separate patch that clearly doesn't change the generated code. Ok, no problem. Will be improved at next version. Bjorn
Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Match the subject line style: $ git log --oneline drivers/pci/vgaarb.c f321c35feaee PCI/VGA: Replace full MIT license text with SPDX identifier d5109fe4d1ec PCI/VGA: Use unsigned format string to print lock counts 4e6c91847a7f PCI/VGA: Log bridge control messages when adding devices dc593fd48abb PCI/VGA: Remove empty vga_arb_device_card_gone() ... Subject line should be a summary of the commit log, not just "various style fixes". This one needs to say something about vga_str_to_iostate(). On Mon, Jun 05, 2023 at 04:58:30AM +0800, Sui Jingfeng wrote: > From: Sui Jingfeng > > To keep consistent with vga_iostate_to_str() function, the third argument > of vga_str_to_iostate() function should be 'unsigned int *'. > > Signed-off-by: Sui Jingfeng > --- > drivers/pci/vgaarb.c | 29 +++-- > include/linux/vgaarb.h | 8 +++- > 2 files changed, 18 insertions(+), 19 deletions(-) > > diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c > index 5a696078b382..e40e6e5e5f03 100644 > --- a/drivers/pci/vgaarb.c > +++ b/drivers/pci/vgaarb.c > @@ -61,7 +61,6 @@ static bool vga_arbiter_used; > static DEFINE_SPINLOCK(vga_lock); > static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); > > - > static const char *vga_iostate_to_str(unsigned int iostate) > { > /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ > @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int > iostate) > return "none"; > } > > -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) > +static int vga_str_to_iostate(char *buf, int str_size, unsigned int > *io_state) > { > - /* we could in theory hand out locks on IO and mem > - * separately to userspace but it can cause deadlocks */ > + /* > + * we could in theory hand out locks on IO and mem > + * separately to userspace but it can cause deadlocks > + */ Omit all the comment formatting changes. They are distractions from the vga_str_to_iostate() parameter change. I think this patch should be the single line change to the vga_str_to_iostate() prototype so it matches the callers. If you want to do the other comment formatting changes, they're fine, but they should be all together in a separate patch that clearly doesn't change the generated code. Bjorn
Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Hi Sui, On Tue, Jun 06, 2023 at 06:27:05PM +0800, Sui Jingfeng wrote: > Hi, > > On 2023/6/6 10:06, Sui Jingfeng wrote: > > Originally, I also want to express the opinion. > > > Originally, I want to express the same opinion as you told me. > > Because vga_iostate_to_str() function is taking unsigned int parameter. > > so, I think, using 'unsigned int *' type as the third parameter > vga_str_to_iostate() function is more suitable. > > > But this patch is too trivial, so I smash them into one patch. it does not matter. Please keep patches separated. A trivial patch can be ignored, however lots of trivial patches in a bigger series might be appreciated. Have fun! Andi
Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Hi, On 2023/6/6 10:06, Sui Jingfeng wrote: Originally, I also want to express the opinion. Originally, I want to express the same opinion as you told me. Because vga_iostate_to_str() function is taking unsigned int parameter. so, I think, using 'unsigned int *' type as the third parameter vga_str_to_iostate() function is more suitable. But this patch is too trivial, so I smash them into one patch.
Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Hi, On 2023/6/6 06:16, Andi Shyti wrote: Hi Sui, On Mon, Jun 05, 2023 at 04:58:30AM +0800, Sui Jingfeng wrote: From: Sui Jingfeng To keep consistent with vga_iostate_to_str() function, the third argument of vga_str_to_iostate() function should be 'unsigned int *'. I think the real reason is not to keep consistent with vga_iostate_to_str() but because vga_str_to_iostate() is actually only taking "unsigned int *" parameters. Yes, right. my expression is not completely correct, I will update it at next version. I think, we have the same opinion. Originally, I also want to express the opinion. Because, it make no sense to interpret the return value (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM) as int type. IO state should be should be donate by a unsigned type. vga_iostate_to_str() also receive unsigned type. static const char *vga_iostate_to_str(unsigned int iostate) Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 29 +++-- include/linux/vgaarb.h | 8 +++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 5a696078b382..e40e6e5e5f03 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -61,7 +61,6 @@ static bool vga_arbiter_used; static DEFINE_SPINLOCK(vga_lock); static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); - drop this change OK, This is a double blank line. Originally, I intend to accumulate all tiny fix, commit together. As they are trivial. Now, Should I split this patch, then this patch set will contain two trivial patch ? static const char *vga_iostate_to_str(unsigned int iostate) { /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int iostate) return "none"; } -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) +static int vga_str_to_iostate(char *buf, int str_size, unsigned int *io_state) this is OK, it's actually what you are describing in the commit log, but... { - /* we could in theory hand out locks on IO and mem -* separately to userspace but it can cause deadlocks */ + /* +* we could in theory hand out locks on IO and mem +* separately to userspace but it can cause deadlocks +*/ ... all the rest needs to go on different patches as it doesn't have anything to do with what you describe. OK, I will wait a few days for more reviews, I process them together, also avoid version grow too fast. Thanks. Andi -- Jingfeng
Re: [Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
Hi Sui, On Mon, Jun 05, 2023 at 04:58:30AM +0800, Sui Jingfeng wrote: > From: Sui Jingfeng > > To keep consistent with vga_iostate_to_str() function, the third argument > of vga_str_to_iostate() function should be 'unsigned int *'. I think the real reason is not to keep consistent with vga_iostate_to_str() but because vga_str_to_iostate() is actually only taking "unsigned int *" parameters. > Signed-off-by: Sui Jingfeng > --- > drivers/pci/vgaarb.c | 29 +++-- > include/linux/vgaarb.h | 8 +++- > 2 files changed, 18 insertions(+), 19 deletions(-) > > diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c > index 5a696078b382..e40e6e5e5f03 100644 > --- a/drivers/pci/vgaarb.c > +++ b/drivers/pci/vgaarb.c > @@ -61,7 +61,6 @@ static bool vga_arbiter_used; > static DEFINE_SPINLOCK(vga_lock); > static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); > > - drop this change > static const char *vga_iostate_to_str(unsigned int iostate) > { > /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ > @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int > iostate) > return "none"; > } > > -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) > +static int vga_str_to_iostate(char *buf, int str_size, unsigned int > *io_state) this is OK, it's actually what you are describing in the commit log, but... > { > - /* we could in theory hand out locks on IO and mem > - * separately to userspace but it can cause deadlocks */ > + /* > + * we could in theory hand out locks on IO and mem > + * separately to userspace but it can cause deadlocks > + */ ... all the rest needs to go on different patches as it doesn't have anything to do with what you describe. Andi
[Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
From: Sui Jingfeng To keep consistent with vga_iostate_to_str() function, the third argument of vga_str_to_iostate() function should be 'unsigned int *'. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 29 +++-- include/linux/vgaarb.h | 8 +++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 5a696078b382..e40e6e5e5f03 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -61,7 +61,6 @@ static bool vga_arbiter_used; static DEFINE_SPINLOCK(vga_lock); static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); - static const char *vga_iostate_to_str(unsigned int iostate) { /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int iostate) return "none"; } -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) +static int vga_str_to_iostate(char *buf, int str_size, unsigned int *io_state) { - /* we could in theory hand out locks on IO and mem -* separately to userspace but it can cause deadlocks */ + /* +* we could in theory hand out locks on IO and mem +* separately to userspace but it can cause deadlocks +*/ if (strncmp(buf, "none", 4) == 0) { *io_state = VGA_RSRC_NONE; return 1; @@ -99,7 +100,7 @@ static int vga_str_to_iostate(char *buf, int str_size, int *io_state) return 1; } -/* this is only used a cookie - it should not be dereferenced */ +/* This is only used as cookie, it should not be dereferenced */ static struct pci_dev *vga_default; /* Find somebody in our list */ @@ -194,13 +195,15 @@ int vga_remove_vgacon(struct pci_dev *pdev) EXPORT_SYMBOL(vga_remove_vgacon); /* If we don't ever use VGA arb we should avoid - turning off anything anywhere due to old X servers getting - confused about the boot device not being VGA */ + * turning off anything anywhere due to old X servers getting + * confused about the boot device not being VGA + */ static void vga_check_first_use(void) { /* we should inform all GPUs in the system that * VGA arb has occurred and to try and disable resources -* if they can */ +* if they can +*/ if (!vga_arbiter_used) { vga_arbiter_used = true; vga_arbiter_notify_clients(); @@ -865,8 +868,7 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) } /* this is called with the lock */ -static inline void vga_update_device_decodes(struct vga_device *vgadev, -int new_decodes) +static void vga_update_device_decodes(struct vga_device *vgadev, int new_decodes) { struct device *dev = &vgadev->pdev->dev; int old_decodes, decodes_removed, decodes_unlocked; @@ -956,9 +958,9 @@ EXPORT_SYMBOL(vga_set_legacy_decoding); * @set_decode callback: If a client can disable its GPU VGA resource, it * will get a callback from this to set the encode/decode state. * - * Rationale: we cannot disable VGA decode resources unconditionally some single - * GPU laptops seem to require ACPI or BIOS access to the VGA registers to - * control things like backlights etc. Hopefully newer multi-GPU laptops do + * Rationale: we cannot disable VGA decode resources unconditionally, some + * single GPU laptops seem to require ACPI or BIOS access to the VGA registers + * to control things like backlights etc. Hopefully newer multi-GPU laptops do * something saner, and desktops won't have any special ACPI for this. The * driver will get a callback when VGA arbitration is first used by userspace * since some older X servers have issues. @@ -988,7 +990,6 @@ int vga_client_register(struct pci_dev *pdev, bail: spin_unlock_irqrestore(&vga_lock, flags); return ret; - } EXPORT_SYMBOL(vga_client_register); diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index b4b9137f9792..d36225c582ee 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -23,9 +23,7 @@ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS - * IN THE SOFTWARE. - * + * DEALINGS IN THE SOFTWARE. */ #ifndef LINUX_VGA_H @@ -96,7 +94,7 @@ static inline int vga_client_register(struct pci_dev *pdev, static inline int vga_get_interruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 1); + return vga_get(pdev, rsrc, 1); } /** @@ -111,7 +109,7 @@ static inline int vga_get_interruptible(struct pci_dev *pdev, static inline int vga_get_uninterruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 0); + ret
[Intel-gfx] [PATCH v2 1/2] vgaarb: various coding style and comments fix
To keep consistent with vga_iostate_to_str() function, the third argument of vga_str_to_iostate() function should be 'unsigned int *'. Signed-off-by: Sui Jingfeng --- drivers/pci/vgaarb.c | 29 +++-- include/linux/vgaarb.h | 8 +++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 5a696078b382..e40e6e5e5f03 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -61,7 +61,6 @@ static bool vga_arbiter_used; static DEFINE_SPINLOCK(vga_lock); static DECLARE_WAIT_QUEUE_HEAD(vga_wait_queue); - static const char *vga_iostate_to_str(unsigned int iostate) { /* Ignore VGA_RSRC_IO and VGA_RSRC_MEM */ @@ -77,10 +76,12 @@ static const char *vga_iostate_to_str(unsigned int iostate) return "none"; } -static int vga_str_to_iostate(char *buf, int str_size, int *io_state) +static int vga_str_to_iostate(char *buf, int str_size, unsigned int *io_state) { - /* we could in theory hand out locks on IO and mem -* separately to userspace but it can cause deadlocks */ + /* +* we could in theory hand out locks on IO and mem +* separately to userspace but it can cause deadlocks +*/ if (strncmp(buf, "none", 4) == 0) { *io_state = VGA_RSRC_NONE; return 1; @@ -99,7 +100,7 @@ static int vga_str_to_iostate(char *buf, int str_size, int *io_state) return 1; } -/* this is only used a cookie - it should not be dereferenced */ +/* This is only used as cookie, it should not be dereferenced */ static struct pci_dev *vga_default; /* Find somebody in our list */ @@ -194,13 +195,15 @@ int vga_remove_vgacon(struct pci_dev *pdev) EXPORT_SYMBOL(vga_remove_vgacon); /* If we don't ever use VGA arb we should avoid - turning off anything anywhere due to old X servers getting - confused about the boot device not being VGA */ + * turning off anything anywhere due to old X servers getting + * confused about the boot device not being VGA + */ static void vga_check_first_use(void) { /* we should inform all GPUs in the system that * VGA arb has occurred and to try and disable resources -* if they can */ +* if they can +*/ if (!vga_arbiter_used) { vga_arbiter_used = true; vga_arbiter_notify_clients(); @@ -865,8 +868,7 @@ static bool vga_arbiter_del_pci_device(struct pci_dev *pdev) } /* this is called with the lock */ -static inline void vga_update_device_decodes(struct vga_device *vgadev, -int new_decodes) +static void vga_update_device_decodes(struct vga_device *vgadev, int new_decodes) { struct device *dev = &vgadev->pdev->dev; int old_decodes, decodes_removed, decodes_unlocked; @@ -956,9 +958,9 @@ EXPORT_SYMBOL(vga_set_legacy_decoding); * @set_decode callback: If a client can disable its GPU VGA resource, it * will get a callback from this to set the encode/decode state. * - * Rationale: we cannot disable VGA decode resources unconditionally some single - * GPU laptops seem to require ACPI or BIOS access to the VGA registers to - * control things like backlights etc. Hopefully newer multi-GPU laptops do + * Rationale: we cannot disable VGA decode resources unconditionally, some + * single GPU laptops seem to require ACPI or BIOS access to the VGA registers + * to control things like backlights etc. Hopefully newer multi-GPU laptops do * something saner, and desktops won't have any special ACPI for this. The * driver will get a callback when VGA arbitration is first used by userspace * since some older X servers have issues. @@ -988,7 +990,6 @@ int vga_client_register(struct pci_dev *pdev, bail: spin_unlock_irqrestore(&vga_lock, flags); return ret; - } EXPORT_SYMBOL(vga_client_register); diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index b4b9137f9792..d36225c582ee 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h @@ -23,9 +23,7 @@ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS - * IN THE SOFTWARE. - * + * DEALINGS IN THE SOFTWARE. */ #ifndef LINUX_VGA_H @@ -96,7 +94,7 @@ static inline int vga_client_register(struct pci_dev *pdev, static inline int vga_get_interruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 1); + return vga_get(pdev, rsrc, 1); } /** @@ -111,7 +109,7 @@ static inline int vga_get_interruptible(struct pci_dev *pdev, static inline int vga_get_uninterruptible(struct pci_dev *pdev, unsigned int rsrc) { - return vga_get(pdev, rsrc, 0); + return vga_get(pdev, rsr