All of lore.kernel.org
 help / color / mirror / Atom feed
* OFED 1.5.3 rc2 is available
From: Vladimir Sokolovsky @ 2011-01-27 13:43 UTC (permalink / raw)
  To: OpenFabrics EWG; +Cc: linux-rdma

[-- Attachment #1: Type: text/plain, Size: 1432 bytes --]

Hi,
OFED 1.5.3-rc2 is available

Notes:

The tarball is available on:
http://www.openfabrics.org/downloads/OFED/ofed-1.5.3/OFED-1.5.3-rc2.tgz

To get BUILD_ID run ofed_info

Please report any issues in bugzilla https://bugs.openfabrics.org/  for
OFED 1.5.3

Vladimir & Tziporet

========================================================================
Supported Platforms and Operating Systems
---------------------------------------------
     o   CPU architectures:
           - x86_64
           - x86
           - ppc64
           - ia64

     o   Linux Operating Systems:
           - RedHat EL5 up4        2.6.18-164.el5
           - RedHat EL5 up5        2.6.18-194.el5
           - RedHat EL5 up6        2.6.18-238.el5
           - RedHat EL6            2.6.32-71.el6
           - SLES10 SP3            2.6.16.60-0.54-smp
           - SLES11                2.6.27.19-5-default
           - SLES11 SP1            2.6.32.12-0.7-default
           - Fedora Core12         2.6.31.5-127.fc12    *
           - OpenSuSE 11.2         2.6.31.5-0.1-default *
           - kernel.org            2.6.29 - 2.6.36    *

         * Minimal QA for these versions

Main changes from 1.5.3-rc1:
===========================
1. Updated packages:
    infinipath-psm-1.14
    libsdp-1.1.108-0.14.g63e0cf1
    perftest-1.3.0-0.40.g11c4950
    sdpnetstat-1.60-0.3.gb6e7425

    - MPI
    mvapich2-1.6-0.2.20110125svn4431

2. Added RHEL5.6 support

[-- Attachment #2: ofed_kernel_changelog-1.5.3-rc2.txt --]
[-- Type: text/plain, Size: 33861 bytes --]

commit e163bcb66b04bed7ab946a6f2cecc390d3940fb5
Author: Mitko Haralanov <mitko-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Thu Jan 20 15:03:05 2011 -0500

    IB/qib: Hold link for Tx SERDES settings
    
    Hold the IB link at DISABLED until we get the correct TX
    settings on mezz boards.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit dc76474c013e8d4d1e222e8c2cee3a2908424668
Author: Dan Carpenter <error27-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Date:   Thu Jan 20 10:48:07 2011 +0200

    IB/uverbs: Handle large number of entries in poll CQ
    
    In ib_uverbs_poll_cq() code there is a potential integer overflow if
    userspace passes in a large cmd.ne.  The calls to kmalloc() would
    allocate smaller buffers than intended, leading to memory corruption.
    There iss also an information leak if resp wasn't all used.
    Unprivileged userspace may call this function, although only if an
    RDMA device that uses this function is present.
    
    Fix this by copying CQ entries one at a time, which avoids the
    allocation entirely, and also by moving this copying into a function
    that makes sure to initialize all memory copied to userspace.
    
    Special thanks to Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
    for his help and advice.
    
    Cc: <stable-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    Signed-off-by: Dan Carpenter <error27-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
    
    [ Monkey around with things a bit to avoid bad code generation by gcc
      when designated initializers are used.  - Roland ]
    
    Signed-off-by: Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>

commit e9dda1545111aaee070827baefae53a59105c106
Author: miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org <miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Date:   Wed Jan 19 12:56:26 2011 +0100

    RDMA/core: backports for 2.6.35 and 2.6.36 kernels
    
    Added missing backports
    
    Signed-off-by: Mirek Walukiewicz <miroslaw.walukiewicz-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

commit e4b79f1ce8a28b300aa6df4def4a247752fbcdb2
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 19 12:32:48 2011 +0200

    mlx4,mthca: Change version to 1.5.3
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 54bd87d97c9f878029231fb647897ac6b883ae1f
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 19 10:07:33 2011 +0200

    openibd: unload cxgb3i on restart
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit ba6fb97979aed79a54556de9a73f0d2527389f1a
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 18 13:03:36 2011 +0200

    Fix support for kernels > 2.6.30
    
    Replace dma_sync_single() use with proper functions
    
    dma_sync_single() is deprecated now, and the use in mthca is wrong:
    there should be a dma_sync_single_for_cpu() before touching the memory
    from the CPU, and a dma_sync_single_for_device() afterwards.  Fix
    this, prompted by a kick in the pants from a patch from FUJITA
    Tomonori <fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>.
    
    Signed-off-by: Roland Dreier <rolandd-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit e75f1be772a7c48b0467a3cb98bb9731814be650
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 18 19:03:32 2011 +0200

    sdp: do not reenter sdp_abort_rx_srcavail
    
    SrcAvailCancel could be handled from within sdp_abort_rx_srcavail. This
    shouldn't happen. To prevent it, ssk->rx_sa is set to NULL at the begining.
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 925cbfc97f8395abc8ac04f463e676561dca8d16
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 16 18:32:38 2011 +0200

    sdp: Abort rx SrcAvail when out of credits
    
    SrcAvail sink side could run out of credits when having bcopy sends to the
    other direction. Because of that no RdmaRdCompl could be sent nor SendSM.  This
    could hang the sender side forever (No SendSM on SrcAvailCancel).
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit ea27c49e4fb320ab84645d57f375a05a8224109b
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 16 15:41:37 2011 +0200

    cxgb3: Fix backport for RHEL5.6
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit c330eedc7149e70f94ca4a30e0be0657c97a2944
Author: Jack Morgenstein <jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
Date:   Sun Jan 16 15:02:51 2011 +0200

    mlx4: enable raw eth QPs to work with inline and blueflame.
    
    When using blueflame, an assigned qp number cannot contain "1" bits
    in positions 6 and 7 (which become the CS and SV bits in the second
    dword of the CTL segment when using blueflame).
    
    To solve this, we add a "skip_mask" dword to resource range allocation.
    The acquired resource is skipped if its number "and'ed" with the
    skip_mask is non_zero.
    
    For RAW_ETH qp's, we use a skip_mask of 0xC0, corresponding to bits
    6 and 7 of the QP number.
    
    Signed-off-by: Jack Morgenstein <jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>

commit f29ad409551c11d77656d00279dc1b49571b4add
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Thu Jan 13 16:24:36 2011 +0200

    Add RHEL5.6 support
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 906bfc2bd29adce4fefa8600a505c9f8b2b04a8f
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 12 11:48:48 2011 +0200

    tuning/sysctl: Rename ib_ipoib_sysctl -> sysctl_perf_tuning
    
    Tuning parameters are valid for all ULPs/network drivers.
    So, remove IPoIB dependency.
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 5a8f89849629b994934821a9f36c88e3bf6b29f1
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 11 17:12:42 2011 +0200

    openibd: add option to disable kernel parameters tuning
    
    Add RUN_SYSCTL parameter to the openib.conf.
    If RUN_SYSCTL=no the /sbin/ib_ipoib_sysctl will not be executed.
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 97f08a7e422516791900b060aa47493fce7d454c
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 11 17:00:58 2011 +0200

    openibd: replace ifconfig by ip
    
    ifconfig should not be used to get/set network device properties.
    It was replaced by ip.
    BUG: http://bugs.openfabrics.org/bugzilla/show_bug.cgi?id=2209
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 0ac3c8b53ed10101a1d7cef914a31dda100fe464
Merge: 449b58e 02e0103
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 11 16:54:08 2011 +0200

    Merge remote branch 'amirv/ofed_kernel_1_5' into ofed_kernel_1_5

commit 02e010336e34b3485a393bce5f462b029986cbe5
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 11 15:16:51 2011 +0200

    sdp: Fixed BUG2207 - EINVAL when connect after IPv6 bind
    
    Connect to IPv4 over IPv6 address need rdma id to be created with IPv4 address.
    If bound before with IPv6 adderss, need to destroy and recreate the id.
    Also, when connecting after bind, keep the same source port number.
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 449b58e2ef0be13b317ecaca7adc402c8ce213c5
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 11 10:35:57 2011 +0200

    Fix show_abi_version on 2.6.34
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 38ffe0066bc8327256b8f73242906491fb7b2db3
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 9 14:48:34 2011 +0200

    sdp: Fix 2.6.36 backport patch
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit f77da9f97403312c69373df8b4eabc1657751fad
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 9 14:28:54 2011 +0200

    Add support for 2.6.18.8-xen kernel
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit ce9d42bebe9729655a874a985bc6cb7b850232d9
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Thu Jan 6 15:49:55 2011 +0200

    sdp: check address family before connecting
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 9805faa6d787f379ad0c67528cfb636937f3829e
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Thu Jan 6 14:38:34 2011 +0200

    sdp: Do not ignore scope_id in IPv6
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit e640d343c50c14b9eb3aab39dd407cb1d5292c26
Merge: 0148f04 b9cc54d
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 9 09:25:44 2011 +0200

    Merge branch 'ofed_kernel_1_5' of git://git.openfabrics.org/~mmarciniszyn/linux-2.6.to_ofed into ofed_kernel_1_5

commit b9cc54dc33cb21b3b32037131aa53ccdd37e6dfa
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Thu Jan 6 16:33:25 2011 -0500

    IB/qib: fix refcount leak in lkey/rkey validation
    
    The mr optimization introduced a reference count leak on an exception test.
    The lock/refcount manipulation is moved down and the problematic exception
    test now calls bail to insure that the lock is released.
    
    Additional fixes as suggested by Ralph Campbell <ralph.campbell-l8fZCXd1Rtodnm+yROfE0A@public.gmane.org>:
    - reduce lock scope of dma regions
    - use explicit values on returns vs. automatic ret value
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 0148f048919082023c1dd94f00149462a6e04ed6
Merge: d74a5ae 708221f
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 5 15:54:13 2011 +0200

    Merge remote branch 'amirv/ofed_kernel_1_5' into ofed_kernel_1_5

commit 708221f03c7f110350691746c6d4f4ae28611fb2
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 5 13:26:32 2011 +0200

    sdp: make backport sk_inet()->xxx simpler
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit d74a5ae3cd0471770b5d5293b16cd92d6b058dda
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 5 14:17:07 2011 +0200

    ppc64/backport: Add workaround for compilation on PPC64 with 2.6.32
    
    Add an empty asm/iomap.h under kernel_addons for 2.6.32* kernels
    BUG: http://bugs.openfabrics.org/bugzilla/show_bug.cgi?id=2203
    
    Signed-off-by: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 890e7721d4c2c19a4c7a9b6d23a6502182ec476b
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 5 11:33:21 2011 +0200

    sdp: Fix get getsockname/getpeername in IPv6
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 8effad4bafd8a98e49e44d64859951bbc536e031
Merge: a61000b 9fdd445
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Jan 5 10:58:39 2011 +0200

    Merge branch 'ofed_kernel_1_5' of git://git.openfabrics.org/~mmarciniszyn/linux-2.6.to_ofed into ofed_kernel_1_5

commit 9fdd445e04aac7cbe3fa3780e385bce4fa9d5db1
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Jan 4 15:19:07 2011 -0500

    ofa_kernel.spec: Account for QLogic cards for counting ipoib aliases
    
    The routine count_ib_ports() now lspci's for QLogic SDR, DDR, and QDR HCAs
    to correctly configure ib_ipoib.conf aliases.
    
    The aliases are also corrected for upgrade installs as well as initial
    installs.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit a61000bf2180da935306819d981fdc00aa9386b3
Author: Alexander Schmidt <alexs-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
Date:   Mon Jan 3 14:10:14 2011 +0100

    ehca: fixes
    
    The changes are tested with ./ofed_scripts/ofed_makedist.sh
    
    Signed-off-by: Alexander Schmidt <alexs-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>

commit 6855440dd8cfab0a0d82ab33c1d3979b4b5ce443
Merge: 03dc015 9887f6b
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Tue Jan 4 17:46:29 2011 +0200

    Merge branch 'ofed_kernel_1_5' of git://git.openfabrics.org/~mmarciniszyn/linux-2.6.to_ofed into ofed_kernel_1_5

commit 9887f6b42a367e7a19534aa8f24bbe12c6191a9f
Author: Mitko Haralanov <mitko-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Mon Jan 3 15:40:43 2011 -0500

    truescale.cmds: balance IRQs for kernel contexts across CPUs
    
    Balance the IRQs of the kernel receive contexts across the
    available CPUs by assigning IRQ affinities in a round-robin
    fashion.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit eeb4091b076e3bfd224a2ba70b376150fa9b64c8
Author: Mitko Haralanov <mitko-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Mon Jan 3 15:38:49 2011 -0500

    truescale.cmds: Fix setting SERDES Tx values on HP Mezz
    
    If the mezz card is in the second mezz slot, both ports
    are enabled. Therefore, we need to set the correct Tx
    settings for the second port.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 7971d9be1cdd03b2c8f0928cbc11e24fd8e3e699
Author: Mitko Haralanov <mitko-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Mon Jan 3 15:34:30 2011 -0500

    truescale.cmds: Fix invalid 'if' statement syntax
    
    Delete leading -a.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 16d386a4ed37befb3ccfcdd3d176a08017aeedf6
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Mon Jan 3 15:30:18 2011 -0500

    truescale.cmds: make the mount of /ipathfs more robust and quiet
    
    The 'start' section of truescale.cmds isn't terribly robust against
    being called multiple times or having a slightly wonky environment.
    Device testers in particular were getting messages from the failing
    mkdir.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 03dc0154a1aa21b335d5df251010bace7bfc62a3
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Jan 2 13:31:12 2011 +0200

    sdp: Allow bind to address with family AF_INETx_SDP
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 46e20629818ba040ce1ea83df701496844aa9c23
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Thu Dec 30 14:38:48 2010 +0200

    sdp: Use %pI4 + %pI6 in new kernels
    
    A patch in this subject was in the wrong backport. Moving it to a dedicated patch.
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 954d37f69074eb23f70e848f11fd2af089f800ba
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Dec 29 17:23:07 2010 +0200

    sdp: fix connect to IPv4 over IPv6
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit de706b6e1c3d9503e650411878b25cf13d51b519
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Wed Dec 29 12:40:52 2010 +0200

    sdp: Fix some issues in ipv6 support
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 0ff5467c40c0ec3e5e25e46946900ea98a04d279
Author: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Mon Dec 27 11:58:26 2010 +0200

    sdp: ipv6 support
    
    Signed-off-by: Amir Vadai <amirv-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>

commit 2e0ab2acaef2528a9ca94692af08e550fedac691
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Mon Dec 27 15:04:30 2010 -0500

    IB/qib: Code style issues found during kernel.org submission testing
    
    These are fixes to style issues detected by checkpatch.pl.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit cf8b6ca317a31ccee24e0058415db36a59242eb6
Merge: 3435de1 b17abc2
Author: Vladimir Sokolovsky <vlad-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
Date:   Sun Dec 26 09:39:46 2010 +0200

    Merge branch 'ofed_kernel_1_5' of git://git.openfabrics.org/~mmarciniszyn/linux-2.6.to_ofed into ofed_kernel_1_5

commit b17abc2b2164948531f8fc591a9ff6e3d971cdd1
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:59:51 2010 -0500

    IB/qib: Add return value testing for work queue creation
    
    The code ignored potentially NULL rvals.  This patch adds testing for NULL
    and the appropriate failure branches at the end of qib_init().
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 53027eea12923aaa3ba11961a486af80d9c0ce73
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:56:40 2010 -0500

    IB/qib: Allow driver to load if PCIe advanced error reporting fails
    
    Some PCIe root complex chip sets don't support advanced error reporting.
    Allow the driver to load OK if pci_enable_pcie_error_reporting() fails.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit cbb1b059540f802f0c65573629bf41fdf3a2eb2e
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:53:25 2010 -0500

    IB/qib: clean up properly if pci_set_consistent_dma_mask() fails
    
    Clean up properly when pci_set_consistent_dma_mask() fails.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 56fde9902048fec37e81dc8be3fb7f774d0dbc8f
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:48:01 2010 -0500

    IB/qib: Fix QIB early error reporting prints
    
    Replace incorrect use of dev_info with dev_err.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 6a1024778af0b7c4b7f1e0075548fe1a75867f26
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:43:41 2010 -0500

    IB/qib: Improve SERDES tunning on QMH boards
    
    Improve the QMH SERDES tunning on initial driver load by
    removing the delay after SERDES init and having the driver
    go through a link state change.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 4714a7ae7734059bd6b63186bb7bccd1a6cde441
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:39:31 2010 -0500

    IB/qib: Add a delay to allow SERDES to initialize
    
    Adding a small delay would allow the SERDES to adapt better,
    which would improve the link negotiation.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 825356532db07e34632a9aa9a64451b75201eeb1
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:32:45 2010 -0500

    IB/qib: Un-necessary delayed completions on RC connection
    
    Currently on receipt of a response message (ACKs, RDMA Response, Atomic
    Responses etc.) if the SDMA completion counter is not advanced the
    driver delays the completion of the WQE. In most cases this is overly
    pessimistic as the response (ACK) to a previously transmitted send
    implies that the send is complete. Ensure that SDMA queue is progressed
    appropriately before determining if a send has delayed completions.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit deac6a9658f1e4121fa0e26899702323c715e8f2
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:25:33 2010 -0500

    IB/qib: Issue pre-emptive NAKs on eager buffer overflow
    
    Under congestion resulting in eager buffer overflow attempt to send
    pre-emptive NAKs if header queue entries with TID errors are generated and
    a valid header is present. This prevents long timeouts and flow restarts if
    a trailing set of packets are dropped due to eager overflows. Pre-emptive
    NAKs are currently only supported for RDMA Writes.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit e2f3b28bbe27e34a1abfa7bccb8377c42535c910
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:16:48 2010 -0500

    IB/qib: RDMA lkey/rkey validation is inefficient for large MRs
    
    The current code loops during rkey/lkey validiation to isolate the mr
    for the RDMA, which is expensive when the current operation is
    inside a very large memory region.
    
    This fix optimizes rkey/lkey validation routines for user memory regions and
    fast memory regions.  The mr entry can be isolated by shifts/mods instead of
    looping.  The existing loop is preserved for phys memory regions for now.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 9ad35a43699e7d77c1a1081e184afb79c0df0dd5
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 12:07:50 2010 -0500

    IB/qib: change qpn increment
    
    Changing from +1 to +2 allows for better QP
    distribution across receive contexts.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 55333e094dd97f75e4e007f03183f71527bdf962
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 11:33:43 2010 -0500

    IB/qib: backport changes for last two commits
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 07933e2d064eb0f0eadee8f4fa7b634334207518
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 11:29:43 2010 -0500

    IB/qib: adding fix missing from earlier patch
    
    0669da697c7779955806ef3dae3db4ecf68618cc was missing part
    of a fix that makes merges impossible.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 0e0ccb83fb114887d2abfafffbb5bb5a576ec2f0
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Wed Dec 22 11:28:56 2010 -0500

    IB/qib: change rcv queue/qpn selection
    
    The basic idea is that on SusieQ, the difficult part of mapping QPN to context
    is handled by the mapping registers so the generic QPN allocation doesn't need
    to worry about chip specifics. For Monty and Linda, there is no mapping table
    so the qpt->mask (same as dd->qpn_mask), is used to see if the QPN to context
    falls within [zero..dd->n_krcv_queues).
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 8f448d7d90a50ab0cc32a06e0811c702c5007c78
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 13:01:59 2010 -0500

    IB/qib: interrupt mitigation fix
    
    For SusieQ we need to write to the interrupt timer register before updating the
    header queue head with interrupt count. This is to ensure that the timer is
    enabled properly and a receive available interrupt is delivered else this
    interrupt can be lost if the receiver header/eager queues are full before the
    timer is enabled.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 684272b5a7a72508a4c70023b2099793fb7948c5
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:40:12 2010 -0500

    IB/qib: Avoid duplicate writes to the rcv head register
    
    Avoid duplicate writes to the head register as this can lead to lost interrupts
    if the context goes full before the second write is done.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit bd512a70873e18d098ab940472f81693af71b578
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:35:31 2010 -0500

    IB/qib: fix RDMA write with immediate
    
    The immediate word for RDMA_WRITE_ONLY_WITH_IMMEDIATE was being extracted
    from the wrong location in the header.  Thanks to
    Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org> for finding this.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 7bc68c54f2fa74632b15225a1cd946b463b90e77
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:29:48 2010 -0500

    IB/qib: Add a few new SERDES tunings
    
    Add new SERDES tuning to aid manufacturing.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 1b4acc545ee7065acaf9e5f56e290a24bcf54467
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:22:32 2010 -0500

    IB/qib: Reset packet list after freeing
    
    Reset the list pointers after freeing the SDMA packet
    list. This is done to any potential double-free cases.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 3252ff781558691d6e09f567456db55912099404
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:15:00 2010 -0500

    IB/qib: New SERDES init routine and improvements to SI quality
    
    Implement new SERDES initialization routine and improvements
    to SI - disable LE1 adaptation, disable LOS after link-up, set
    better SERDES parameters.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 37644c3c66a9c7cf6559aa0735d92b673731efa0
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 12:03:46 2010 -0500

    IB/qib: remove IB latency turnoff
    
    This is required for hardware testing.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 55d63e9ee381cf842f56d57c950d3aa76cb6880b
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:37:43 2010 -0500

    IB/qib: clear WAIT_SEND flags when setting QP to error state
    
    If these flags are set when the QP is transitioned to the error
    state, it will wait until the flags are cleared, which may never
    happen if the error transition is due to a link going down.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit f834687c62a99e884ff915725222fe7e2d69edc9
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:36:04 2010 -0500

    IB/qib: fix context allocation with multiple HCAs
    
    The driver was incorrectly choosing HCAs on which to allocate
    new user contexts based on overall count of usable ports
    regardless whether the usable port was on the currently selected
    HCA.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit c881784aa894d97a5e41ab18cdaa0a2a47fee178
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:34:57 2010 -0500

    IB/qib: Multi Florida HCA Hosts panic on reboot
    
    Add check when setting configured contexts that the value
    does not exceed the number of contexts allocated for the
    card. If the value exceeds the already allocated count,
    set it to what is already allocated.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit addaddd141739e6d4a69ff54c0ae12aa8ba4e110
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:33:50 2010 -0500

    IB/qib: Handle transitions from ACTIVE_DEFERRED to ACTIVE better
    
    When the link transitions from ACTIVE_DEFERRED to ACTIVE, the driver
    only sees the ACTIVE state. With this change, it will check whether
    the state was already ACTIVE and if so, it will not generated IB
    events and will not clear symbol error counts.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit fc430b5cc66fa0a23f3ba879a0c94c21938536fa
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:32:12 2010 -0500

    IB/qib: UD send with immediate Rx completion has wrong size
    
    The code to generate receive completion entries for UD send with
    immediate contains the wrong payload length. This is because when
    the code to compute the payload size was moved, the value of hdrsize
    didn't get moved too.  The fix is to update tlen directly.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 0a9f81750d0c9909c4b95a2de2d430daf754d020
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:30:40 2010 -0500

    IB/qib: set port physical state even if other fields are invalid
    
    The IBTA vol. 1 release 1.2.1 spec. says:
    C14-24.2.1: If PortInfo:Portstate=Down, then a SubnSet(PortInfo)
    shall make any changes it specifies to PortInfo:PortPhysicalState;
    any other result is vendor-dependent.
    
    The patch changes the error handling so that the reply says there
    are invalid fields but still attempts to set fields that are
    in range including PortInfo:PortPhysicalState.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 85dff982123cdb426b69b0a41e1101cf91227352
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:29:28 2010 -0500

    IB/qib: generate completion callback on errors
    
    According to IBTA vol. 1, C11-30.1.1, a notification callback is
    invoked if the CQ is armed for the next solicited completion event
    or an error completion. The error case wasn't being generated
    previously.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 466c85baa925b006c659b0c26e109bf1e4151d99
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:28:47 2010 -0500

    IB/qib: add thresholds to VendorPortCounters PMA operation
    
    This adds thresholds to be specified in the VendorPortCounters PMA
    operation.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 4b9e0ac717070c3e8628b9926b7e3a430c3f3541
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:27:02 2010 -0500

    IB/qib: add support for the new QME7362 card
    
    This patch adds support to recognize another board variation
    named QME7362.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit fc6238f5dfcc0e5e369a5a65ec46708cebafa895
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:24:59 2010 -0500

    IB/qib: add receive header queue size module parameters
    
    The receive header queue sizes need to modified to support
    performance tuning.  Three module parameters are added to
    support this.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

commit 5be565611feaf040e50142339000379cf4790dc3
Author: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>
Date:   Tue Dec 21 10:24:05 2010 -0500

    IB/qib: set cfgctxts to number of CPUs by default
    
    Up to now, we have set the number of available user contexts based on
    the number of hardware contexts which is set according to the number
    of available CPUs. This was fine since most CPUs had a power of two
    number of cores and the chip supported 4, 8, or 16 user contexts.
    Now that some systems have 12 cores, the default isn't optimal and
    should be set to 12 even though 16 hardware contexts need to be enabled.
    
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn-h88ZbnxC6KDQT0dZR+AlfA@public.gmane.org>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: bugs-2011-01-27.csv --]
[-- Type: text/csv; name="bugs-2011-01-27.csv", Size: 1869 bytes --]

bug_id,"bug_severity","priority","op_sys","assigned_to","bug_status","resolution","short_desc"
2129,"normal","P4","SLES 11","amirv@mellanox.co.il","RESOLVED","FIXED","close_test fails on case #4 (SHUTDOWN_RECV)"
2175,"critical","P5","Other","vlad@mellanox.co.il","VERIFIED","FIXED","Compilation of daily OFED1.5.3 (30-11-2010) on RH6 fails due to missing sysysfsutils-develsfsutils-devel"
2188,"critical","P5","All","amirv@mellanox.co.il","CLOSED","FIXED","thresholds_test over RoCE causes server to hang"
2189,"enhancement","P5","Other","amirv@mellanox.co.il","CLOSED","FIXED","Add IPv6 support"
2192,"normal","P5","All","amirv@mellanox.co.il","CLOSED","FIXED","Many wrong errnos"
2193,"major","P5","Other","vlad@mellanox.co.il","RESOLVED","FIXED","[OFED-1.5.3-rc1] : kernel ABI version mismatches with libibverbs on 2.6.34(32 Bit) kernel."
2196,"major","P5","RedHat Fedora Core 5","amirv@mellanox.co.il","RESOLVED","FIXED","Unable to open SSH between two machines configured all traffic via SDP"
2197,"minor","P5","RedHat Fedora Core 5","amirv@mellanox.co.il","RESOLVED","FIXED","ttcp fails opening connection while traffic directed via SDP only; errno=97"
2198,"enhancement","P5","RedHat Fedora Core 5","amirv@mellanox.co.il","RESOLVED","FIXED","eeee"
2200,"blocker","P5","All","amirv@mellanox.co.il","CLOSED","FIXED","ipv6 over ipv4 doesn't work"
2201,"critical","P5","All","amirv@mellanox.co.il","CLOSED","FIXED","ipv6 struct sockaddr_in6.sin6_scope_id doesn't work"
2203,"major","P1","Other","vlad@mellanox.co.il","RESOLVED","FIXED","[OFED-1.5.3-rc1] ofa_kernel compilation fails with SLES11SP1 and RHEL6.0 on PPC64"
2207,"normal","P5","All","amirv@mellanox.co.il","CLOSED","FIXED","connect() fails if bind() is done in client - IPv6"
2214,"critical","P5","RHEL 5","vlad@mellanox.co.il","RESOLVED","FIXED","Compilation of daily build OFED 1.5.3 in RHEL 5.5 fails"

^ permalink raw reply

* Re: [PATCH v2] x25: remove the BKL
From: Arnd Bergmann @ 2011-01-27 13:43 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Andrew Hendry, linux-kernel, linux-x25, netdev
In-Reply-To: <1296134447.2614.5.camel@edumazet-laptop>

On Thursday 27 January 2011, Eric Dumazet wrote:
> Le jeudi 27 janvier 2011 à 13:38 +0100, Arnd Bergmann a écrit :
> > diff --git a/net/x25/x25_out.c b/net/x25/x25_out.c
> > index d00649f..f1a6ff1 100644
> > --- a/net/x25/x25_out.c
> > +++ b/net/x25/x25_out.c
> > @@ -68,8 +68,11 @@ int x25_output(struct sock *sk, struct sk_buff *skb)
> >               frontlen = skb_headroom(skb);
> >  
> >               while (skb->len > 0) {
> > -                     if ((skbn = sock_alloc_send_skb(sk, frontlen + max_len,
> > -                                                     noblock, &err)) == NULL){
> > +                     release_sock(sk);
> > +                     skbn = sock_alloc_send_skb(sk, frontlen + max_len,
> > +                                                1, &err);
> > +                     lock_sock(sk);
> > +                     if (!skbn) {
> >                               if (err == -EWOULDBLOCK && noblock){
> >                                       kfree_skb(skb);
> >                                       return sent;
> 
> This part looks strange :
> 
> noblock variable became "const 1 : NOBLOCK"
> 
> Why releasing socket if you dont block in sock_alloc_send_skb() ?

Leftover from an earlier version of the patch, thanks for catching this!

Originally, I wrote this as

	long timeo = sock_sndtimeo(sk, noblock)
	do {
		skbn = sock_alloc_send_skb(sk, frontlen + max_len, 1, &err);
		if (skbn)
			break;

		release_sock(sk);
		timeo = sock_wait_for_wmem(sk, timeo);
		lock_sock(sk);
	} while (timeo);

Then I forgot to flip it back after I noticed that other protocols also just
call release_sock/lock_sock around sock_alloc_send_skb.

I think I'd better go over the whole series and see if there are more things
that got slightly broken...

	Arnd

^ permalink raw reply

* Re: How Audit event triggers in Kernel
From: Steve Grubb @ 2011-01-27 13:42 UTC (permalink / raw)
  To: linux-audit
In-Reply-To: <AANLkTikRiAonQgRZTLiBA8D=6uUUPDf2e4OESMftHHdG@mail.gmail.com>

On Thursday, January 27, 2011 07:14:40 am Ashok Kumar J wrote:
> I saw the function audit_send in the netlink.c file. This function is used
> to send the audit rules set into kernel. My question is  How Audit event
> triggers for system call in kernel.

The short answer id that there is a rule matcher that checks the current syscall 
against the list of rules.

http://lxr.linux.no/#linux+v2.6.37/kernel/auditfilter.c#L657

In reality, its a little more complicated because you have to get the flow of control 
to this function from syscall entry and exit.

http://lxr.linux.no/#linux+v2.6.37/kernel/auditsc.c#L1562
http://lxr.linux.no/#linux+v2.6.37/kernel/auditsc.c#L1674


> My second question is, After getting the reply packet from the netlink
> socket through the function audit_get_reply(). How the audit log format
> achieved for system call before storing the audit log.

The event does not really get any substantial formatting because the audit daemon's 
job is to dequeue as fast as possible and get it to disk. Any display formatting can 
be done by search and reporting tools. But if you wanted to see it, this is the 
function that takes care of this for the RAW format specified in auditd.conf:

https://fedorahosted.org/audit/browser/trunk/src/auditd-event.c#L963


-Steve

^ permalink raw reply

* Re: has the i915 "black screen" boot issue returned?
From: Robert P. J. Day @ 2011-01-27 13:42 UTC (permalink / raw)
  To: Chris Wilson; +Cc: dri-devel
In-Reply-To: <1bdc18$jdgfni@fmsmga002.fm.intel.com>

On Thu, 27 Jan 2011, Chris Wilson wrote:

> On Thu, 27 Jan 2011 07:12:03 -0500 (EST), "Robert P. J. Day" <rpjday@crashcourse.ca> wrote:
> > On Thu, 27 Jan 2011, Chris Wilson wrote:
> >
> > > The only missing detail is what connector is used for the display.
> > > Xorg.log or xrandr --verbose are the easiest.
> >
> >   i can supply those for the currently *successful* boot, is that
> > what you're asking?  because once we're into black screen territory,
> > there's not a whole lot i can tell you.
>
> Indeed. Fortunately the integrated hardware is unlikely to change between
> boots. But more interesting is if you can pin down the regressing commit.

  for me, this appears to be the offending commit:

commit 5e82ea99827f6aa122fbb08f8659e76226ce107b (now testing)
Merge: ec30f34 abb72c8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jan 25 10:46:14 2011 +1000

    Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ai

    * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2
      drm/radeon/kms: add new radeon_info ioctl query for clock crystal freq
      drm/i915: Prevent uninitialised reads during error state capture
      drm/i915: Use consistent mappings for OpRegion between ACPI and i915
      drm/i915: Handle the no-interrupts case for UMS by polling
      drm/i915: Disable high-precision vblank timestamping for UMS
      drm/i915: Increase the amount of defense before computing vblank timestamp
      drm/i915,agp/intel: Do not clear stolen entries
      drm/radeon/kms: simplify atom adjust pll setup
      drm/radeon/kms: match r6xx/r7xx/evergreen asic_reset with previous asics
      drm/radeon/kms: make the mac rv630 quirk generic
      drm/radeon/kms: fix a spelling error in an error message
      drm/radeon/kms: Initialize pageflip spinlocks.
      drm/i915: Recognise non-VGA display devices
      drm/i915: Fix use of invalid array size for ring->sync_seqno
      drm/i915/ringbuffer: Fix use of stale HEAD position whilst polling for spa
      drm/i915: Don't kick-off hangcheck after a DRI interrupt
      drm/i915: Add dependency on CONFIG_TMPFS
      drm/i915: Initialise ring vfuncs for old DRI paths
      drm/i915: make the blitter report buffer modifications to the FBC unit
      drm/i915: set more FBC chicken bits


  anything you want me to try?

rday

-- 

========================================================================
Robert P. J. Day                               Waterloo, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================

^ permalink raw reply

* Re: too big min_free_kbytes
From: Mel Gorman @ 2011-01-27 13:40 UTC (permalink / raw)
  To: Andrea Arcangeli; +Cc: Shaohua Li, Andrew Morton, linux-mm, Chen, Tim C
In-Reply-To: <20110126174236.GV18984@csn.ul.ie>

On Wed, Jan 26, 2011 at 05:42:37PM +0000, Mel Gorman wrote:
> On Wed, Jan 26, 2011 at 04:36:55PM +0000, Mel Gorman wrote:
> > > But the wmarks don't
> > > seem the real offender, maybe it's something related to the tiny pci32
> > > zone that materialize on 4g systems that relocate some little memory
> > > over 4g to make space for the pci32 mmio. I didn't yet finish to debug
> > > it.
> > > 
> > 
> > This has to be it. What I think is happening is that we're in balance_pgdat(),
> > the "Normal" zone is never hitting the watermark and we constantly call
> > "goto loop_again" trying to "rebalance" all zones.
> > 
> 
> Confirmed.
> <SNIP>

How about the following? Functionally it would work but I am concerned
that the logic in balance_pgdat() and kswapd() is getting out of hand
having being adjusted to work with a number of corner cases already. In
the next cycle, it could do with a "do-over" attempt to make it easier
to follow.

==== CUT HERE ====
mm: kswapd: Do not reclaim excessive pages from already balanced zones

When reclaiming for order-0 pages, kswapd requires that all zones be
balanced. Each cycle through balance_pgdat() does background ageing on all
zones if necessary and applies equal pressure on the inactive zone unless
a lot of pages are free already.

A "lot of free pages" is defined as 8*high_watermark which historically has
been reasonably fine as min_free_kbytes was small. However, on systems using
huge pages, it is recommended that min_free_kbytes is higher and it is tuned
with hugeadm --set-recommended-min_free_kbytes. With the introduction of
transparent huge page support, this recommended value is also applied. The
problem then is in the corner cases.

On X86-64 with 4G of memory, min_free_kbytes becomes 67584 so one would
expect around 68M of memory to be free. The Normal zone is approximately
35000 pages so under even normal memory pressure such as copying a large
file, it gets exhausted quickly. As it is getting exhausted, kswapd
applies pressure equally to all zones, including the DMA32 zone. DMA32 is
approximately 700,000 pages with a high watermark of around 23,000 pages. In
this situation, kswapd will reclaim around (23000*8) pages or 718M of pages
before the zone is ignored. What the user sees is kswapd constantly stuck
in D state and free memory far higher than it should be.

This patch addresses the problem by taking into account if kswapd is looping
in balance_pgdat() when deciding if a zone is balanced or not.  If the zone
is relatively small and kswapd is looping or preparing to sleep, then the
zone is considered balanced. If an allocator has hit the low watermark,
kswapd will stay awake (pgdat->kswapd_max_order or classzone_idx) will be
set and reread or will get woken later when real memory pressure exists.

Using a very basic test of cp /dev/sda6 /dev/null where sda6 was an 80G
partition, the amount of free memory without this patch hovered around
the 700M mark and around the 90M mark when applied which is closer to
expectations for the larger default min_free_kbytes with THP enabled.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
---
 mm/vmscan.c |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index f5d90de..3d4ffd3 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2228,6 +2228,35 @@ static bool pgdat_balanced(pg_data_t *pgdat, unsigned long balanced_pages,
 	return balanced_pages > (present_pages >> 2);
 }
 
+static bool zone_balanced(struct zone *zone, int order, unsigned long mark,
+				int classzone_idx, bool firstscan)
+{
+	pg_data_t *pgdat = zone->zone_pgdat;
+
+	/*
+	 * If this is a relatively small zone and kswapd is looping
+	 * for order-0 pages, consider the zone to be balanced so
+	 * kswapd has a chance to go back to sleep. Direct reclaimers
+	 * will wake kswapd again if necessary. Otherwise there is a
+	 * risk that kswapd will reclaim an excessive number of pages
+	 * from larger zones even when allocators do not require it
+	 * due to balance_pgdat reclaiming pages from each zone unless
+	 * free pages > 8*high_watermark which is potentially a large
+	 * number of pages. 
+	 *
+	 * Small is considered to be node_present_pages >> 2 due to
+	 * the "free pages > 8*high_watermark" heuristic. The 
+	 * smallest possible low zone (DMA) and a small high zone
+	 * should in combination be related to the maximum amount
+	 * of memory kswapd will reclaim from the other zones.
+	 */
+	if (!firstscan && order == 0 &&
+			zone->present_pages < pgdat->node_present_pages >> 2)
+		return true;
+
+	return zone_watermark_ok_safe(zone, order, mark, classzone_idx, 0);
+}
+
 /* is kswapd sleeping prematurely? */
 static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining,
 					int classzone_idx)
@@ -2258,8 +2287,8 @@ static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining,
 			continue;
 		}
 
-		if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone),
-							classzone_idx, 0))
+		if (!zone_balanced(zone, order, high_wmark_pages(zone),
+							classzone_idx, false))
 			all_zones_ok = false;
 		else
 			balanced += zone->present_pages;
@@ -2306,6 +2335,7 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
 	int i;
 	int end_zone = 0;	/* Inclusive.  0 = ZONE_DMA */
 	unsigned long total_scanned;
+	bool firstscan;
 	struct reclaim_state *reclaim_state = current->reclaim_state;
 	struct scan_control sc = {
 		.gfp_mask = GFP_KERNEL,
@@ -2444,16 +2474,16 @@ loop_again:
 			    total_scanned > sc.nr_reclaimed + sc.nr_reclaimed / 2)
 				sc.may_writepage = 1;
 
-			if (!zone_watermark_ok_safe(zone, order,
-					high_wmark_pages(zone), end_zone, 0)) {
+			if (!zone_balanced(zone, order,
+					high_wmark_pages(zone), end_zone, firstscan)) {
 				all_zones_ok = 0;
 				/*
 				 * We are still under min water mark.  This
 				 * means that we have a GFP_ATOMIC allocation
 				 * failure risk. Hurry up!
 				 */
-				if (!zone_watermark_ok_safe(zone, order,
-					    min_wmark_pages(zone), end_zone, 0))
+				if (!zone_balanced(zone, order,
+					    min_wmark_pages(zone), end_zone, firstscan))
 					has_under_min_watermark_zone = 1;
 			} else {
 				/*
@@ -2520,6 +2550,8 @@ out:
 		if (sc.nr_reclaimed < SWAP_CLUSTER_MAX)
 			order = sc.order = 0;
 
+		firstscan = false;
+
 		goto loop_again;
 	}
 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related

* [RFC] l2test: add flushable cmd line options
From: Emeltchenko Andrei @ 2011-01-27 13:39 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@nokia.com>

---
 test/l2test.c |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/test/l2test.c b/test/l2test.c
index 17883a9..ed19679 100644
--- a/test/l2test.c
+++ b/test/l2test.c
@@ -90,6 +90,9 @@ static bdaddr_t bdaddr;
 static unsigned short psm = 10;
 static unsigned short cid = 0;
 
+/* Flushable packet mode */
+static int unsigned flushable = 2;
+
 /* Default number of frames to send (-1 = infinite) */
 static int num_frames = -1;
 
@@ -301,6 +304,19 @@ static int do_connect(char *svr)
 		goto error;
 	}
 
+	/* Set flushable mode, when mode is incorrect pass through,
+	 shall we handle bugs? */
+	if (flushable < 2) {
+		opt = flushable;
+		if (setsockopt(sk, SOL_BLUETOOTH, BT_FLUSHABLE,
+					&opt, sizeof(opt)) < 0) {
+			syslog(LOG_ERR, "Can't %s flushable mode: %s (%d)",
+					flushable? "set" : "reset",
+					strerror(errno), errno);
+			goto error;
+		}
+	}
+
 	/* Get current options */
 	memset(&opts, 0, sizeof(opts));
 	optlen = sizeof(opts);
@@ -1087,6 +1103,7 @@ static void usage(void)
 		"\t[-F fcs] use CRC16 check (default = 1)\n"
 		"\t[-Q num] Max Transmit value (default = 3)\n"
 		"\t[-Z size] Transmission Window size (default = 63)\n"
+		"\t[-f mode] Flushable mode\n"
 		"\t[-R] reliable mode\n"
 		"\t[-G] use connectionless channel (datagram)\n"
 		"\t[-U] use sock stream\n"
@@ -1104,7 +1121,7 @@ int main(int argc, char *argv[])
 
 	bacpy(&bdaddr, BDADDR_ANY);
 
-	while ((opt=getopt(argc,argv,"rdscuwmntqxyzpb:i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:RUGAESMT")) != EOF) {
+	while ((opt=getopt(argc,argv,"rdscuwmntqxyzpb:i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:f:RUGAESMT")) != EOF) {
 		switch(opt) {
 		case 'r':
 			mode = RECV;
@@ -1268,6 +1285,10 @@ int main(int argc, char *argv[])
 			txwin_size = atoi(optarg);
 			break;
 
+		case 'f':
+			flushable = atoi(optarg);
+			break;
+
 		case 'J':
 			cid = atoi(optarg);
 			break;
-- 
1.7.1


^ permalink raw reply related

* [U-Boot] QEMU for VersatilePB and U-BOOT-2010.12
From: Dmitriy Kiselev @ 2011-01-27 13:39 UTC (permalink / raw)
  To: u-boot

Hello List,

I am currently trying to build an emulated linux system for arm using all new U-BOOT, Kernel, rootfs stuff. And I was stucked with the problem that I cannot run u-boot-2010.12.tar.bz2 downloaded from ftp://ftp.denx.de/pub/u-boot/ under qemu. Meanwhile u-boot-2010.09.tar.bz2 runs perfectly. Here is what I have and what I did:

My platform:
Host PC: OpenSUSE 11.3 x86-64 with all latest patches (kernel 2.6.34.7-0.7-desktop #1 SMP PREEMPT 2010-12-13 11:13:53 +0100 x86_64 x86_64 x86_64)
GNU arm cross compiler: arm-none-eabi-gcc (Sourcery G++ Lite 2010.09-51) 4.5.1
QEMU: QEMU PC emulator version 0.12.4

What i did after I unpacked the archive:

$ ~/ARM/U-boot/u-boot-2010.12> make versatilepb_config ARCH=arm CROSS_COMPILE=arm-none-eabi-

This worked fine

$~/ARM/U-boot/u-boot-2010.12> make all ARCH=arm CROSS_COMPILE=arm-none-eabi-

This resulted into error not finding CONFIG_SYS_SDRAM_BASE and CONFIG_SYS_INIT_SP_ADDR definitions.

I edited the include/configs/versatile.h file adding there two definitions:
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE \
- GENERATED_GBL_DATA_SIZE)

And then re-launched u-boot compilation envoking:
$~/ARM/U-boot/u-boot-2010.12> make all ARCH=arm CROSS_COMPILE=arm-none-eabi-

This time everything went smoothly and I got compiled u-boot.bin.

But when I started it under QEMU:
~/ARM/U-boot/u-boot-2010.12> qemu-system-arm -M versatilepb -m 128M -nographic -kernel u-boot.bin

This resulted in:

qemu: fatal: Trying to execute code outside RAM or ROM at 0xff000738

R00=fffcbf70 R01=ffff0000 R02=00000000 R03=01000000
R04=ffff0000 R05=fffcbf70 R06=ffff0000 R07=00000000
R08=00ffff80 R09=feff0000 R10=0101dd58 R11=00000000
R12=fffcbfe8 R13=fffcbf68 R14=ff000738 R15=ff000738
PSR=600001d3 -ZC- A svc32

I also tried to debug this problem trying to launch it under QEMU with -s -S flags and envoking DBG.
But still got nothing as remote DBG showed pretty strange startup dump
which does not correlate with u-boot startup source code at all:

(gdb) target remote localhost:1234
gdbarch_find_by_info: info.bfd_arch_info arm
gdbarch_find_by_info: info.byte_order 1 (little)
gdbarch_find_by_info: info.osabi 0 (none)
gdbarch_find_by_info: info.abfd 0x0
gdbarch_find_by_info: info.tdep_info 0x0
gdbarch_find_by_info: Previous architecture 0x83da790 (arm) selected
gdbarch_update_p: New architecture 0x83da790 (arm) selected
gdbarch_find_by_info: info.bfd_arch_info arm
gdbarch_find_by_info: info.byte_order 1 (little)
gdbarch_find_by_info: info.osabi 0 (none)
gdbarch_find_by_info: info.abfd 0x0
gdbarch_find_by_info: info.tdep_info 0x0
gdbarch_find_by_info: Previous architecture 0x83f2910 (arm) selected
gdbarch_update_p: New architecture 0x83f2910 (arm) selected
0x00000000 in ?? ()
=> 0x00000000:	 00 00 a0 e3	mov	r0, #0
(gdb) nexti
Prologue scan stopped at 0xe39ffff8
Prologue scan stopped at 0xe39ffff8
0x00000004 in ?? ()
=> 0x00000004:	 83 10 a0 e3	mov	r1, #131	; 0x83
(gdb)

Please help,

Dmitriy

^ permalink raw reply

* Re: Help - raid not assembling right on boot (was: Resizing a RAID1)
From: Hank Barta @ 2011-01-27 13:39 UTC (permalink / raw)
  To: Justin Piszcz; +Cc: linux-raid
In-Reply-To: <alpine.DEB.2.00.1101270736480.31246@p34.internal.lan>

The system presently boots from /dev/sda:
=============================
hbarta@oak:~$ sudo fdisk -luc /dev/sda

Disk /dev/sda: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c071b

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    39063551    19530752   83  Linux
/dev/sda2        39065598   390721535   175827969    5  Extended
/dev/sda5        39065600    54687743     7811072   82  Linux swap / Solaris
/dev/sda6        54689792   390721535   168015872   83  Linux
hbarta@oak:~$
=============================

Eventually I plan to migrate the RAID to another system where it will
boot from what is now /dev/sd[bc]

At present I have the RAID listed in /etc/fstab so the boot process
stalls when it tries to mount /dev/md2. At that point I can get to a
console and:
- stop a spurious RAID listed in /proc/mdstat. This is named
/dev/md_<something>. I copied /proc/mdstat to /tmp at that point but
this is apparently before /tmp gets cleared on boot.
- stop /dev/md2 At this point in the boot process it has not started to resync.
- assemble /dev/md2. This time it does not start resync.
- mount /dev/md2
- exit the console and complete the boot process.

In the output below, I have highlighted some lines of particular
interest using "<<<<<<<<<<<<<<<<<<<<<<<<"

From dmesg I find:
=============================
[    1.777908] udev: starting version 151
[    1.782359] md: linear personality registered for level -1
...
[    1.797816] md: multipath personality registered for level -4
...
[    1.814115] md: raid0 personality registered for level 0
...
[    2.706178] md: raid1 personality registered for level 1
...
[    2.730265] md: bind<sdb>
   <<<<<<<<<<<<<<<<<<<<<<<<
[    2.768834] md: bind<sdc>
   <<<<<<<<<<<<<<<<<<<<<<<<
[    2.770005] raid1: raid set md2 active with 2 out of 2 mirrors
[    2.770022] md2: detected capacity change from 0 to 1989660377088
[    2.779491]  md2: p1 p2
[    2.810420] md2: p2 size 3886055600 exceeds device capacity,
limited to end of disk
[    2.871677] raid6: int64x1   2414 MB/s
[    3.041683] raid6: int64x2   3306 MB/s
[    3.211675] raid6: int64x4   2498 MB/s
[    3.381687] raid6: int64x8   2189 MB/s
[    3.551687] raid6: sse2x1    3856 MB/s
[    3.721674] raid6: sse2x2    6233 MB/s
[    3.891676] raid6: sse2x4    7434 MB/s
[    3.891678] raid6: using algorithm sse2x4 (7434 MB/s)
[    3.892539] xor: automatically using best checksumming function: generic_sse
[    3.941685]    generic_sse: 11496.800 MB/sec
[    3.941687] xor: using function: generic_sse (11496.800 MB/sec)
[    3.944793] md: raid6 personality registered for level 6
[    3.944795] md: raid5 personality registered for level 5
[    3.944796] md: raid4 personality registered for level 4
[    3.949094] md: raid10 personality registered for level 10
[    4.034790] EXT4-fs (sda1): mounted filesystem with ordered data mode
...
[   15.313074] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   15.322662] md: bind<md2p1>
      <<<<<<<<<<<<<<<<<<<<<<<<
[   15.347522] [drm] ring test succeeded in 1 usecs
=============================

and finally where boot process halts and I intervene manually:

=============================
[   16.147562] EXT4-fs (sda6): mounted filesystem with ordered data mode
[   16.532107] EXT4-fs (md2p2): bad geometry: block count 485756928
exceeds size of device (483135232 blocks)
[  212.816279] md: md_d0 stopped.
[  212.816289] md: unbind<md2p1>
[  212.861783] md: export_rdev(md2p1)
[  225.764663] md: md2 stopped.
[  225.764669] md: unbind<sdc>
[  225.811751] md: export_rdev(sdc)
[  225.811779] md: unbind<sdb>
[  225.891748] md: export_rdev(sdb)
[  249.653886] md: md2 stopped.
[  249.655627] md: bind<sdb2>
[  249.655788] md: bind<sdc2>
[  249.679172] raid1: raid set md2 active with 2 out of 2 mirrors
[  249.679194] md2: detected capacity change from 0 to 1989660377088
[  249.680142]  md2: unknown partition table
[  270.774369] EXT4-fs (md2): mounted filesystem with ordered data mode
=============================
(no further pattern match in dmesg for 'md:')

The following command seems to find a RAID superblock on /dev/sdb and
/dev/sdc which would explain why they are assembled at boot:
=============================
root@oak:/var/log# mdadm --examine --scan -vv
mdadm: No md superblock detected on /dev/block/9:2.
/dev/sdc2:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 19d72028:63677f91:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Tue Jan 25 10:39:52 2011
    Raid Level : raid1
 Used Dev Size : 1943027712 (1853.02 GiB 1989.66 GB)
    Array Size : 1943027712 (1853.02 GiB 1989.66 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 2

   Update Time : Thu Jan 27 07:12:16 2011
         State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 6b4365e0 - correct
        Events : 13448


     Number   Major   Minor   RaidDevice State
this     0       8       34        0      active sync   /dev/sdc2

  0     0       8       34        0      active sync   /dev/sdc2
  1     1       8       18        1      active sync   /dev/sdb2
/dev/sdc1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 954a3be2:f23e1239:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Wed Jan 26 20:20:06 2011
    Raid Level : raid1
 Used Dev Size : 10485696 (10.00 GiB 10.74 GB)
    Array Size : 10485696 (10.00 GiB 10.74 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 0

   Update Time : Wed Jan 26 21:16:05 2011
         State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 25dccb8 - correct
        Events : 3


     Number   Major   Minor   RaidDevice State
this     1       8       33        1      active sync   /dev/sdc1

  0     0       8       17        0      active sync   /dev/sdb1
  1     1       8       33        1      active sync   /dev/sdc1
/dev/sdc:
              <<<<<<<<<<<<<<<<<<<<<<<<
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 19d72028:63677f91:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Tue Jan 25 10:39:52 2011
    Raid Level : raid1
 Used Dev Size : 1943027712 (1853.02 GiB 1989.66 GB)
    Array Size : 1943027712 (1853.02 GiB 1989.66 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 2

   Update Time : Thu Jan 27 07:12:16 2011
         State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 6b4365e0 - correct
        Events : 13448


     Number   Major   Minor   RaidDevice State
this     0       8       34        0      active sync   /dev/sdc2

  0     0       8       34        0      active sync   /dev/sdc2
  1     1       8       18        1      active sync   /dev/sdb2
/dev/sdb2:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 19d72028:63677f91:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Tue Jan 25 10:39:52 2011
    Raid Level : raid1
 Used Dev Size : 1943027712 (1853.02 GiB 1989.66 GB)
    Array Size : 1943027712 (1853.02 GiB 1989.66 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 2

   Update Time : Thu Jan 27 07:12:16 2011
         State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 6b4365d2 - correct
        Events : 13448


     Number   Major   Minor   RaidDevice State
this     1       8       18        1      active sync   /dev/sdb2

  0     0       8       34        0      active sync   /dev/sdc2
  1     1       8       18        1      active sync   /dev/sdb2
/dev/sdb1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 954a3be2:f23e1239:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Wed Jan 26 20:20:06 2011
    Raid Level : raid1
 Used Dev Size : 10485696 (10.00 GiB 10.74 GB)
    Array Size : 10485696 (10.00 GiB 10.74 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 0

   Update Time : Wed Jan 26 21:16:05 2011
         State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 25dccb8 - correct
        Events : 3


     Number   Major   Minor   RaidDevice State
this     1       8       33        1      active sync   /dev/sdc1

  0     0       8       17        0      active sync   /dev/sdb1
  1     1       8       33        1      active sync   /dev/sdc1
/dev/sdb:
             <<<<<<<<<<<<<<<<<<<<<<<<
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 19d72028:63677f91:cd71bfd9:6916a14f (local to host oak)
 Creation Time : Tue Jan 25 10:39:52 2011
    Raid Level : raid1
 Used Dev Size : 1943027712 (1853.02 GiB 1989.66 GB)
    Array Size : 1943027712 (1853.02 GiB 1989.66 GB)
  Raid Devices : 2
 Total Devices : 2
Preferred Minor : 2

   Update Time : Thu Jan 27 07:12:16 2011
         State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
      Checksum : 6b4365d2 - correct
        Events : 13448


     Number   Major   Minor   RaidDevice State
this     1       8       18        1      active sync   /dev/sdb2

  0     0       8       34        0      active sync   /dev/sdc2
  1     1       8       18        1      active sync   /dev/sdb2
mdadm: No md superblock detected on /dev/sda6.
mdadm: No md superblock detected on /dev/sda5.
mdadm: No md superblock detected on /dev/sda2.
mdadm: No md superblock detected on /dev/sda1.
mdadm: No md superblock detected on /dev/sda.
root@oak:/var/log#
=============================

If I try to zero the superblock that seems to be in error, I get:
=============================
root@oak:/var/log# mdadm --zero-superblock /dev/sdb
mdadm: Couldn't open /dev/sdb for write - not zeroing
root@oak:/var/log#
=============================

thanks again,
hank


On Thu, Jan 27, 2011 at 6:37 AM, Justin Piszcz <jpiszcz@lucidpixels.com> wrote:
>
> On Thu, 27 Jan 2011, Hank Barta wrote:
>
>> Thanks for the suggestion:
>>
>> =============================
>> hbarta@oak:~$ sudo fdisk -luc /dev/sd[bc]
>>
>> Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
>> 255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
>> Units = sectors of 1 * 512 = 512 bytes
>> Sector size (logical/physical): 512 bytes / 512 bytes
>> I/O size (minimum/optimal): 512 bytes / 512 bytes
>> Disk identifier: 0x00000000
>>
>>  Device Boot      Start         End      Blocks   Id  System
>> /dev/sdb1            2048    20973567    10485760   fd  Linux raid
>> autodetect
>> /dev/sdb2        20973568  3907029167  1943027800   fd  Linux raid
>> autodetect
>>
>> Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
>> 255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
>> Units = sectors of 1 * 512 = 512 bytes
>> Sector size (logical/physical): 512 bytes / 512 bytes
>> I/O size (minimum/optimal): 512 bytes / 512 bytes
>> Disk identifier: 0x00000000
>>
>>  Device Boot      Start         End      Blocks   Id  System
>> /dev/sdc1            2048    20973567    10485760   fd  Linux raid
>> autodetect
>> /dev/sdc2        20973568  3907029167  1943027800   fd  Linux raid
>> autodetect
>> hbarta@oak:~$
>> =============================
>>
>> Everything seems OK as far as I can see.
>>
>> thanks,
>> hank
>
> Hi,
>
> That looks correct, so you boot from /dev/sdb, /dev/sdc?  Normally when I
> do a RAID1 it is with /dev/sda, /dev/sdb for SATA systems...  It looks
> good, if you reboot again does it want to resync again?
>
> Justin.
>
>
>



--
'03 BMW F650CS - hers
'98 Dakar K12RS - "BABY K" grew up.
'93 R100R w/ Velorex 700 (MBD starts...)
'95 Miata - "OUR LC"
polish visor: apply squashed bugs, rinse, repeat
Beautiful Sunny Winfield, Illinois
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH 1/1] gisi: Updated subscriptions and pipe handling to accomodate additional isimodem versions
From: Jessica Nilsson @ 2011-01-27 13:37 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 19652 bytes --]

---
This is needed in order for isimodem2.5 to work.

Best Regards,
Jessica

 gisi/common.h  |    3 +
 gisi/message.c |    8 +
 gisi/message.h |    1 +
 gisi/modem.c   |  105 ++++++++++++--
 gisi/modem.h   |    4 +
 gisi/pipe.c    |  433 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 6 files changed, 531 insertions(+), 23 deletions(-)

diff --git a/gisi/common.h b/gisi/common.h
index 83a8cf5..c78f893 100644
--- a/gisi/common.h
+++ b/gisi/common.h
@@ -26,6 +26,8 @@
 extern "C" {
 #endif
 
+#define PN_HOST					0x00
+#define PN_MODEM				0x60
 #define PN_COMMGR				0x10
 #define PN_NAMESERVICE				0xDB
 #define PN_FIREWALL				0x43
@@ -35,6 +37,7 @@ enum message_id {
 	PNS_NAME_ADD_REQ =			0x05,
 	PNS_NAME_REMOVE_REQ =			0x07,
 	PNS_SUBSCRIBED_RESOURCES_IND =		0x10,
+	PNS_SUBSCRIBED_RESOURCES_EXTEND_IND =	0x12,
 	COMM_ISI_VERSION_GET_REQ =		0x12,
 	COMM_ISI_VERSION_GET_RESP =		0x13,
 	COMM_ISA_ENTITY_NOT_REACHABLE_RESP =	0x14,
diff --git a/gisi/message.c b/gisi/message.c
index 8f4fe5a..9d00108 100644
--- a/gisi/message.c
+++ b/gisi/message.c
@@ -65,6 +65,14 @@ uint8_t g_isi_msg_resource(const GIsiMessage *msg)
 	return msg->addr->spn_resource;
 }
 
+uint8_t g_isi_msg_device(const GIsiMessage *msg)
+{
+	if (msg == NULL || msg->addr == NULL)
+		return 0;
+
+	return msg->addr->spn_dev;
+}
+
 uint16_t g_isi_msg_object(const GIsiMessage *msg)
 {
 	if (msg == NULL || msg->addr == NULL)
diff --git a/gisi/message.h b/gisi/message.h
index 95348f8..f34ce57 100644
--- a/gisi/message.h
+++ b/gisi/message.h
@@ -52,6 +52,7 @@ int g_isi_msg_version_minor(const GIsiMessage *msg);
 int g_isi_msg_error(const GIsiMessage *msg);
 const char *g_isi_msg_strerror(const GIsiMessage *msg);
 uint8_t g_isi_msg_resource(const GIsiMessage *msg);
+uint8_t g_isi_msg_device(const GIsiMessage *msg);
 uint16_t g_isi_msg_object(const GIsiMessage *msg);
 
 uint8_t g_isi_msg_id(const GIsiMessage *msg);
diff --git a/gisi/modem.c b/gisi/modem.c
index 8750367..7201235 100644
--- a/gisi/modem.c
+++ b/gisi/modem.c
@@ -61,6 +61,7 @@ struct _GIsiModem {
 	unsigned index;
 	GHashTable *services;
 	gboolean subs_source;
+	GIsiVersion version;
 	int req_fd;
 	int ind_fd;
 	guint req_watch;
@@ -87,11 +88,6 @@ static const struct sockaddr_pn namesrv = {
 	.spn_resource = PN_NAMESERVICE,
 };
 
-static const struct sockaddr_pn commgr = {
-	.spn_family = AF_PHONET,
-	.spn_resource = PN_COMMGR,
-};
-
 static GIsiServiceMux *service_get(GIsiModem *modem, uint8_t resource)
 {
 	GIsiServiceMux *mux;
@@ -349,11 +345,34 @@ static gboolean modem_subs_update(gpointer data)
 	gpointer keyptr, value;
 
 	GIsiModem *modem = data;
-	uint8_t msg[3 + 256] = {
-		0, PNS_SUBSCRIBED_RESOURCES_IND,
-		0,
-	};
+	GIsiMessage dmsg;
+	uint8_t msg[3 + 256] = { 0 };
 	uint8_t count = 0;
+	int msg_size = 0;
+	struct sockaddr_pn commgr = {
+		.spn_family = AF_PHONET,
+		.spn_resource = PN_COMMGR,
+	};
+
+	if (g_isi_modem_version_major(modem) == 2 &&
+		g_isi_modem_version_minor(modem) == 5) {
+		uint8_t s_msg[4] = {
+			0, PNS_SUBSCRIBED_RESOURCES_EXTEND_IND,
+			0,
+			0, /* filler */
+		};
+		g_memmove(msg, s_msg, 4);
+		msg_size = 4;
+
+		commgr.spn_dev = PN_MODEM;
+	} else {
+		uint8_t s_msg[3] = {
+			0, PNS_SUBSCRIBED_RESOURCES_IND,
+			0,
+		};
+		g_memmove(msg, s_msg, 3);
+		msg_size = 3;
+	}
 
 	modem->subs_source = 0;
 
@@ -363,13 +382,31 @@ static gboolean modem_subs_update(gpointer data)
 		GIsiServiceMux *mux = value;
 
 		if (mux->subscriptions > 0) {
-			msg[3 + count] = mux->resource;
+
 			count++;
+
+			if (g_isi_modem_version_major(modem) == 2 &&
+				g_isi_modem_version_minor(modem) == 5) {
+				msg[3 + (count * 4)] = mux->resource;
+				msg_size += 4;
+			} else {
+				msg[2 + count] = mux->resource;
+				msg_size += count;
+			}
+
 		}
 	}
 	msg[2] = count;
 
-	sendto(modem->ind_fd, msg, 3 + msg[2], MSG_NOSIGNAL, (void *)&commgr,
+	dmsg.addr = &commgr;
+	dmsg.error = 0;
+	dmsg.data = msg;
+	dmsg.len = msg_size;
+
+	if (modem->trace != NULL)
+		modem->trace(&dmsg, NULL);
+
+	sendto(modem->ind_fd, msg, msg_size, MSG_NOSIGNAL, (void *)&commgr,
 		sizeof(commgr));
 
 	return FALSE;
@@ -499,6 +536,52 @@ GIsiModem *g_isi_modem_create_by_name(const char *name)
 	return g_isi_modem_create(if_nametoindex(name));
 }
 
+guint g_isi_modem_add_to_watch(GIsiModem *modem, int fd)
+{
+	GIOChannel *channel;
+	guint watch;
+
+	if (modem == NULL || fd < 0)
+		return 0;
+
+	channel = g_io_channel_unix_new(fd);
+	g_io_channel_set_close_on_unref(channel, TRUE);
+	g_io_channel_set_encoding(channel, NULL, NULL);
+	g_io_channel_set_buffered(channel, FALSE);
+	watch = g_io_add_watch(channel,
+				G_IO_IN|G_IO_ERR|G_IO_HUP|G_IO_NVAL,
+				isi_callback, modem);
+	g_io_channel_unref(channel);
+
+	return watch;
+}
+
+gboolean g_isi_modem_set_version(GIsiModem *modem, const GIsiVersion version)
+{
+	if (modem == NULL)
+		return FALSE;
+
+	modem->version = version;
+
+	return TRUE;
+}
+
+int g_isi_modem_version_major(const GIsiModem *modem)
+{
+	if (modem == NULL)
+		return -1;
+
+	return modem->version.major;
+}
+
+int g_isi_modem_version_minor(const GIsiModem *modem)
+{
+	if (modem == NULL)
+		return -1;
+
+	return modem->version.minor;
+}
+
 void *g_isi_modem_set_userdata(GIsiModem *modem, void *data)
 {
 	void *old = modem->opaque;
diff --git a/gisi/modem.h b/gisi/modem.h
index f0a1617..361164c 100644
--- a/gisi/modem.h
+++ b/gisi/modem.h
@@ -44,9 +44,13 @@ typedef void (*GIsiDebugFunc)(const char *fmt, ...);
 GIsiModem *g_isi_modem_create(unsigned index);
 GIsiModem *g_isi_modem_create_by_name(const char *name);
 void g_isi_modem_destroy(GIsiModem *modem);
+guint g_isi_modem_add_to_watch(GIsiModem *modem, int fd);
 unsigned g_isi_modem_index(GIsiModem *modem);
 void g_isi_modem_set_trace(GIsiModem *modem, GIsiNotifyFunc notify);
 void g_isi_modem_set_debug(GIsiModem *modem, GIsiDebugFunc debug);
+gboolean g_isi_modem_set_version(GIsiModem *modem, const GIsiVersion version);
+int g_isi_modem_version_major(const GIsiModem *modem);
+int g_isi_modem_version_minor(const GIsiModem *modem);
 void *g_isi_modem_set_userdata(GIsiModem *modem, void *data);
 void *g_isi_modem_get_userdata(GIsiModem *modem);
 
diff --git a/gisi/pipe.c b/gisi/pipe.c
index 1bd5140..14d8b1c 100644
--- a/gisi/pipe.c
+++ b/gisi/pipe.c
@@ -24,15 +24,22 @@
 #endif
 
 #include <stdint.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <fcntl.h>
+#include <unistd.h>
 #include <errno.h>
 #include <glib.h>
 
 #include "client.h"
 #include "pipe.h"
+#include "common.h"
 
 #define PN_PIPE			0xD9
 #define PN_PIPE_INVALID_HANDLE	0xFF
 
+#define PN_OBJ_PEP_GPRS 0x30
+
 struct isi_pipe_create_req {
 	uint8_t cmd;
 	uint8_t state_after;
@@ -73,6 +80,53 @@ struct isi_pipe_resp {
 	uint8_t error2;
 };
 
+struct isi_pep_connect_req{
+	uint8_t cmd;
+	uint8_t pipe_handle;
+	uint8_t state_after;
+	uint8_t other_pep_type;
+	uint8_t filler1;
+	uint8_t filler2;
+	uint8_t n_sb;
+	uint8_t data_sb;
+	uint8_t sb_len;
+	uint8_t alignment;
+	uint8_t filler;
+};
+
+struct isi_pep_enable_req{
+	uint8_t cmd;
+	uint8_t pipe_handle;
+	uint8_t filler;
+};
+
+struct isi_pep_disconnect_req{
+	uint8_t cmd;
+	uint8_t pipe_handle;
+	uint8_t filler;
+};
+
+struct isi_pep_resp {
+	uint8_t pipe_handle;
+	uint8_t error_code;
+};
+
+struct isi_pipe_created_ind{
+	uint8_t cmd;
+	uint8_t pipe_handle;
+	uint8_t n_sb;
+	uint8_t sb_neg_fc;
+	uint8_t sb_len;
+	uint8_t tx_fc;
+	uint8_t rx_fc;
+};
+
+struct isi_pipe_enabled_ind{
+	uint8_t cmd;
+	uint8_t pipe_handle;
+	uint8_t filler;
+};
+
 enum isi_pipe_message_id {
 	PNS_PIPE_CREATE_REQ,
 	PNS_PIPE_CREATE_RESP,
@@ -86,6 +140,8 @@ enum isi_pipe_message_id {
 	PNS_PIPE_REDIRECT_RESP,
 	PNS_PIPE_DISABLE_REQ,
 	PNS_PIPE_DISABLE_RESP,
+	PNS_PIPE_CREATED_IND =		0x61,
+	PNS_PIPE_ENABLED_IND =		0x64
 };
 
 enum pn_pipe_error {	/* error codes */
@@ -103,16 +159,47 @@ enum pn_pipe_error {	/* error codes */
 	PN_PIPE_ERR_NOT_SUPPORTED,
 };
 
+enum isi_pep_type {
+	PN_PEP_TYPE_COMMON
+};
+
+enum isi_pep_message_id {
+	PNS_PEP_CONNECT_REQ =		0x40,
+	PNS_PEP_CONNECT_RESP =		0x41,
+	PNS_PEP_DISCONNECT_REQ =	0x42,
+	PNS_PEP_DISCONNECT_RESP =	0x43,
+	PNS_PEP_ENABLE_REQ =		0x46,
+	PNS_PEP_ENABLE_RESP =		0x47,
+};
+
+enum isi_pep_sb_id {
+	PN_PIPE_SB_NEGOTIATED_FC =	0x03,
+	PN_PIPE_SB_ALIGNED_DATA =	0x06,
+};
+
 enum pn_pipe_state {	/* initial pipe state */
 	PN_PIPE_DISABLE,
 	PN_PIPE_ENABLE,
 };
 
 enum pn_msg_priority {
-	PN_MSG_PRIORITY_LOW = 1,
+	PN_MSG_PRIORITY_LOW =	1,
 	PN_MSG_PRIORITY_HIGH,
 };
 
+enum pn_flow_control {
+	PN_NO_FLOW_CONTROL =		0x00,
+	PN_LEGACY_FLOW_CONTROL =	0x01,
+	PN_ONE_CREDIT_FLOW_CONTROL =	0x02,
+	PN_MULTI_CREDIT_FLOW_CONTROL =	0x03,
+};
+
+struct _GIsiPipeServer {
+	int fd;
+	guint watch;
+};
+typedef struct _GIsiPipeServer GIsiPipeServer;
+
 struct _GIsiPipe {
 	GIsiClient *client;
 	GIsiPipeHandler handler;
@@ -122,8 +209,13 @@ struct _GIsiPipe {
 	uint8_t handle;
 	gboolean enabled;
 	gboolean enabling;
+	GIsiPipeServer *server;
 };
 
+static gboolean g_isi_pep_connect(GIsiPipe *pipe, uint8_t obj, uint8_t dev);
+static void g_isi_pep_enable(GIsiPipe *pipe, uint8_t dev);
+static void g_isi_pep_disconnect(GIsiPipe *pipe, uint8_t dev);
+
 static int g_isi_pipe_error(enum pn_pipe_error code)
 {
 	switch (code) {
@@ -168,6 +260,147 @@ static void g_isi_pipe_handle_error(GIsiPipe *pipe, uint8_t code)
 		pipe->error_handler(pipe);
 }
 
+static GIsiPipeServer *g_isi_pipe_server_create(GIsiModem *modem)
+{
+	GIsiPipeServer *server;
+	unsigned ifindex = g_isi_modem_index(modem);
+	struct sockaddr_pn addr = {
+		.spn_family = AF_PHONET,
+		.spn_resource = PN_PIPE,
+		.spn_obj = PN_OBJ_PEP_GPRS,
+	};
+	char buf[IF_NAMESIZE];
+	int fd = socket(PF_PHONET, SOCK_DGRAM, 0);
+
+	if (fd == -1)
+		return NULL;
+
+	server = g_try_new0(GIsiPipeServer, 1);
+	if (server == NULL)
+		goto error;
+
+	fcntl(fd, F_SETFD, FD_CLOEXEC);
+	/* Use blocking mode on purpose. */
+
+	if (ifindex == 0)
+		g_warning("Unspecified modem interface index");
+	else if (if_indextoname(ifindex, buf) == NULL ||
+		setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, buf, IF_NAMESIZE))
+		goto error;
+
+	if (bind(fd, (void *)&addr, sizeof(addr)))
+		goto error;
+
+	server->fd = fd;
+	server->watch = g_isi_modem_add_to_watch(modem, fd);
+	if (!server->watch)
+		goto error;
+
+	return server;
+
+error:
+	close(fd);
+	return NULL;
+}
+
+static void g_isi_pipe_server_destroy(GIsiPipeServer *server)
+{
+
+	if (server->watch > 0)
+		g_source_remove(server->watch);
+
+	g_free(server);
+}
+
+static void g_isi_pep_connected(const GIsiMessage *msg, void *data)
+{
+	struct isi_pep_resp *resp;
+	size_t len = sizeof(struct isi_pipe_resp);
+	GIsiPipe *pipe = data;
+	GIsiClient *client = pipe->client;
+	struct isi_pipe_created_ind ind = {
+		.cmd = PNS_PIPE_CREATED_IND,
+		.pipe_handle = 0x00,
+		.n_sb = 0x01,
+		.sb_neg_fc = PN_PIPE_SB_NEGOTIATED_FC,
+		.sb_len = 0x04,
+		.tx_fc = PN_LEGACY_FLOW_CONTROL,
+		.rx_fc = PN_LEGACY_FLOW_CONTROL,
+	};
+
+	if (g_isi_msg_error(msg) < 0) {
+		g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_TIMEOUT);
+		return;
+	}
+
+	if (g_isi_msg_id(msg) != PNS_PEP_CONNECT_RESP)
+		return;
+
+	if (!g_isi_msg_data_get_struct(msg, 0, (const void **) &resp, len))
+		return;
+
+	if (resp->pipe_handle == PN_PIPE_INVALID_HANDLE) {
+		g_isi_pipe_handle_error(pipe, resp->error_code);
+		return;
+	}
+
+	pipe->handle = resp->pipe_handle;
+	ind.pipe_handle = resp->pipe_handle;
+
+	if (g_isi_request_sendto(g_isi_client_modem(client), msg->addr, &ind,
+			sizeof(ind), G_ISI_CLIENT_DEFAULT_TIMEOUT,
+			NULL, NULL, NULL) == NULL) {
+			g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_GENERAL);
+			return;
+	}
+
+	if (g_isi_msg_device(msg) == PN_HOST) {
+		g_isi_pep_connect(pipe, pipe->handle, PN_MODEM);
+		return;
+	}
+
+	if (pipe->enabling)
+		g_isi_pipe_start(pipe);
+
+	if (pipe->handler)
+		pipe->handler(pipe);
+}
+
+static gboolean g_isi_pep_connect(GIsiPipe *pipe, uint8_t obj, uint8_t dev)
+{
+	GIsiClient *client = pipe->client;
+	struct sockaddr_pn dst = {
+		.spn_family = AF_PHONET,
+	};
+	struct isi_pep_connect_req msg = {
+		.cmd = PNS_PEP_CONNECT_REQ,
+		.pipe_handle = obj,
+		.state_after = PN_PIPE_DISABLE,
+		.other_pep_type = PN_PEP_TYPE_COMMON,
+		.filler1 = 0x00,
+		.filler2 = 0x00,
+		.n_sb = 0x00,
+	};
+
+	if (dev == PN_HOST) {
+		dst.spn_dev = PN_HOST;
+		dst.spn_resource = PN_PIPE;
+		dst.spn_obj = obj;
+	} else if (dev == PN_MODEM) {
+		dst.spn_dev = PN_MODEM;
+		dst.spn_resource = g_isi_client_resource(client);
+		dst.spn_obj = PN_OBJ_PEP_GPRS;
+	} else
+		return FALSE;
+
+	if (g_isi_request_sendto(g_isi_client_modem(client), &dst, &msg,
+			sizeof(msg), G_ISI_CLIENT_DEFAULT_TIMEOUT,
+			g_isi_pep_connected, pipe, NULL) == NULL)
+		return FALSE;
+
+	return TRUE;
+}
+
 static void g_isi_pipe_created(const GIsiMessage *msg, void *data)
 {
 	struct isi_pipe_resp *resp;
@@ -247,16 +480,115 @@ GIsiPipe *g_isi_pipe_create(GIsiModem *modem, GIsiPipeHandler cb, uint16_t obj1,
 	pipe->enabled = FALSE;
 	pipe->handle = PN_PIPE_INVALID_HANDLE;
 
-	if (g_isi_client_send(pipe->client, &msg, len,
+	if (g_isi_modem_version_major(modem) == 2 &&
+		g_isi_modem_version_minor(modem) == 5) {
+
+		pipe->server = g_isi_pipe_server_create(modem);
+		if (pipe->server == NULL)
+			goto error;
+
+		if (!g_isi_pep_connect(pipe, obj1 & 0xFF, PN_HOST)) {
+			g_isi_pipe_server_destroy(pipe->server);
+			goto error;
+		}
+	} else {
+
+		if (!g_isi_client_send(pipe->client, &msg, len,
 					g_isi_pipe_created, pipe, NULL))
-		return pipe;
+			goto error;
 
+	}
+
+	return pipe;
+
+error:
 	g_isi_client_destroy(pipe->client);
 	g_free(pipe);
 
 	return NULL;
 }
 
+static void g_isi_pep_enabled(const GIsiMessage *msg, void *data)
+{
+	struct isi_pep_resp *resp;
+	size_t len = sizeof(struct isi_pep_resp);
+	GIsiPipe *pipe = data;
+	GIsiClient *client = pipe->client;
+	struct isi_pipe_enabled_ind ind = {
+		.cmd = PNS_PIPE_ENABLED_IND,
+		.pipe_handle = pipe->handle,
+		.filler = 0x00,
+	};
+
+	if (g_isi_msg_error(msg) < 0) {
+		g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_TIMEOUT);
+		return;
+	}
+
+	if (g_isi_msg_id(msg) != PNS_PEP_ENABLE_RESP)
+		return;
+
+	if (!g_isi_msg_data_get_struct(msg, 0, (const void **) &resp, len))
+		return;
+
+	if (pipe->handle != resp->pipe_handle) {
+		g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_INVALID_HANDLE);
+		return;
+	}
+
+	g_isi_pipe_handle_error(pipe, resp->error_code);
+	if (pipe->error)
+		return;
+
+	if (g_isi_request_sendto(g_isi_client_modem(client), msg->addr, &ind,
+			sizeof(ind), G_ISI_CLIENT_DEFAULT_TIMEOUT,
+			NULL, NULL, NULL) == NULL) {
+			g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_GENERAL);
+			return;
+	}
+
+	if (g_isi_msg_device(msg) == PN_MODEM) {
+		g_isi_pep_enable(pipe, PN_HOST);
+		return;
+	}
+
+	pipe->enabling = FALSE;
+
+	if (!pipe->error)
+		pipe->enabled = TRUE;
+}
+
+static void g_isi_pep_enable(GIsiPipe *pipe, uint8_t dev)
+{
+	GIsiClient *client = pipe->client;
+	struct sockaddr_pn dst = {
+		.spn_family = AF_PHONET,
+	};
+	struct isi_pep_enable_req msg = {
+		.cmd = PNS_PEP_ENABLE_REQ,
+		.pipe_handle = pipe->handle,
+		.filler = 0x00,
+	};
+
+	if (dev == PN_HOST) {
+		dst.spn_dev = PN_HOST;
+		dst.spn_resource = PN_PIPE;
+		dst.spn_obj = pipe->handle;
+	} else if (dev == PN_MODEM) {
+		dst.spn_dev = PN_MODEM;
+		dst.spn_resource = g_isi_client_resource(client);
+		dst.spn_obj = PN_OBJ_PEP_GPRS;
+	} else
+		return;
+
+	if (g_isi_request_sendto(g_isi_client_modem(client), &dst, &msg,
+			sizeof(msg), G_ISI_CLIENT_DEFAULT_TIMEOUT,
+			g_isi_pep_enabled, pipe, NULL) == NULL)
+		return;
+
+	return;
+}
+
 static void g_isi_pipe_enabled(const GIsiMessage *msg, void *data)
 {
 	GIsiPipe *pipe = data;
@@ -287,14 +619,19 @@ static void g_isi_pipe_enabled(const GIsiMessage *msg, void *data)
 
 static void g_isi_pipe_enable(GIsiPipe *pipe)
 {
+	GIsiModem *modem = g_isi_client_modem(pipe->client);
 	struct isi_pipe_enable_req msg = {
 		.cmd = PNS_PIPE_ENABLE_REQ,
 		.pipe_handle = pipe->handle,
 	};
 	size_t len = sizeof(msg);
 
-	g_isi_client_send(pipe->client, &msg, len,
-				g_isi_pipe_enabled, pipe, NULL);
+	if (g_isi_modem_version_major(modem) == 2 &&
+		g_isi_modem_version_minor(modem) == 5)
+		g_isi_pep_enable(pipe, PN_MODEM);
+	else
+		g_isi_client_send(pipe->client, &msg, len,
+					g_isi_pipe_enabled, pipe, NULL);
 }
 
 /**
@@ -339,8 +676,8 @@ static void g_isi_pipe_removed(const GIsiMessage *msg, void *data)
 	if (pipe->handle != resp->pipe_handle)
 		return;
 
-	pipe->handle = PN_PIPE_INVALID_HANDLE;
-	pipe->error = -EPIPE;
+	g_isi_client_destroy(pipe->client);
+	g_free(pipe);
 }
 
 
@@ -356,17 +693,89 @@ static void g_isi_pipe_remove(GIsiPipe *pipe)
 				g_isi_pipe_removed, pipe, NULL);
 }
 
+static void g_isi_pep_disconnected(const GIsiMessage *msg, void *data)
+{
+	struct isi_pep_resp *resp;
+	size_t len = sizeof(struct isi_pep_resp);
+	GIsiPipe *pipe = data;
+
+	if (g_isi_msg_error(msg) < 0) {
+		g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_TIMEOUT);
+		return;
+	}
+
+	if (g_isi_msg_id(msg) != PNS_PEP_DISCONNECT_RESP)
+		return;
+
+	if (!g_isi_msg_data_get_struct(msg, 0, (const void **) &resp, len))
+		return;
+
+	if (resp->pipe_handle == PN_PIPE_INVALID_HANDLE) {
+		g_isi_pipe_handle_error(pipe, resp->error_code);
+		return;
+	}
+
+	if (pipe->handle != resp->pipe_handle) {
+		g_isi_pipe_handle_error(pipe, PN_PIPE_ERR_INVALID_HANDLE);
+		return;
+	}
+
+	if (g_isi_msg_device(msg) == PN_HOST) {
+		g_isi_pep_disconnect(pipe, PN_MODEM);
+		return;
+	}
+
+	g_isi_pipe_server_destroy(pipe->server);
+	g_isi_client_destroy(pipe->client);
+	g_free(pipe);
+}
+
+static void g_isi_pep_disconnect(GIsiPipe *pipe, uint8_t dev)
+{
+	GIsiClient *client = pipe->client;
+	struct sockaddr_pn dst = {
+		.spn_family = AF_PHONET,
+	};
+	struct isi_pep_disconnect_req msg = {
+		.cmd = PNS_PEP_DISCONNECT_REQ,
+		.pipe_handle = pipe->handle,
+		.filler = 0x00,
+	};
+
+	if (dev == PN_HOST) {
+		dst.spn_dev = PN_HOST;
+		dst.spn_resource = PN_PIPE;
+		dst.spn_obj = pipe->handle;
+	} else if (dev == PN_MODEM) {
+		dst.spn_dev = PN_MODEM;
+		dst.spn_resource = g_isi_client_resource(client);
+		dst.spn_obj = PN_OBJ_PEP_GPRS;
+	} else
+		return;
+
+	if (g_isi_request_sendto(g_isi_client_modem(client), &dst, &msg,
+			sizeof(msg), G_ISI_CLIENT_DEFAULT_TIMEOUT,
+			g_isi_pep_disconnected, pipe, NULL) == NULL)
+		return;
+
+	return;
+}
+
 /**
  * Destroy a pipe. If it was connected, it is removed.
  * @param pipe pipe as returned from g_isi_pipe_create()
  */
 void g_isi_pipe_destroy(GIsiPipe *pipe)
 {
-	if (!pipe->error)
-		g_isi_pipe_remove(pipe);
-
-	g_isi_client_destroy(pipe->client);
-	g_free(pipe);
+	GIsiModem *modem = g_isi_client_modem(pipe->client);
+
+	if (!pipe->error) {
+		if (g_isi_modem_version_major(modem) == 2 &&
+			g_isi_modem_version_minor(modem) == 5)
+			g_isi_pep_disconnect(pipe, PN_HOST);
+		else
+			g_isi_pipe_remove(pipe);
+	}
 }
 
 void g_isi_pipe_set_error_handler(GIsiPipe *pipe, GIsiPipeErrorHandler cb)
-- 
1.7.3.2


^ permalink raw reply related

* Re: [Xenomai-help] Problems with rt_task_create and rt_task_join
From: Gilles Chanteperdrix @ 2011-01-27 13:36 UTC (permalink / raw)
  To: Michel Rinaldi; +Cc: xenomai
In-Reply-To: <29228600.131296118733562.JavaMail.SYSTEM@PC-MRINALDI>

Michel Rinaldi wrote:
> Posted by Gilles Chanteperdrix on January 25, 2011 - 14:27: 
> 
>> Well, no. dd if=/dev/zero of=/dev/null is far from being a proper load. 
>> What you should do is at least to create some disk and network activity, 
>> continuously. And the ideal, is to run the LTP test in parallel. If you 
>> can not, then at least run hackbench in a loop. All this during several 
>> hours. 
> 
> Ok. I run LTP test and latency test in parallel for about 15 hours continuously. 
> I have this result at the end: 
> 
> RTD| 6.182| 7.627| 47.662| 0| 0| 15:04:32/15:04:32 

Strange, here, the LTP test takes only around 2 hours. Just to be sure:
you also generated disk and network activity in parallel to LTP and
latency? If yes, then this system has no issue with Xenomai, and the
problem you have with your application is in the application itself.

-- 
                                                                Gilles.


^ permalink raw reply

* Re: device(s) namespace
From: Serge E. Hallyn @ 2011-01-27 13:35 UTC (permalink / raw)
  To: Oren Laadan; +Cc: Linux Containers
In-Reply-To: <4D404C0E.6040603-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>

Quoting Oren Laadan (orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org):
> Hi,
> 
> I vaguely recall some discussions/ideas about the possibility
> of a devices namespace, its pros and cons, and alternative.
> Related to that is also device viruatlization, and isolation
> of devices in containers.
> 
> Any thoughts and or pointers to past/current discussions are
> welcome :)

I'm hoping to get my archive disk out this weekend or monday
and search for these, if noone else finds them before that.

-serge

^ permalink raw reply

* Re: rootfs image size
From: Aleksandr Koltsoff @ 2011-01-27 13:34 UTC (permalink / raw)
  To: Chris Tapp; +Cc: yocto
In-Reply-To: <46CAF87B-6605-4026-88C3-47258B9FDDB7@keylevel.com>

Chris Tapp wrote:
> I've built poky-image-minimal for atom-pc using the 0.9 Poky release.
> 
> This gives me an ext3 rootfs of over 80MB, which doesn't sound minimal
> to me ;-)
> 
> Can I reduce the size of the image, or is it expected to be this size?

Hi there,

The rpm packaging version does has some issues (half-statically built
binaries, full SAT-solver which might be an overkill for a minimal
image, etc).

I got much better results by switching to PACKAGE_CLASSES ?=
"package_ipk" in local.conf.

This will not be an RPM based system, but the image size will be
significantly smaller (especially if you're trying to reduce minimal).

Also, some fixes (post 0.9) should drop the rpm size requirement a bit,
if you want to try git/master.

regards,

ak.
-- 
Best regards,

Aleksandr Koltsoff
Head of Software Development, EKE Building Technology Systems
+358 44 566 2030, Piispanportti 7, 02240 Espoo, Finland
-= Easy Home Control for Everyone @ www.ebts.fi =-


^ permalink raw reply

* RE: thermal: Avoid CONFIG_NET compile dependency
From: R, Durgadoss @ 2011-01-27 13:34 UTC (permalink / raw)
  To: Thomas Renninger, Guenter Roeck
  Cc: Jean Delvare, Zhang, Rui, Len Brown, linux-acpi@vger.kernel.org,
	Yu, Fenghua
In-Reply-To: <201101271048.29091.trenn@suse.de>

> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Thomas Renninger
> Sent: Thursday, January 27, 2011 3:18 PM
> To: Guenter Roeck
> Cc: Jean Delvare; R, Durgadoss; Zhang, Rui; Len Brown; linux-
> acpi@vger.kernel.org; Yu, Fenghua
> Subject: Re: thermal: Avoid CONFIG_NET compile dependency
> 
> On Tuesday, January 25, 2011 05:25:36 PM Guenter Roeck wrote:
> > On Tue, Jan 25, 2011 at 11:18:36AM -0500, Thomas Renninger wrote:
> > > On Tuesday, January 25, 2011 02:43:15 PM Guenter Roeck wrote:
> > > > On Tue, Jan 25, 2011 at 04:48:43AM -0500, Jean Delvare wrote:
> > > > > On Tuesday 25 January 2011 05:47:56 am R, Durgadoss wrote:
> > > ...
> > > > > I don't remember the details, but one thing for sure if that you can't
> > > > > change the format of existing attributes the hwmon subsystem (and
> > > > > libsensors) is using. These are standardized per
> > > > > Documentation/hwmon/sysfs-interface, so they can't be changed. But
> there
> > > > > is no problem with registering a second class device with the thermal
> > > > > subsystem and adding whatever attributes you want to have there.
> > > > >
> > > > A secondary problem is that thermal subsystem drivers register themselves
> > > > with the hwmon subsystem - at least if CONFIG_THERMAL_HWMON is defined.
> > > > So it doesn't really make much sense for a driver to register itself
> > > > as thermal driver _and_ as hwmon driver, since it may end up being listed
> > > > twice as hwmon device.
> > > Having a very quick look at coretemp, this one only provides thermal data,
> > > right?
> > > So it should register as a thermal driver which in turn tells userspace
> > > that lsmsensors can retrieve data from it.
> > > The data would then get exported via:
> > > /sys/devices/virtual/thermal/
> > > and the whole platform code can get removed.
> > >
> > That would be an option.
> What would be the next steps then?
> Whatabout:
>    1) Reverting the current thermal_netlink implementation
> 
>    2) Make coretemp register as a thermal driver.
>       This can be done on top of Durgadoss' enhancements.
>

Yes. 1) and 2) are fine with me.

> 
>    3) Come up with a more generic and more thermal bound
>       (do not export things to the whole kernel if possible)
>       thermal netlink implementation.
>       Important is a robust interface. No need to define all
>       possible events, they can be added one by one if thinkpad
>       or whatever users need them.
>       But the format should not need to be changed in the recent
>       future.
>       Might be worth to put this into an own file:
>       drivers/thermal/thermal_netlink.c

Since we are saying any driver that uses the netlink call _must_ register with
the thermal framework, its better this code be in thermal_sys.c.

>    4) Ideally coretemp.c does not need a special hook to trigger
>       the event. If, it could be some kind of thermal driver
>       callback it got when registering as a thermal driver.
>       Like that the thermal netlink events are hidden and cannot be
>       mis-used by arbitrary drivers, but drivers must register
>       as a thermal driver to be able to trigger them.

In this case, we should consider Jean's point of redundancy.
If CONFIG_THERMAL_HWMON is defined, the interfaces will be present in two
different places.
Or should we make it optional in the thermal framework to register or
Not register with hwmon ?
May be by passing some flag in thermal_zone_device_register?
Rui, need your suggestion here.

Moreover, if we make any driver that wants to use netlink, register with
the thermal framework (redundancy issue should be resolved though..), the problem of
unique originator id will be solved. Then, we can use enum like
the one Rui suggested, to start with. Later, when the need arises, we can add more.


Thanks,
Durga

^ permalink raw reply

* Re: Question on power-save
From: Johannes Berg @ 2011-01-27 13:34 UTC (permalink / raw)
  To: Ben Greear; +Cc: linux-wireless
In-Reply-To: <4D40C122.9020402@candelatech.com>

On Wed, 2011-01-26 at 16:49 -0800, Ben Greear wrote:
> I was looking at this ps_enable method:
> 
> static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)

If you read the comment in front of the function, is it clearer?

Yes, it disables PS locally, but it tells the AP we've gone to PS.

johannes


^ permalink raw reply

* Re: [PATCH 2/4] ptrace: remove the extra wake_up_process() from ptrace_detach()
From: Tejun Heo @ 2011-01-27 13:34 UTC (permalink / raw)
  To: Roland McGrath; +Cc: oleg, linux-kernel, rjw, jan.kratochvil
In-Reply-To: <20110117221340.E6A4F180996@magilla.sf.frob.com>

Hello,

On Mon, Jan 17, 2011 at 02:13:40PM -0800, Roland McGrath wrote:
> Of course I agree that the current code is wrong here.  But I'm still not
> at all clear on what practical compatibility problems it introduces.  This
> change is OK if and only if we are really making the only area clean and
> well-defined in the same release cycle.

I don't follow what you meant by the above sentence.  Can you please
clarify a bit?

> It doesn't really matter that the old behavior was ill-defined and
> unreliable in absolute terms, because the practical userland
> experience of it in real-world cases is what userland has grown to
> expect.  We can't break any such expectations until we have a clear
> answer about how to solve the problems correctly.

It's slightly more serious than that.  Calling wake_up_process()
unconditionally can cause a quite serious failure.  It wakes up a
process in any state and there are code paths which aren't prepared to
be woken up unless certain conditions are met.  A safer choice can be
changing it to wake up only tasks in interruptible sleep.

I have very difficult time imagining what real user visible
implication it would have in negative and noticeable manner, so while
I do agree that we should proceed carefully, I think it would be
better to take the chance and remove the erratic behavior.  We have
release cycles and testing at multiple layers after all.  If we find
out that it breaks something in serious manner, we can always revert.

Thank you.

-- 
tejun

^ permalink raw reply

* [Bug 33445] NVS 3100M : Blank screen on kernel module loading
From: bugzilla-daemon-CC+yJ3UmIYqDUpFQwHEjaQ @ 2011-01-27 13:34 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
In-Reply-To: <bug-33445-8800-V0hAGp6uBxMKqLRl/0Ahz6D7qz1kEfGD2LY78lusg7I@public.gmane.org/>

https://bugs.freedesktop.org/show_bug.cgi?id=33445

--- Comment #2 from celelibi-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org 2011-01-27 05:34:05 PST ---
Created an attachment (id=42587)
 --> (https://bugs.freedesktop.org/attachment.cgi?id=42587)
vga rom extracted with vbtracetool

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

^ permalink raw reply

* RE: [RFC] doc: Proposal for LTE/IMS API.
From: Kai.Vehmanen @ 2011-01-27 13:33 UTC (permalink / raw)
  To: ofono
In-Reply-To: <1296134046.1520.152.camel@aeonflux>

[-- Attachment #1: Type: text/plain, Size: 883 bytes --]

Hi,

On 27 Jan 2011, Marcel Holtmann wrote:
>> +		array{dict,array{dict}} QosFilters [readonly, optional]
>> +
>> +			Information about the QoSes and associated Packet
>> +			Filters for the Default PDN and it's dedicated bearers.
>> +			It is organized as a list of QoS definitions with
>> +			a list of corresponding packet filters.
> 
> We really need to understand what the IMS application will need. If
> this is about codecs or other things, then maybe oFono should give codec
> advise directly. Proposals are welcome. Right now this looks like going
> overboard.

this is used e.g. for SDP preconditions mechanism used in IMS:
http://www.faqs.org/rfcs/rfc3312.html

The QoS is signalled on a per port/media basis, so relaying 
the packet-filters seems like a sane approach to me (cannot really
say the same about 3312, but that's a different thing ;P).


^ permalink raw reply

* Re: [uclinux-dist-devel] touch screen ads7846/7843 devicetree support
From: Thomas Chou @ 2011-01-27 13:31 UTC (permalink / raw)
  To: Hennerich, Michael
  Cc: Nios2 development list, Mike Frysinger,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	device-drivers-devel-ZG0+EudsQA8dtHy/vicBwGD2FQJk+8+b@public.gmane.org,
	uclinux-dist-devel-ZG0+EudsQA8dtHy/vicBwGD2FQJk+8+b@public.gmane.org
In-Reply-To: <544AC56F16B56944AEC3BD4E3D591771324C105D75-gpnycfiEEVR7xzP2fcxY8GoKb0G9Rp+C@public.gmane.org>

Dear Michael,

On 01/27/2011 08:24 PM, Hennerich, Michael wrote:
> This driver is a SPI bus client driver. PPC is using devicetree for ages now,
> and they don't have problems instantiating this or any other SPI bus driver..

Thanks for the pointer. I looked in powerpc dir and found one usage in

linux-2.6/arch/powerpc/platforms/512x/pdm360ng.c

I will try to follow it.

Best regards,
Thomas

^ permalink raw reply

* unable to put RTL8192SU in master mode
From: raghunathan.kailasanathan @ 2011-01-27 13:31 UTC (permalink / raw)
  To: linux-wireless

Hi folks,
I have a USB dongle with realtek 8192SU wireless chipset and am using the 8712u linux driver.

Since this driver is not mac80211 compliant I am using iwconfig to change the mode to "master". Though this
command successfully changes the mode I am unable to connect to this AP from another station, even using
unsecured method. It does not even show up in the station scan list.  Are there some other params I need to 
set using iwconfig ?

Or is the 8712u driver not supporting master mode "sufficiently" enough ?...in which case is some latest
driver available for this thing?

Thanks
RK

^ permalink raw reply

* Re: [PATCH v2 2/6] nl80211: Pass probe response data to drivers
From: Johannes Berg @ 2011-01-27 13:29 UTC (permalink / raw)
  To: Arik Nemtsov; +Cc: linux-wireless, Luciano Coelho, John W. Linville
In-Reply-To: <AANLkTimTASMMUhofp=1o=Z6-dY7v8T8uoNLbqYK4TStv@mail.gmail.com>

On Wed, 2011-01-26 at 23:51 +0200, Arik Nemtsov wrote:
> On Wed, Jan 26, 2011 at 10:32, Johannes Berg <johannes@sipsolutions.net> wrote:
> > On Wed, 2011-01-26 at 08:00 +0200, Arik Nemtsov wrote:
> >
> >> >> > Why use a separate command for this, and not do it like the SSID? I also
> >> >>
> >> >> Its only relevant to AP-mode (at least for now) so bss_conf didn't
> >> >> seem appropriate.
> >> >> Also since its a dynamically allocated buffer it should be protected by RCU.
> >> >
> >> > But all that is unrelated to the nl80211 API, no? Also the SSID already
> >> > uses bss_conf too, and it's AP mode too...
> >>
> >> Do you have a preferred alternative?
> >
> > What's wrong with putting it in the same place as the SSID?
> 
> Just put it as a pointer inside ieee80211_bss_conf? (It will still
> have to be RCU managed and all).
> About nl80211 API - I tried making it as similar as possible to the
> way the beacon works, but I guess I can pass it with bss_parameters as
> well.

Wait, no, I don't get it -- what does the nl80211 API have to do with
how mac80211 manages it? I think for the nl80211 API the new command
doesn't make a whole lot of sense. What happens in mac80211 I don't
think matters much.

johannes


^ permalink raw reply

* [PATCH] MFD: DaVinci: Fix voice codec device name
From: Manjunathappa, Prakash @ 2011-01-27 13:28 UTC (permalink / raw)
  To: linux-arm-kernel

Fix the device name in DaVinci Voice Codec MFD driver to load
davinci-vcif and cq93vc codec client drivers.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
---
This patch applies to Linus's tree at [1].

[1] http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
---
 drivers/mfd/davinci_voicecodec.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c
index 33c923d..fdd8a1b 100644
--- a/drivers/mfd/davinci_voicecodec.c
+++ b/drivers/mfd/davinci_voicecodec.c
@@ -118,12 +118,12 @@ static int __init davinci_vc_probe(struct platform_device *pdev)
 
 	/* Voice codec interface client */
 	cell = &davinci_vc->cells[DAVINCI_VC_VCIF_CELL];
-	cell->name = "davinci_vcif";
+	cell->name = "davinci-vcif";
 	cell->driver_data = davinci_vc;
 
 	/* Voice codec CQ93VC client */
 	cell = &davinci_vc->cells[DAVINCI_VC_CQ93VC_CELL];
-	cell->name = "cq93vc";
+	cell->name = "cq93vc-codec";
 	cell->driver_data = davinci_vc;
 
 	ret = mfd_add_devices(&pdev->dev, pdev->id, davinci_vc->cells,
-- 
1.7.1

^ permalink raw reply related

* [PATCH] MFD: DaVinci: Fix voice codec device name
From: Manjunathappa, Prakash @ 2011-01-27 13:28 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
	broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E,
	davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/,
	stable-DgEjT+Ai2ygdnm+yROfE0A,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	lrg-kDsPt+C1G03kYMGBc/C6ZA

Fix the device name in DaVinci Voice Codec MFD driver to load
davinci-vcif and cq93vc codec client drivers.

Signed-off-by: Manjunathappa, Prakash <prakash.pm-l0cyMroinI0@public.gmane.org>
---
This patch applies to Linus's tree at [1].

[1] http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
---
 drivers/mfd/davinci_voicecodec.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c
index 33c923d..fdd8a1b 100644
--- a/drivers/mfd/davinci_voicecodec.c
+++ b/drivers/mfd/davinci_voicecodec.c
@@ -118,12 +118,12 @@ static int __init davinci_vc_probe(struct platform_device *pdev)
 
 	/* Voice codec interface client */
 	cell = &davinci_vc->cells[DAVINCI_VC_VCIF_CELL];
-	cell->name = "davinci_vcif";
+	cell->name = "davinci-vcif";
 	cell->driver_data = davinci_vc;
 
 	/* Voice codec CQ93VC client */
 	cell = &davinci_vc->cells[DAVINCI_VC_CQ93VC_CELL];
-	cell->name = "cq93vc";
+	cell->name = "cq93vc-codec";
 	cell->driver_data = davinci_vc;
 
 	ret = mfd_add_devices(&pdev->dev, pdev->id, davinci_vc->cells,
-- 
1.7.1

^ permalink raw reply related

* Re: version
From: Helmut Hullen @ 2011-01-27 13:28 UTC (permalink / raw)
  To: linux-btrfs
In-Reply-To: <1296114256-sup-4788@think>

Hallo, Chris,

Du meintest am 27.01.11:

>> crashes with the "dmesg" lines
>>
>> --------------------- dmesg -------------------
>>
>> bio too big device sdc (256 > 240)
>> bio too big device sdc (256 > 240)
>> bio too big device sdc (256 > 240)
>> bio too big device sdc (256 > 240)
>> ------------[ cut here ]------------
>> kernel BUG at fs/btrfs/volumes.c:2097!

> Ugh, this one is an old friend I thought I had fixed up.  The two
> devices have different limits on the max size of the bio, and we're
> using one that is too large.

> I'll get it fixed for the next rc.

Seems to be not related to SSD or CFdisk; I've run the same commands  
with two real HDs and got the same error messages.

That problem appears with Kernel 2.6.38-rc2, it doesn't appear with  
Kernel 2.6.37 (but there I've still the ENOSPC problem).

Viele Gruesse!
Helmut

^ permalink raw reply

* [PATCH 09/13] ARM i.MX51 mx51 3ds: remove unnecessary CONFIG_SERIAL_IMX ifdefs
From: Sergei Shtylyov @ 2011-01-27 13:26 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1296133233-1062-10-git-send-email-s.hauer@pengutronix.de>

Hello.

On 27-01-2011 16:00, Sascha Hauer wrote:

> Signed-off-by: Sascha Hauer<s.hauer@pengutronix.de>
> ---
>   arch/arm/mach-mx5/board-mx51_3ds.c |   14 ++++----------
>   1 files changed, 4 insertions(+), 10 deletions(-)

> diff --git a/arch/arm/mach-mx5/board-mx51_3ds.c b/arch/arm/mach-mx5/board-mx51_3ds.c
> index 8a0619b..feb2800 100644
> --- a/arch/arm/mach-mx5/board-mx51_3ds.c
> +++ b/arch/arm/mach-mx5/board-mx51_3ds.c
> @@ -71,22 +71,13 @@ static iomux_v3_cfg_t mx51_3ds_pads[] = {
>   };
>
>   /* Serial ports */
> -#if defined(CONFIG_SERIAL_IMX) || defined(CONFIG_SERIAL_IMX_MODULE)
>   static const struct imxuart_platform_data uart_pdata __initconst = {
>   	.flags = IMXUART_HAVE_RTSCTS,
>   };
>
>   static inline void mxc_init_imx_uart(void)
>   {
> -	imx51_add_imx_uart(0, &uart_pdata);
> -	imx51_add_imx_uart(1, &uart_pdata);
> -	imx51_add_imx_uart(2, &uart_pdata);
> -}
> -#else /* !SERIAL_IMX */
> -static inline void mxc_init_imx_uart(void)
> -{
>   }

    Why then leave the empty function?

> -#endif /* SERIAL_IMX */
>
>   #if defined(CONFIG_KEYBOARD_IMX) || defined(CONFIG_KEYBOARD_IMX_MODULE)
>   static int mx51_3ds_board_keymap[] = {
> @@ -161,7 +152,10 @@ static void __init mxc_board_init(void)
>   {
>   	mxc_iomux_v3_setup_multiple_pads(mx51_3ds_pads,
>   					ARRAY_SIZE(mx51_3ds_pads));
> -	mxc_init_imx_uart();
> +
> +	imx51_add_imx_uart(0, &uart_pdata);
> +	imx51_add_imx_uart(1, &uart_pdata);
> +	imx51_add_imx_uart(2, &uart_pdata);
>
>   	imx51_add_ecspi(1,&mx51_3ds_ecspi2_pdata);
>   	spi_register_board_info(mx51_3ds_spi_nor_device,

WBR, Sergei

^ permalink raw reply

* Re: [PATCHSET RFC] ptrace,signal: clean transition between STOPPED and TRACED
From: Tejun Heo @ 2011-01-27 13:23 UTC (permalink / raw)
  To: Roland McGrath; +Cc: oleg, jan.kratochvil, linux-kernel, torvalds, akpm
In-Reply-To: <20110118021133.C14FA1807B7@magilla.sf.frob.com>

Hello, sorry about the delay.

On Mon, Jan 17, 2011 at 06:11:33PM -0800, Roland McGrath wrote:
> > 1. When attaching to a STOPPED task or a traced task stops for group
> >    stop, the tracee now enters TRACED instead of STOPPED.  This is
> >    visible via fs/proc but, more importantly, SIGCONT is ignored if a
> >    task is TRACED.
> 
> That is probably OK, but I'm still not entirely sure about it.
> 
> >    This may, for example, affect the operation of strace but given how
> >    strace always need to issue further ptrace operations on trap to
> >    determine what's going on, I doubt it would actually be worse.
> 
> I'm not clear on what effect on strace you have in mind.

I was trying to imagine a case where this could cause a problem.  If
there is a program which PTRACE_ATTACH's and then immediately follows
with SIGCONT and expects it to be processed, the end result wouldn't
be what it expects, but I don't think this is an actual problem we
need to worry about.

> > 2. The transition between STOPPED and TRACED involves a short window
> >    of RUNNING inbetween.  On attach, the transition is hidden from the
> >    tracer using GROUP_STOP_TRAPPING but it still is visible to other
> >    threads in the tracer's group.  IOW, if another thread performs
> >    WNOHANG wait(2) on the tracee while attach is in progress, the
> >    wait(2) may fail even if the tracee is known to be in stopped state
> >    before.
> > 
> >    The same problem exists the other direction during detach.
> >    Currently, the code doesn't try to hide this transition even from
> >    the tracer.  IOW, if the tracer attaches to a stopped task,
> >    detaches, reattaches and then performs WNOHANG wait(2), the wait(2)
> >    may fail.  However, given the previous behavior where the tracee is
> >    always woken up by wake_up_process() on detach, this is highly
> >    unlikely to cause any problem.
> 
> This seems more problematic to me.  I don't like that start/stop window
> at all.

Which case are you worried about?  Another thread doing WNOHANG
wait(2) or the same ptracer trying to re-attach immediately after
detaching?  Or both?

> Saying "wait may fail" is not sufficiently precise to be helpful.  Please
> be more clear.  If "fail" means ECHILD, that is unacceptable.  If "fail"
> means a WNOHANG wait returns 0 when userland already "knows" that the
> thread is topped, that might be more acceptable.

It's the latter.  The only thing which changes is that the task might
not be in the exact expected state for brief amount of time.

For the initial STOPPED -> TRACED transition, the race window doesn't
exist for the ptracer itself.  It's only visible if someone else than
the ptrace does the wait(2) which is a pretty convoluted use case to
begin with.

For TRACED -> STOPPED -> TRACED transition (attach right after
detach), it is visible to the ptracer but again I don't think this is
even remotely reasonable use case.  Plus, it never worked.  We've been
issuing SIGCONT unconditionally on TRACED -> STOPPED anyway.

Thank you.

-- 
tejun

^ permalink raw reply


This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.