Skip to content

Conversation

AlonsoIbarra
Copy link

Hi friend, I delete a duplicate word.

@Antidote
Copy link

That's intentional.

@nistath
Copy link

nistath commented Oct 16, 2016

It's not duplicate. long long is a type.

@battlesnake
Copy link

haha I see another reason why Linus might not take PRs from Github!

@Hugne
Copy link
Contributor

Hugne commented Oct 19, 2016

https://www.youtube.com/watch?v=uc2UEfWjvo8

@jesusjimsa
Copy link

It's a data type...

@NogradThGin
Copy link

Dude your request if funny, but as said before "long long" is a data type.
And asking for changing a documentation for just one or two words is useless.

You can change some little details in documentation alongside interesting change in source code.

@xavier-fernandez
Copy link

It would be better to mark the long long keyword, so its more clear that the duplication its intentional and its actually a source code mention.

A good PR would be marking all the README.md data types and keywords...

@xavier-fernandez
Copy link

@battlesnake If you humiliate somebody just starting to contribute, that person will not probably contribute again, you should teach them how to contribute, not humiliate them, open-source community should not tolerate this type of comments.

@jnavila
Copy link

jnavila commented Nov 14, 2016

The Linux kernel is a complex project, and you can not simply throw Github PRs at it.

Please read:

@battlesnake
Copy link

@xavier-fernandez : meh, https://lkml.org/lkml/2012/7/6/495

@battlesnake
Copy link

I was remarking on how you interpreted my remark on the (observably low) quality of issues/PRs on Github as me "humiliating" someone - when there is actual abusive/humiliating stuff in the kernel mailing list.

As for "teach them how to contribute" - there are much better resources available for learning to program in C than could be fit into Github comments.

"open-source community should not tolerate this type of comments" - because your opinion of how people should behave is gospel? I'd point you to http://marc.info/?l=linux-kernel&m=137392506516022&w=2

Quit playing SJW or I may have to actually start humiliating...

@Antidote
Copy link

@xavier-fernandez no, why should linux developers dirty up the readme with frivolous nonsense that most programmers would already know? And nobody on this PR has insulted anybody, you'd have to be pretty obtuse to think so.

@DTFUHF
Copy link

DTFUHF commented Nov 27, 2016

For this change to be better / more correct, shouldn't both 'longs' be removed?

@udemiko
Copy link

udemiko commented Nov 27, 2016

GitHub has nothing to do with this - people can still do big damage via email

@markand
Copy link

markand commented Nov 28, 2016

Best pull request I've ever seen in my life.

@janvdl
Copy link

janvdl commented Nov 28, 2016

@xavier-fernandez This is not a "safe space". This PR is absolutely laughable and idiotic.

@senseab
Copy link

senseab commented Nov 28, 2016

Hey guy,

Don't you know what are you doing?

@jithatsonei
Copy link

those github community guidelines make it hard for me to not ridicule this guy but holy mother of god

@mimiatmam
Copy link

mimiatmam commented Nov 28, 2016 via email

@subzeta
Copy link

subzeta commented Nov 28, 2016

So long long Marianne. Best PR I've ever seen.

@jithatsonei
Copy link

RIP

@cristianfrasineanu
Copy link

Was eager to see Linus' reaction to this...

@jithatsonei
Copy link

one can hope still yet

@battlesnake
Copy link

Indeed

@camnpr
Copy link

camnpr commented Nov 29, 2016

Who are from the beginning of the rookie

@GinRyan
Copy link

GinRyan commented Nov 29, 2016

I have a variable named long long ago, would you still remove the duplicatie word?

@mayli
Copy link

mayli commented Nov 29, 2016

Is this a joke?

@gyb997
Copy link

gyb997 commented Nov 29, 2016

haha what a funny joke

@LasseRafn
Copy link

I'd have done the same :) Honestly

@jeanerick
Copy link

@gocreating
Copy link

卡位朝聖

laijs pushed a commit to laijs/linux that referenced this pull request Feb 23, 2017
@ghost
Copy link

ghost commented Dec 30, 2017

He's a genius. How did we not see this?

@srikanth-vm
Copy link

lol.

@ghost
Copy link

ghost commented Apr 28, 2018

e

alaahl pushed a commit to alaahl/linux that referenced this pull request May 30, 2018
This patch fixes the following splat.

[118709.054937] BUG: using smp_processor_id() in preemptible [00000000] code: test/1571
[118709.054970] caller is nft_update_chain_stats.isra.4+0x53/0x97 [nf_tables]
[118709.054980] CPU: 2 PID: 1571 Comm: test Not tainted 4.17.0-rc6+ torvalds#335
[...]
[118709.054992] Call Trace:
[118709.055011]  dump_stack+0x5f/0x86
[118709.055026]  check_preemption_disabled+0xd4/0xe4

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
frank-w referenced this pull request in frank-w/BPI-Router-Linux Jul 8, 2018
commit ad9d9e8 upstream.

This patch fixes the following splat.

[118709.054937] BUG: using smp_processor_id() in preemptible [00000000] code: test/1571
[118709.054970] caller is nft_update_chain_stats.isra.4+0x53/0x97 [nf_tables]
[118709.054980] CPU: 2 PID: 1571 Comm: test Not tainted 4.17.0-rc6+ #335
[...]
[118709.054992] Call Trace:
[118709.055011]  dump_stack+0x5f/0x86
[118709.055026]  check_preemption_disabled+0xd4/0xe4

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@prathik
Copy link

prathik commented Nov 18, 2018

haha I see another reason why Linus might not take PRs from Github!

You are right but it is better to be constructive. It is easy to say you suck and run away. This is rarely useful and only contributes to boost your ego.

It is better to clearly articulate what is wrong and then give the other person pointers on how they can improve.

The confusion happened because the committer is new to programming and for those who are new I see how it can look like a mistake. The keywords need to me marked with back ticks so that it is clear it is intentional.

Another thing that can be done is to quickly close the PR and ask them to do proper homework before raising a PR. But I understand you don't have the power to do the latter.

Also, don't rely on Linus as a role model of how to behave, he is only able to contribute because he is a good coder, however he is not a good coder because he is an asshole.

@gordio
Copy link

gordio commented Jan 24, 2020

@prathik my asm code mine bitcoin coins; mv coins my_wallet; don't work. Can you, please, write "article comment" to describe how asm work and how I can use it? Thank you.

@Veetaha
Copy link

Veetaha commented Jan 24, 2020

Bruh

@plazmonii
Copy link

есе

@dincho
Copy link

dincho commented Jan 27, 2020

I’m just passing by ... with my B1lla bag 🛒 🚶

@oozoofrog
Copy link

oozoofrog commented Feb 5, 2020

I think it should be changed to 'so long'
https://www.youtube.com/watch?v=lIueevl71cA

@strasharo
Copy link

https://www.youtube.com/watch?v=7t9JUns-Ql0

@yonifra
Copy link

yonifra commented Feb 9, 2020

Approved ✅

intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Aug 21, 2023
Enable CPU v4 instruction tests for arm64. Below are the test results from
BPF test_progs selftests:

  # ./test_progs -t ldsx_insn,verifier_sdiv,verifier_movsx,verifier_ldsx,verifier_gotol,verifier_bswap
  torvalds#115/1   ldsx_insn/map_val and probed_memory:OK
  torvalds#115/2   ldsx_insn/ctx_member_sign_ext:OK
  torvalds#115/3   ldsx_insn/ctx_member_narrow_sign_ext:OK
  torvalds#115     ldsx_insn:OK
  torvalds#302/1   verifier_bswap/BSWAP, 16:OK
  torvalds#302/2   verifier_bswap/BSWAP, 16 @unpriv:OK
  torvalds#302/3   verifier_bswap/BSWAP, 32:OK
  torvalds#302/4   verifier_bswap/BSWAP, 32 @unpriv:OK
  torvalds#302/5   verifier_bswap/BSWAP, 64:OK
  torvalds#302/6   verifier_bswap/BSWAP, 64 @unpriv:OK
  torvalds#302     verifier_bswap:OK
  torvalds#316/1   verifier_gotol/gotol, small_imm:OK
  torvalds#316/2   verifier_gotol/gotol, small_imm @unpriv:OK
  torvalds#316     verifier_gotol:OK
  torvalds#324/1   verifier_ldsx/LDSX, S8:OK
  torvalds#324/2   verifier_ldsx/LDSX, S8 @unpriv:OK
  torvalds#324/3   verifier_ldsx/LDSX, S16:OK
  torvalds#324/4   verifier_ldsx/LDSX, S16 @unpriv:OK
  torvalds#324/5   verifier_ldsx/LDSX, S32:OK
  torvalds#324/6   verifier_ldsx/LDSX, S32 @unpriv:OK
  torvalds#324/7   verifier_ldsx/LDSX, S8 range checking, privileged:OK
  torvalds#324/8   verifier_ldsx/LDSX, S16 range checking:OK
  torvalds#324/9   verifier_ldsx/LDSX, S16 range checking @unpriv:OK
  torvalds#324/10  verifier_ldsx/LDSX, S32 range checking:OK
  torvalds#324/11  verifier_ldsx/LDSX, S32 range checking @unpriv:OK
  torvalds#324     verifier_ldsx:OK
  torvalds#335/1   verifier_movsx/MOV32SX, S8:OK
  torvalds#335/2   verifier_movsx/MOV32SX, S8 @unpriv:OK
  torvalds#335/3   verifier_movsx/MOV32SX, S16:OK
  torvalds#335/4   verifier_movsx/MOV32SX, S16 @unpriv:OK
  torvalds#335/5   verifier_movsx/MOV64SX, S8:OK
  torvalds#335/6   verifier_movsx/MOV64SX, S8 @unpriv:OK
  torvalds#335/7   verifier_movsx/MOV64SX, S16:OK
  torvalds#335/8   verifier_movsx/MOV64SX, S16 @unpriv:OK
  torvalds#335/9   verifier_movsx/MOV64SX, S32:OK
  torvalds#335/10  verifier_movsx/MOV64SX, S32 @unpriv:OK
  torvalds#335/11  verifier_movsx/MOV32SX, S8, range_check:OK
  torvalds#335/12  verifier_movsx/MOV32SX, S8, range_check @unpriv:OK
  torvalds#335/13  verifier_movsx/MOV32SX, S16, range_check:OK
  torvalds#335/14  verifier_movsx/MOV32SX, S16, range_check @unpriv:OK
  torvalds#335/15  verifier_movsx/MOV32SX, S16, range_check 2:OK
  torvalds#335/16  verifier_movsx/MOV32SX, S16, range_check 2 @unpriv:OK
  torvalds#335/17  verifier_movsx/MOV64SX, S8, range_check:OK
  torvalds#335/18  verifier_movsx/MOV64SX, S8, range_check @unpriv:OK
  torvalds#335/19  verifier_movsx/MOV64SX, S16, range_check:OK
  torvalds#335/20  verifier_movsx/MOV64SX, S16, range_check @unpriv:OK
  torvalds#335/21  verifier_movsx/MOV64SX, S32, range_check:OK
  torvalds#335/22  verifier_movsx/MOV64SX, S32, range_check @unpriv:OK
  torvalds#335/23  verifier_movsx/MOV64SX, S16, R10 Sign Extension:OK
  torvalds#335/24  verifier_movsx/MOV64SX, S16, R10 Sign Extension @unpriv:OK
  torvalds#335     verifier_movsx:OK
  torvalds#347/1   verifier_sdiv/SDIV32, non-zero imm divisor, check 1:OK
  torvalds#347/2   verifier_sdiv/SDIV32, non-zero imm divisor, check 1 @unpriv:OK
  torvalds#347/3   verifier_sdiv/SDIV32, non-zero imm divisor, check 2:OK
  torvalds#347/4   verifier_sdiv/SDIV32, non-zero imm divisor, check 2 @unpriv:OK
  torvalds#347/5   verifier_sdiv/SDIV32, non-zero imm divisor, check 3:OK
  torvalds#347/6   verifier_sdiv/SDIV32, non-zero imm divisor, check 3 @unpriv:OK
  torvalds#347/7   verifier_sdiv/SDIV32, non-zero imm divisor, check 4:OK
  torvalds#347/8   verifier_sdiv/SDIV32, non-zero imm divisor, check 4 @unpriv:OK
  torvalds#347/9   verifier_sdiv/SDIV32, non-zero imm divisor, check 5:OK
  torvalds#347/10  verifier_sdiv/SDIV32, non-zero imm divisor, check 5 @unpriv:OK
  torvalds#347/11  verifier_sdiv/SDIV32, non-zero imm divisor, check 6:OK
  torvalds#347/12  verifier_sdiv/SDIV32, non-zero imm divisor, check 6 @unpriv:OK
  torvalds#347/13  verifier_sdiv/SDIV32, non-zero imm divisor, check 7:OK
  torvalds#347/14  verifier_sdiv/SDIV32, non-zero imm divisor, check 7 @unpriv:OK
  torvalds#347/15  verifier_sdiv/SDIV32, non-zero imm divisor, check 8:OK
  torvalds#347/16  verifier_sdiv/SDIV32, non-zero imm divisor, check 8 @unpriv:OK
  torvalds#347/17  verifier_sdiv/SDIV32, non-zero reg divisor, check 1:OK
  torvalds#347/18  verifier_sdiv/SDIV32, non-zero reg divisor, check 1 @unpriv:OK
  torvalds#347/19  verifier_sdiv/SDIV32, non-zero reg divisor, check 2:OK
  torvalds#347/20  verifier_sdiv/SDIV32, non-zero reg divisor, check 2 @unpriv:OK
  torvalds#347/21  verifier_sdiv/SDIV32, non-zero reg divisor, check 3:OK
  torvalds#347/22  verifier_sdiv/SDIV32, non-zero reg divisor, check 3 @unpriv:OK
  torvalds#347/23  verifier_sdiv/SDIV32, non-zero reg divisor, check 4:OK
  torvalds#347/24  verifier_sdiv/SDIV32, non-zero reg divisor, check 4 @unpriv:OK
  torvalds#347/25  verifier_sdiv/SDIV32, non-zero reg divisor, check 5:OK
  torvalds#347/26  verifier_sdiv/SDIV32, non-zero reg divisor, check 5 @unpriv:OK
  torvalds#347/27  verifier_sdiv/SDIV32, non-zero reg divisor, check 6:OK
  torvalds#347/28  verifier_sdiv/SDIV32, non-zero reg divisor, check 6 @unpriv:OK
  torvalds#347/29  verifier_sdiv/SDIV32, non-zero reg divisor, check 7:OK
  torvalds#347/30  verifier_sdiv/SDIV32, non-zero reg divisor, check 7 @unpriv:OK
  torvalds#347/31  verifier_sdiv/SDIV32, non-zero reg divisor, check 8:OK
  torvalds#347/32  verifier_sdiv/SDIV32, non-zero reg divisor, check 8 @unpriv:OK
  torvalds#347/33  verifier_sdiv/SDIV64, non-zero imm divisor, check 1:OK
  torvalds#347/34  verifier_sdiv/SDIV64, non-zero imm divisor, check 1 @unpriv:OK
  torvalds#347/35  verifier_sdiv/SDIV64, non-zero imm divisor, check 2:OK
  torvalds#347/36  verifier_sdiv/SDIV64, non-zero imm divisor, check 2 @unpriv:OK
  torvalds#347/37  verifier_sdiv/SDIV64, non-zero imm divisor, check 3:OK
  torvalds#347/38  verifier_sdiv/SDIV64, non-zero imm divisor, check 3 @unpriv:OK
  torvalds#347/39  verifier_sdiv/SDIV64, non-zero imm divisor, check 4:OK
  torvalds#347/40  verifier_sdiv/SDIV64, non-zero imm divisor, check 4 @unpriv:OK
  torvalds#347/41  verifier_sdiv/SDIV64, non-zero imm divisor, check 5:OK
  torvalds#347/42  verifier_sdiv/SDIV64, non-zero imm divisor, check 5 @unpriv:OK
  torvalds#347/43  verifier_sdiv/SDIV64, non-zero imm divisor, check 6:OK
  torvalds#347/44  verifier_sdiv/SDIV64, non-zero imm divisor, check 6 @unpriv:OK
  torvalds#347/45  verifier_sdiv/SDIV64, non-zero reg divisor, check 1:OK
  torvalds#347/46  verifier_sdiv/SDIV64, non-zero reg divisor, check 1 @unpriv:OK
  torvalds#347/47  verifier_sdiv/SDIV64, non-zero reg divisor, check 2:OK
  torvalds#347/48  verifier_sdiv/SDIV64, non-zero reg divisor, check 2 @unpriv:OK
  torvalds#347/49  verifier_sdiv/SDIV64, non-zero reg divisor, check 3:OK
  torvalds#347/50  verifier_sdiv/SDIV64, non-zero reg divisor, check 3 @unpriv:OK
  torvalds#347/51  verifier_sdiv/SDIV64, non-zero reg divisor, check 4:OK
  torvalds#347/52  verifier_sdiv/SDIV64, non-zero reg divisor, check 4 @unpriv:OK
  torvalds#347/53  verifier_sdiv/SDIV64, non-zero reg divisor, check 5:OK
  torvalds#347/54  verifier_sdiv/SDIV64, non-zero reg divisor, check 5 @unpriv:OK
  torvalds#347/55  verifier_sdiv/SDIV64, non-zero reg divisor, check 6:OK
  torvalds#347/56  verifier_sdiv/SDIV64, non-zero reg divisor, check 6 @unpriv:OK
  torvalds#347/57  verifier_sdiv/SMOD32, non-zero imm divisor, check 1:OK
  torvalds#347/58  verifier_sdiv/SMOD32, non-zero imm divisor, check 1 @unpriv:OK
  torvalds#347/59  verifier_sdiv/SMOD32, non-zero imm divisor, check 2:OK
  torvalds#347/60  verifier_sdiv/SMOD32, non-zero imm divisor, check 2 @unpriv:OK
  torvalds#347/61  verifier_sdiv/SMOD32, non-zero imm divisor, check 3:OK
  torvalds#347/62  verifier_sdiv/SMOD32, non-zero imm divisor, check 3 @unpriv:OK
  torvalds#347/63  verifier_sdiv/SMOD32, non-zero imm divisor, check 4:OK
  torvalds#347/64  verifier_sdiv/SMOD32, non-zero imm divisor, check 4 @unpriv:OK
  torvalds#347/65  verifier_sdiv/SMOD32, non-zero imm divisor, check 5:OK
  torvalds#347/66  verifier_sdiv/SMOD32, non-zero imm divisor, check 5 @unpriv:OK
  torvalds#347/67  verifier_sdiv/SMOD32, non-zero imm divisor, check 6:OK
  torvalds#347/68  verifier_sdiv/SMOD32, non-zero imm divisor, check 6 @unpriv:OK
  torvalds#347/69  verifier_sdiv/SMOD32, non-zero reg divisor, check 1:OK
  torvalds#347/70  verifier_sdiv/SMOD32, non-zero reg divisor, check 1 @unpriv:OK
  torvalds#347/71  verifier_sdiv/SMOD32, non-zero reg divisor, check 2:OK
  torvalds#347/72  verifier_sdiv/SMOD32, non-zero reg divisor, check 2 @unpriv:OK
  torvalds#347/73  verifier_sdiv/SMOD32, non-zero reg divisor, check 3:OK
  torvalds#347/74  verifier_sdiv/SMOD32, non-zero reg divisor, check 3 @unpriv:OK
  torvalds#347/75  verifier_sdiv/SMOD32, non-zero reg divisor, check 4:OK
  torvalds#347/76  verifier_sdiv/SMOD32, non-zero reg divisor, check 4 @unpriv:OK
  torvalds#347/77  verifier_sdiv/SMOD32, non-zero reg divisor, check 5:OK
  torvalds#347/78  verifier_sdiv/SMOD32, non-zero reg divisor, check 5 @unpriv:OK
  torvalds#347/79  verifier_sdiv/SMOD32, non-zero reg divisor, check 6:OK
  torvalds#347/80  verifier_sdiv/SMOD32, non-zero reg divisor, check 6 @unpriv:OK
  torvalds#347/81  verifier_sdiv/SMOD64, non-zero imm divisor, check 1:OK
  torvalds#347/82  verifier_sdiv/SMOD64, non-zero imm divisor, check 1 @unpriv:OK
  torvalds#347/83  verifier_sdiv/SMOD64, non-zero imm divisor, check 2:OK
  torvalds#347/84  verifier_sdiv/SMOD64, non-zero imm divisor, check 2 @unpriv:OK
  torvalds#347/85  verifier_sdiv/SMOD64, non-zero imm divisor, check 3:OK
  torvalds#347/86  verifier_sdiv/SMOD64, non-zero imm divisor, check 3 @unpriv:OK
  torvalds#347/87  verifier_sdiv/SMOD64, non-zero imm divisor, check 4:OK
  torvalds#347/88  verifier_sdiv/SMOD64, non-zero imm divisor, check 4 @unpriv:OK
  torvalds#347/89  verifier_sdiv/SMOD64, non-zero imm divisor, check 5:OK
  torvalds#347/90  verifier_sdiv/SMOD64, non-zero imm divisor, check 5 @unpriv:OK
  torvalds#347/91  verifier_sdiv/SMOD64, non-zero imm divisor, check 6:OK
  torvalds#347/92  verifier_sdiv/SMOD64, non-zero imm divisor, check 6 @unpriv:OK
  torvalds#347/93  verifier_sdiv/SMOD64, non-zero imm divisor, check 7:OK
  torvalds#347/94  verifier_sdiv/SMOD64, non-zero imm divisor, check 7 @unpriv:OK
  torvalds#347/95  verifier_sdiv/SMOD64, non-zero imm divisor, check 8:OK
  torvalds#347/96  verifier_sdiv/SMOD64, non-zero imm divisor, check 8 @unpriv:OK
  torvalds#347/97  verifier_sdiv/SMOD64, non-zero reg divisor, check 1:OK
  torvalds#347/98  verifier_sdiv/SMOD64, non-zero reg divisor, check 1 @unpriv:OK
  torvalds#347/99  verifier_sdiv/SMOD64, non-zero reg divisor, check 2:OK
  torvalds#347/100 verifier_sdiv/SMOD64, non-zero reg divisor, check 2 @unpriv:OK
  torvalds#347/101 verifier_sdiv/SMOD64, non-zero reg divisor, check 3:OK
  torvalds#347/102 verifier_sdiv/SMOD64, non-zero reg divisor, check 3 @unpriv:OK
  torvalds#347/103 verifier_sdiv/SMOD64, non-zero reg divisor, check 4:OK
  torvalds#347/104 verifier_sdiv/SMOD64, non-zero reg divisor, check 4 @unpriv:OK
  torvalds#347/105 verifier_sdiv/SMOD64, non-zero reg divisor, check 5:OK
  torvalds#347/106 verifier_sdiv/SMOD64, non-zero reg divisor, check 5 @unpriv:OK
  torvalds#347/107 verifier_sdiv/SMOD64, non-zero reg divisor, check 6:OK
  torvalds#347/108 verifier_sdiv/SMOD64, non-zero reg divisor, check 6 @unpriv:OK
  torvalds#347/109 verifier_sdiv/SMOD64, non-zero reg divisor, check 7:OK
  torvalds#347/110 verifier_sdiv/SMOD64, non-zero reg divisor, check 7 @unpriv:OK
  torvalds#347/111 verifier_sdiv/SMOD64, non-zero reg divisor, check 8:OK
  torvalds#347/112 verifier_sdiv/SMOD64, non-zero reg divisor, check 8 @unpriv:OK
  torvalds#347/113 verifier_sdiv/SDIV32, zero divisor:OK
  torvalds#347/114 verifier_sdiv/SDIV32, zero divisor @unpriv:OK
  torvalds#347/115 verifier_sdiv/SDIV64, zero divisor:OK
  torvalds#347/116 verifier_sdiv/SDIV64, zero divisor @unpriv:OK
  torvalds#347/117 verifier_sdiv/SMOD32, zero divisor:OK
  torvalds#347/118 verifier_sdiv/SMOD32, zero divisor @unpriv:OK
  torvalds#347/119 verifier_sdiv/SMOD64, zero divisor:OK
  torvalds#347/120 verifier_sdiv/SMOD64, zero divisor @unpriv:OK
  torvalds#347     verifier_sdiv:OK
  Summary: 6/166 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Xu Kuohai <xukuohai@huawei.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Florent Revest <revest@chromium.org>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Acked-by: Florent Revest <revest@chromium.org>
Link: https://lore.kernel.org/bpf/20230815154158.717901-8-xukuohai@huaweicloud.com
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Jul 9, 2024
Add a test case which replaces an active ingress qdisc while keeping the
miniq in-tact during the transition period to the new clsact qdisc.

  # ./vmtest.sh -- ./test_progs -t tc_link
  [...]
  ./test_progs -t tc_link
  [    3.412871] bpf_testmod: loading out-of-tree module taints kernel.
  [    3.413343] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  torvalds#332     tc_links_after:OK
  torvalds#333     tc_links_append:OK
  torvalds#334     tc_links_basic:OK
  torvalds#335     tc_links_before:OK
  torvalds#336     tc_links_chain_classic:OK
  torvalds#337     tc_links_chain_mixed:OK
  torvalds#338     tc_links_dev_chain0:OK
  torvalds#339     tc_links_dev_cleanup:OK
  torvalds#340     tc_links_dev_mixed:OK
  torvalds#341     tc_links_ingress:OK
  torvalds#342     tc_links_invalid:OK
  torvalds#343     tc_links_prepend:OK
  torvalds#344     tc_links_replace:OK
  torvalds#345     tc_links_revision:OK
  Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20240708133130.11609-2-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
staging-kernelci-org pushed a commit to kernelci/linux that referenced this pull request Jul 25, 2024
[ Upstream commit 5f1d18d ]

Add a test case which replaces an active ingress qdisc while keeping the
miniq in-tact during the transition period to the new clsact qdisc.

  # ./vmtest.sh -- ./test_progs -t tc_link
  [...]
  ./test_progs -t tc_link
  [    3.412871] bpf_testmod: loading out-of-tree module taints kernel.
  [    3.413343] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  torvalds#332     tc_links_after:OK
  torvalds#333     tc_links_append:OK
  torvalds#334     tc_links_basic:OK
  torvalds#335     tc_links_before:OK
  torvalds#336     tc_links_chain_classic:OK
  torvalds#337     tc_links_chain_mixed:OK
  torvalds#338     tc_links_dev_chain0:OK
  torvalds#339     tc_links_dev_cleanup:OK
  torvalds#340     tc_links_dev_mixed:OK
  torvalds#341     tc_links_ingress:OK
  torvalds#342     tc_links_invalid:OK
  torvalds#343     tc_links_prepend:OK
  torvalds#344     tc_links_replace:OK
  torvalds#345     tc_links_revision:OK
  Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20240708133130.11609-2-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
ericwoud pushed a commit to ericwoud/linux that referenced this pull request Jul 26, 2024
[ Upstream commit 5f1d18d ]

Add a test case which replaces an active ingress qdisc while keeping the
miniq in-tact during the transition period to the new clsact qdisc.

  # ./vmtest.sh -- ./test_progs -t tc_link
  [...]
  ./test_progs -t tc_link
  [    3.412871] bpf_testmod: loading out-of-tree module taints kernel.
  [    3.413343] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  torvalds#332     tc_links_after:OK
  torvalds#333     tc_links_append:OK
  torvalds#334     tc_links_basic:OK
  torvalds#335     tc_links_before:OK
  torvalds#336     tc_links_chain_classic:OK
  torvalds#337     tc_links_chain_mixed:OK
  torvalds#338     tc_links_dev_chain0:OK
  torvalds#339     tc_links_dev_cleanup:OK
  torvalds#340     tc_links_dev_mixed:OK
  torvalds#341     tc_links_ingress:OK
  torvalds#342     tc_links_invalid:OK
  torvalds#343     tc_links_prepend:OK
  torvalds#344     tc_links_replace:OK
  torvalds#345     tc_links_revision:OK
  Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20240708133130.11609-2-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
jhautbois pushed a commit to YoseliSAS/linux that referenced this pull request Aug 21, 2024
Add a test case which replaces an active ingress qdisc while keeping the
miniq in-tact during the transition period to the new clsact qdisc.

  # ./vmtest.sh -- ./test_progs -t tc_link
  [...]
  ./test_progs -t tc_link
  [    3.412871] bpf_testmod: loading out-of-tree module taints kernel.
  [    3.413343] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  torvalds#332     tc_links_after:OK
  torvalds#333     tc_links_append:OK
  torvalds#334     tc_links_basic:OK
  torvalds#335     tc_links_before:OK
  torvalds#336     tc_links_chain_classic:OK
  torvalds#337     tc_links_chain_mixed:OK
  torvalds#338     tc_links_dev_chain0:OK
  torvalds#339     tc_links_dev_cleanup:OK
  torvalds#340     tc_links_dev_mixed:OK
  torvalds#341     tc_links_ingress:OK
  torvalds#342     tc_links_invalid:OK
  torvalds#343     tc_links_prepend:OK
  torvalds#344     tc_links_replace:OK
  torvalds#345     tc_links_revision:OK
  Summary: 14/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://lore.kernel.org/r/20240708133130.11609-2-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
@IngridPuppet
Copy link

This will never get old 😂

@gordio
Copy link

gordio commented Apr 1, 2025

Hi everyone. I believe it’s an opportune time to revisit this fix. xD

roxell pushed a commit to roxell/linux that referenced this pull request Aug 29, 2025
Current code will validate current plane and previous plane to
confirm they can share a SSPP with multi-rect mode. The SSPP
is already allocated for previous plane, while current plane
is not associated with any SSPP yet. Null pointer is referenced
when validating the SSPP of current plane. Skip SSPP validation
for current plane.

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
Mem abort info:
  ESR = 0x0000000096000004
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x04: level 0 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
user pgtable: 4k pages, 48-bit VAs, pgdp=0000000888ac3000
[0000000000000020] pgd=0000000000000000, p4d=0000000000000000
Internal error: Oops: 0000000096000004 [#1]  SMP
Modules linked in:
CPU: 4 UID: 0 PID: 1891 Comm: modetest Tainted: G S                  6.15.0-rc2-g3ee3f6e1202e torvalds#335 PREEMPT
Tainted: [S]=CPU_OUT_OF_SPEC
Hardware name: SM8650 EV1 rev1 4slam 2et (DT)
pstate: 63400009 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
pc : dpu_plane_is_multirect_capable+0x68/0x90
lr : dpu_assign_plane_resources+0x288/0x410
sp : ffff800093dcb770
x29: ffff800093dcb770 x28: 0000000000002000 x27: ffff000817c6c000
x26: ffff000806b46368 x25: ffff0008013f6080 x24: ffff00080cbf4800
x23: ffff000810842680 x22: ffff0008013f1080 x21: ffff00080cc86080
x20: ffff000806b463b0 x19: ffff00080cbf5a00 x18: 00000000ffffffff
x17: 707a5f657a696c61 x16: 0000000000000003 x15: 0000000000002200
x14: 00000000ffffffff x13: 00aaaaaa00aaaaaa x12: 0000000000000000
x11: ffff000817c6e2b8 x10: 0000000000000000 x9 : ffff80008106a950
x8 : ffff00080cbf48f4 x7 : 0000000000000000 x6 : 0000000000000000
x5 : 0000000000000000 x4 : 0000000000000438 x3 : 0000000000000438
x2 : ffff800082e245e0 x1 : 0000000000000008 x0 : 0000000000000000
Call trace:
 dpu_plane_is_multirect_capable+0x68/0x90 (P)
 dpu_crtc_atomic_check+0x5bc/0x650
 drm_atomic_helper_check_planes+0x13c/0x220
 drm_atomic_helper_check+0x58/0xb8
 msm_atomic_check+0xd8/0xf0
 drm_atomic_check_only+0x4a8/0x968
 drm_atomic_commit+0x50/0xd8
 drm_atomic_helper_update_plane+0x140/0x188
 __setplane_atomic+0xfc/0x148
 drm_mode_setplane+0x164/0x378
 drm_ioctl_kernel+0xc0/0x140
 drm_ioctl+0x20c/0x500
 __arm64_sys_ioctl+0xbc/0xf8
 invoke_syscall+0x50/0x120
 el0_svc_common.constprop.0+0x48/0xf8
 do_el0_svc+0x28/0x40
 el0_svc+0x30/0xd0
 el0t_64_sync_handler+0x144/0x168
 el0t_64_sync+0x198/0x1a0
Code: b9402021 370fffc1 f9401441 3707ff81 (f94010a1)
---[ end trace 0000000000000000 ]---

Fixes: 3ed12a3 ("drm/msm/dpu: allow sharing SSPP between planes")
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/669224/
Link: https://lore.kernel.org/r/20250819-v6-16-rc2-quad-pipe-upstream-v15-1-2c7a85089db8@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
staging-kernelci-org pushed a commit to kernelci/linux that referenced this pull request Sep 4, 2025
Current code will validate current plane and previous plane to
confirm they can share a SSPP with multi-rect mode. The SSPP
is already allocated for previous plane, while current plane
is not associated with any SSPP yet. Null pointer is referenced
when validating the SSPP of current plane. Skip SSPP validation
for current plane.

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
Mem abort info:
  ESR = 0x0000000096000004
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x04: level 0 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
user pgtable: 4k pages, 48-bit VAs, pgdp=0000000888ac3000
[0000000000000020] pgd=0000000000000000, p4d=0000000000000000
Internal error: Oops: 0000000096000004 [#1]  SMP
Modules linked in:
CPU: 4 UID: 0 PID: 1891 Comm: modetest Tainted: G S                  6.15.0-rc2-g3ee3f6e1202e torvalds#335 PREEMPT
Tainted: [S]=CPU_OUT_OF_SPEC
Hardware name: SM8650 EV1 rev1 4slam 2et (DT)
pstate: 63400009 (nZCv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
pc : dpu_plane_is_multirect_capable+0x68/0x90
lr : dpu_assign_plane_resources+0x288/0x410
sp : ffff800093dcb770
x29: ffff800093dcb770 x28: 0000000000002000 x27: ffff000817c6c000
x26: ffff000806b46368 x25: ffff0008013f6080 x24: ffff00080cbf4800
x23: ffff000810842680 x22: ffff0008013f1080 x21: ffff00080cc86080
x20: ffff000806b463b0 x19: ffff00080cbf5a00 x18: 00000000ffffffff
x17: 707a5f657a696c61 x16: 0000000000000003 x15: 0000000000002200
x14: 00000000ffffffff x13: 00aaaaaa00aaaaaa x12: 0000000000000000
x11: ffff000817c6e2b8 x10: 0000000000000000 x9 : ffff80008106a950
x8 : ffff00080cbf48f4 x7 : 0000000000000000 x6 : 0000000000000000
x5 : 0000000000000000 x4 : 0000000000000438 x3 : 0000000000000438
x2 : ffff800082e245e0 x1 : 0000000000000008 x0 : 0000000000000000
Call trace:
 dpu_plane_is_multirect_capable+0x68/0x90 (P)
 dpu_crtc_atomic_check+0x5bc/0x650
 drm_atomic_helper_check_planes+0x13c/0x220
 drm_atomic_helper_check+0x58/0xb8
 msm_atomic_check+0xd8/0xf0
 drm_atomic_check_only+0x4a8/0x968
 drm_atomic_commit+0x50/0xd8
 drm_atomic_helper_update_plane+0x140/0x188
 __setplane_atomic+0xfc/0x148
 drm_mode_setplane+0x164/0x378
 drm_ioctl_kernel+0xc0/0x140
 drm_ioctl+0x20c/0x500
 __arm64_sys_ioctl+0xbc/0xf8
 invoke_syscall+0x50/0x120
 el0_svc_common.constprop.0+0x48/0xf8
 do_el0_svc+0x28/0x40
 el0_svc+0x30/0xd0
 el0t_64_sync_handler+0x144/0x168
 el0t_64_sync+0x198/0x1a0
Code: b9402021 370fffc1 f9401441 3707ff81 (f94010a1)
---[ end trace 0000000000000000 ]---

Fixes: 3ed12a3 ("drm/msm/dpu: allow sharing SSPP between planes")
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/669224/
Link: https://lore.kernel.org/r/20250819-v6-16-rc2-quad-pipe-upstream-v15-1-2c7a85089db8@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.