* 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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
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.