30 Mar, 2010

23 commits

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     
  • iwl-devtrace.h is used to declare and define trace points and
    including iwl-dev.h from the file, which in turn includes other
    generic headers, can lead to problems like generating duplicate copies
    of generic trace points depending on the order of includes. Don't
    include iwl-dev.h from iwl-devtrace.h but include it from its users -
    iwl-io.h and iwl-devtrace.c.

    Signed-off-by: Tejun Heo
    Acked-by: Reinette Chatre
    Cc: Zhu Yi
    Cc: Intel Linux Wireless
    Cc: Ingo Molnar

    Tejun Heo
     
  • Including slab.h from x86 pgtable_32.h creates a troublesome
    dependency chain w/ ftrace enabled. The following chain leads to
    inclusion of pgtable_32.h from define_trace.h.

    trace/define_trace.h
    trace/ftrace.h
    linux/ftrace_event.h
    linux/ring_buffer.h
    linux/mm.h
    asm/pgtable.h
    asm/pgtable_32.h

    slab.h itself defines trace hooks via

    linux/sl[aou]b_def.h
    linux/kmemtrace.h
    trace/events/kmem.h

    If slab.h is not included before define_trace.h is included, this
    leads to duplicate definitions of kmemtrace hooks or other include
    dependency problems.

    pgtable_32.h doesn't need slab.h to begin with. Don't include it from
    there.

    Signed-off-by: Tejun Heo
    Acked-by: Pekka Enberg
    Acked-by: Christoph Lameter
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: H. Peter Anvin

    Tejun Heo
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:
    ocfs2: Fix a race in o2dlm lockres mastery
    Ocfs2: Handle deletion of reflinked oprhan inodes correctly.
    Ocfs2: Journaling i_flags and i_orphaned_slot when adding inode to orphan dir.
    ocfs2: Clear undo bits when local alloc is freed
    ocfs2: Init meta_ac properly in ocfs2_create_empty_xattr_block.
    ocfs2: Fix the update of name_offset when removing xattrs
    ocfs2: Always try for maximum bits with new local alloc windows
    ocfs2: set i_mode on disk during acl operations
    ocfs2: Update i_blocks in reflink operations.
    ocfs2: Change bg_chain check for ocfs2_validate_gd_parent.
    [PATCH] Skip check for mandatory locks when unlocking

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (28 commits)
    ceph: update discussion list address in MAINTAINERS
    ceph: some documentations fixes
    ceph: fix use after free on mds __unregister_request
    ceph: avoid loaded term 'OSD' in documention
    ceph: fix possible double-free of mds request reference
    ceph: fix session check on mds reply
    ceph: handle kmalloc() failure
    ceph: propagate mds session allocation failures to caller
    ceph: make write_begin wait propagate ERESTARTSYS
    ceph: fix snap rebuild condition
    ceph: avoid reopening osd connections when address hasn't changed
    ceph: rename r_sent_stamp r_stamp
    ceph: fix connection fault con_work reentrancy problem
    ceph: prevent dup stale messages to console for restarting mds
    ceph: fix pg pool decoding from incremental osdmap update
    ceph: fix mds sync() race with completing requests
    ceph: only release unused caps with mds requests
    ceph: clean up handle_cap_grant, handle_caps wrt session mutex
    ceph: fix session locking in handle_caps, ceph_check_caps
    ceph: drop unnecessary WARN_ON in caps migration
    ...

    Linus Torvalds
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (asc7621) Add X58 entry in Kconfig
    hwmon: (w83793) Saving negative errors in unsigned
    hwmon: (coretemp) Add missing newline to dev_warn() message
    hwmon: (coretemp) Fix cpu model output

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    pata_via: fix VT6410/6415/6330 detection issue

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (33 commits)
    r8169: offical fix for CVE-2009-4537 (overlength frame DMAs)
    ipv6: Don't drop cache route entry unless timer actually expired.
    tulip: Add missing parens.
    r8169: fix broken register writes
    pcnet_cs: add new id
    bonding: fix broken multicast with round-robin mode
    drivers/net: Fix continuation lines
    e1000: do not modify tx_queue_len on link speed change
    net: ipmr/ip6mr: prevent out-of-bounds vif_table access
    ixgbe: Do not run all Diagnostic offline tests when VFs are active
    igb: use correct bits to identify if managability is enabled
    benet: Fix compile warnnings in drivers/net/benet/be_ethtool.c
    net: Add MSG_WAITFORONE flag to recvmmsg
    e1000e: do not modify tx_queue_len on link speed change
    igbvf: do not modify tx_queue_len on link speed change
    ipv4: Restart rt_intern_hash after emergency rebuild (v2)
    ipv4: Cleanup struct net dereference in rt_intern_hash
    net: fix netlink address dumping in IPv4/IPv6
    tulip: Fix null dereference in uli526x_rx_packet()
    gianfar: fix undo of reserve()
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc64: Properly truncate pt_regs framepointer in perf callback.
    arch/sparc/kernel: Use set_cpus_allowed_ptr
    sparc: Fix use of uid16_t and gid16_t in asm/stat.h

    Linus Torvalds
     
  • In commit 9df93939b735 ("ext3: Use bitops to read/modify
    EXT3_I(inode)->i_state") ext3 changed its internal 'i_state' variable to
    use bitops for its state handling. However, unline the same ext4
    change, it didn't actually change the name of the field when it changed
    the semantics of it.

    As a result, an old use of 'i_state' remained in fs/ext3/ialloc.c that
    initialized the field to EXT3_STATE_NEW. And that does not work
    _at_all_ when we're now working with individually named bits rather than
    values that get masked. So the code tried to mark the state to be new,
    but in actual fact set the field to EXT3_STATE_JDATA. Which makes no
    sense at all, and screws up all the code that checks whether the inode
    was newly allocated.

    In particular, it made the xattr code unhappy, and caused various random
    behavior, like apparently

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

    So fix the initialization, and rename the field to match ext4 so that we
    don't have this happen again.

    Cc: James Morris
    Cc: Stephen Smalley
    Cc: Daniel J Walsh
    Cc: Eric Paris
    Cc: Jan Kara
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Official patch to fix the r8169 frame length check error.

    Based on this initial thread:
    http://marc.info/?l=linux-netdev&m=126202972828626&w=1
    This is the official patch to fix the frame length problems in the r8169
    driver. As noted in the previous thread, while this patch incurs a performance
    hit on the driver, its possible to improve performance dynamically by updating
    the mtu and rx_copybreak values at runtime to return performance to what it was
    for those NICS which are unaffected by the ideosyncracy (if there are any).

    Summary:

    A while back Eric submitted a patch for r8169 in which the proper
    allocated frame size was written to RXMaxSize to prevent the NIC from dmaing too
    much data. This was done in commit fdd7b4c3302c93f6833e338903ea77245eb510b4. A
    long time prior to that however, Francois posted
    126fa4b9ca5d9d7cb7d46f779ad3bd3631ca387c, which expiclitly disabled the MaxSize
    setting due to the fact that the hardware behaved in odd ways when overlong
    frames were received on NIC's supported by this driver. This was mentioned in a
    security conference recently:
    http://events.ccc.de/congress/2009/Fahrplan//events/3596.en.html

    It seems that if we can't enable frame size filtering, then, as Eric correctly
    noticed, we can find ourselves DMA-ing too much data to a buffer, causing
    corruption. As a result is seems that we are forced to allocate a frame which
    is ready to handle a maximally sized receive.

    This obviously has performance issues with it, so to mitigate that issue, this
    patch does two things:

    1) Raises the copybreak value to the frame allocation size, which should force
    appropriately sized packets to get allocated on rx, rather than a full new 16k
    buffer.

    2) This patch only disables frame filtering initially (i.e., during the NIC
    open), changing the MTU results in ring buffer allocation of a size in relation
    to the new mtu (along with a warning indicating that this is dangerous).

    Because of item (2), individuals who can't cope with the performance hit (or can
    otherwise filter frames to prevent the bug), or who have hardware they are sure
    is unaffected by this issue, can manually lower the copybreak and reset the mtu
    such that performance is restored easily.

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • For 32-bit processes, we save the full 64-bits of the regs in pt_regs.

    But unlike when the userspace actually does load and store
    instructions, the top 32-bits don't get automatically truncated by the
    cpu in kernel mode (because the kernel doesn't execute with PSTATE_AM
    address masking enabled).

    So we have to do it by hand.

    Reported-by: Frederic Weisbecker
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Intel X58 have asc7621a chip. So added X58 entry in Kconfig for asc7621.
    Also arranged existing models in ascending order.

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Jean Delvare

    Jaswinder Singh Rajput
     
  • "ret" is used to store the return value for watchdog_trigger() and it
    should be signed for the error handling to work.

    Signed-off-by: Dan Carpenter
    Acked-by: Hans de Goede
    Signed-off-by: Jean Delvare

    Dan Carpenter
     
  • Add missing newline to dev_warn() message string. This is more of an issue
    with older kernels that don't automatically add a newline if it was missing
    from the end of the previous line.

    Signed-off-by: Dean Nelson
    Cc: stable@kernel.org
    Signed-off-by: Jean Delvare

    Dean Nelson
     
  • Avoid hex and decimal confusion when printing out the cpu model.

    Signed-off-by: Prarit Bhargava
    Signed-off-by: Jean Delvare

    Prarit Bhargava
     
  • Signed-off-by: Sage Weil

    Sage Weil
     
  • New documentation should have an entry in the 00-INDEX. Correct git
    urls.

    Signed-off-by: Cheng Renquan
    Signed-off-by: Sage Weil

    Cheng Renquan
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
    Revert "ide: skip probe if there are no devices on the port (v2)"
    Revert "via82cxxx: workaround h/w bugs"

    Linus Torvalds
     
  • Commit b26b2d494b659f9 ("resource/PCI: align functions now return start
    of resource") added lines with missing semicolons.

    Add the missing semicolons to the FRV and CRIS arch code.

    Signed-off-by: David Howells
    Cc: linux@dominikbrodowski.net
    Signed-off-by: Linus Torvalds

    David Howells
     
  • CONFIG_SLOW_WORK_PROC was changed to CONFIG_SLOW_WORK_DEBUG, but not in all
    instances. Change the remaining instances. This makes the debugfs file
    display the time mark and the owner's description again.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Otherwise we can get an oops if the user has no get_ref/put_ref
    requirement.

    Signed-off-by: Dave Airlie
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Dave Airlie
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda: Use LPIB for ga-ma770-ud3 board
    ALSA: ac97: Add Toshiba P500 to ac97 jack sense blacklist
    ALSA: pcm_lib - fix xrun functionality
    ALSA: ac97: Add IBM ThinkPad R40e to Headphone/Line Jack Sense blacklist
    ALSA: hda - Don't set invalid connection index in Realtek initialiaiton

    Linus Torvalds
     

29 Mar, 2010

9 commits


28 Mar, 2010

5 commits

  • When using VT6410/6415/6330 chips on some VIA's platforms, the HDD
    connection to VT6410/6415/6330 cannot be detected.

    It is because the driver detects wrong via_isa_bridge ID, and then
    causes this issue to happen.

    Signed-off-by: Joseph Chan
    Signed-off-by: Jeff Garzik

    JosephChan@via.com.tw
     
  • Use set_cpus_allowed_ptr rather than set_cpus_allowed.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression E1,E2;
    @@

    - set_cpus_allowed(E1, cpumask_of_cpu(E2))
    + set_cpus_allowed_ptr(E1, cpumask_of(E2))

    @@
    expression E;
    identifier I;
    @@

    - set_cpus_allowed(E, I)
    + set_cpus_allowed_ptr(E, &I)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • This is quite similar to b39fe41f481d20c201012e4483e76c203802dda7
    though said registers are not even documented as 64-bit registers
    - as opposed to the initial TxDescStartAddress ones - but as single
    bytes which must be combined into 32 bits at the MMIO read/write
    level before being merged into a 64 bit logical entity.

    Credits go to Ben Hutchings for the MAR
    registers (aka "multicast is broken for ages on ARM) and to
    Timo Teräs for the MAC registers.

    Signed-off-by: Francois Romieu
    Signed-off-by: David S. Miller

    Francois Romieu
     
  • pcnet_cs:
    *add new id (Allied Telesis LM33-PCM-T Lan&Modem multifunction card)
    *use PROD_ID for LA-PCM.(because LA-PCM and LM33-PCM-T use the same MANF_ID).

    Signed-off-by: Ken Kawasaki
    Signed-off-by: David S. Miller

    Ken Kawasaki
     
  • Round-robin (mode 0) does nothing to ensure that any multicast traffic
    originally destined for the host will continue to arrive at the host when
    the link that sent the IGMP join or membership report goes down. One of
    the benefits of absolute round-robin transmit.

    Keeping track of subscribed multicast groups for each slave did not seem
    like a good use of resources, so I decided to simply send on the
    curr_active slave of the bond (typically the first enslaved device that
    is up). This makes failover management simple as IGMP membership
    reports only need to be sent when the curr_active_slave changes. I
    tested this patch and it appears to work as expected.

    Originally reported by Lon Hohberger .

    Signed-off-by: Andy Gospodarek
    CC: Lon Hohberger
    CC: Jay Vosburgh
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Andy Gospodarek
     

27 Mar, 2010

3 commits