Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1601451 > unrolled thread
| Started by | Bob Peterson <rpeterso@redhat.com> |
|---|---|
| First post | 2017-03-15 15:40 +0100 |
| Last post | 2017-03-15 18:50 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
GFS2: pull request for high-priority bug Bob Peterson <rpeterso@redhat.com> - 2017-03-15 15:40 +0100
Re: GFS2: pull request for high-priority bug Linus Torvalds <torvalds@linux-foundation.org> - 2017-03-15 18:30 +0100
Re: GFS2: pull request for high-priority bug Bob Peterson <rpeterso@redhat.com> - 2017-03-15 18:50 +0100
| From | Bob Peterson <rpeterso@redhat.com> |
|---|---|
| Date | 2017-03-15 15:40 +0100 |
| Subject | GFS2: pull request for high-priority bug |
| Message-ID | <tlifM-sV-19@gated-at.bofh.it> |
Hi Linus,
Please consider pulling the following additional patch for the GFS2 file system.
Regards,
Bob Peterson
----------------------------------------------------------------
The following changes since commit ae50dfd61665086e617cc9e554a1285d52765670:
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2017-03-14 21:31:23 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-4.11-rc3.fixes
for you to fetch changes up to 28ea06c46fbcab63fd9a55531387b7928a18a590:
gfs2: Avoid alignment hole in struct lm_lockname (2017-03-15 10:06:07 -0400)
----------------------------------------------------------------
This is an emergency patch for 4.11-rc3
The GFS2 developers uncovered a really nasty problem that
can lead to random corruption and kernel panic, much like
the last one. Andreas Gruenbacher wrote this simple one-line
patch to fix the problem:
28ea06c gfs2: Avoid alignment hole in struct lm_lockname
----------------------------------------------------------------
Andreas Gruenbacher (1):
gfs2: Avoid alignment hole in struct lm_lockname
fs/gfs2/incore.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[toc] | [next] | [standalone]
| From | Linus Torvalds <torvalds@linux-foundation.org> |
|---|---|
| Date | 2017-03-15 18:30 +0100 |
| Message-ID | <tlkUi-2lU-23@gated-at.bofh.it> |
| In reply to | #1601451 |
On Wed, Mar 15, 2017 at 7:32 AM, Bob Peterson <rpeterso@redhat.com> wrote:
>
> Andreas Gruenbacher (1):
> gfs2: Avoid alignment hole in struct lm_lockname
So I've pulled this because I think it fixes a real bug, but honestly
I think it's the wrong fix.
Marking that lm_lockname structure "packed, aligned(4)" means that the
compiler will now think that the 64-bit fields in it may be unaligned
- including on architectures where that can be very expensive and the
compiler now might generate stupid unaligned instruction sequences to
load those values.
So the *correct* fix, I think, would have been:
- add a comment about not having holes in the struct due to the hashing
- sort the fields by size (so "ln_number" first, then "ln_sbd", then "ln_type")
- use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when hashing
which avoids the "possibly generate garbage code" issue due to the
quick-and-dirty one-liner approach.
Hmm?
Linus
[toc] | [prev] | [next] | [standalone]
| From | Bob Peterson <rpeterso@redhat.com> |
|---|---|
| Date | 2017-03-15 18:50 +0100 |
| Message-ID | <tlldD-2xf-9@gated-at.bofh.it> |
| In reply to | #1601590 |
----- Original Message ----- | On Wed, Mar 15, 2017 at 7:32 AM, Bob Peterson <rpeterso@redhat.com> wrote: | > | > Andreas Gruenbacher (1): | > gfs2: Avoid alignment hole in struct lm_lockname | | So I've pulled this because I think it fixes a real bug, but honestly | I think it's the wrong fix. | | Marking that lm_lockname structure "packed, aligned(4)" means that the | compiler will now think that the 64-bit fields in it may be unaligned | - including on architectures where that can be very expensive and the | compiler now might generate stupid unaligned instruction sequences to | load those values. | | So the *correct* fix, I think, would have been: | | - add a comment about not having holes in the struct due to the hashing | | - sort the fields by size (so "ln_number" first, then "ln_sbd", then | "ln_type") | | - use offsetofend(struct lm_lockname, ln_type) instead of sizeof() when | hashing | | which avoids the "possibly generate garbage code" issue due to the | quick-and-dirty one-liner approach. | | Hmm? | | Linus Hi Linus, Thanks. Yes, good ideas. I see your point and I'll see if we can get that fixed up for the next merge window. Bob Peterson
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web