diff mbox series

[v2,net-next] ibmvnic: workaround QT Creator/libCPlusPlus segfault

Message ID 20210121220739.GA1486367@localhost.localdomain (mailing list archive)
State Rejected
Delegated to: Netdev Maintainers
Headers show
Series [v2,net-next] ibmvnic: workaround QT Creator/libCPlusPlus segfault | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 5 maintainers not CCed: benh@kernel.crashing.org mpe@ellerman.id.au paulus@samba.org linuxppc-dev@lists.ozlabs.org kuba@kernel.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 3 this patch: 3
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 15 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link
netdev/stable success Stable not CCed

Commit Message

Alexey Dobriyan Jan. 21, 2021, 10:07 p.m. UTC
My name is Alexey and I've tried to use IDE for kernel development.

QT Creator segfaults while parsing ibmvnic.c which is annoying as it
will start parsing after restart only to crash again.

The workaround is to either exclude ibmvnic.c from list of project files
or to apply dummy ifdef to hide the offending code.

https://bugzilla.redhat.com/show_bug.cgi?id=1886548

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

	fix modular case

 drivers/net/ethernet/ibm/ibmvnic.c |    3 +++
 1 file changed, 3 insertions(+)

Comments

Jakub Kicinski Jan. 22, 2021, 2:44 a.m. UTC | #1
On Fri, 22 Jan 2021 01:07:39 +0300 Alexey Dobriyan wrote:
> My name is Alexey and I've tried to use IDE for kernel development.
> 
> QT Creator segfaults while parsing ibmvnic.c which is annoying as it
> will start parsing after restart only to crash again.
> 
> The workaround is to either exclude ibmvnic.c from list of project files
> or to apply dummy ifdef to hide the offending code.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1886548
> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>

That's a bug in QT Creator and whatever parsing it does/uses.

Sorry we can't take this patch, there is no indication that the kernel
code is actually wrong here.
Alexey Dobriyan Jan. 22, 2021, 7:25 a.m. UTC | #2
On Thu, Jan 21, 2021 at 06:44:54PM -0800, Jakub Kicinski wrote:
> On Fri, 22 Jan 2021 01:07:39 +0300 Alexey Dobriyan wrote:
> > My name is Alexey and I've tried to use IDE for kernel development.
> > 
> > QT Creator segfaults while parsing ibmvnic.c which is annoying as it
> > will start parsing after restart only to crash again.
> > 
> > The workaround is to either exclude ibmvnic.c from list of project files
> > or to apply dummy ifdef to hide the offending code.
> > 
> > https://bugzilla.redhat.com/show_bug.cgi?id=1886548
> > 
> > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> 
> That's a bug in QT Creator and whatever parsing it does/uses.
> 
> Sorry we can't take this patch, there is no indication that the kernel
> code is actually wrong here.

It is QtC bug. It will take ages for distros to pick up the fix
(which doesn't even exist probably).
diff mbox series

Patch

--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -5080,6 +5080,8 @@  static void ibmvnic_tasklet(struct tasklet_struct *t)
 	unsigned long flags;
 	bool done = false;
 
+	/* workaround QT Creator/libCPlusPlus.so segfault with dummy if */
+#if IS_ENABLED(CONFIG_IBMVNIC)
 	spin_lock_irqsave(&queue->lock, flags);
 	while (!done) {
 		/* Pull all the valid messages off the CRQ */
@@ -5100,6 +5102,7 @@  static void ibmvnic_tasklet(struct tasklet_struct *t)
 	if (atomic_read(&adapter->running_cap_crqs) != 0)
 		adapter->wait_capability = true;
 	spin_unlock_irqrestore(&queue->lock, flags);
+#endif
 }
 
 static int ibmvnic_reenable_crq_queue(struct ibmvnic_adapter *adapter)