07 Jul, 2011

35 commits


21 Jun, 2011

5 commits

  • Linus Torvalds
     
  • Commit 13e12d14e2dc ("vfs: reorganize 'struct inode' layout a bit")
    moved things around a bit changed i_state to be unsigned int instead of
    unsigned long. That was to help structure layout for the 64-bit case,
    and shrink 'struct inode' a bit (admittedly that only happened when
    spinlock debugging was on and i_flags didn't pack with i_lock).

    However, Meelis Roos reports that this results in unaligned exceptions
    on sprc, and it turns out that the bit-locking primitives that we use
    for the I_NEW bit want to use the bitops. Which want 'unsigned long',
    not 'unsigned int'.

    We really should fix the bit locking code to not have that kind of
    requirement, but that's a much bigger change. So for now, revert that
    field back to 'unsigned long' (but keep the other re-ordering changes
    from the commit that caused this).

    Andi points out that we have played games with this in 'struct page', so
    it's solvable with other hacks too, but since right now the struct inode
    size advantage only happens with some rare config options, it's not
    worth fighting.

    It _would_ be worth fixing the bitlocking code, though. Especially
    since there is no type safety in the bitlocking code (this never caused
    any warnings, and worked fine on x86-64, because the bitlocks take a
    'void *' and x86-64 doesn't care that deeply about alignment). So it's
    currently a very easy problem to trigger by mistake and never notice.

    Reported-by: Meelis Roos
    Cc: Andi Kleen
    Cc: David Miller
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/radeon/kms/r6xx+: voltage fixes
    drm/nouveau: drop leftover debugging
    drm/radeon: avoid warnings from r600/eg irq handlers on powered off card.
    drm/radeon/kms: add missing param for dce3.2 DP transmitter setup
    drm/radeon/kms/atom: fix duallink on some early DCE3.2 cards
    drm/nouveau: fix assumption that semaphore dmaobj is valid in x-chan sync
    drm/nv50/disp: fix gamma with page flipping overlay turned on
    drm/nouveau/pm: Prevent overflow in nouveau_perf_init()
    drm/nouveau: fix big-endian switch

    Linus Torvalds
     
  • * 'msm-fix' of git://codeaurora.org/quic/kernel/davidb/linux-msm:
    msm: timer: Fix DGT rate on 8960 and 8660
    msm: timer: compensate for timer shift in msm_read_timer_count
    msm: timer: Fix SMP build error

    Linus Torvalds
     
  • * 'for-2.6.40' of git://linux-nfs.org/~bfields/linux:
    nfsd4: fix break_lease flags on nfsd open
    nfsd: link returns nfserr_delay when breaking lease
    nfsd: v4 support requires CRYPTO
    nfsd: fix dependency of nfsd on auth_rpcgss

    Linus Torvalds