commit 35da7a307c535f9c2929cae277f3df425c9f9b1e Merge: 5f05647 7ad58c0 Author: Linus Torvalds Date: Sat Oct 23 11:55:00 2010 -0700 Merge branch 'for-2.6.37/core' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.37/core' of git://git.kernel.dk/linux-2.6-block: block: fix use-after-free bug in blk throttle code commit 5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0 Merge: 02f3603 ec37a48 Author: Linus Torvalds Date: Sat Oct 23 11:47:02 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits) bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL. vlan: Calling vlan_hwaccel_do_receive() is always valid. tproxy: use the interface primary IP address as a default value for --on-ip tproxy: added IPv6 support to the socket match cxgb3: function namespace cleanup tproxy: added IPv6 support to the TPROXY target tproxy: added IPv6 socket lookup function to nf_tproxy_core be2net: Changes to use only priority codes allowed by f/w tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled tproxy: added tproxy sockopt interface in the IPV6 layer tproxy: added udp6_lib_lookup function tproxy: added const specifiers to udp lookup functions tproxy: split off ipv6 defragmentation to a separate module l2tp: small cleanup nf_nat: restrict ICMP translation for embedded header can: mcp251x: fix generation of error frames can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set can-raw: add msg_flags to distinguish local traffic 9p: client code cleanup rds: make local functions/variables static ... Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and drivers/net/wireless/ath/ath9k/debug.c as per David commit 7ad58c028652753814054f4e3ac58f925e7343f4 Author: Jens Axboe Date: Sat Oct 23 20:40:26 2010 +0200 block: fix use-after-free bug in blk throttle code blk_throtl_exit() frees the throttle data hanging off the queue in blk_cleanup_queue(), but blk_put_queue() will indirectly dereference this data when calling blk_sync_queue() which in turns calls throtl_shutdown_timer_wq(). Fix this by moving the freeing of the throttle data to when the queue is truly being released, and post the call to blk_sync_queue(). Reported-by: Ingo Molnar Tested-by: Ingo Molnar Signed-off-by: Jens Axboe commit 02f36038c568111ad4fc433f6fa760ff5e38fab4 Merge: 6c2754c 676cb02 07bd851 50f2d7f 892df7f 68f4d5a b365a85 6554287 Author: Linus Torvalds Date: Sat Oct 23 08:25:36 2010 -0700 Merge branches 'softirq-for-linus', 'x86-debug-for-linus', 'x86-numa-for-linus', 'x86-quirks-for-linus', 'x86-setup-for-linus', 'x86-uv-for-linus' and 'x86-vm86-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'softirq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: softirqs: Make wakeup_softirqd static * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, asm: Restore parentheses around one pushl_cfi argument x86, asm: Fix ancient-GAS workaround x86, asm: Fix CFI macro invocations to deal with shortcomings in gas * 'x86-numa-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, numa: Assign CPUs to nodes in round-robin manner on fake NUMA * 'x86-quirks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: HPET force enable for CX700 / VIA Epia LT * 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, setup: Use string copy operation to optimze copy in kernel compression * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, UV: Use allocated buffer in tlb_uv.c:tunables_read() * 'x86-vm86-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers. commit 6c2754c28f2388a276fe21edde826f2113c8f60e Author: Linus Torvalds Date: Sat Oct 23 08:14:12 2010 -0700 Revert "tty: Add a new file /proc/tty/consoles" This reverts commit f4a3e0bceb57466c31757f25e4e0ed108d1299ec. Jiri Sladby points out that the tty structure we're using may already be gone, and Al Viro doesn't hold back in complaining about the random loading of 'filp->private_data' which doesn't have to be a pointer at all, nor does checking the magic field for TTY_MAGIC prove anything. Belated review by Al: "a) global variable depending on stdin of the last opener? Affecting output of read(2)? Really? b) iterator is broken; list should be locked in ->start(), unlocked in ->stop() and *NOT* unlocked/relocked in ->next() c) ->show() ought to do nothing in case of ->device == NULL, instead of skipping those in ->next()/->start() d) regardless of the merits of the bright idea about asterisk at that line in output *and* regardless of (a), the implementation is not only atrociously ugly, it's actually very likely to be a roothole. Verifying that Cthulhu knows what number happens to be address of a tty_struct by blindly dereferencing memory at that address... Ouch. Please revert that crap." And Christoph pipes in and NAK's the approach of walking fd tables etc too. So it's pretty unanimous. Noticed-by: Jri Slaby Requested-by: Al Viro Cc: Greg Kroah-Hartman Cc: Werner Fink Cc: Alan Cox Cc: Christoph Hellwig Signed-off-by: Linus Torvalds commit ab34c02afeafd047a831e6fe2a4dd875ce86bee0 Merge: 7f38839 6b81e14 Author: Linus Torvalds Date: Sat Oct 23 01:26:47 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (36 commits) nilfs2: eliminate sparse warning - "context imbalance" nilfs2: eliminate sparse warnings - "symbol not declared" nilfs2: get rid of bdi from nilfs object nilfs2: change license of exported header file nilfs2: add bdev freeze/thaw support nilfs2: accept 64-bit checkpoint numbers in cp mount option nilfs2: remove own inode allocator and destructor for metadata files nilfs2: get rid of back pointer to writable sb instance nilfs2: get rid of mi_nilfs back pointer to nilfs object nilfs2: see state of root dentry for mount check of snapshots nilfs2: use iget for all metadata files nilfs2: get rid of GCDAT inode nilfs2: add routines to redirect access to buffers of DAT file nilfs2: add routines to roll back state of DAT file nilfs2: add routines to save and restore bmap state nilfs2: do not allocate nilfs_mdt_info structure to gc-inodes nilfs2: allow nilfs_clear_inode to clear metadata file inodes nilfs2: get rid of snapshot mount flag nilfs2: simplify life cycle management of nilfs object nilfs2: do not allocate multiple super block instances for a device ... commit 7f3883962870dd28b5f2322ac44a9d03640ef448 Merge: 10f2a2b b9ac41e Author: Linus Torvalds Date: Fri Oct 22 21:12:27 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (47 commits) Blackfin: bfin_spi.h: add MMR peripheral layout Blackfin: bfin_ppi.h: start a common PPI/EPPI header Blackfin: bfin_can.h: add missing VERSION/VERSION2 MMRs Blackfin: bf538: add missing SIC_RVECT define Blackfin: bf561: rewrite SICA_xxx to just SIC_xxx Blackfin: bf54x: add missing SIC_RVECT definition Blackfin: H8606: move 8250 irqflags to platform resources Blackfin: glue XIP/ROM kernel kconfigs Blackfin: update sparse flags for latest upstream changes Blackfin: coreb: update ioctl numbers Blackfin: coreb: add gpl module license Blackfin: bf518-ezkit: add ssm2603 codec resources Blackfin: bf51x/bf52x: fix 16/32bit SPORT MMR helpers Blackfin: tll6527m: new board port Blackfin: bf526-ezbrd/bf527-ezkit: add NAND partition for u-boot Blackfin: merge kernel init memory back into main memory region Blackfin: gpio: add peripheral group check Blackfin: dma: bf54x: add missing break for SPORT1 TX IRQ Blackfin: add new cacheflush syscall Blackfin: bf548-ezkit: increase u-boot partition size ... commit 10f2a2b0f68abf39c06cf519cbc1740fa50f900b Merge: 8814011 b40827f Author: Linus Torvalds Date: Fri Oct 22 20:37:50 2010 -0700 Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-32, mm: Add an initial page table for core bootstrapping commit 8814011679d1a47d8b0158fc991727a5859471a0 Merge: 5cc1035 495363d Author: Linus Torvalds Date: Fri Oct 22 20:35:12 2010 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: kdb,debug_core: adjust master cpu switch logic against new debug_core locking debug_core: refactor locking for master/slave cpus x86,kgdb: remove unnecessary call to kgdb_correct_hw_break() debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter() kdb,kgdb: fix sparse fixups kdb: Fix oops in kdb_unregister kdb,ftdump: Remove reference to internal kdb include kdb: Allow kernel loadable modules to add kdb shell functions debug_core: stop rcu warnings on kernel resume debug_core: move all watch dog syncs to a single function x86,kgdb: fix debugger hw breakpoint test regression in 2.6.35 commit 5cc103506289de7ee0a0b526ae0381541990cad4 Merge: 73ecf3a 92ca0dc Author: Linus Torvalds Date: Fri Oct 22 20:30:48 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (141 commits) USB: mct_u232: fix broken close USB: gadget: amd5536udc.c: fix error path USB: imx21-hcd - fix off by one resource size calculation usb: gadget: fix Kconfig warning usb: r8a66597-udc: Add processing when USB was removed. mxc_udc: add workaround for ENGcm09152 for i.MX35 USB: ftdi_sio: add device ids for ScienceScope USB: musb: AM35x: Workaround for fifo read issue USB: musb: add musb support for AM35x USB: AM35x: Add musb support usb: Fix linker errors with CONFIG_PM=n USB: ohci-sh - use resource_size instead of defining its own resource_len macro USB: isp1362-hcd - use resource_size instead of defining its own resource_len macro USB: isp116x-hcd - use resource_size instead of defining its own resource_len macro USB: xhci: Fix compile error when CONFIG_PM=n USB: accept some invalid ep0-maxpacket values USB: xHCI: PCI power management implementation USB: xHCI: bus power management implementation USB: xHCI: port remote wakeup implementation USB: xHCI: port power management implementation ... Manually fix up (non-data) conflict: the SCSI merge gad renamed the 'hw_sector_size' member to 'physical_block_size', and the USB tree brought a new use of it. commit 73ecf3a6e3f0206bf56a0fefe3b3eda042fb7034 Merge: b9da057 cd3ecad Author: Linus Torvalds Date: Fri Oct 22 19:59:04 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (49 commits) serial8250: ratelimit "too much work" error serial: bfin_sport_uart: speed up sport RX sample rate to be 3% faster serial: abstraction for 8250 legacy ports serial/imx: check that the buffer is non-empty before sending it out serial: mfd: add more baud rates support jsm: Remove the uart port on errors Alchemy: Add UART PM methods. 8250: allow platforms to override PM hook. altera_uart: Don't use plain integer as NULL pointer altera_uart: Fix missing prototype for registering an early console altera_uart: Fixup type usage of port flags altera_uart: Make it possible to use Altera UART and 8250 ports together altera_uart: Add support for different address strides altera_uart: Add support for getting mapbase and IRQ from resources altera_uart: Add support for polling mode (IRQ-less) serial: Factor out uart_poll_timeout() from 8250 driver serial: mark the 8250 driver as maintained serial: 8250: Don't delay after transmitter is ready. tty: MAINTAINERS: add drivers/serial/jsm/ as maintained driver vcs: invoke the vt update callback when /dev/vcs* is written to ... commit b9da0571050c09863e59f94d0b8594a290d61b88 Merge: f8cae0f 5abd935 Author: Linus Torvalds Date: Fri Oct 22 19:36:42 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (31 commits) driver core: Display error codes when class suspend fails Driver core: Add section count to memory_block struct Driver core: Add mutex for adding/removing memory blocks Driver core: Move find_memory_block routine hpilo: Despecificate driver from iLO generation driver core: Convert link_mem_sections to use find_memory_block_hinted. driver core: Introduce find_memory_block_hinted which utilizes kset_find_obj_hinted. kobject: Introduce kset_find_obj_hinted. driver core: fix build for CONFIG_BLOCK not enabled driver-core: base: change to new flag variable sysfs: only access bin file vm_ops with the active lock sysfs: Fail bin file mmap if vma close is implemented. FW_LOADER: fix kconfig dependency warning on HOTPLUG uio: Statically allocate uio_class and use class .dev_attrs. uio: Support 2^MINOR_BITS minors uio: Cleanup irq handling. uio: Don't clear driver data uio: Fix lack of locking in init_uio_class SYSFS: Allow boot time switching between deprecated and modern sysfs layout driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices ... commit f8cae0f03f75adb54b1d48ddbc90f84a1f5de186 Author: Linus Torvalds Date: Fri Oct 22 19:30:38 2010 -0700 ocfs2: drop the BLKDEV_IFL_WAIT flag Commit dd3932eddf42 ("block: remove BLKDEV_IFL_WAIT") had removed the flag argument to blkdev_issue_flush(), but the ocfs2 merge brought in a new one. It didn't cause a merge conflict, so the merges silently worked out fine, but the result didn't actually compile. Signed-off-by: Linus Torvalds commit d2ecad9faca2221ae6f664f146f0dcae661bf39d Merge: c70b529 cdff08e Author: Linus Torvalds Date: Fri Oct 22 17:52:29 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: (56 commits) [CIFS] move close processing from cifs_close to cifsFileInfo_put cifs: convert cifs_tcp_ses_lock from a rwlock to a spinlock cifs: cancel_delayed_work() + flush_scheduled_work() -> cancel_delayed_work_sync() Clean up two declarations of blob_len cifs: move cifsFileInfo_put to file.c cifs: convert GlobalSMBSeslock from a rwlock to regular spinlock [CIFS] Fix minor checkpatch warning and update cifs version cifs: move cifs_new_fileinfo to file.c cifs: eliminate pfile pointer from cifsFileInfo cifs: cifs_write argument change and cleanup cifs: clean up cifs_reopen_file cifs: eliminate the inode argument from cifs_new_fileinfo cifs: eliminate oflags option from cifs_new_fileinfo cifs: fix flags handling in cifs_posix_open cifs: eliminate cifs_posix_open_inode_helper cifs: handle FindFirst failure gracefully NTLM authentication and signing - Calculate auth response per smb session cifs: don't use vfsmount to pin superblock for oplock breaks cifs: keep dentry reference in cifsFileInfo instead of inode reference cifs: on multiuser mount, set ownership to current_fsuid/current_fsgid (try #7) ... Fix up trivial conflict in fs/cifs/cifsfs.c due to added/removed header files commit c70b5296e775cde46cfcb2d860ba160108a5ec7a Merge: 80c226f 58ff4bd Author: Linus Torvalds Date: Fri Oct 22 17:34:15 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (84 commits) [SCSI] be2iscsi: SGE Len == 64K [SCSI] be2iscsi: Remove premature free of cid [SCSI] be2iscsi: More time for FW [SCSI] libsas: fix bug for vacant phy [SCSI] sd: Fix overflow with big physical blocks [SCSI] st: add MTWEOFI to write filemarks without flushing drive buffer [SCSI] libsas: Don't issue commands to devices that have been hot-removed [SCSI] megaraid_sas: Add Online Controller Reset to MegaRAID SAS drive [SCSI] lpfc 8.3.17: Update lpfc driver version to 8.3.17 [SCSI] lpfc 8.3.17: Replace function reset methodology [SCSI] lpfc 8.3.17: SCSI fixes [SCSI] lpfc 8.3.17: BSG fixes [SCSI] lpfc 8.3.17: SLI Additions and Fixes [SCSI] lpfc 8.3.17: Code Cleanup and Locking fixes [SCSI] zfcp: Remove scsi_cmnd->serial_number from debug traces [SCSI] ipr: fix array error logging [SCSI] aha152x: enable PCMCIA on 64bit [SCSI] scsi_dh_alua: Handle all states correctly [SCSI] cxgb4i: connection and ddp setting update [SCSI] cxgb3i: fixed connection over vlan ... commit 80c226fbef56576946c9655fcb2ab62e63404d12 Merge: 2c15bd0 779b7e6 Author: Linus Torvalds Date: Fri Oct 22 17:33:35 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k: Add missing I/O macros {in,out}{w,l}_p() for !CONFIG_ISA m68k: Remove big kernel lock in cache flush code m68k: __pa(): cast arg to long fbdev: atafb - Remove undead ifdef ATAFB_FALCON zorro: Fix device_register() error handling fbdev/m68k: Fix section mismatches in q40fb.c m68k/m68knommu: merge the MMU and non-MMU traps.h m68k/m68knommu: merge MMU and non-MMU thread_info.h m68k/m68knommu: merge MMU and non-MMU atomic.h m68k/m68knommu: clean up page.h m68k/m68knommu: merge machdep.h files into a single file m68k/m68knommu: merge MMU and non-MMU string.h m68k/m68knommu: Remove dead SMP config option m68k: move definition of THREAD_SIZE into thread_info_mm.h m68k: Use asm-generic/ioctls.h (enables termiox) m68k: Remove dead GG2 config option commit 2c15bd00a5d6b2b64e006e91e2196f0c6a764cb6 Merge: 5fe3a5a 269cddd Author: Linus Torvalds Date: Fri Oct 22 17:33:16 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm: dlm: Fix dlm lock status block comment in dlm.h dlm: Don't send callback to node making lock request when "try 1cb" fails commit 5fe3a5ae5c09d53b2b3c7a971e1d87ab3a747055 Merge: 0fc0531 39dc948 Author: Linus Torvalds Date: Fri Oct 22 17:32:27 2010 -0700 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs * 'for-linus' of git://oss.sgi.com/xfs/xfs: (36 commits) xfs: semaphore cleanup xfs: Extend project quotas to support 32bit project ids xfs: remove xfs_buf wrappers xfs: remove xfs_cred.h xfs: remove xfs_globals.h xfs: remove xfs_version.h xfs: remove xfs_refcache.h xfs: fix the xfs_trans_committed xfs: remove unused t_callback field in struct xfs_trans xfs: fix bogus m_maxagi check in xfs_iget xfs: do not use xfs_mod_incore_sb_batch for per-cpu counters xfs: do not use xfs_mod_incore_sb for per-cpu counters xfs: remove XFS_MOUNT_NO_PERCPU_SB xfs: pack xfs_buf structure more tightly xfs: convert buffer cache hash to rbtree xfs: serialise inode reclaim within an AG xfs: batch inode reclaim lookup xfs: implement batched inode lookups for AG walking xfs: split out inode walk inode grabbing xfs: split inode AG walking into separate code for reclaim ... commit 0fc0531e0a2174377a86fd6953ecaa00287d8f70 Merge: 91b7450 9329ba9 Author: Linus Torvalds Date: Fri Oct 22 17:31:36 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: percpu: update comments to reflect that percpu allocations are always zero-filled percpu: Optimize __get_cpu_var() x86, percpu: Optimize this_cpu_ptr percpu: clear memory allocated with the km allocator percpu: fix build breakage on s390 and cleanup build configuration tests percpu: use percpu allocator on UP too percpu: reduce PCPU_MIN_UNIT_SIZE to 32k vmalloc: pcpu_get/free_vm_areas() aren't needed on UP Fixed up trivial conflicts in include/linux/percpu.h commit 6b81e14e645016597c81e71cd27ee5c57c3a3c36 Author: Jiro SEKIBA Date: Thu Oct 14 13:52:00 2010 +0900 nilfs2: eliminate sparse warning - "context imbalance" insert sparse annotations to fix following sparse warning. fs/nilfs2/segment.c:2681:3: warning: context imbalance in 'nilfs_segctor_kill_thread' - unexpected unlock nilfs_segctor_kill_thread is only called inside sc_state_lock lock. sparse doesn't detect the context and warn "unexpected unlock". __acquires/__releases pretend to lock/unlock the sc_state_lock for sparse. Signed-off-by: Jiro SEKIBA Signed-off-by: Ryusuke Konishi commit abc0b50b6b9a9de8ae210f059598265a5438f2c4 Author: Jiro SEKIBA Date: Fri Oct 8 22:37:27 2010 +0900 nilfs2: eliminate sparse warnings - "symbol not declared" change nilfs_dat_commit_free and nilfs_inode_cachep static to fix following warnings fs/nilfs2/super.c:72:19: warning: symbol 'nilfs_inode_cachep' was not declared. Should it be static? fs/nilfs2/dat.c:106:6: warning: symbol 'nilfs_dat_commit_free' was not declared. Should it be static? Signed-off-by: Jiro SEKIBA Signed-off-by: Ryusuke Konishi commit 026a7d63d55ba8656ed8c8a0733265cc7d47bb8c Author: Ryusuke Konishi Date: Thu Oct 7 14:19:48 2010 +0900 nilfs2: get rid of bdi from nilfs object Nilfs now can use sb->s_bdi to get backing_dev_info, so we use it instead of ns_bdi on the nilfs object and remove ns_bdi. Signed-off-by: Ryusuke Konishi commit c486f3895d6dc751f7c0f04f0fa67390ce4d168e Author: Ryusuke Konishi Date: Sun Oct 3 17:44:03 2010 +0900 nilfs2: change license of exported header file This allows other projects to carry copies of the header file related to ABI and disk format (i.e. "nilfs2_fs.h") without it or distributors having to worry about effects on the project's overall license terms. It's also desired for switching the license of nilfs library to LGPL. Jiro SEKIBA pointed out these license issues (Message-ID: <87tylo7msw.wl%jir@sekiba.com>), and he suggested switching license of the library and nilfs2_fs.h to GNU Lesser General Public License. We take in his suggestion to avoid the license issues. Signed-off-by: Ryusuke Konishi Cc: Jiro SEKIBA Cc: linux-nilfs commit 5beb6e0b2008386571fd342d0a4a14f5c8c0baf8 Author: Ryusuke Konishi Date: Mon Sep 20 18:19:06 2010 +0900 nilfs2: add bdev freeze/thaw support Nilfs hasn't supported the freeze/thaw feature because it didn't work due to the peculiar design that multiple super block instances could be allocated for a device. This limitation was removed by the patch "nilfs2: do not allocate multiple super block instances for a device". So now this adds the freeze/thaw support to nilfs. Signed-off-by: Ryusuke Konishi commit c05dbfc2609993ccc067879579e2a7726e12b3f1 Author: Ryusuke Konishi Date: Thu Sep 16 00:36:24 2010 +0900 nilfs2: accept 64-bit checkpoint numbers in cp mount option The current implementation doesn't mount snapshots with checkpoint numbers larger than INT_MAX since it uses match_int() for parsing "cp=" mount option. This uses simple_strtoull() for the conversion to resolve the issue. Signed-off-by: Ryusuke Konishi commit 2879ed66e4c6da1dfc6bb0bd04566b61824f9256 Author: Ryusuke Konishi Date: Sun Sep 5 13:35:53 2010 +0900 nilfs2: remove own inode allocator and destructor for metadata files This finally removes own inode allocator and destructor functions for metadata files. Several routines, nilfs_mdt_new(), nilfs_mdt_new_common(), nilfs_mdt_clear(), nilfs_mdt_destroy(), and nilfs_alloc_inode_common() will be gone. Signed-off-by: Ryusuke Konishi commit 090fd5b10165033d7c30afde0a7e59141d820602 Author: Ryusuke Konishi Date: Sun Sep 5 16:17:35 2010 +0900 nilfs2: get rid of back pointer to writable sb instance Nilfs object holds a back pointer to a writable super block instance in nilfs->ns_writer, and this became eliminable since sb is now made per device and all inodes have a valid pointer to it. This deletes the ns_writer pointer and a reader/writer semaphore protecting it. Signed-off-by: Ryusuke Konishi commit c6e071884aca360a14c21757d760e76ec34b4894 Author: Ryusuke Konishi Date: Sun Sep 5 00:23:50 2010 +0900 nilfs2: get rid of mi_nilfs back pointer to nilfs object This removes a back pointer to nilfs object from nilfs_mdt_info structure that is attached to metadata files. Signed-off-by: Ryusuke Konishi commit 032dbb3b503a30fce732ec4c05525d0abed1f1d6 Author: Ryusuke Konishi Date: Mon Sep 13 11:16:34 2010 +0900 nilfs2: see state of root dentry for mount check of snapshots After applied the patch that unified sb instances, root dentry of snapshots can be left in dcache even after their trees are unmounted. The orphan root dentry/inode keeps a root object, and this causes false positive of nilfs_checkpoint_is_mounted function. This resolves the issue by having nilfs_checkpoint_is_mounted test whether the root dentry is busy or not. Signed-off-by: Ryusuke Konishi commit f1e89c86fdd0f5e59f6768146c86437934202033 Author: Ryusuke Konishi Date: Sun Sep 5 12:20:59 2010 +0900 nilfs2: use iget for all metadata files This makes use of iget5_locked to allocate or get inode for metadata files to stop using own inode allocator. Signed-off-by: Ryusuke Konishi commit c1c1d7092072093ad960db2f6c08f06705c57fa4 Author: Ryusuke Konishi Date: Sun Aug 29 12:44:56 2010 +0900 nilfs2: get rid of GCDAT inode This applies prepared rollback function and redirect function of metadata file to DAT file, and eliminates GCDAT inode. Signed-off-by: Ryusuke Konishi commit b1f6a4f294088b3fcf9ae67915ca550a1ded2819 Author: Ryusuke Konishi Date: Tue Aug 31 11:40:34 2010 +0900 nilfs2: add routines to redirect access to buffers of DAT file During garbage collection (GC), DAT file, which converts virtual block number to real block number, may return disk block number that is not yet written to the device. To avoid access to unwritten blocks, the current implementation stores changes to the caches of GCDAT during GC and atomically commit the changes into the DAT file after they are written to the device. This patch, instead, adds a function that makes a copy of specified buffer and stores it in nilfs_shadow_map, and a function to get the backup copy as needed (nilfs_mdt_freeze_buffer and nilfs_mdt_get_frozen_buffer respectively). Before DAT changes block number in an entry block, it makes a copy and redirect access to the buffer so that address conversion function (i.e. nilfs_dat_translate) refers to the old address saved in the copy. This patch gives requisites for such redirection. Signed-off-by: Ryusuke Konishi commit ebdfed4dc59d177cf26013a0c9b8ee9652e9a140 Author: Ryusuke Konishi Date: Mon Sep 6 12:05:43 2010 +0900 nilfs2: add routines to roll back state of DAT file This adds optional function to metadata files which makes a copy of bmap, page caches, and b-tree node cache, and rolls back to the copy as needed. This enhancement is intended to displace gcdat inode that provides a similar function in a different way. In this patch, nilfs_shadow_map structure is added to store a copy of the foregoing states. nilfs_mdt_setup_shadow_map relates this structure to a metadata file. And, nilfs_mdt_save_to_shadow_map() and nilfs_mdt_restore_from_shadow_map() provides save and restore functions respectively. Finally, nilfs_mdt_clear_shadow_map() clears states of nilfs_shadow_map. The copy of b-tree node cache and page cache is made by duplicating only dirty pages into corresponding caches in nilfs_shadow_map. Their restoration is done by clearing dirty pages from original caches and by copying dirty pages back from nilfs_shadow_map. Signed-off-by: Ryusuke Konishi commit a8070dd365dd995f6139a2fc3aeee10159bdcc45 Author: Ryusuke Konishi Date: Mon Aug 30 23:42:18 2010 +0900 nilfs2: add routines to save and restore bmap state This adds routines to save and restore the state of bmap structure. The bmap state is stored in a given nilfs_bmap_store object. These routines will be used to roll back the state of dat inode without using gcdat inode. Signed-off-by: Ryusuke Konishi commit adbb39b5485b72dca963a2bc9b1b22bfc19d4967 Author: Ryusuke Konishi Date: Sun Sep 5 10:14:43 2010 +0900 nilfs2: do not allocate nilfs_mdt_info structure to gc-inodes GC-inode now doesn't need the nilfs_mdt_info structure and there is no reason that it is a sort of metadata files. This stops the allocation and makes them not dependent on metadata file routines. Signed-off-by: Ryusuke Konishi commit 518d1a6a1d6610a014875a2fe3252e89b6260d2f Author: Ryusuke Konishi Date: Fri Aug 20 23:40:54 2010 +0900 nilfs2: allow nilfs_clear_inode to clear metadata file inodes Allows clear inode function (nilfs_clear_inode) to handle metadata files that uses bitmap-based object alloctor. DAT and ifile correspond to this. Signed-off-by: Ryusuke Konishi commit b453c95eb8d6a3b2348e9c7bc28a7d223cb640e3 Author: Ryusuke Konishi Date: Wed Aug 25 23:52:46 2010 +0900 nilfs2: get rid of snapshot mount flag This flag is a fake used to distinguish type of super block instance. And, it got obsolete by the unification of sb. Signed-off-by: Ryusuke Konishi commit 348fe8da13621b3d14ab2d156e74551611997017 Author: Ryusuke Konishi Date: Thu Sep 9 02:07:56 2010 +0900 nilfs2: simplify life cycle management of nilfs object This stops pre-allocating nilfs object in nilfs_get_sb routine, and stops managing its life cycle by reference counting. nilfs_find_or_create_nilfs() function, nilfs->ns_mount_mutex, nilfs_objects list, and the reference counter will be removed through the simplification. Signed-off-by: Ryusuke Konishi commit f11459ad7dab9e9eb5a05b8bd3bec338ea8f485d Author: Ryusuke Konishi Date: Mon Aug 16 01:54:52 2010 +0900 nilfs2: do not allocate multiple super block instances for a device This stops allocating multiple super block instances for a device. All snapshots and a current mode mount (i.e. latest tree) will be controlled with nilfs_root objects that are kept within an sb instance. nilfs_get_sb() is rewritten so that it always has a root object for the latest tree and snapshots make additional root objects. The root dentry of the latest tree is binded to sb->s_root even if it isn't attached on a directory. Root dentries of snapshots or the latest tree are binded to mnt->mnt_root on which they are mounted. With this patch, nilfs_find_sbinfo() function, nilfs->ns_supers list, and nilfs->ns_current back pointer, are deleted. In addition, init_nilfs() and load_nilfs() are simplified since they will be called once for a device, not repeatedly called for mount points. Signed-off-by: Ryusuke Konishi commit ab4d8f7ebf33beff97e766d18db47f1ea9635769 Author: Ryusuke Konishi Date: Thu Aug 26 02:15:41 2010 +0900 nilfs2: split out nilfs_attach_snapshot This splits the code to attach snapshots into a separate routine for convenience sake. Signed-off-by: Ryusuke Konishi commit 367ea33486a68f935a01311a3be9b7e97d2e5ead Author: Ryusuke Konishi Date: Thu Aug 26 01:52:51 2010 +0900 nilfs2: split out nilfs_get_root_dentry This splits the code to allocate root dentry into a separate routine for convenience in successive changes. Signed-off-by: Ryusuke Konishi commit dc3d3b810a644dfa329efaa230cd514226f8981d Author: Ryusuke Konishi Date: Sun Aug 15 23:33:57 2010 +0900 nilfs2: deny write access to inodes in snapshots Snapshots of nilfs are read-only. After super block instances (sb) will be unified, nilfs will need to check write access by a way other than implicit test with IS_RDONLY(inode). This is because IS_RDONLY() refers to MS_RDONLY bit of inode->i_sb->s_flags and it will become inaccurate after the unification of sb. To prepare for the issue, this uses i_op->permission to deny write access to inodes in snapshots. Signed-off-by: Ryusuke Konishi commit fd52202930b7e8db48bee5a6fc6b1f438e822a23 Author: Ryusuke Konishi Date: Sat Aug 14 21:44:51 2010 +0900 nilfs2: use checkpoint tree for mount check of snapshots This rewrites nilfs_checkpoint_is_mounted() function so that it decides whether a checkpoint is mounted by whether the corresponding root object is found in checkpoint tree. Signed-off-by: Ryusuke Konishi commit b7c0634204993d7c6678c852e4bd118426599111 Author: Ryusuke Konishi Date: Sat Aug 14 14:48:32 2010 +0900 nilfs2: move inode count and block count into root object This moves sbi->s_inodes_count and sbi->s_blocks_count into nilfs_root object. Signed-off-by: Ryusuke Konishi commit e912a5b66837ee89fb025e67b5efeaa11930c2ce Author: Ryusuke Konishi Date: Sat Aug 14 13:07:15 2010 +0900 nilfs2: use root object to get ifile This rewrites functions using ifile so that they get ifile from nilfs_root object, and will remove sbi->s_ifile. Some functions that don't know the root object are extended to receive it from caller. Signed-off-by: Ryusuke Konishi commit 8e656fd518784b49453f60c5f78b78703bc85cb2 Author: Ryusuke Konishi Date: Fri Aug 27 00:23:02 2010 +0900 nilfs2: make snapshots in checkpoint tree exportable The previous export operations cannot handle multiple versions of a filesystem if they belong to the same sb instance. This adds a new type of file handle and extends export operations so that they can get the inode specified by a checkpoint number as well as an inode number and a generation number. Signed-off-by: Ryusuke Konishi commit 4d8d9293dce503eb0e083e17a02a328d397e7f00 Author: Ryusuke Konishi Date: Wed Aug 25 17:45:44 2010 +0900 nilfs2: set pointer to root object in inodes This puts a pointer to nilfs_root object in the private part of on-memory inode, and makes nilfs_iget function pick up the inode with the same root object. Non-root inodes inherit its nilfs_root object from parent inode. That of the root inode is allocated through nilfs_attach_checkpoint() function. Signed-off-by: Ryusuke Konishi commit ba65ae4729bf81c58d9fc847f67d57eec525b042 Author: Ryusuke Konishi Date: Sat Aug 14 12:59:15 2010 +0900 nilfs2: add checkpoint tree to nilfs object To hold multiple versions of a filesystem in one sb instance, a new on-memory structure is necessary to handle one or more checkpoints. This adds a red-black tree of checkpoints to nilfs object, and adds lookup and create functions for them. Each checkpoint is represented by "nilfs_root" structure, and this structure has rb_node to configure the rb-tree. The nilfs_root object is identified with a checkpoint number. For each snapshot, a nilfs_root object is allocated and the checkpoint number of snapshot is assigned to it. For a regular mount (i.e. current mode mount), NILFS_CPTREE_CURRENT_CNO constant is assigned to the corresponding nilfs_root object. Each nilfs_root object has an ifile inode and some counters. These items will displace those of nilfs_sb_info structure in successive patches. Signed-off-by: Ryusuke Konishi commit 263d90cefc7d82a01c296c59532ff59d67c63509 Author: Ryusuke Konishi Date: Fri Aug 20 19:06:11 2010 +0900 nilfs2: remove own inode hash used for GC This uses inode hash function that vfs provides instead of the own hash table for caching gc inodes. This finally removes the own inode hash from nilfs. Signed-off-by: Ryusuke Konishi commit 5e19a995f4ad8a8f20749a396bb01ebb6d4df96c Author: Ryusuke Konishi Date: Sat Aug 21 22:01:51 2010 +0900 nilfs2: separate initializer of metadata file inode This separates a part of initialization code of metadata file inode, and makes it available from the nilfs iget function that a later patch will add to. Signed-off-by: Ryusuke Konishi commit 0e14a3595bddedfb27b51a6b0a29b5173aa2511a Author: Ryusuke Konishi Date: Fri Aug 20 21:20:29 2010 +0900 nilfs2: use iget5_locked to get inode This uses iget5_locked instead of iget_locked so that gc cache can look up inodes with an inode number and an optional checkpoint number. Signed-off-by: Ryusuke Konishi commit 6c43f41000312fefa482c3bfdd97e7f81d6be0ec Author: Ryusuke Konishi Date: Fri Aug 20 20:10:38 2010 +0900 nilfs2: keep zero value in i_cno except for gc-inodes On-memory inode structures of nilfs have a member "i_cno" which stores a checkpoint number related to the inode. For gc-inodes, this field indicates version of data each gc-inode caches for GC. Log writer temporarily uses "i_cno" to transfer the latest checkpoint number. This stops the latter use and lets only gc-inodes use it. The purpose of this patch is to allow the successive change use "i_cno" for inode lookup. Signed-off-by: Ryusuke Konishi commit 7d6cd92fe2de3c286b8e95f43223f09db9302635 Author: Ryusuke Konishi Date: Sat Aug 21 00:30:39 2010 +0900 nilfs2: allow nilfs_dirty_inode to mark metadata file inodes dirty This allows sop->dirty_inode callback function (nilfs_dirty_inode) to handle metadata file inodes. Signed-off-by: Ryusuke Konishi commit b91c9a97c9333c87fe2a0c94b3b22b24df1c5fc2 Author: Ryusuke Konishi Date: Fri Aug 20 23:46:06 2010 +0900 nilfs2: allow nilfs_destroy_inode to destroy metadata file inodes The current nilfs_destroy_inode() doesn't handle metadata file inodes including gc inodes (dummy inodes used for garbage collection). This allows nilfs_destroy_inode() to destroy inodes of metadata files. Signed-off-by: Ryusuke Konishi commit 9566a7a851eb7201e3207eab53ee81efd0850fee Author: Ryusuke Konishi Date: Tue Aug 10 00:58:41 2010 +0900 nilfs2: accept future revisions Compatibility of nilfs partitions is now managed with three feature sets. This changes old compatibility check with revision number so that it can accept future revisions. Note that we can stop support of experimental versions of nilfs that doesn't know the feature sets by incrementing NILFS_CURRENT_REV. We don't have to do it soon, but it would be a possible option whenever the need arises. Signed-off-by: Ryusuke Konishi commit 91b745016c12d440386c40fb76ab69c8e08cbc06 Merge: 04cc697 daaae6b Author: Linus Torvalds Date: Fri Oct 22 17:13:10 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: remove in_workqueue_context() workqueue: Clarify that schedule_on_each_cpu is synchronous memory_hotplug: drop spurious calls to flush_scheduled_work() shpchp: update workqueue usage pciehp: update workqueue usage isdn/eicon: don't call flush_scheduled_work() from diva_os_remove_soft_isr() workqueue: add and use WQ_MEM_RECLAIM flag workqueue: fix HIGHPRI handling in keep_working() workqueue: add queue_work and activate_work trace points workqueue: prepare for more tracepoints workqueue: implement flush[_delayed]_work_sync() workqueue: factor out start_flush_work() workqueue: cleanup flush/cancel functions workqueue: implement alloc_ordered_workqueue() Fix up trivial conflict in fs/gfs2/main.c as per Tejun commit 04cc69768e7d1f40d98b79d23d203674553b4da2 Merge: a288709 e5953cb Author: Linus Torvalds Date: Fri Oct 22 17:07:56 2010 -0700 Merge branch 'for-2.6.37/misc' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.37/misc' of git://git.kernel.dk/linux-2.6-block: pipe: fix failure to return error code on ->confirm() commit a2887097f25cd38cadfc11d10769e2b349fb5eca Merge: 8abfc6e 005a1d1 Author: Linus Torvalds Date: Fri Oct 22 17:07:18 2010 -0700 Merge branch 'for-2.6.37/barrier' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.37/barrier' of git://git.kernel.dk/linux-2.6-block: (46 commits) xen-blkfront: disable barrier/flush write support Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c block: remove BLKDEV_IFL_WAIT aic7xxx_old: removed unused 'req' variable block: remove the BH_Eopnotsupp flag block: remove the BLKDEV_IFL_BARRIER flag block: remove the WRITE_BARRIER flag swap: do not send discards as barriers fat: do not send discards as barriers ext4: do not send discards as barriers jbd2: replace barriers with explicit flush / FUA usage jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier jbd: replace barriers with explicit flush / FUA usage nilfs2: replace barriers with explicit flush / FUA usage reiserfs: replace barriers with explicit flush / FUA usage gfs2: replace barriers with explicit flush / FUA usage btrfs: replace barriers with explicit flush / FUA usage xfs: replace barriers with explicit flush / FUA usage block: pass gfp_mask and flags to sb_issue_discard dm: convey that all flushes are processed as empty ... commit 8abfc6e7a45eb74e51904bbae676fae008b11366 Merge: e9dd2b6 6362bee Author: Linus Torvalds Date: Fri Oct 22 17:03:12 2010 -0700 Merge branch 'for-2.6.37/drivers' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.37/drivers' of git://git.kernel.dk/linux-2.6-block: (95 commits) cciss: fix PCI IDs for new Smart Array controllers drbd: add race-breaker to drbd_go_diskless drbd: use dynamic_dev_dbg to optionally log uuid changes dynamic_debug.h: Fix dynamic_dev_dbg() macro if CONFIG_DYNAMIC_DEBUG not set drbd: cleanup: change "<= 0" to "== 0" drbd: relax the grace period of the md_sync timer again drbd: add some more explicit drbd_md_sync drbd: drop wrong debug asserts, fix recently introduced race drbd: cleanup useless leftover warn/error printk's drbd: add explicit drbd_md_sync to drbd_resync_finished drbd: Do not log an ASSERT for P_OV_REQUEST packets while C_CONNECTED drbd: fix for possible deadlock on IO error during resync drbd: fix unlikely access after free and list corruption drbd: fix for spurious fullsync (uuids rotated too fast) drbd: allow for explicit resync-finished notifications drbd: preparation commit, using full state in receive_state() drbd: drbd_send_ack_dp must not rely on header information drbd: Fix regression in recv_bm_rle_bits (compressed bitmap) drbd: Fixed a stupid copy and paste error drbd: Allow larger values for c-fill-target. ... Fix up trivial conflict in drivers/block/ataflop.c due to BKL removal commit e9dd2b6837e26fe202708cce5ea4bb4ee3e3482e Merge: 4f3a29d b462732 Author: Linus Torvalds Date: Fri Oct 22 17:00:32 2010 -0700 Merge branch 'for-2.6.37/core' of git://git.kernel.dk/linux-2.6-block * 'for-2.6.37/core' of git://git.kernel.dk/linux-2.6-block: (39 commits) cfq-iosched: Fix a gcc 4.5 warning and put some comments block: Turn bvec_k{un,}map_irq() into static inline functions block: fix accounting bug on cross partition merges block: Make the integrity mapped property a bio flag block: Fix double free in blk_integrity_unregister block: Ensure physical block size is unsigned int blkio-throttle: Fix possible multiplication overflow in iops calculations blkio-throttle: limit max iops value to UINT_MAX blkio-throttle: There is no need to convert jiffies to milli seconds blkio-throttle: Fix link failure failure on i386 blkio: Recalculate the throttled bio dispatch time upon throttle limit change blkio: Add root group to td->tg_list blkio: deletion of a cgroup was causes oops blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING=n block: set the bounce_pfn to the actual DMA limit rather than to max memory block: revert bad fix for memory hotplug causing bounces Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK block: set the bounce_pfn to the actual DMA limit rather than to max memory block: Prevent hang_check firing during long I/O cfq: improve fsync performance for small files ... Fix up trivial conflicts due to __rcu sparse annotation in include/linux/genhd.h commit 4f3a29dadaf999a273f1e7fe2476595d0283eef3 Merge: 06d3629 45aafd3 Author: Linus Torvalds Date: Fri Oct 22 16:34:23 2010 -0700 Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6 * 'linux-next' of git://git.infradead.org/ubi-2.6: UBI: tighten the corrupted PEB criteria UBI: fix check_data_ff return code UBI: remember copy_flag while scanning UBI: preserve corrupted PEBs UBI: add truly corrupted PEBs to corrupted list UBI: introduce debugging helper function UBI: make check_pattern function non-static UBI: do not put eraseblocks to the corrupted list unnecessarily UBI: separate out corrupted list UBI: change cascade of ifs to switch statements UBI: rename a local variable UBI: handle bit-flips when no header found UBI: remove duplicate IO error codes UBI: rename IO error code UBI: fix small 80 characters limit style issue UBI: cleanup and simplify Kconfig commit 06d362931a530e0d48c1a9554a752da4ed240f0b Merge: f5d9d24 6599fcb Author: Linus Torvalds Date: Fri Oct 22 16:34:03 2010 -0700 Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 * 'linux-next' of git://git.infradead.org/ubifs-2.6: UBIFS: do not allocate unneeded scan buffer UBIFS: do not forget to cancel timers UBIFS: remove a bit of unneeded code UBIFS: add a commentary about log recovery UBIFS: avoid kernel error if ubifs superblock read fails UBIFS: introduce new flags for RO mounts UBIFS: introduce new flag for RO due to errors UBIFS: check return code of pnode_lookup UBIFS: check return code of ubifs_lpt_lookup UBIFS: improve error reporting when reading bad node UBIFS: introduce list sorting debugging checks UBIFS: fix assertion warnings in comparison function UBIFS: mark unused key objects as invalid UBIFS: do not write rubbish into truncation scanning node UBIFS: improve assertion in node comparison functions UBIFS: do not use key type in list_sort UBIFS: do not look up truncation nodes UBIFS: fix assertion warning UBIFS: do not treat ENOSPC specially UBIFS: switch to RO mode after synchronizing commit 495363d380b4f4745bd8677912688654afc44020 Author: Jason Wessel Date: Fri May 21 08:46:00 2010 -0500 kdb,debug_core: adjust master cpu switch logic against new debug_core locking The kdb shell needs to enforce switching back to the original CPU that took the exception before restoring normal kernel execution. Resuming from a different CPU than what took the original exception will cause problems with spin locks that are freed from the a different processor than had taken the lock. The special logic in dbg_cpu_switch() can go away entirely with because the state of what cpus want to be masters or slaves will remain unchanged between entry and exit of the debug_core exception context. Signed-off-by: Jason Wessel commit dfee3a7b92208b30f77876068aece9ea571270c2 Author: Jason Wessel Date: Fri May 21 08:46:00 2010 -0500 debug_core: refactor locking for master/slave cpus For quite some time there have been problems with memory barriers and various races with NMI on multi processor systems using the kernel debugger. The algorithm for entering the kernel debug core and resuming kernel execution was racy and had several known edge case problems with attempting to debug something on a heavily loaded system using breakpoints that are hit repeatedly and quickly. The prior "locking" design entry worked as follows: * The atomic counter kgdb_active was used with atomic exchange in order to elect a master cpu out of all the cpus that may have taken a debug exception. * The master cpu increments all elements of passive_cpu_wait[]. * The master cpu issues the round up cpus message. * Each "slave cpu" that enters the debug core increments its own element in cpu_in_kgdb[]. * Each "slave cpu" spins on passive_cpu_wait[] until it becomes 0. * The master cpu debugs the system. The new scheme removes the two arrays of atomic counters and replaces them with 2 single counters. One counter is used to count the number of cpus waiting to become a master cpu (because one or more hit an exception). The second counter is use to indicate how many cpus have entered as slave cpus. The new entry logic works as follows: * One or more cpus enters via kgdb_handle_exception() and increments the masters_in_kgdb. Each cpu attempts to get the spin lock called dbg_master_lock. * The master cpu sets kgdb_active to the current cpu. * The master cpu takes the spinlock dbg_slave_lock. * The master cpu asks to round up all the other cpus. * Each slave cpu that is not already in kgdb_handle_exception() will enter and increment slaves_in_kgdb. Each slave will now spin try_locking on dbg_slave_lock. * The master cpu waits for the sum of masters_in_kgdb and slaves_in_kgdb to be equal to the sum of the online cpus. * The master cpu debugs the system. In the new design the kgdb_active can only be changed while holding dbg_master_lock. Stress testing has not turned up any further entry/exit races that existed in the prior locking design. The prior locking design suffered from atomic variables not being truly atomic (in the capacity as used by kgdb) along with memory barrier races. Signed-off-by: Jason Wessel Acked-by: Dongdong Deng commit 39a0715f5ace92268190c89e246fd1cf741dbaea Author: Dongdong Deng Date: Mon Sep 13 06:58:00 2010 -0500 x86,kgdb: remove unnecessary call to kgdb_correct_hw_break() The kernel debug_core invokes hw breakpoint install and removal via call backs. The architecture specific kgdb stubs only need to implement the call backs and not actually call the functions. Signed-off-by: Dongdong Deng Signed-off-by: Jason Wessel CC: x86@kernel.org CC: Thomas Gleixner CC: Ingo Molnar CC: H. Peter Anvin commit c1bb9a9c1911036549c5cdfb23f32d7d20ffdc5a Author: Dongdong Deng Date: Mon Sep 13 06:58:00 2010 -0500 debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter() The slave cpus do not have the hw breakpoints disabled upon entry to the debug_core and as a result could cause unrecoverable recursive faults on badly placed breakpoints, or get out of sync with the arch specific hw breakpoint operations. This patch addresses the problem by invoking kgdb_disable_hw_debug() earlier in kgdb_enter_cpu for each cpu that enters the debug core. The hw breakpoint dis/enable flow should be: master_debug_cpu slave_debug_cpu \ / kgdb_cpu_enter | kgdb_disable_hw_debug --> uninstall pre-enabled hw_breakpoint | do add/rm dis/enable operates to hw_breakpoints on master_debug_cpu.. | correct_hw_break --> correct/install the enabled hw_breakpoint | leave_kgdb Signed-off-by: Dongdong Deng Signed-off-by: Jason Wessel commit 91b152aa85bbcf076e269565394c31964f940371 Author: Jason Wessel Date: Mon Aug 23 09:20:14 2010 -0500 kdb,kgdb: fix sparse fixups Fix the following sparse warnings: kdb_main.c:328:5: warning: symbol 'kdbgetu64arg' was not declared. Should it be static? kgdboc.c:246:12: warning: symbol 'kgdboc_early_init' was not declared. Should it be static? kgdb.c:652:26: warning: incorrect type in argument 1 (different address spaces) kgdb.c:652:26: expected void const *ptr kgdb.c:652:26: got struct perf_event *[noderef] *pev The one in kgdb.c required the (void * __force) because of the return code from register_wide_hw_breakpoint looking like: return (void __percpu __force *)ERR_PTR(err); Signed-off-by: Jason Wessel commit 75d14edee5689716b55afe467acfc13206a31f95 Author: Jason Wessel Date: Mon Oct 11 10:20:14 2010 -0500 kdb: Fix oops in kdb_unregister Nothing should try to use kdb_commands directly as sometimes it is null. Instead, use the for_each_kdbcmd() iterator. This particular problem dates back to the initial kdb merge (2.6.35), but at that point nothing was dynamically unregistering commands from the kdb shell. Signed-off-by: Jason Wessel commit e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26 Author: Jason Wessel Date: Mon Oct 11 10:20:14 2010 -0500 kdb,ftdump: Remove reference to internal kdb include Now that include/linux/kdb.h properly exports all the functions required to dynamically add a kdb shell command, the reference to the private kdb header can be removed. Signed-off-by: Jason Wessel commit f7030bbc446430ecd12c9ad02cf0ea94934e5f91 Author: Jason Wessel Date: Mon Oct 11 10:20:14 2010 -0500 kdb: Allow kernel loadable modules to add kdb shell functions In order to allow kernel modules to dynamically add a command to the kdb shell the kdb_register, kdb_register_repeat, kdb_unregister, and kdb_printf need to be exported as GPL symbols. Any kernel module that adds a dynamic kdb shell function should only need to include linux/kdb.h. Signed-off-by: Jason Wessel commit fb70b5888b70b0b50f738fbfc019445493112eb1 Author: Jason Wessel Date: Fri Aug 13 12:44:04 2010 -0500 debug_core: stop rcu warnings on kernel resume When returning from the kernel debugger reset the rcu jiffies_stall value to prevent the rcu stall detector from sending NMI events which invoke a stack dump for each cpu in the system. Signed-off-by: Jason Wessel commit 16cdc628c3aed47d02205135b7e2f01e0064f566 Author: Jason Wessel Date: Fri Aug 6 11:47:14 2010 -0500 debug_core: move all watch dog syncs to a single function Move the various clock and watch dog syncs to a single function in advance of adding another sync for the rcu stall detector. Signed-off-by: Jason Wessel commit fad99fac2627e2cc0ebfe07fcb5046c0b4e103f9 Author: Jason Wessel Date: Wed Oct 20 08:20:00 2010 -0500 x86,kgdb: fix debugger hw breakpoint test regression in 2.6.35 HW breakpoints events stopped working correctly with kgdb as a result of commit: 018cbffe6819f6f8db20a0a3acd9bab9bfd667e4 (Merge commit 'v2.6.33' into perf/core), later commit: ba773f7c510c0b252145933926c636c439889207 (x86,kgdb: Fix hw breakpoint regression) allowed breakpoints to propagate to the debugger core but did not completely address the original regression in functionality found in 2.6.35. When the DR_STEP flag is set in dr6 along with any of the DR_TRAP bits, the kgdb exception handler will enter once from the hw_breakpoint API call back and again from the die notifier for do_debug(), which causes the debugger to stop twice and also for the kgdb regression tests to fail running under kvm with: echo V2I1 > /sys/module/kgdbts/parameters/kgdbts To address the problem, the kgdb overflow handler needs to implement the same logic as the ptrace overflow handler call back with respect to updating the virtual copy of dr6. This will allow the kgdb do_debug() die notifier to properly handle the exception and the attached debugger, or kgdb test suite, will only receive a single notification. Signed-off-by: Jason Wessel CC: Frederic Weisbecker CC: x86@kernel.org commit b9ac41e314f0b43641bc01bd553fd2e0458ed832 Author: Mike Frysinger Date: Fri Oct 22 05:11:08 2010 +0000 Blackfin: bfin_spi.h: add MMR peripheral layout Signed-off-by: Mike Frysinger commit fec84d21c52bca67949a17aaf7d410b497f8e1b0 Author: Mike Frysinger Date: Fri Oct 22 04:41:13 2010 +0000 Blackfin: bfin_ppi.h: start a common PPI/EPPI header Start unifying the PPI/EPPI peripheral structures in one place. This may be used by camera/video/fpga/high speed devices. Signed-off-by: Mike Frysinger commit faf3d9ed2b9b402aa2c3d11688c6a1ff80ea6ea4 Author: Mike Frysinger Date: Fri Oct 22 03:11:42 2010 +0000 Blackfin: bfin_can.h: add missing VERSION/VERSION2 MMRs Also document the mailbox (channel) data array layout. Signed-off-by: Mike Frysinger commit 5d868212c411b0e3d11006f58688b31ee2180d8c Author: Mike Frysinger Date: Wed Oct 20 18:48:47 2010 +0000 Blackfin: bf538: add missing SIC_RVECT define Signed-off-by: Mike Frysinger commit 39c999697bf43a97b877fa43cbc9c2a4d1a3a461 Author: Mike Frysinger Date: Tue Oct 19 18:44:23 2010 +0000 Blackfin: bf561: rewrite SICA_xxx to just SIC_xxx This matches all the other Blackfin ports and keep us from having to write bf561-specific code in many places. Signed-off-by: Mike Frysinger commit 9ebcaa47ba831b6ad5cc414b3c3ff310a9d5d582 Author: Mike Frysinger Date: Tue Oct 19 17:57:54 2010 +0000 Blackfin: bf54x: add missing SIC_RVECT definition Signed-off-by: Mike Frysinger commit 49e00edbb77b44574a235032774b15656faa7cec Author: Mike Frysinger Date: Sun Oct 17 04:59:16 2010 -0400 Blackfin: H8606: move 8250 irqflags to platform resources Now that the common 8250 serial driver supports an "irqflags" field, we don't need to patch in a custom define into the code. Signed-off-by: Mike Frysinger commit 56b4f07a08ac4188ba055d194a105a7bd833cea3 Author: Mike Frysinger Date: Sat Oct 16 19:46:21 2010 -0400 Blackfin: glue XIP/ROM kernel kconfigs Different arches use different names, so make sure we define both so common code (like MTD_XIP) "just works". Signed-off-by: Mike Frysinger commit 245322082a802aced61ee474efb8dfab2656740e Author: Mike Frysinger Date: Sat Oct 9 13:32:52 2010 +0000 Blackfin: update sparse flags for latest upstream changes Mainline version of git merged support for Blackfin parts, but we now need to propagate the gcc arch define to make it work. Signed-off-by: Mike Frysinger commit 7696eecf14a81074dc930d5d6ad62957fef86c49 Author: Mike Frysinger Date: Wed Oct 6 06:33:08 2010 +0000 Blackfin: coreb: update ioctl numbers We have to use ioctl numbers that don't collide with common code. Otherwise, these ones never even get called because the common fs code swalled all invocations. Reported-by: Kay Duenzer Signed-off-by: Mike Frysinger commit 6cf4d0fadc2fec864634b2b614ff625a59a45db7 Author: Mike Frysinger Date: Wed Oct 6 06:30:04 2010 +0000 Blackfin: coreb: add gpl module license Signed-off-by: Mike Frysinger commit 97dd505cd617628049f9779a4cfbc97e2962947f Author: Bob Liu Date: Wed Sep 29 08:30:12 2010 +0000 Blackfin: bf518-ezkit: add ssm2603 codec resources This board has a SSM2603 codec, so make sure we have the right resources declared for it. Signed-off-by: Bob Liu Signed-off-by: Mike Frysinger commit c5b77b450a067cd09031caaee72b671810a0fd25 Author: Bob Liu Date: Wed Sep 29 03:12:44 2010 +0000 Blackfin: bf51x/bf52x: fix 16/32bit SPORT MMR helpers The RX/TX address is always the same regardless of the size of the access. That means there is no dedicated "16bit" or "32bit" MMR. Trying to use these currently leads to compile errors. So change everything to use the right MMR define. Signed-off-by: Bob Liu Signed-off-by: Mike Frysinger commit e5c1721894415d00a55c2650ed6536b644799c50 Author: Ashish Gupta Date: Wed Sep 22 08:11:56 2010 +0000 Blackfin: tll6527m: new board port Signed-off-by: Ashish Gupta Signed-off-by: Mike Frysinger commit f5d9d249b9a6884daff513ef08afa43d3f7e085f Merge: db08bf0 36845d0 Author: Linus Torvalds Date: Fri Oct 22 11:23:42 2010 -0700 Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: pcmcia: fix ni_daq_700 compilation pcmcia: IOCARD is also required for using IRQs commit db08bf0877f3464fb0c2c37dcdd9f9683192ea26 Merge: 092e0e7 35dbc0e Author: Linus Torvalds Date: Fri Oct 22 11:17:06 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic * git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: asm-generic/io.h: allow people to override individual funcs bitops: remove duplicated extern declarations bitops: make asm-generic/bitops/find.h more generic asm-generic: kdebug.h: Checkpatch cleanup asm-generic: fcntl: make exported headers use strict posix types asm-generic: cmpxchg does not handle non-long arguments asm-generic: make atomic_add_unless a function commit 092e0e7e520a1fca03e13c9f2d157432a8657ff2 Merge: 79f14b7 776c163 Author: Linus Torvalds Date: Fri Oct 22 10:52:56 2010 -0700 Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl * 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: vfs: make no_llseek the default vfs: don't use BKL in default_llseek llseek: automatically add .llseek fop libfs: use generic_file_llseek for simple_attr mac80211: disallow seeks in minstrel debug code lirc: make chardev nonseekable viotape: use noop_llseek raw: use explicit llseek file operations ibmasmfs: use generic_file_llseek spufs: use llseek in all file operations arm/omap: use generic_file_llseek in iommu_debug lkdtm: use generic_file_llseek in debugfs net/wireless: use generic_file_llseek in debugfs drm: use noop_llseek commit 79f14b7c56d3b3ba58f8b43d1f70b9b71477a800 Merge: c37927d 6d7bccc Author: Linus Torvalds Date: Fri Oct 22 10:52:01 2010 -0700 Merge branch 'vfs' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl * 'vfs' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits) BKL: remove BKL from freevxfs BKL: remove BKL from qnx4 autofs4: Only declare function when CONFIG_COMPAT is defined autofs: Only declare function when CONFIG_COMPAT is defined ncpfs: Lock socket in ncpfs while setting its callbacks fs/locks.c: prepare for BKL removal BKL: Remove BKL from ncpfs BKL: Remove BKL from OCFS2 BKL: Remove BKL from squashfs BKL: Remove BKL from jffs2 BKL: Remove BKL from ecryptfs BKL: Remove BKL from afs BKL: Remove BKL from USB gadgetfs BKL: Remove BKL from autofs4 BKL: Remove BKL from isofs BKL: Remove BKL from fat BKL: Remove BKL from ext2 filesystem BKL: Remove BKL from do_new_mount() BKL: Remove BKL from cgroup BKL: Remove BKL from NTFS ... commit c37927d4359e81b85de644f8fb08878717cf5f3f Merge: 5704e44 2a48fc0 Author: Linus Torvalds Date: Fri Oct 22 10:49:54 2010 -0700 Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: block: autoconvert trivial BKL users to private mutex drivers: autoconvert trivial BKL users to private mutex ipmi: autoconvert trivial BKL users to private mutex mac: autoconvert trivial BKL users to private mutex mtd: autoconvert trivial BKL users to private mutex scsi: autoconvert trivial BKL users to private mutex Fix up trivial conflicts (due to addition of private mutex right next to deletion of a version string) in drivers/char/pcmcia/cm40[04]0_cs.c commit 5704e44d283e907623e3775c1262f206a2c48cf3 Merge: 9115124 6de5bd1 Author: Linus Torvalds Date: Fri Oct 22 10:43:11 2010 -0700 Merge branch 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: BKL: introduce CONFIG_BKL. dabusb: remove the BKL sunrpc: remove the big kernel lock init/main.c: remove BKL notations blktrace: remove the big kernel lock rtmutex-tester: make it build without BKL dvb-core: kill the big kernel lock dvb/bt8xx: kill the big kernel lock tlclk: remove big kernel lock fix rawctl compat ioctls breakage on amd64 and itanic uml: kill big kernel lock parisc: remove big kernel lock cris: autoconvert trivial BKL users alpha: kill big kernel lock isapnp: BKL removal s390/block: kill the big kernel lock hpet: kill BKL, add compat_ioctl commit 92ca0dc5ee022e4c0e488177e1d8865a0778c6c2 Author: Johan Hovold Date: Thu Oct 21 10:49:10 2010 +0200 USB: mct_u232: fix broken close Fix regression introduced by commit f26788da3b342099d2b02d99ba1cb7f154d6ef7b (USB: serial: refactor generic close) which broke driver close(). This driver uses non-standard semantics for the read urb which makes the generic close function fail to kill it (the read urb is actually an interrupt urb and therefore bulk_in size is zero). Reported-by: Eric Shattow "Eprecocious" Tested-by: Eric Shattow "Eprecocious" Cc: stable Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit f34c25ed78df6d1297db2187bf5e58aaf6674183 Author: Rahul Ruikar Date: Wed Oct 20 16:01:51 2010 -0700 USB: gadget: amd5536udc.c: fix error path In function udc_probe() call put_device() when device_register() fails. Signed-off-by: Rahul Ruikar Acked-by: Thomas Dahlmann Cc: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit e581c8c8a957776db452afe316706242abcc1cdc Author: Axel Lin Date: Sat Oct 16 22:48:08 2010 +0800 USB: imx21-hcd - fix off by one resource size calculation Signed-off-by: Axel Lin Tested-by: Jon Povey Signed-off-by: Greg Kroah-Hartman commit bd68826897d328f332d8f98979d9ee95b96fb6f8 Author: Felipe Contreras Date: Tue Oct 19 13:03:26 2010 +0300 usb: gadget: fix Kconfig warning warning: (USB_MUSB_HDRC_HCD && USB_SUPPORT && USB_MUSB_HDRC && (USB_MUSB_HOST || USB_MUSB_OTG) && USB_GADGET_MUSB_HDRC || USB_MUSB_OTG && && USB && USB_GADGET && PM && EXPERIMENTAL) selects USB_OTG which has unmet direct dependencies (USB_GADGET_OMAP && ARCH_OMAP_OTG && USB_OHCI_HCD) This doesn't seem to happen on 2.6.36-rc8, but still doesn't make sense to keep this duplicated config that is already defined in usb/core. Signed-off-by: Felipe Contreras Acked-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit e576a7a96aae99b74dd758fff54c345f8f4ff097 Author: Yusuke Goda Date: Wed Oct 20 09:28:08 2010 +0900 usb: r8a66597-udc: Add processing when USB was removed. When USB was removed, this patch prepares for the next insertion. Signed-off-by: Yusuke Goda Acked-by: Yoshihiro Shimoda Cc: Paul Mundt Signed-off-by: Greg Kroah-Hartman commit 69cb1ec4ce4da4bc4c07bb09c4c98b3e25d99fb1 Author: Eric BĂ©nard Date: Fri Oct 15 14:30:58 2010 +0200 mxc_udc: add workaround for ENGcm09152 for i.MX35 this patch gives the possibility to workaround bug ENGcm09152 on i.MX35 when the hardware workaround is also implemented on the board. It covers the workaround described on page 25 of the following Errata : http://cache.freescale.com/files/dsp/doc/errata/IMX35CE.pdf Signed-off-by: Eric BĂ©nard Signed-off-by: Greg Kroah-Hartman commit 0f266abd70cd83571eca019f764b5f1992da7361 Author: Greg Kroah-Hartman Date: Tue Oct 19 09:05:43 2010 -0700 USB: ftdi_sio: add device ids for ScienceScope This adds the requested device ids to the ftdi_sio driver. Reported-by: Ewan Bingham Cc: Kuba Ober Cc: stable Signed-off-by: Greg Kroah-Hartman commit 843bb1d0ff29b96eeb184988223ba55e3e8c2f57 Author: Ajay Kumar Gupta Date: Tue Oct 19 10:08:13 2010 +0300 USB: musb: AM35x: Workaround for fifo read issue AM35x supports only 32bit read operations so we need to have workaround for 8bit and 16bit read operations. Signed-off-by: Ajay Kumar Gupta Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit eb83092c2b24587719c917a1d6a5b682eeaa03df Author: Ajay Kumar Gupta Date: Tue Oct 19 10:08:12 2010 +0300 USB: musb: add musb support for AM35x AM35x has musb interface and uses CPPI4.1 DMA engine. Current patch supports only PIO mode. DMA support can be added later once basic CPPI4.1 DMA patch is accepted. Also added USB_MUSB_AM35X which is required to differentiate musb ips between OMAP3x and AM35x. This config would be used to for below purposes, - Select am35x.c instead of omap2430.c for compilation at drivers/usb/musb directory. Please note there are significant differneces in these two files as musb ip in quite different on AM35x. Please note that in multi omap configuration only omap2430.c file will get compiled and we would require to select only AM35x based board config to compile am35x.c - Select workaround codes applicable for AM35x musb issues. one such workaround is for bytewise read issue on AM35x. Signed-off-by: Ajay Kumar Gupta Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 3a0d30bcdfa73bd865f29899eb4bf29b58c4f54a Author: Ajay Kumar Gupta Date: Tue Oct 19 10:08:11 2010 +0300 USB: AM35x: Add musb support AM35x has musb interface (version 1.8) and uses CPPI41 DMA engine. It has USB phy built inside the IP itself. Signed-off-by: Ajay Kumar Gupta Acked-by: Tony Lindgren Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-omap@vger.kernel.org Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 436a389096e1feda2c382cad83b6a8d6de8615a0 Author: Sarah Sharp Date: Fri Oct 15 14:59:15 2010 -0700 usb: Fix linker errors with CONFIG_PM=n Fix these linker errors when CONFIG_PM=n: ERROR: "xhci_bus_resume" [drivers/usb/host/xhci-hcd.ko] undefined! ERROR: "xhci_bus_suspend" [drivers/usb/host/xhci-hcd.ko] undefined! Reported-by: Randy Dunlap Signed-off-by: Sarah Sharp Acked-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit 39eb234874af4322f85e2a29e3aad33ce68cbed5 Author: Axel Lin Date: Fri Oct 15 13:29:24 2010 +0800 USB: ohci-sh - use resource_size instead of defining its own resource_len macro Signed-off-by: Axel Lin Acked-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit 4e5c353b3ccc4cc856d75ac751f4c09e0275c08b Author: Axel Lin Date: Fri Oct 15 13:27:57 2010 +0800 USB: isp1362-hcd - use resource_size instead of defining its own resource_len macro Signed-off-by: Axel Lin Acked-by: Mike Frysinger Signed-off-by: Greg Kroah-Hartman commit 7a9d93e58583efcca0f1ade889b05131ea0d1ed1 Author: Axel Lin Date: Fri Oct 15 13:26:21 2010 +0800 USB: isp116x-hcd - use resource_size instead of defining its own resource_len macro Signed-off-by: Axel Lin Signed-off-by: Greg Kroah-Hartman commit b5b5c3ac5123dab047cfeff472053ab737052e9b Author: Sarah Sharp Date: Fri Oct 15 11:24:14 2010 -0700 USB: xhci: Fix compile error when CONFIG_PM=n Fix this error when CONFIG_PM is not enabled: drivers/usb/host/xhci.c:675: error: implicit declaration of function 'usb_root_hub_lost_power' Wrap xhci_suspend() and xhci_resume() into an ifdef CONFIG_PM, along with the functions that only they call -- xhci_save_registers() and xhci_restore_registers(). Reported-by: Randy Dunlap Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 56626a72a47bf3e50875d960d6b5f17b9bee0ab2 Author: Alan Stern Date: Thu Oct 14 15:25:21 2010 -0400 USB: accept some invalid ep0-maxpacket values A few devices (such as the RCA VR5220 voice recorder) are so non-compliant with the USB spec that they have invalid maxpacket sizes for endpoint 0. Nevertheless, as long as we can safely use them, we may as well do so. This patch (as1432) softens our acceptance criterion by allowing high-speed devices to have ep0-maxpacket sizes other than 64. A warning is printed in the system log when this happens, and the existing error message is clarified. Signed-off-by: Alan Stern Reported-by: James Cc: stable Signed-off-by: Greg Kroah-Hartman commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca Author: Andiry Xu Date: Thu Oct 14 07:23:06 2010 -0700 USB: xHCI: PCI power management implementation This patch implements the PCI suspend/resume. Please refer to xHCI spec for doing the suspend/resume operation. For S3, CSS/SRS in USBCMD is used to save/restore the internal state. However, an error maybe occurs while restoring the internal state. In this case, it means that HC internal state is wrong and HC will be re-initialized. Signed-off-by: Libin Yang Signed-off-by: Dong Nguyen Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 9777e3ce907d4cb5a513902a87ecd03b52499569 Author: Andiry Xu Date: Thu Oct 14 07:23:03 2010 -0700 USB: xHCI: bus power management implementation This patch implements xHCI bus suspend/resume function hook. In the patch it goes through all the ports and suspend/resume the ports if needed. If any port is in remote wakeup, abort bus suspend as what ehci/ohci do. Signed-off-by: Libin Yang Signed-off-by: Crane Cai Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 561925318725a41189a69f36ebe99199b3fb84c4 Author: Andiry Xu Date: Thu Oct 14 07:23:00 2010 -0700 USB: xHCI: port remote wakeup implementation This commit implements port remote wakeup. When a port is in U3 state and resume signaling is detected from a device, the port transitions to the Resume state, and the xHC generates a Port Status Change Event. For USB3 port, software write a '0' to the PLS field to complete the resume signaling. For USB2 port, the resume should be signaling for at least 20ms, irq handler set a timer for port remote wakeup, and then finishes process in hub_control GetPortStatus. Some codes are borrowed from EHCI code. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit be88fe4f4dda93e3264a887745123b1e6c4a6845 Author: Andiry Xu Date: Thu Oct 14 07:22:57 2010 -0700 USB: xHCI: port power management implementation Add software trigger USB device suspend resume function hook. Do port suspend & resume in terms of xHCI spec. Port Suspend: Stop all endpoints via Stop Endpoint Command with Suspend (SP) flag set. Place individual ports into suspend mode by writing '3' for Port Link State (PLS) field into PORTSC register. This can only be done when the port is in Enabled state. When writing, the Port Link State Write Strobe (LWS) bit shall be set to '1'. Allocate an xhci_command and stash it in xhci_virt_device to wait completion for the last Stop Endpoint Command. Use the Suspend bit in TRB to indicate the Stop Endpoint Command is for port suspend. Based on Sarah's suggestion. Port Resume: Write '0' in PLS field, device will transition to running state. Ring an endpoints' doorbell to restart it. Ref: USB device remote wake need another patch to implement. For details of how USB subsystem do power management, please see: Documentation/usb/power-management.txt Signed-off-by: Crane Cai Signed-off-by: Libin Yang Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 85f0ff46960c2853fd1436a56798260eae91db86 Author: Sarah Sharp Date: Thu Oct 14 07:22:54 2010 -0700 usb: Fix issue with USB 3.0 devices after system resume When the system suspends and a host controller's power is lost, the USB core attempts to revive any USB devices that had the persist_enabled flag set. For non-SuperSpeed devices, it will disable the port, and then set the udev->reset_resume flag. This will cause the USB core to reset the device, verify the device descriptors to make sure it's the same device, and re-install any non-default configurations or alternate interface settings. However, we can't disable SuperSpeed root hub ports because that turns off SuperSpeed terminations, which will inhibit any devices connecting at USB 3.0 speeds. (Plus external hubs don't allow SuperSpeed ports to be disabled.) Because of this logic in hub_activate(): /* We can forget about a "removed" device when there's a * physical disconnect or the connect status changes. */ if (!(portstatus & USB_PORT_STAT_CONNECTION) || (portchange & USB_PORT_STAT_C_CONNECTION)) clear_bit(port1, hub->removed_bits); if (!udev || udev->state == USB_STATE_NOTATTACHED) { /* Tell khubd to disconnect the device or * check for a new connection */ if (udev || (portstatus & USB_PORT_STAT_CONNECTION)) set_bit(port1, hub->change_bits); } else if (portstatus & USB_PORT_STAT_ENABLE) { /* The power session apparently survived the resume. * If there was an overcurrent or suspend change * (i.e., remote wakeup request), have khubd * take care of it. */ if (portchange) set_bit(port1, hub->change_bits); } else if (udev->persist_enabled) { udev->reset_resume = 1; set_bit(port1, hub->change_bits); } else { /* The power session is gone; tell khubd */ usb_set_device_state(udev, USB_STATE_NOTATTACHED); set_bit(port1, hub->change_bits); } a SuperSpeed device after a resume with a loss of power will never get the reset_resume flag set. Instead the core will assume the power session survived and that the device still has the same address, configuration, and alternate interface settings. The xHCI host controller will have no knowledge of the device (since all xhci_virt_devices were destroyed when power loss was discovered, and xhci_discover_or_reset_device() has not been called), and all URBs to the device will fail. If the device driver responds by resetting the device, everything will continue smoothly. However, if lsusb is used before the device driver resets the device (or there is no driver), then all lsusb descriptor fetches will fail. The quick fix is to pretend the port is disabled in hub_activate(), by clearing the local variable. But I'm not sure what other parts of the hub driver need to be changed because they have assumptions about when ports will be disabled. Signed-off-by: Sarah Sharp Signed-off-by: Andiry Xu Signed-off-by: Greg Kroah-Hartman commit c8d4af8e2af12cd4835ba5c4b54bdafe9deda71a Author: Andiry Xu Date: Thu Oct 14 07:22:51 2010 -0700 USB: core: use kernel assigned address for devices under xHCI xHCI driver uses hardware assigned device address. This may cause device address conflict in certain cases. Use kernel assigned address for devices under xHCI. Store the xHC assigned address locally in xHCI driver. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit f0615c45ce5feb141c1172480c5198d4b8d25436 Author: Andiry Xu Date: Thu Oct 14 07:22:48 2010 -0700 USB: xHCI: change xhci_reset_device() to allocate new device Rename xhci_reset_device() to xhci_discover_or_reset_device(). If xhci_discover_or_reset_device() is called to reset a device which does not exist or does not match the udev, it calls xhci_alloc_dev() to re-allocate the device. This would prevent the reset device failure, possibly due to the xHC restore error during S3/S4 resume. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit 64927730c66333c9d5987aa72a0e6d44ed91cec7 Author: Andiry Xu Date: Thu Oct 14 07:22:45 2010 -0700 USB: xHCI: Add pointer to udev in struct xhci_virt_device Add a pointer to udev in struct xhci_virt_device. When allocate a new virt_device, make the pointer point to the corresponding udev. Modify xhci_check_args(), check if virt_dev->udev matches the target udev, to make sure command is issued to the right device. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit ac9dfe9cdda4eb42ecaa9f13b0fee518e0b6518e Author: Nobuhiro Iwamatsu Date: Thu Oct 14 14:52:54 2010 +0900 usb: r8a66597-hcd: Change mistake of the outsw function Some functions changed by 1c98347e613bf17ea2f18c9766ce0ab77f65a96d. However, There was a change mistake of the function (outsw). Signed-off-by: Nobuhiro Iwamatsu CC: Paul Mundt Cc: stable [.35 & .36] Acked-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit 96b9e83231f543391c29d12e1e65ddb2ed963154 Author: Igor Grinberg Date: Sun Oct 10 17:59:19 2010 +0200 USB: otg/ulpi: extend id's table. Extend id's table to have ulpi phy names in it. Report if the known phy is found. Signed-off-by: Igor Grinberg Signed-off-by: Greg Kroah-Hartman commit a9138192d0e716c3e9714b3fe03543d93ebbad9f Author: Igor Grinberg Date: Sun Oct 10 17:59:18 2010 +0200 USB: otg/ulpi: improve ulpi phy detection. Improve ulpi phy detection by utilizing the "scratch" register. Allow unknown ulpi phy work without the need to hard-code the id. Signed-off-by: Igor Grinberg Signed-off-by: Greg Kroah-Hartman commit c6f694af8318a526c639306d9d07ee33cb7c168a Author: Alon Ziv Date: Sun Oct 10 08:32:20 2010 +0200 USB: opticon: Whitespace fixes in opticon driver Signed-off-by: Alon Ziv Signed-off-by: Greg Kroah-Hartman commit 0d930e51cfe6f748339d7d13b3fad2b91a1d92c2 Author: Alon Ziv Date: Sun Oct 10 08:32:19 2010 +0200 USB: opticon: Add Opticon OPN2001 write support OPN2001 expects write operations to arrive as a vendor-specific command through the control pipe (instead of using a separate bulk-out pipe). Signed-off-by: Alon Ziv Signed-off-by: Greg Kroah-Hartman commit 97cd8dc4ca9a1a5efb2cc38758e01492e3b013e2 Author: Alon Ziv Date: Sun Oct 10 08:32:18 2010 +0200 USB: opticon: Fix long-standing bugs in opticon driver The bulk-read callback had two bugs: a) The bulk-in packet's leading two zeros were returned (and the two last bytes truncated) b) The wrong URB was transmitted for the second (and later) read requests, causing further reads to return the entire packet (including leading zeros) Signed-off-by: Alon Ziv Cc: stable Signed-off-by: Greg Kroah-Hartman commit c19db4c9e49a049054594272d408e101aaf41b27 Author: Johan Hovold Date: Mon Oct 11 20:23:36 2010 +0200 USB: ftdi_sio: set device latency timeout at port probe No need to set latency timeout at every open. This also fixes an issue with the read latency being as high as 250ms (instead of 1ms) for the first read after port probe. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 3ed780117dbe5acb64280d218f0347f238dafed0 Author: Kees Cook Date: Mon Oct 11 11:28:16 2010 -0700 usb: iowarrior: don't trust report_size for buffer size If the iowarrior devices in this case statement support more than 8 bytes per report, it is possible to write past the end of a kernel heap allocation. This will probably never be possible, but change the allocation to be more defensive anyway. Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit cfb8da8f69b81d367b766888e83ec0483a31bf01 Author: Johan Hovold Date: Tue Oct 12 01:07:05 2010 +0200 USB: visor: fix initialisation of UX50/TH55 devices Fix regression introduced by commit 214916f2ec6701e1c9972f26c60b3dc37d3153c6 (USB: visor: reimplement using generic framework) which broke initialisation of UX50/TH55 devices that used re-mapped bulk-out endpoint addresses. Reported-by: Robert Gadsdon Tested-by: Robert Gadsdon Cc: stable Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 59c6ccd9f9aecfa59c99ceba6d4d34b180547a05 Author: Daniel Suchy Date: Tue Oct 12 15:44:24 2010 +0200 USB: ftdi_sio: new VID/PIDs for various Papouch devices This patch for FTDI USB serial driver ads new VID/PIDs used on various devices manufactured by Papouch (http://www.papouch.com). These devices have their own VID/PID, although they're using standard FTDI chip. In ftdi_sio.c, I also made small cleanup to have declarations for all Papouch devices together. Signed-off-by: Daniel Suchy Cc: stable Signed-off-by: Greg Kroah-Hartman commit 562e7c71c6708353bfe7b615576bcbcf7afd522e Author: Tatyana Brokhman Date: Sat Oct 9 16:46:12 2010 +0200 usb: usb3.0 ch9 definitions Adding SuperSpeed usb definitions as defined by ch9 of the USB3.0 spec. This patch is a preparation for adding SuperSpeed support to the gadget framework. Signed-off-by: Tatyana Brokhman Signed-off-by: Greg Kroah-Hartman commit 0a6a717ceff67f887b16783ce891f5dcf846f1fc Author: Michal Nazarewicz Date: Thu Oct 7 14:46:15 2010 +0200 USB: gadget: storage: reuse definitions from scsi.h header file This commit changes storage_common.h, file_storage.c and f_mass_storage.c to use definitions of SCSI commands from scsi/scsi.h file instead of redefining the commands in storage_common.c. scsi/scsi.h header file was missing READ_FORMAT_CAPACITIES and READ_HEADER so this commit also add those to the header. Signed-off-by: Michal Nazarewicz Cc: Alan Stern Cc: James Bottomley Signed-off-by: Greg Kroah-Hartman commit 0a2b8a0d1101179fdebc974a7c72b514aede9d9d Author: matt mooney Date: Wed Oct 6 19:03:26 2010 -0700 usb: makefile cleanup For all modules, change -objs to -y; remove if-statements and replace with lists using the kbuild idiom; move flags to the top of the file; and fix alignment while trying to maintain the original scheme in each file. None of the dependencies are modified. Signed-off-by: matt mooney Acked-by: Sam Ravnborg Acked-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 75d87cdf3cefd2744fabd3f2a558c49cdf36238b Author: Rahul Ruikar Date: Thu Oct 7 09:40:45 2010 +0530 usb: gadget: dummy_hcd: Fix error path In function dummy_udc_probe() call put_device() when device_register() fails. also usb_get_hcd() put before device_register() after review comment from Alan Stern. Signed-off-by: Rahul Ruikar Signed-off-by: Greg Kroah-Hartman commit 7b3a766c7b9bce07875098cb68642df2b8f0b152 Author: Rahul Ruikar Date: Thu Oct 7 09:31:12 2010 +0530 usb: core: endpoint: Fix error path In function usb_create_ep_devs() call put_device() when device_register() fails. Signed-off-by: Rahul Ruikar Signed-off-by: Greg Kroah-Hartman commit 93ad03d60b5b18897030038234aa2ebae8234748 Author: Anders Larsen Date: Wed Oct 6 23:46:25 2010 +0200 USB: cp210x: Add WAGO 750-923 Service Cable device ID The WAGO 750-923 USB Service Cable is used for configuration and firmware updates of several industrial automation products from WAGO Kontakttechnik GmbH. Bus 004 Device 002: ID 1be3:07a6 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1be3 idProduct 0x07a6 bcdDevice 1.00 iManufacturer 1 Silicon Labs iProduct 2 WAGO USB Service Cable iSerial 3 1277796751 . . . Signed-off-by: Anders Larsen Cc: stable Signed-off-by: Greg Kroah-Hartman commit 7491f13367919d97525b73b1fd38801ac83aac06 Author: Peter Chen Date: Mon Sep 27 16:43:25 2010 +0800 USB: do not print -ESHUTDOWN message if usb at otg device mode At otg device mode, the otg host resume should do no-op during system resume, otherwise, the otg device will be treated as a host for enumeration. So, the otg host driver returns -ESHUTDOWN if it detects the current usb mode is device mode. The host driver has to return -ESHUTDOWN, otherwise, the usb_hc_died will be called. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman commit 00914025cc4e783d4703b4db1d47b41f389e50c8 Author: Hans de Goede Date: Fri Oct 1 14:20:11 2010 -0700 usb-storage: add new no_read_capacity_16 quirk Some Rockbox based mp4 players will crash when ever they see a read_capacity_16 scsi command. So add a new US_FL which tells the scsi sd driver to not issue any read_capacity_16 scsi commands. Signed-off-by: Hans de Goede Cc: James Bottomley Cc: Alan Stern Cc: Matthew Dharm Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 5ce524bdff367b4abda20bcfd4dafd9d30c773df Author: Hans de Goede Date: Fri Oct 1 14:20:10 2010 -0700 scsi/sd: add a no_read_capacity_16 scsi_device flag I seem to have a knack for digging up buggy usb devices which don't work with Linux, and I'm crazy enough to try to make them work. So this time a friend of mine asked me to get an mp4 player (an mp3 player which can play videos on a small screen) to work with Linux. It is based on the well known rockbox chipset for which we already have an unusual devs entries to work around some of its bugs. But this model comes with an additional twist. This model chokes on read_capacity_16 calls. Now normally we don't make those calls, but this model comes with an sdcard slot and when there is no card in there (and shipped from the factory there is none), it reports a size of 0. However this time the programmers actually got the read_capacity_10 response right! So they substract one from the size as stored internally in the mp3 player before reporting it back, resulting in an answer of ... 0xffffffff sectors, causing sd.c to try a read_capacity_16, on which the device crashes. This patch adds a flag to scsi_device to indicate that a a device cannot handle read_capacity_16, and when this flag is set if a device reports an lba of 0xffffffff as answer to a read_capacity_10, assumes it tries to report a size of 0. Signed-off-by: Hans de Goede Cc: James Bottomley Cc: Alan Stern Cc: Matthew Dharm Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit ae38c78a03e1b77ad45248fcf097e4568e740209 Author: Hans de Goede Date: Fri Oct 1 14:20:10 2010 -0700 usb-storage: add new no_read_disc_info quirk Appotech ax3003 (the larger brother of the ax203) based devices are even more buggy then the ax203. They will go of into lala land when ever they see a READ_DISC_INFO scsi command. So add a new US_FL which tells the scsi sr driver to not issue any READ_DISC_INFO scsi commands. [akpm@linux-foundation.org: fix build] Signed-off-by: Hans de Goede Cc: James Bottomley Cc: Alan Stern Cc: Matthew Dharm Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 8e04d8056c1ea0e0aab730994b74756f0526cda8 Author: Hans de Goede Date: Fri Oct 1 14:20:08 2010 -0700 scsi/sr: add no_read_disc_info scsi_device flag Some USB devices emulate a usb-mass-storage attached (scsi) cdrom device, usually this fake cdrom contains the windows software for the device. While working on supporting Appotech ax3003 based photoframes, which do this I discovered that they will go of into lala land when ever they see a READ_DISC_INFO scsi command. Thus this patch adds a scsi_device flag (which can then be set by the usb-storage driver through an unsual-devs entry), to indicate this, and makes the sr driver honor this flag. I know this sucks, but as discussed on linux-scsi list there is no other way to make this device work properly. Looking at usb traces made under windows, windows never sends a READ_DISC_INFO during normal interactions with a usb cdrom device. So as this cdrom emulation thingie becomes more common we might see more of this problem. Signed-off-by: Hans de Goede Cc: James Bottomley Cc: Alan Stern Cc: Matthew Dharm Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 319feaabb6c7ccd90da6e3207563c265da7d21ae Author: Dan Carpenter Date: Tue Oct 5 18:55:34 2010 +0200 usb: gadget: goku_udc: Fix error path This is based on an initial patch by Rahul Ruikar. The goku_remove() function can be called before device_register() so it can call device_unregister() improperly. Also if the call to device_register() fails we need to call put_device(). As I was changing the error handling in goku_probe(), I noticed that the label was "done" but actually if the function succeeds we return earlier. I renamed the error path to "err" instead of "done." Reported-by: Rahul Ruikar Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit d0cc3d4100e829d726d7c0fbf5b7b8d2146f60ba Author: Martin Fuzzey Date: Fri Oct 1 00:21:59 2010 +0200 USB: imx21-hcd accept arbitary transfer buffer alignement. The hardware can only do DMA to 4 byte aligned addresses. When this requirement is not met use PIO or a bounce buffer. PIO is used when the buffer is small enough to directly use the hardware data memory (2*maxpacket). A bounce buffer is used for larger transfers. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit 1dae423dd9b247b048eda00cb598c755e5933213 Author: Martin Fuzzey Date: Fri Oct 1 00:21:55 2010 +0200 USB: introduce unmap_urb_setup_for_dma() Split unmap_urb_for_dma() to allow just the setup buffer to be unmapped. This allows HCDs to use PIO for the setup buffer if it is not suitable for DMA. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit 7a7e7896422baced4757070b813ba28ab24a214a Author: Martin Fuzzey Date: Fri Oct 1 00:21:48 2010 +0200 USB: imx21-hcd: Fix isochronous endpoint idle Release the hardware resources and reset the internal HCD state associated with an isochronous endpoint when the last URB queued for it completes. Previously this was only done in then endpoint_disable() method causing usbtest 15 and 16 to hang when run twice in succession without a disconnect. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit b2a068d058e71519e14d2c03e92459c4c1d63c8b Author: Martin Fuzzey Date: Fri Oct 1 00:21:43 2010 +0200 USB: imx21-hcd: refactor hardware data memory management We already have fields describing the hardware data memory (dmem_size and dmem_offset) in the HCD private data, use them rather than the rather obscure read from the hardware descriptor. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit e6da55cb0aa36f30168da8c20ceccdc538b054be Author: Martin Fuzzey Date: Fri Oct 1 00:21:38 2010 +0200 USB: imx21-hcd: remove unused variable Remove a local variable left over from some debugging code. Signed-off-by: Martin Fuzzey Signed-off-by: Greg Kroah-Hartman commit 40aed5241e4e5363c11acc841f6ef794b2c25668 Author: Martin Fuzzey Date: Fri Oct 1 00:20:48 2010 +0200 USB: usbtest - ensure correct isoc data length Check the data length of isochronous transfers is as expected. With this test #16 will now fail if the device side sends no data. Signed-off-by: Martin Fuzzey Cc: David Brownell Signed-off-by: Greg Kroah-Hartman commit fabbf2196d0db0b4d175456dcb373aa2440f5728 Author: Martin Fuzzey Date: Fri Oct 1 00:20:42 2010 +0200 USB: usbtest fix coding style Signed-off-by: Martin Fuzzey Cc: David Brownell Signed-off-by: Greg Kroah-Hartman commit 80f0cf3947889014d3a3dc0ad60fb87cfda4b12a Author: Alan Stern Date: Thu Sep 30 15:16:23 2010 -0400 USB: disable endpoints after unbinding interfaces, not before This patch (as1430) fixes a bug in usbcore. When a device configuration change occurs or a device is removed, the endpoints for the old config should be completely disabled. However it turns out they aren't; this is because usb_unbind_interface() calls usb_enable_interface() or usb_set_interface() to put interfaces back in altsetting 0, which re-enables the interfaces' endpoints. As a result, when a device goes through a config change or is unconfigured, the ep_in[] and ep_out[] arrays may be left holding old pointers to usb_host_endpoint structures. If the device is deauthorized these structures get freed, and the stale pointers cause errors when the the device is eventually unplugged. The solution is to disable the endpoints after unbinding the interfaces instead of before. This isn't as large a change as it sounds, since usb_unbind_interface() disables all the interface's endpoints anyway before calling the driver's disconnect routine, unless the driver claims to support "soft" unbind. This fixes Bugzilla #19192. Thanks to "Tom" Lei Ming for diagnosing the underlying cause of the problem. Signed-off-by: Alan Stern Tested-by: Carsten Sommer CC: stable Signed-off-by: Greg Kroah-Hartman commit cf7d3c8e579a643ff81ff95d51babdaf4c55f5f4 Author: Philippe Skowronski Date: Fri Oct 1 14:59:16 2010 +0100 usb: langwell_udc: cancel pending requests when controller is suspended. It is safer to cancel pending requests before free dTD and dQH when controller enters suspend state. Signed-off-by: Philippe Skowronski Signed-off-by: Hao Wu [Switch to spin_lock_irq as suggested by Alan Stern] Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit c8458d59d424fcba2456d6cba5811ce01c3aedb9 Author: Christophe Lebouc Date: Thu Sep 30 15:34:36 2010 +0100 usb: langwell_udc: fix big file transfer issue. This patch fixing the problem with large file transfers failing. Swap the read order to avoid unexpected RX status. Signed-off-by: Christophe Lebouc Signed-off-by: Hao Wu Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 689d6eacd1b7c3677bfe6ee367766f21c3c80e26 Author: Ming Lei Date: Thu Sep 30 20:32:44 2010 +0800 USB: UHCI: add native scatter-gather support(v1) This patch adds native scatter-gather support to uhci-hcd. Reviewed-by: Alan Stern Signed-off-by: Ming Lei Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 00be545e49d83485d49a598d3b7e090088934be8 Author: Sergei Shtylyov Date: Wed Sep 29 09:54:31 2010 +0300 usb: musb: blackfin: call gpio_free() on error path in musb_platform_init() Blackfin's musb_platform_init() needs to call gpio_free() for error cleanup iff otg_get_transceiver() call returns NULL. Signed-off-by: Sergei Shtylyov Acked-by: Mike Frysinger Signed-off-by: Felipe Balbi Cc: stable Signed-off-by: Greg Kroah-Hartman commit 3daad24d6c72affdd40e8b6a75c87d3c175880b6 Author: Sergei Shtylyov Date: Wed Sep 29 09:54:30 2010 +0300 usb: musb: blackfin: call usb_nop_xceiv_unregister() in musb_platform_exit() Blackfin's musb_platform_exit() forgets to call usb_nop_xceiv_unregister(). While fixing this, also remove the unneeded blank line there. Signed-off-by: Sergei Shtylyov Acked-by: Mike Frysinger Cc: stable Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit f405387435a85a440d1ce16f3ca36e042281643a Author: Sergei Shtylyov Date: Wed Sep 29 09:54:29 2010 +0300 USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode Since commit 461972d8a4c94bc44f11a13046041c78a7cf18dd (musb_core: don't call musb_platform_exit() twice), unloading the driver module results in a WARNING "kobject: '(null)' (c73de788): is not initialized, yet kobject_put() is being called." (or even kernel oops) on e.g. DaVincis, though only in the OTG mode. There exists dubious and unbalanced put_device() call in musb_free() which takes place only in the OTG mode. As this commit caused musb_platform_exit() to be called (and so unregister the NOP transceiver) before this put_device() call, this function references already freed memory. On the other hand, all the glue layers miss the otg_put_transceiver() call, complementary to the otg_get_transceiver() call that they do. So, I think the solution is to get rid of the strange put_device() call, and instead call otg_put_transceiver() in the glue layers... Signed-off-by: Sergei Shtylyov Cc: stable Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 230f7ede6c2f0e403f29e03e0251a470aa9350dd Author: Anatolij Gustschin Date: Tue Sep 28 20:55:21 2010 +0200 USB: add USB EHCI support for MPC5121 SoC Extends FSL EHCI platform driver glue layer to support MPC5121 USB controllers. MPC5121 Rev 2.0 silicon EHCI registers are in big endian format. The appropriate flags are set using the information in the platform data structure. MPC83xx system interface registers are not available on MPC512x, so the access to these registers is isolated in MPC512x case. Furthermore the USB controller clocks must be enabled before 512x register accesses which is done by providing platform specific init callback. The MPC512x internal USB PHY doesn't provide supply voltage. For boards using different power switches allow specifying DRVVBUS and PWR_FAULT signal polarity of the MPC5121 internal PHY using "fsl,invert-drvvbus" and "fsl,invert-pwr-fault" properties in the device tree USB nodes. Adds documentation for this new device tree bindings. Signed-off-by: Anatolij Gustschin Cc: Grant Likely Signed-off-by: Greg Kroah-Hartman commit 126512e3f274802ca65ebeca8660237f0361ad48 Author: Anatolij Gustschin Date: Tue Sep 28 20:55:20 2010 +0200 USB: add platform glue driver for FSL USB DR controller Replace FSL USB platform code by simple platform driver for creation of FSL USB platform devices. The driver creates platform devices based on the information from USB nodes in the flat device tree. This is the replacement for old arch fsl_soc usb code removed by this patch. The driver uses usual of-style binding, available EHCI-HCD and UDC drivers can be bound to the created devices. The new of-style driver additionaly instantiates USB OTG platform device, as the appropriate USB OTG driver will be added soon. Signed-off-by: Anatolij Gustschin Cc: Kumar Gala Cc: Grant Likely Signed-off-by: Greg Kroah-Hartman commit 99c1e4f89d1033444ce4d0c064bd2826e81c3775 Author: Rainer Keller Date: Tue Sep 28 12:27:43 2010 +0200 USB: add PID for FTDI based OpenDCC hardware The OpenDCC project is developing a new hardware. This patch adds its PID to the list of known FTDI devices. The PID can be found at http://www.opendcc.de/elektronik/usb/opendcc_usb.html Signed-off-by: Rainer Keller Cc: stable Signed-off-by: Greg Kroah-Hartman commit 748eee0986f0d51c7bc39f194d515a8d8248ebdd Author: Grazvydas Ignotas Date: Mon Sep 27 15:17:18 2010 +0300 USB: Add more empty functions in otg.h Add empty functions for get/put transceiver functions too, so that drivers that optionally use them can call them without worrying that they might not exist, eliminating ifdefs. Signed-off-by: Grazvydas Ignotas Acked-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 7893afc035590383a14b176c1497cba984276ef4 Author: Otavio Salvador Date: Sun Sep 26 23:35:05 2010 -0300 USB: cdc-acm: fix code indentation Signed-off-by: Otavio Salvador Signed-off-by: Greg Kroah-Hartman commit 25013315678c78091a7826be7097fa2b60e30aac Author: matt mooney Date: Fri Sep 24 12:17:33 2010 -0700 usb: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Acked-by: WANG Cong Signed-off-by: Greg Kroah-Hartman commit e0c43476c12db99e20066151d0c49aa76b34e50d Author: Felipe Balbi Date: Fri Sep 24 13:44:15 2010 +0300 usb: musb: gadget: only enable AUTOCLEAR in double buffered case commit 633ba7876b96ec339ef685357e2f7c60b5a8ce85 broke g_file_storage functionality by enabling AUTOCLEAR on all cases without caring for all gadget drivers. This patch will only enable AUTOCLEAR if our endpoint's FIFO was configured with double buffering support. Note this is not a complete fix, double buffered case still doesn't work always, but that hasn't been working for quite some time. Other than reverting the entire commit and breaking testusb with double buffered case again, I decided it was better to fix the single buffered case and spend more time fixing double buffered case properly. Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit e7379aaa5ca12f9e011eb5a6bcba88e9bbbfbf87 Author: Ming Lei Date: Fri Sep 24 13:44:14 2010 +0300 usb: musb: gadget: fix ZLP sending in musb_g_tx(v1) This patch fixes the problem reported by Sergei: >how come? we need to send ZLP before giving back the request. >Well, look at the code ionce again. We need to send ZLP *after* >request->actual == request->length, but as the check is inserted >after the ZLP send, ZLP *may* be sent once the first DMA completes, >not the last. The patch also has been discussed on the link below: http://marc.info/?t=128454814900001&r=1&w=2 Signed-off-by: Ming Lei Reported-by: Sergei Shtylyov Cc: David Brownell Cc: Anand Gadiyar Cc: Mike Frysinger Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit a6038ee76a29ea31f8aae4eb6c419794c739e077 Author: Heikki Krogerus Date: Fri Sep 24 13:44:13 2010 +0300 usb: musb: ignore spurious SESSREQ interrupts This will ignore any SESSREQ interrupt if musb is B state. Charger detection may cause spurious SESSREQ interrupts. Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 434678685407e045ffb246df059c486fc0a16e75 Author: Sergei Shtylyov Date: Fri Sep 24 13:44:12 2010 +0300 usb: musb: gadget: kill unreachable code in musb_g_rx() musb_g_rx() always returns if next_request() call yields NULL, so the DBG() near the function's end can never be invoked. Remove it along with unneeded 'return'; also remove the duplicate 'request' check... Signed-off-by: Sergei Shtylyov Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 2f8d5cd6bcf814411ec356bcdbc666d07bbc6026 Author: Jon Povey Date: Fri Sep 24 13:44:10 2010 +0300 USB: musb: suppress warning about unused flags Wrap flags with uninitialized_var() to suppress this: drivers/usb/musb/cppi_dma.c:1158: warning: 'flags' may be used uninitialized in this function Signed-off-by: Jon Povey Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit f8afbf7f2bf3cee0f4fff7cb753ecc9f583972c3 Author: T. S., Anil Kumar Date: Fri Sep 24 13:44:09 2010 +0300 usb: musb: host: support DMA transfers greater than max channel length Add support for MUSB Host DMA transfers greater than max channel length, so that such transfers won't be truncated. Signed-off-by: Anil Shetty Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit ae9b2ad2eea729b907ef5dd5e25d1ff8443d03fc Author: Bob Liu Date: Fri Sep 24 13:44:07 2010 +0300 usb: musb: Change to direct addr in context save/restore Since not all platforms are using the same offset 0x10 in musb_save/restore_context() eg Blackfin the offset is 0x40, Change the indexed address to direct. Signed-off-by: Bob Liu Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 496dda704bca1208e08773ba39b29a69536f5381 Author: Maulik Mankad Date: Fri Sep 24 13:44:06 2010 +0300 usb: musb: host: unmap the buffer for PIO data transfers The USB stack maps the buffer for DMA if the controller supports DMA. MUSB controller can perform DMA as well as PIO transfers. The buffer needs to be unmapped before CPU can perform PIO data transfers. Export unmap_urb_for_dma() so that drivers can perform the DMA unmapping in a sane way. Signed-off-by: Maulik Mankad Acked-by: Alan Stern Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 6587cc0f30cd2f27cf0677e470f18792925a23a4 Author: Anil Shetty Date: Fri Sep 24 13:44:05 2010 +0300 usb: musb: musbhsdma: increase max_len to 1MB MUSB's DMA controller max channel length was set to 64k. Transfer length greater than this max value is being truncated. Signed-off-by: Anil Shetty Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit f11d893de444965dfd3e55f726533ae1df5c6471 Author: Ming Lei Date: Fri Sep 24 13:44:04 2010 +0300 usb: musb: support ISO high bandwidth for gadget mode This patch has been tested OK on beagle B5 board and use usbtest #15 and #16 as testcase. Signed-off-by: Ming Lei Reviewed-by: Sergei Shtylyov Cc: David Brownell Cc: Anand Gadiyar Cc: Mike Frysinger Cc: Sergei Shtylyov Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 3ee076dea68e11d4685972df7298b80b8e7673e4 Author: Sergei Shtylyov Date: Fri Sep 24 13:44:03 2010 +0300 usb: musb: introduce DA8xx/OMAP-L1x glue layer Texas Instruments DA8xx/OMAP-L1x glue layer for the MUSBMHRDC driver. Signed-off-by: Sergei Shtylyov Signed-off-by: Yadviga Grigorieva Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit d613746d8bc3a2904d4585d7efd7f457d9db6fb9 Author: Sergei Shtylyov Date: Fri Sep 24 13:44:02 2010 +0300 USB: musb: make DBG() calls actually depend on CONFIG_USB_MUSB_DEBUG Enabling CONFIG_USB_MUSB_DEBUG option causes -DDEBUG to be added to gcc's command line, however the DBG() macro doesn't depend on DEBUG, so that the debugging messages get printed regardless of the option, and I don't think that this was intended. Get rid of otherwise unused xprintk() macro and make DBG() macro directly call pr_debug() which only results in the actual code generated if DEBUG is defined. This change makes musb_hdrc.o ~30% less in size with CONFIG_USB_MUSB_DEBUG disabled (in host mode). Signed-off-by: Sergei Shtylyov Signed-off-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit e06ea97fa47611992a5a61058729cf8e83bf6fda Author: Tomoki Sekiyama Date: Sun Oct 3 06:59:06 2010 +0900 USB: yurex: fix memory leak and corrupted messages This fixes the memory leak on disconnecting the device. In addition, it fixes some messages corrupted by incorrect encoding. Signed-off-by: Tomoki Sekiyama Signed-off-by: Greg Kroah-Hartman commit 1b62d2583963d5974974aa923214bada7aa7b5d1 Author: Greg Kroah-Hartman Date: Thu Sep 30 05:01:22 2010 -0700 USB: yurex: assign a real minor number to the driver This assigns the minor number 192 to the yurex driver. We also fix up the previous usb minor number entry, it was wrong. Cc: Tomoki Sekiyama Signed-off-by: Greg Kroah-Hartman commit 6bc235a2e24a5ef677daee3fd4f74f6cd643e23c Author: Tomoki Sekiyama Date: Wed Sep 29 12:16:50 2010 +0900 USB: add driver for Meywa-Denki & Kayac YUREX Meywa-Denki/Kayac YUREX is a leg-shakes sensor device. See http://bbu.kayac.com/en/about/ for further information. This driver support read/write the leg-shakes counter in the device via a device file /dev/yurex[0-9]*. [minor coding style cleanups fixed by gregkh] Signed-off-by: Tomoki Sekiyama Cc: Jiri Kosina Signed-off-by: Greg Kroah-Hartman commit 3323b7107ece794eb3e16111b583f5afb6749278 Author: Michal Nazarewicz Date: Thu Oct 7 13:05:24 2010 +0200 USB: gadget: file_storage: reuse definitions from a header file This commit changes storage_common.c and file_storage.c to reuse definitions from linux/usb/storage.h header file. Signed-off-by: Michal Nazarewicz Cc: Alan Stern Cc: Matthew Wilcox Signed-off-by: Greg Kroah-Hartman commit 115bb1ffa54c3934f3617bdd4e4dfc68b11e1e69 Author: Matthew Wilcox Date: Thu Oct 7 13:05:23 2010 +0200 USB: Add UAS driver USB Attached SCSI is a new protocol specified jointly by the SCSI T10 committee and the USB Implementors Forum. Signed-off-by: Matthew Wilcox Cc: Matthew Dharm [mina86@mina86.com: updated to use new USB_ prefix] Signed-off-by: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman commit ae6d22fe1812ce8d40add3eb74ede9cfd2eae44f Author: Matthew Wilcox Date: Thu Oct 7 13:05:22 2010 +0200 USB: Move USB Storage definitions to their own header file The libusual header file is hard to use from code that isn't part of libusual. As the comment suggests, these definitions are moved to their own header file, paralleling other USB classes. Signed-off-by: Matthew Wilcox Cc: Alan Stern [mina86@mina86.com: updated to use USB_ prefix and added #include guard] Signed-off-by: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman index 0000000..d7fc910 commit 8fa7fd74ef398370383df276ca41082ba35aafd8 Author: Michal Nazarewicz Date: Thu Oct 7 13:05:21 2010 +0200 USB: storage: Use USB_ prefix instead of US_ prefix This commit changes prefix for some of the USB mass storage class related macros (ie. USB_SC_ for subclass and USB_PR_ for class). Signed-off-by: Michal Nazarewicz Cc: Alan Stern Cc: Matthew Wilcox Signed-off-by: Greg Kroah-Hartman commit 1992de83e375acc789daf66b7b72a812a5235b75 Author: Matthias G. Eckermann Date: Fri Sep 24 18:12:01 2010 +0200 USB: qcserial: Enable Diagnostics Monitor and GPS ports on Gobi 2000 this patch to qcserial.c enables the Diagnostics Monitor and NMEA GPS ports on Qualcomm Gobi 2000 devices. A Gobi 2000 device will provide 3 serial ports: # /dev/ttyUSB0 -> Diagnostics # /dev/ttyUSB1 -> 3G Modem # /dev/ttyUSB2 -> NMEA GPS port * The Diagnostics Monitor uses Qualcomm's DM protocol; I used libqcdm (ModemManager) to talk to it, found it working, but at least DM commands 12 and 64 are not implemented on my device (Gobi 2000 built into Thinkpad x100e). * Functionality of the 3G Modem port remains unchanged. * The GPS port and how to enable it has been confirmed now in the Gobi 3000 source code at: https://www.codeaurora.org/patches/quic/gobi/ Enable/disable GPS via: echo "\$GPS_START" > /dev/ttyUSB2 # use GPS echo "\$GPS_STOP" > /dev/ttyUSB2 Signed-off-by: Matthias G. Eckermann commit 6195e3c6aa84dbbf80a60731168118824bd58bba Author: Yauheni Kaliuta Date: Fri Sep 24 09:43:27 2010 +0300 USB: cdc.h: ncm: fix one more typo In usb_cdc_ncm_dpe32 the fields are 32 bit long and according to usb style (hungarian notation) should be called dwDatagramIndex and dwDatagramLength (see CDC NCM subclass spec, 3.3.2). Actually, they were called wDatagramIndex, wDatagramLength. Signed-off-by: Yauheni Kaliuta Signed-off-by: Greg Kroah-Hartman commit 677aeafe19e88c282af74564048243ccabb1c590 Author: Johan Hovold Date: Sun Sep 12 16:31:45 2010 +0200 USB: ftdi_sio: revert "USB: ftdi_sio: fix DTR/RTS line modes" This reverts commit 6a1a82df91fa0eb1cc76069a9efe5714d087eccd. RTS and DTR should not be modified based on CRTSCTS when calling set_termios. Modem control lines are raised at port open by the tty layer and should stay raised regardless of whether hardware flow control is enabled or not. This is in conformance with the way serial ports work today and many applications depend on this behaviour to be able to talk to hardware implementing hardware flow control (without the applications actually using it). Hardware which expects different behaviour on these lines can always use TIOCMSET/TIOCMBI[SC] after port open to change them. Reported-by: Daniel Mack Reported-by: Dave Mielke Signed-off-by: Johan Hovold Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1f8dd0154e09220be346819b85d195c791bb0f0b Author: Matthew Garrett Date: Thu Sep 16 14:00:51 2010 -0400 USB: serial: Enable USB autosuspend by default on qcserial Seems to work fine in my testing. Signed-off-by: Matthew Garrett Signed-off-by: Greg Kroah-Hartman commit 969affff54702785330de553b790372e261e93f9 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Mon Sep 20 18:31:07 2010 +0200 USB: atmel_usba_udc: force vbus_pin at -EINVAL when gpio_request failled to ensure gpio_is_valid return false Signed-off-by: Nicolas Ferre Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Cc: stable Signed-off-by: Greg Kroah-Hartman commit e5dcd531ac7a040f1b4d35f58914a36ad6174e84 Author: Yauheni Kaliuta Date: Mon Sep 20 15:40:28 2010 +0300 USB: cdc.h: ncm: add missed constants and structures Make a dedicated structure for datagram pointer entry. There is no explicit declaration in the spec, but it's used by the host implementation and makes the structure more clear. Add some missed constants from the spec Signed-off-by: Yauheni Kaliuta Signed-off-by: Greg Kroah-Hartman commit 7fc09170cedc329ad274433b4f1a653e603600b5 Author: Yauheni Kaliuta Date: Mon Sep 20 15:40:27 2010 +0300 Revert "USB: ncm: added ncm.h with auxiliary definitions" This reverts commit 65e0b499105ec8ff3bc4ab7680873dec20127f9d. Since the host and gadget implementations are different, there is no common code for the file, remove for now. Signed-off-by: Yauheni Kaliuta Signed-off-by: Greg Kroah-Hartman commit 1f53c0e9bbf654ed93f63deee2bf5c9a1816966e Author: Yauheni Kaliuta Date: Mon Sep 20 15:40:26 2010 +0300 USB: cdc.h: ncm: typo and style fixes Some typos were in the initial commit, make the spelling according to the spec. Add some more comments. Also change constant names according to the style of the rest of the file Signed-off-by: Yauheni Kaliuta Signed-off-by: Greg Kroah-Hartman commit c6991b6fd2b4201174dc4620d0c8c4f5ff27b36f Author: Enrico Mioso Date: Fri Sep 17 10:54:23 2010 +0200 USB: option: Add new ONDA vendor id and product id for ONDA MT825UP This patch, adds to the option driver the Onda Communication (http://www.ondacommunication.com) vendor id, and the MT825UP modem device id. Note that many variants of this same device are being release here in Italy (at least one or two per telephony operator). These devices are perfectly equivalent except for some predefined settings (which can be changed of course). It should be noted that most ONDA devices are allready supported (they used other vendor's ids in the past). The patch seems working fine here, and the rest of the driver seems uninfluenced. Signed-off-by: Enrico Mioso Signed-off-by: Greg Kroah-Hartman commit 2f1136d1d08a63dcdbcd462621373f30d8dfe590 Author: DJ Delorie Date: Fri Sep 17 11:09:06 2010 -0400 USB: cp210x: Add Renesas RX-Stick device ID RX610 development board by Renesas Bus 001 Device 024: ID 045b:0053 Hitachi, Ltd Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x045b Hitachi, Ltd idProduct 0x0053 bcdDevice 1.00 iManufacturer 1 Silicon Labs iProduct 2 RX-Stick iSerial 3 0001 . . . http://am.renesas.com/rx610stick Signed-off-by: DJ Delorie Cc: stable Signed-off-by: Greg Kroah-Hartman commit ffb6748fa988927270cafb4d0988e42545b35f82 Author: Keshava Munegowda Date: Tue Sep 14 04:40:01 2010 +0530 usb: omap: ohci: Missing driver unregister in module exit The un-registration of OHCI driver was not done in the ohci_hcd_mod_exit function. This was affecting rmmod command not to work for OMAP3 platforms. The platform driver un-registration for OMAP3 platforms is perfomed while removing the OHCI module from kernel. Signed-off-by: Keshava Munegowda Signed-of-by: Felipe Balbi Signed-off-by: Greg Kroah-Hartman commit 3126d8236ca6f68eb8292c6af22c2e59afbeef24 Author: Rich Mattes Date: Tue Sep 14 00:35:40 2010 -0400 USB: ftdi_sio: Add PID for accesio products Adds support for Accesio USB to Serial adapters, which are built around FTDI FT232 UARTs. Tested with the Accesio USB-COM-4SM. Signed-off-by: Rich Mattes Cc: stable Signed-off-by: Greg Kroah-Hartman commit 82cef0b8bf90047ee10d6b826ca16630e4e80fae Author: Joe Perches Date: Mon Sep 13 21:23:58 2010 -0700 usb: host: oxu210hp-hcd: Use static const char * const where possible Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman commit 834e2312e7a384877a876b0d34dffc3046c96bcb Author: Alan Stern Date: Mon Sep 13 10:43:25 2010 -0400 USB: teach "devices" file about Wireless and SuperSpeed USB The /sys/kernel/debug/usb/devices file doesn't know about Wireless or SuperSpeed USB. This patch (as1416b) teaches it, and updates the Documentation/usb/proc_sub_info.txt file accordingly. Signed-off-by: Alan Stern CC: David Vrabel CC: Sarah Sharp Signed-off-by: Greg Kroah-Hartman commit d3134c3b1a5d2a9dca2ddacacb5d08fad7941d8c Author: Andy Shevchenko Date: Mon Sep 13 11:24:52 2010 +0300 uwb: use '%pM' format to print MAC address Signed-off-by: Andy Shevchenko Cc: David Vrabel Signed-off-by: Greg Kroah-Hartman commit ecfa153ef616b901e86d9a051b329fcda7a6ce7b Author: Mauro Carvalho Chehab Date: Sun Sep 12 11:41:50 2010 -0300 USB: option: Add more ZTE modem USB id's There are lots of ZTE USB id's currently not covered by usb/serial. Adds them, to allow those devices to work properly on Linux. While here, put the USB ID's for 0x2002/0x2003 at the sorted order. This patch is based on zte.c file found on MF645. PS.: The ZTE driver is commenting the USB ID for 0x0053. It also adds, commented, an USB ID for 0x0026. Not sure why, but I think that 0053 is used by their devices in storage mode only. So, I opted to keep the comment on this patch. Signed-off-by: Mauro Carvalho Chehab Cc: stable Signed-off-by: Greg Kroah-Hartman commit c0109b8fd29d1e1623fc0455cdf00463052bb566 Author: Joe Perches Date: Sat Sep 11 22:10:58 2010 -0700 USB: gadget: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman commit e9137c2e44116a1fcb82bb99dc84318e792c150b Author: Javier Martinez Canillas Date: Thu Sep 9 17:31:29 2010 -0400 USB: isp1362-hcd: Removes CONFIG_USB_OTG dependent code, fix build breakage In today linux-next I got a compile error on usb/host/isp1362-hcd: drivers/usb/host/isp1362-hcd.c: In function ‘isp1362_hub_control’: drivers/usb/host/isp1362-hcd.c:1680: error: ‘ohci’ undeclared (first use in this function) The problem is when the CONFIG_USB_OTG option is enabled. ohci variable is never declared and there isn't any CONFIG_USB_OTG dependent code besides the portion defined in isp1362_hub_control. So I think that maybe USB OTG support is not needed/supported. This patch removes the CONFIG_USB_OTG dependent block so the driver can compile cleanly. Signed-off-by: Javier Martinez Canillas Cc: Mike Frysinger Cc: Lothar Wassmann Signed-off-by: Greg Kroah-Hartman commit 5c836e4d583701a5eecb288b5f131da39115f5ec Author: Roger Quadros Date: Wed Sep 8 13:48:44 2010 +0300 usb gadget: composite: prevent OOPS for non-standard control request The composite gadget will OOPS if the host sends a control request targetted to an interface of an un-configured composite device. This patch prevents this. The OOPS was observed during WHQL USB CV tests. With this patch, the device STALLs as per requirement. Failing test case: From host do the following. I used libusb-1.0 1) Set configuration to zero. libusb_control_transfer(device_handle, 0, /* standard OUT */ 0x9, /* setConfiguration */ 0, 0, NULL, 0, 0); 2) Query current configuratioan. libusb_control_transfer(device_handle, 0x80, /* standard IN*/ 0x8, /* getConfiguration */ 0, 0, data, 1, 0); 3) Send the non-standard ctrl transfer targetted to interface libusb_control_transfer(device_handle, 0x81, /* standard IN to interface*/ 0x6, /* getDescriptor */ 0x2300, 0, data, 0x12, 0); Signed-off-by: Roger Quadros Cc: stable Cc: David Brownell Cc: Michal Nazarewicz Cc: Robert Lukassen Cc: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit 3df7169e73fc1d71a39cffeacc969f6840cdf52b Author: Alan Stern Date: Fri Sep 10 16:37:05 2010 -0400 OHCI: work around for nVidia shutdown problem This patch (as1417) fixes a problem affecting some (or all) nVidia chipsets. When the computer is shut down, the OHCI controllers continue to power the USB buses and evidently they drive a Reset signal out all their ports. This prevents attached devices from going to low power. Mouse LEDs stay on, for example, which is disconcerting for users and a drain on laptop batteries. The fix involves leaving each OHCI controller in the OPERATIONAL state during system shutdown rather than putting it in the RESET state. Although this nominally means the controller is running, in fact it's not doing very much since all the schedules are all disabled. However there is ongoing DMA to the Host Controller Communications Area, so the patch also disables the bus-master capability of all PCI USB controllers after the shutdown routine runs. The fix is applied only to nVidia-based PCI OHCI controllers, so it shouldn't cause problems on systems using other hardware. As an added safety measure, in case the kernel encounters one of these running controllers during boot, the patch changes quirk_usb_handoff_ohci() (which runs early on during PCI discovery) to reset the controller before anything bad can happen. Reported-by: Pali RohĂĄr Signed-off-by: Alan Stern CC: David Brownell Tested-by: Pali RohĂĄr CC: stable Signed-off-by: Greg Kroah-Hartman commit 637ed74ff9e86d8c2979e430309a1fd28c921de9 Author: Dan Carpenter Date: Fri Sep 10 21:35:15 2010 +0200 USB: ohci-sm501: add iounmap on error path This ioremap() was leaked on an error path. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 5c8db070b4480c43394680d9dfd2ddb06b97d2ae Author: Praveena Nadahally Date: Fri Sep 10 23:05:03 2010 +0530 USB: Change acm_iad_descriptor bFunctionProtocol to USB_CDC_ACM_PROTO_AT_V25TER The protocol code is set 00 in IAD and it's set to 01 in ACM control interface descriptor in f_acm.c file. Due to this, windows is unable to install the modem(ACM) driver based on class-subclass-protocol matching. This patch corrects the protocol code in ACM IAD to the same as in acm_control_interface_desc protocol code. Acked-by: Linus Walleij Signed-off-by: Praveena Nadahally Cc: stable Signed-off-by: Greg Kroah-Hartman commit 92d3489ec58b5897a407b07ad9954497a119d3d0 Author: Javier Martinez Canillas Date: Fri Sep 10 08:42:08 2010 -0400 USB: r8a66597-udc: Initialize uninitialized variable, fix compile warning In today linux-next I got a compile warning due a possible uninitialized variable This patch solves the issue initializing the variable Signed-off-by: Javier Martinez Canillas Cc: David Brownell Cc: Paul Mundt Cc: Magnus Damm Cc: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit 56e9406ca22968e3c9dc27d6dc0f1825e13bfff9 Author: Hao Wu Date: Thu Sep 9 22:35:54 2010 +0100 USB OTG Langwell: Update OTG Kconfig and driver version. This patch updated Kconfig for langwell otg transceiver driver. Add ipc driver(INTEL_SCU_IPC) as a dependency. Driver version is updated too. Signed-off-by: Hao Wu Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit d39a0edad60dc65cf4774ee732aa7a84cf35c27a Author: Hao Wu Date: Thu Sep 9 22:35:39 2010 +0100 USB OTG: Add common data structure for Intel MID Platform (Langwell/Penwell) This patch adds one new header file for the common data structure used in Intel Penwell/Langwell MID Platform OTG Transceiver drivers. After switched to the common data structure, Langwell/Penwell OTG Transceiver driver will provide an unified interface to host/client driver. Reported-by: Randy Dunlap Signed-off-by: Hao Wu Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 5014b5e33a5485ab669ce536078c957ec221ade3 Author: Thomas Gleixner Date: Tue Sep 7 14:32:43 2010 +0000 usb: ftdi-elan: Convert "mutex" to semaphore The "mutex" ftdi->sw_lock is used as a lock and a completion. Convert it to a real semaphore which allows both. Signed-off-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit a1df4e45c81ec9ae6b537f845db48b82ab40ac4f Author: Mihai Donțu Date: Wed Sep 8 02:54:02 2010 +0300 USB: gadget: rndis: fix up coding style issues in the file Corrected the coding style. Signed-off-by: Mihai Dontu Cc: David Brownell Signed-off-by: Greg Kroah-Hartman commit 65fd42724aee31018b0bb53f4cb04971423be664 Author: Matthieu CASTET Date: Mon Sep 6 18:26:56 2010 +0200 USB: ehci tdi : let's tdi_reset set host mode tdi_reset is already taking care of setting host mode for tdi devices. Don't duplicate code in platform driver. Make ehci_halt a nop if the controller is not in host mode (otherwise it will fail), and let's ehci_reset do the tdi_reset. We need to move hcd->has_tt flags before ehci_halt, in order ehci_halt knows we are a tdi device. Before the setup routine was doing : - put controller in host mode - ehci_halt - ehci_init - hcd->has_tt = 1; - ehci_reset Now we do : - hcd->has_tt = 1; - ehci_halt - ehci_init - ehci_reset PS : now we handle correctly the device -> host transition. Signed-off-by: Matthieu CASTET Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman commit eabf0f5f09b1f1538d22c14aa0a703c11791bd1e Author: Michael Prokop Date: Mon Sep 6 09:53:48 2010 +0200 USB: Kconfig: fix typos in USB_FUNCTIONFS* description It's spelled "Function Filesystem" / "FunctionFS". This patch fixes some typos (FunctioFS->FunctionFS, Funcion->Function, funcion->function, redundant "as") in the Kconfig description of USB_FUNCTIONFS*. Signed-off-by: Michael Prokop Acked-by: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman commit d8087427ccefc0b3364735b96274375246fd452c Author: Alan Stern Date: Fri Sep 3 11:15:41 2010 -0400 USB: g_file_storage: don't generate automatic serial string This patch (as1413) changes g_file_storage to avoid generating a bogus automatic serial-number string descriptor. If the user doesn't provide a valid serial number via a module parameter then a warning is logged and the gadget won't have any serial string descriptor at all. Signed-off-by: Alan Stern Acked-by: David Brownell CC: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman commit 10f47168721c0143f23e94eac2fc797aa643de39 Author: Joe Perches Date: Thu Sep 2 16:34:36 2010 +0200 USB: langwell: Remove unnecessary return's from void functions There are about 2500 void functions in drivers/usb Only a few used return; at end of function. Standardize them a bit. Signed-off-by: Joe Perches Signed-off-by: Jiri Kosina Cc: Stephen Rothwell Signed-off-by: Greg Kroah-Hartman commit f7dd64916bb6cfae8c96eaa3c754c30b5046586f Author: Simon Arlott Date: Mon Aug 30 22:50:20 2010 +0100 USB: output an error message when the pipe type doesn't match the endpoint type Commit f661c6f8c67bd55e93348f160d590ff9edf08904 adds a check of the pipe type if CONFIG_USB_DEBUG is enabled, but it doesn't output anything if this scenario occurs. Signed-off-by: Simon Arlott Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 0cf7a6338808d702c256778188516a16805e6145 Author: Julia Lawall Date: Sat Aug 28 18:48:56 2010 +0200 USB: gadget: amd5536udc.c: Remove double test The same expression is tested twice and the result is the same each time. Instead test for use_dma_ppb as in the test above. The sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @expression@ expression E; @@ ( * E || ... || E | * E && ... && E ) // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 5ea081785dde6041eb2f4acc2369abbb9099a981 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:56 2010 +0200 init.h: add some more documentation to __ref* tags The __ref* tags may have been confusing for new kernel developers (I was confused by them for sure) so adding a few more sentences to comment to clear things up for people who see those for the first time. Signed-off-by: Michal Nazarewicz Acked-by: Uwe Kleine-König Acked-by: Sam Ravnborg Signed-off-by: Greg Kroah-Hartman commit c9bfff9c98671ad50e4abbfe1ab606a9957f7539 Author: Uwe Kleine-König Date: Thu Aug 12 17:43:55 2010 +0200 usb gadget: don't save bind callback in struct usb_configuration The bind function is most of the time only called at init time so there is no need to save a pointer to it in the configuration structure. This fixes many section mismatches reported by modpost. Signed-off-by: Uwe Kleine-König [m.nazarewicz@samsung.com: updated for -next] Signed-off-by: MichaƂ Nazarewicz Signed-off-by: Greg Kroah-Hartman commit 07a18bd716ed5dea336429404b132568cfaaef95 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:54 2010 +0200 usb gadget: don't save bind callback in struct usb_composite_driver The bind function is most of the time only called at init time so there is no need to save a pointer to it in the composite driver structure. This fixes many section mismatches reported by modpost. Signed-off-by: MichaƂ Nazarewicz Acked-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman commit b0fca50f5a94a268ed02cfddf44448051ed9343f Author: Uwe Kleine-König Date: Thu Aug 12 17:43:53 2010 +0200 usb gadget: don't save bind callback in struct usb_gadget_driver To accomplish this the function to register a gadget driver takes the bind function as a second argument. To make things clearer rename the function to resemble platform_driver_probe. This fixes many section mismatches like WARNING: drivers/usb/gadget/g_printer.o(.data+0xc): Section mismatch in reference from the variable printer_driver to the function .init.text:printer_bind() The variable printer_driver references the function __init printer_bind() All callers are fixed. Signed-off-by: Uwe Kleine-König [m.nazarewicz@samsung.com: added dbgp] Signed-off-by: MichaƂ Nazarewicz Signed-off-by: Greg Kroah-Hartman commit e12995ec8f8d99f2a339541fc28998af2d60af0f Author: Michal Nazarewicz Date: Thu Aug 12 17:43:52 2010 +0200 USB: Revert "USB: gadget: section mismatch warning fixed" This reverts a commit which proposed an invalid solution for a section mismatch. Next 3 commits will fix it correctly. Conflicts: drivers/usb/gadget/mass_storage.c Signed-off-by: Michal Nazarewicz Signed-off-by: Greg Kroah-Hartman commit a99d8a45bc2f495be45b8d417b795d7282a69091 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:49 2010 +0200 USB: gadget: g_multi: moved strings handling code to composite This patch removes some of the string registration from the Multifunction Composite Gadget as composite layer can handle the iManufacturer and iProduct for us. This also adds the "needs_serial" so that composite layer will issue a warning if user space fails to provide the iSerialNumber module parameter. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit 7c2b61d02c384a0d5867e524ae72ad98ec2d33fd Author: Michal Nazarewicz Date: Thu Aug 12 17:43:47 2010 +0200 USB: gadget: mass_storage: moved strings handling code to composite This patch removes string registration from the Mass Storage Gadget. With recent changes to the composite framework, all that we need is handled by the composite layer. This means composite registers a string ID for manufacturer and product. This also adds the "needs_serial" so that composite layer will issue a warning if user space fails to provide the iSerialNumber module parameter. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit ad1a8102f957f4d25fc58cdc10736c5ade7557e1 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:46 2010 +0200 USB: gadget: composite: Better string override handling The iManufatcurer, iProduct and iSerialNumber composite module parameters were only used when the gadget driver registers strings for manufacturer, product and serial number. If the gadget never bothered to set corresponding fields in USB device descriptors those module parameters are ignored. This commit makes the parameters work even if the strings ID have not been assigned. It also changes the way IDs are overridden -- what IDs are overridden is now saved in usb_composite_dev structure -- which makes it unnecessary to modify the string tables the way previous code did. The commit also adds a iProduct and iManufatcurer fields to the usb_composite_device structure. If they are set, appropriate strings are reserved and added to device descriptor. This makes it unnecessary for gadget drivers to maintain code for setting those. If iProduct is not set it defaults to usb_composite_device::name; if iManufatcurer is not set a default " with " is used. The last thing is that if needs_serial field of usb_composite_device is set and user failed to provided iSerialNumber parameter a warning is issued. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit fc19de61ef5c17b6e19766052c6ac85cf31de876 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:48 2010 +0200 USB: gadget: functionfs: code cleanup This patch removes some of the string registration from the FunctionFS Gadget as composite layer can handle the iManufacturer and iProduct for us. It also removes some of the module parameters which were redundant as well as changes the name of others to better much the module parameter of the composite layer. Other then that, it also fixes formatting of multiline comments to match the coding style. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Signed-off-by: Greg Kroah-Hartman commit 9cfe745e652eacf57ffc7862b7b3ccbdf336ad19 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:51 2010 +0200 usb: gadget: mass_storage: optional SCSI WRITE FUA bit The nofua parameter (optionally ignore SCSI WRITE FUA) was added to the File Storage Gadget some time ago. This patch adds the same functionality to the Mass Storage Function. Signed-off-by: Michal Nazarewicz Cc: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit 452ee0eb10bd3581cf667a1db18cb684889ce446 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:50 2010 +0200 usb: gadget: storage: remove nofua file when unbinding The dev_attr_nofua file was created during fsg_bind() but was never removed. Made it a bit more symmetrical and added code to remove the file in fsg_unbind(). Signed-off-by: Michal Nazarewicz Acked-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit ba0534be935d7b24e5fdd6f82c443ee75abc9149 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:45 2010 +0200 USB: gadget: g_ffs: fixed vendor and product ID This patch fixes the vendor and product ID the gadget uses by replacing the temporary IDs that were used during development (which should never get into mainline) with proper IDs. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1c6529e92b7682573837e9c9eb7b5ba7a8216a88 Author: Michal Nazarewicz Date: Thu Aug 12 17:43:44 2010 +0200 USB: gadget: g_multi: fixed vendor and product ID This patch fixes the vendor and product ID the gadget uses by replacing the temporary IDs that were used during development (which should never get into mainline) with proper IDs. Signed-off-by: Michal Nazarewicz Signed-off-by: Kyungmin Park Cc: stable Signed-off-by: Greg Kroah-Hartman commit 4bec99174a5911457cddd87ceab4f5e038cc8141 Author: Wolfram Sang Date: Sun Aug 29 18:17:14 2010 +0200 USB: core: update comment to match current function name Found while debugging a USB problem and trying to find the mentioned function. Signed-off-by: Wolfram Sang Signed-off-by: Greg Kroah-Hartman commit 37b5801e16d2e192fe2b20f4af33aa8c6e8786f3 Author: Parirajan Muthalagu Date: Wed Aug 25 16:33:26 2010 +0530 USB Gadget: Verify VBUS current before setting the device self-powered bit Acked-by: David Brownell Acked-by: Linus Walleij Signed-off-by: Praveena Nadahally Signed-off-by: Parirajan Muthalagu Signed-off-by: Greg Kroah-Hartman commit 90593899de83a6e6fdea563d058acd2f4334e3f9 Author: Johan Hovold Date: Thu Aug 19 00:13:48 2010 +0200 USB: sam-ba: add driver for Atmel SAM Boot Assistant (SAM-BA) Add new driver to access the SAM-BA boot application of Atmel AT91SAM devices. The SAM-BA firmware cannot handle merged write requests so we cannot use the generic write implementation (which uses the port write fifo). Tested with the SAM-BA 2.10 tools and an Atmel at91sam9260-ek. Signed-off-by: Johan Hovold Tested-by: Peter Korsgaard Signed-off-by: Greg Kroah-Hartman commit c6a76781da6b7ee2589a6ec87be30abdbc303384 Author: Dan Carpenter Date: Thu Aug 12 09:40:30 2010 +0200 USB: gadget: dbgp: cleanup: remove unneeded check len is always greater than or equal to zero here. First of all, it's type is unsigned and also we only assign it numbers which are greater than or equal to zero. Removing the check lets us pull everything in an indent level. Signed-off-by: Dan Carpenter Acked-by: Stephane duverger Signed-off-by: Greg Kroah-Hartman commit 912c93d1606f60932de3e2f31db3722a9f069ed9 Author: JiebingLi Date: Thu Aug 5 14:18:29 2010 +0100 USB: langwell: USB Client driver memory handling SRAM Memory handling for USB client function Signed-off-by: JiebingLi Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 3211cbc20b406799423385cf62e1f1879b1ca8cc Author: JiebingLi Date: Thu Aug 5 14:18:21 2010 +0100 USB: langwell: USB Client Remote Wakeup Support Remote wakeup support in client driver. Made non-debug only this time. Signed-off-by: JiebingLi Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 513b91b688f527766bfe335d1ffd145257ad1624 Author: JiebingLi Date: Thu Aug 5 14:18:13 2010 +0100 USB: langwell: USB Client PHY low power mode setting PHY low power mode setting with a static function Signed-off-by: JiebingLi Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 3eed298ffa94d77901cfda269c4368de83d133fb Author: JiebingLi Date: Thu Aug 5 14:18:05 2010 +0100 USB: langwell: USB Client Endpoint initialization Endpoint software structure initialization Signed-off-by: JiebingLi Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 5f81f4b0c0a3db9e46a0e8041d7721117ac41956 Author: JiebingLi Date: Thu Aug 5 14:17:54 2010 +0100 USB: langwell: USB Client driver code cleanup Code cleanup by using standard debugging API's and USB inline functions Signed-off-by: JiebingLi Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit f0ae849df1cd6b597130d890f2107ee31bf02c19 Author: Hao Wu Date: Thu Aug 5 14:17:28 2010 +0100 usb: Add Intel Langwell USB OTG Transceiver Driver This adds support for the USB transceiver driver in the Langwell chipset used on the Intel MID platforms. It folds up the original patch set which includes basic support for the device, PHY low power mode (Please notice that there is a limitation, after we drive VBus down, 2ms delay is required from SCU FW to sync up OTGSC register with USBCFG register), software timers (the hardware timers do not work in low power mode), HNP, SRP. Signed-off-by: Hao Wu Signed-off-by: Alek Du Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit cd3ecad19aea8debae9a48b53de2ec7a571f24e9 Author: Daniel Drake Date: Wed Oct 20 16:00:48 2010 -0700 serial8250: ratelimit "too much work" error Running a serial console, if too many kernel messages are generated within a short time causing a lot of serial I/O, the 8250 driver will generate another kernel message reporting this, which just adds to the I/O. It has a cascading effect and quickly results the system being brought to its knees by a flood of "too much work" messages. Ratelimit the error message to avoid this. [akpm@linux-foundation.org: use the superior printk_ratelimited()] [akpm@linux-foundation.org: printk_ratelimited() needs ratelimit.h] Signed-off-by: Daniel Drake Acked-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 0dd25df1a4e63c078f357aaffb09789c9438378f Author: Sonic Zhang Date: Sat Oct 16 18:22:34 2010 -0400 serial: bfin_sport_uart: speed up sport RX sample rate to be 3% faster The actual uart baud rate of devices vary between +/-2% of what is asked. The SPORT RX sample rate should be faster than double of the worst case. Otherwise, wrong data may be received. So set SPORT RX clock to be 3% faster in general. Reported-by: Olivier STOCK Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger Signed-off-by: Greg Kroah-Hartman commit af7f3743567e3d5b40e2f9c21541b7f40b99c103 Author: Alan Cox Date: Mon Oct 18 11:38:02 2010 -0700 serial: abstraction for 8250 legacy ports Not every platform that has generic legacy 8250 ports manages to have them clocked the right way or without errata. Provide a generic interface to allow platforms to override the default behaviour in a manner that dumps the complexity in *their* code not the 8250 driver. Signed-off-by: Alan Cox Signed-off-by: Dirk Brandewie Acked-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit 4e4e66029af090c98cb10fafd13e8dd5039037a9 Author: Volker Ernst Date: Wed Oct 13 11:03:57 2010 +0200 serial/imx: check that the buffer is non-empty before sending it out The .start_tx callback (imx_start_tx here) isn't only called when the buffer is non-empty. E.g. after resume or when handshaking is enabled and the other side starts to signal being ready. So check for an empty puffer already before sending the first character. This prevents sending out stale (or uninitialised) data. Signed-off-by: Volker Ernst Signed-off-by: Daniel Mack Cc: Andy Green [ukl: reword commit log, put check in while condition] Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman commit e5586eccc9aaf485985480e4d3049acffaa3fa90 Author: Feng Tang Date: Thu Oct 14 17:47:35 2010 +0800 serial: mfd: add more baud rates support Add more baud rates support referring the baud_table[] defined in drivers/char/tty_ioctl.c: 3000000/2000000/1000000/500000 Signed-off-by: Feng Tang Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit abf4f6a51477a68fe144b0c62f10c410b0c41378 Author: Breno Leitao Date: Thu Oct 7 13:40:42 2010 -0300 jsm: Remove the uart port on errors If kzmalloc fails, the uart port is not removed causing a leak. This patch just add another label that removes the uart when the kzmalloc fails. Signed-off-by: Breno Leitao Signed-off-by: Greg Kroah-Hartman commit 7d172bfefb72a8dae56beff326299c5e21f6f6db Author: Manuel Lauss Date: Sat Sep 25 15:13:46 2010 +0200 Alchemy: Add UART PM methods. Custom UART PM hook for Alchemy chips: do standard UART pm and additionally en/disable uart block clocks as needed. This allows to get rid of a debug port PM hack in the Alchemy pm code. Tested on Db1200. Signed-off-by: Manuel Lauss Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit c161afe9759ddcc174d08e7c4f683d08ac9ba86f Author: Manuel Lauss Date: Sat Sep 25 15:13:45 2010 +0200 8250: allow platforms to override PM hook. Add a hook for platforms to specify custom pm methods. Signed-off-by: Manuel Lauss Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 70eebd0b604989705f46697814e48fb4ea1d1bb9 Author: Anton Vorontsov Date: Fri Oct 1 17:23:13 2010 +0400 altera_uart: Don't use plain integer as NULL pointer Fixes sparse warning. Signed-off-by: Anton Vorontsov Cc: Alan Cox Acked-by: Tobias Klauser commit 5d89a48acfbaae02e7ecf97d4d8cc570a31964c5 Author: Anton Vorontsov Date: Fri Oct 1 17:22:55 2010 +0400 altera_uart: Fix missing prototype for registering an early console Simply add an early_altera_uart_setup() prototype declaration, otherwise platform code have to do it in .c files, which is ugly. Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 288e9feb51f428377d486e18a107c144554e5e40 Author: Anton Vorontsov Date: Fri Oct 1 17:22:37 2010 +0400 altera_uart: Fixup type usage of port flags port->flags is of type upf_t, which corresponds to UPF_* flags. ASYNC_BOOT_AUTOCONF is an unsigned integer, which happen to be the same as UPF_BOOT_AUTOCONF. Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 99793c660c811309ae4ca94cc9cf1c2f34940197 Author: Anton Vorontsov Date: Fri Oct 1 18:23:24 2010 +0400 altera_uart: Make it possible to use Altera UART and 8250 ports together This fixes tty name, major and minor numbers. The major number 204 is used across many platform-specific serial drivers, so we use that. Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 0d426eda7c94d864ead913f7099c623521368443 Author: Anton Vorontsov Date: Fri Oct 1 17:21:54 2010 +0400 altera_uart: Add support for different address strides Some controllers implement registers with a stride, to support those we must implement the proper IO accessors. Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 6b5756f176568a710d008d3b478128fafb6707f0 Author: Anton Vorontsov Date: Fri Oct 1 17:21:42 2010 +0400 altera_uart: Add support for getting mapbase and IRQ from resources This makes it much easier to integrate the driver with the rest of the Linux (e.g. MFD subsystem). The old method is still supported though. Also, from now on, there is one platform device per port (no changes are needed for the platform code, as no one registers the devices anywhere in-tree yet). Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox , Signed-off-by: Greg Kroah-Hartman commit 2f8b9c15cd88ce22bd80e6eb3988dbaa49f1efd3 Author: Anton Vorontsov Date: Fri Oct 1 17:21:33 2010 +0400 altera_uart: Add support for polling mode (IRQ-less) Some Altera UART implementations doesn't route the IRQ line, so we have to work in polling mode. Signed-off-by: Anton Vorontsov Acked-by: Tobias Klauser Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 54381067ed7873e6173d6fe32818a585ad667723 Author: Anton Vorontsov Date: Fri Oct 1 17:21:25 2010 +0400 serial: Factor out uart_poll_timeout() from 8250 driver Soon we will use that handy function in the altera_uart driver. Signed-off-by: Anton Vorontsov Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 8ee16a1b8985ac930d293553f589b5894eb6a60e Author: Greg Kroah-Hartman Date: Wed Oct 6 13:29:44 2010 -0700 serial: mark the 8250 driver as maintained Clearly I have gone insane, so I might as well tell the world about it. Signed-off-by: Greg Kroah-Hartman commit 97d303b7657c1a45c158d002f829ff69196c493d Author: David Daney Date: Tue Oct 5 11:40:07 2010 -0700 serial: 8250: Don't delay after transmitter is ready. The loop in wait_for_xmitr() is delaying one extra uS after the ready condition has been met. Rewrite the loop to only delay if the transmitter is not ready. Signed-off-by: David Daney Signed-off-by: Greg Kroah-Hartman commit fd8b6cb4d820c4a717af1a0ac3ee387fd84571cf Author: Breno Leitao Date: Wed Oct 6 13:04:48 2010 -0300 tty: MAINTAINERS: add drivers/serial/jsm/ as maintained driver Soott Kilau is handing off the maintainership of the jsm serial driver to me, and this patch just add the driver as maintained. Signed-off-by: Breno Leitao Signed-off-by: Greg Kroah-Hartman commit 432c9ed22aff641039ccd400cdabf983fabc285e Author: Nicolas Pitre Date: Fri Oct 1 00:10:44 2010 -0400 vcs: invoke the vt update callback when /dev/vcs* is written to A notifier chain is called whenever the vt code modifies a terminal content, except for one case which is when the modification comes through writes to /dev/vcs* devices. Let's add the missing notifier invocation at the end of vcs_write() for that case too. Signed-off-by: Nicolas Pitre Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 47725ac76f51328d467b1430dfd027aba8706a11 Author: Nicolas Pitre Date: Tue Oct 5 14:22:37 2010 -0400 vcs: add poll/fasync support The /dev/vcs* devices are used, amongst other things, by accessibility applications such as BRLTTY to display the screen content onto refreshable braille displays. Currently this is performed by constantly reading from /dev/vcsa0 whether or not the screen content has changed. Given the default braille refresh rate of 25 times per second, this easily qualifies as the biggest source of wake-up events preventing laptops from entering deeper power saving states. To avoid this periodic polling, let's add support for select()/poll() and SIGIO with the /dev/vcs* devices. The implemented semantic is to report data availability whenever the corresponding vt has seen some update after the last read() operation. The application still has to lseek() back as usual in order to read() the new data. Not to create unwanted overhead, the needed data structure is allocated and the vt notification callback is registered only when the poll or fasync method is invoked for the first time per file instance. Signed-off-by: Nicolas Pitre Cc: Andrew Morton Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit f4a3e0bceb57466c31757f25e4e0ed108d1299ec Author: Dr. Werner Fink Date: Wed Sep 22 12:45:40 2010 +0200 tty: Add a new file /proc/tty/consoles Add a new file /proc/tty/consoles to be able to determine the registered system console lines. If the reading process holds /dev/console open at the regular standard input stream the active device will be marked by an asterisk. Show possible operations and also decode the used flags of the listed console lines. Signed-off-by: Werner Fink Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit a9e2e06015201c32c43d3615c9bf5e0d4efb4302 Author: Alan Cox Date: Fri Sep 24 15:49:18 2010 +0100 tty: Fix warning left over from TIOCGICOUNT changes Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 0587102cf9f427c185bfdeb2cef41e13ee0264b1 Author: Alan Cox Date: Thu Sep 16 18:21:52 2010 +0100 tty: icount changeover for other main devices Again basically cut and paste Convert the main driver set to use the hooks for GICOUNT Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 0bca1b913affbd7e2fdaffee62a499659a466eb5 Author: Alan Cox Date: Thu Sep 16 18:21:40 2010 +0100 tty: Convert the USB drivers to the new icount interface Simple pasting job using the new ops function. Also fix a couple of devices directly returning the internal struct (which happens at this point to match for the fields that matter but isn't correct or futureproof) Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit d281da7ff6f70efca0553c288bb883e8605b3862 Author: Alan Cox Date: Thu Sep 16 18:21:24 2010 +0100 tty: Make tiocgicount a handler Dan Rosenberg noted that various drivers return the struct with uncleared fields. Instead of spending forever trying to stomp all the drivers that get it wrong (and every new driver) do the job in one place. This first patch adds the needed operations and hooks them up, including the needed USB midlayer and serial core plumbing. Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 68707539df1e9d12435e5d54ffedc7ded50fcd01 Author: Davidlohr Bueso Date: Mon Sep 13 12:08:11 2010 -0400 serial: max3107: Fix memory leaks when returning on error Fix memory leaks in max3107_probe() when returning on error. Signed-off-by: Davidlohr Bueso Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 91efa75ce14db63d1eb47a2935bc7332de243f8d Author: Alan Cox Date: Mon Sep 13 15:39:56 2010 +0800 serial: mrst_max3110: Make the IRQ option runtime And while we are at it allow it to fail to find one. Without this the IRQ option will cause the 3110 driver to fail on 0.7 SFI firmware. Acked-by: Feng Tang Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit ee9b4500eb6433015f35762d390666fede48e574 Author: Feng Tang Date: Mon Sep 13 15:39:48 2010 +0800 serial: mrst_max3110: some code cleanup The cleanup for mrst_max3110 includes: * remove unneeded head files * make the spi_transfer dma safe, so that driver is more portable * add more check for error return value * use mutex_trylock for read thread Signed-off-by: Feng Tang Signed-off-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit b670bde0b2497966d76154cfb9706c38cf8348f9 Author: Vasiliy Kulikov Date: Sun Sep 5 22:32:22 2010 +0400 tty_io: check return code of tty_register_device Function tty_register_device may return ERR_PTR(...). Check for it. Signed-off-by: Vasiliy Kulikov Signed-off-by: Greg Kroah-Hartman commit df480518a688f0d28f7e7de69abe6a441d1c2c64 Author: Jiri Slaby Date: Fri Sep 3 10:31:37 2010 +0200 Char: mxser, call pci_disable_device from probe/remove Vasiliy found that pci_disable_device is not called on fail paths in mxser_probe. Actually, it is called from nowhere in the driver. There are three changes needed: 1) don't use pseudo-generic mxser_release_res. Let's use it only from ISA paths from now on. All the pci stuff is moved to probe and remove PCI-related functions. 2) reorder fail-paths in the probe function so that it makes sense and we can call them from the sequential code naturally (the further we are the earlier label we go to). 3) add pci_disable_device both to mxser_probe and mxser_remove. There is a nit of adding CONFIG_PCI ifdef to mxser_remove. it is because this driver supports ISA-only compilations and it would choke up on the newly added calls now. Signed-off-by: Jiri Slaby Cc: Kulikov Vasiliy Signed-off-by: Greg Kroah-Hartman commit 24b4b67d17c308aaa956b73ab1e88190f6642bbe Author: Samo Pogacnik Date: Wed Aug 25 20:44:07 2010 +0200 add ttyprintk driver Ttyprintk is a pseudo TTY driver, which allows users to make printk messages, via output to ttyprintk device. It is possible to store "console" messages inline with kernel messages for better analyses of the boot process, for example. Signed-off-by: Samo Pogacnik Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 891b9dd10764352926e1e107756aa229dfa2c210 Author: Jason Wang Date: Sat Aug 21 15:14:42 2010 +0800 serial-core: restore termios settings when resume console ports The commit 4547be7 rewrites suspend and resume functions. According to this rewrite, when a serial port is a printk console device and can suspend(without set no_console_suspend flag), it will definitely call set_termios function during its resume, but parameter termios isn't initialized, this will pass an unpredictable config to the serial port. If this serial port is not a userspace opened tty device , a suspend and resume action will make this serial port unusable. I.E. ttyS0 is a printk console device, ttyS1 or keyboard+display is userspace tty device, a suspend/resume action will make ttyS0 unusable. If a serial port is both a printk console device and an opened tty device, this issue can be overcome because it will call set_termios again with the correct parameter in the uart_change_speed function. Refer to the deleted content of commit 4547be7, revert parts relate to restore settings into parameter termios. It is safe because if a serial port is a printk console only device, the only meaningful field in termios is c_cflag and its old config is saved in uport->cons->cflag, if this port is also an opened tty device, it will clear uport->cons->cflag in the uart_open and the old config is saved in tty->termios. Signed-off-by: Jason Wang Acked-by: Stanislav Brabec Signed-off-by: Greg Kroah-Hartman commit ca2e71aa8cfb0056ce720f3fd53f59f5fac4a3e1 Author: Jason Wang Date: Sat Aug 21 15:14:41 2010 +0800 serial-core: skip call set_termios/console_start when no_console_suspend The commit 4547be7 rewrites suspend and resume functions, this introduces a problem on the OMAP3EVM platoform. when the kernel boots with no_console_suspend and we suspend the kernel, then resume it, the serial console will be not usable. This problem should be common for all platforms. The cause for this problem is that when enter suspend, if we choose no_console_suspend, the console_stop will be skiped. But in resume function, the console port will be set to uninitialized state by calling set_termios function and the console_start is called without checking whether the no_console_suspend is set, Now fix it. Signed-off-by: Jason Wang Acked-by: Stanislav Brabec Signed-off-by: Greg Kroah-Hartman commit d838016af3b15452043256acad0be63f215115ba Author: Jeff Mahoney Date: Fri Aug 20 17:14:11 2010 -0400 ioctl: Use asm-generic/ioctls.h on s390 (enables termiox) This patch converts s390 to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - S390 defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - The generic version adds TIOCGRS485 and TIOCGRS485, which are unused by any driver available on this architecture - The generic version adds support for termiox Cc: Martin Schwidefsky Cc: Heiko Carstens Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 00c9c56f6b4c16237c5beb3a91325bf54a37be91 Author: Jeff Mahoney Date: Fri Aug 20 17:14:10 2010 -0400 ioctl: Use asm-generic/ioctls.h on mn10300 (enables termiox) This patch converts mn10300 to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - The generic version provides TIOCGRS485 and TIOCSRS485 but they are unused by any driver available for this architecture. - The generic version adds support for termiox Cc: David Howells Cc: Koichi Yasutake Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit c3f38a7b3f019d32ef5cbe471cba7e0033102cad Author: Jeff Mahoney Date: Fri Aug 20 17:14:09 2010 -0400 ioctl: Use asm-generic/ioctls.h on m68k (enables termiox) This patch converts m68k to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - m68k defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - The generic version adds TIOCSRS485 and TIOCGRS485m which are unused by any driver available on this architecture. - The generic version adds support for termiox Cc: Geert Uytterhoeven Cc: Roman Zippel Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 73352e4398917f3aced4ed162aed84bf0acc5313 Author: Jeff Mahoney Date: Fri Aug 20 17:14:08 2010 -0400 ioctl: Use asm-generic/ioctls.h on m32r (enables termiox) This patch converts m32r to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - The generic version adds TIOCGRS485 and TIOCGRS485, which are unused by any driver available on this architecture. - The generic version adds support for termiox Cc: Hirokazu Takata Cc: Greg Kroah-Hartman Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit e207386865b958bdd331ad43b5150220e3a01806 Author: Jeff Mahoney Date: Fri Aug 20 17:14:07 2010 -0400 ioctl: Use asm-generic/ioctls.h on ia64 (enables termiox) This patch converts ia64 to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - The generic version adds TIOCSRS485 and TIOCGRS485, which are unused by any driver available on this architecture. - The generic version adds support for termiox Cc: Tony Luck Cc: Fenghua Yu Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 30b4b274e4699d7a8b265f53ccb1b7ca536c6394 Author: Jeff Mahoney Date: Fri Aug 20 17:14:06 2010 -0400 ioctl: Use asm-generic/ioctls.h on h8300 (enables termiox) This patch converts h8300 to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - H8300 defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - The generic version adds TIOCSRS485 and TIOGSRS485, but are unused by any driver available on this architecture. - The generic version adds support for termiox Cc: Yoshinori Sato Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 4735d234954342b8f0f6cb20ce9aa35ffe83e712 Author: Jeff Mahoney Date: Fri Aug 20 17:14:05 2010 -0400 ioctl: Use asm-generic/ioctls.h on frv (enables termiox) This patch converts frv to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - FRV defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - FRV defines TIOCTTYGSTRUCT, kept in arch-specific version - The generic version provides TIOCGRS485 and TIOCSRS485 but they are unused by any driver available for this architecture. - The generic version adds support for termiox Cc: David Howells Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 8bc3372d9e57db3c65cf00cea6cf14969875b055 Author: Jeff Mahoney Date: Fri Aug 20 17:14:04 2010 -0400 ioctl: Use asm-generic/ioctls.h on cris (enables termiox) This patch converts cris to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - CRIS defines two ioctls: TIOCSERSETRS485 and TIOCSERWRRS485, kept in arch-specific portion - CRIS defines a different value for TIOCSRS485, kept via ifndef in generic - The generic version adds support for termiox Cc: Mikael Starvik Cc: Jesper Nilsson Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit 94da7d6f1ff3793669946146d9b6ab9c608b938e Author: Jeff Mahoney Date: Fri Aug 20 17:14:03 2010 -0400 ioctl: Use asm-generic/ioctls.h on avr32 (enables termiox) This patch converts avr32 to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - The generic version adds support for termiox Acked-by: Haavard Skinnemoen Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit ccc14f5b9716a5ed4720c7c6af2afbe88dd24a02 Author: Jeff Mahoney Date: Fri Aug 20 17:14:02 2010 -0400 ioctl: Use asm-generic/ioctls.h on arm (enables termiox) This patch converts arm to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - ARM defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - The generic version adds support for termiox Reviewed-by: Russell King Signed-off-by: Jeff Mahoney Signed-off-by: Greg Kroah-Hartman commit f573bd1764f0f3f47754ca1ae7b2eb2909798a60 Author: Pekka Enberg Date: Tue Aug 24 07:48:34 2010 +0300 tty: Remove __GFP_NOFAIL from tty_add_file() This patch removes __GFP_NOFAIL use from tty_add_file() and adds proper error handling to the call-sites of the function. Cc: Andrew Morton Cc: Alan Cox Cc: Arnd Bergmann Signed-off-by: Pekka Enberg Acked-by: David Rientjes Signed-off-by: Greg Kroah-Hartman commit 8a28af7f7e42cd0f107e0d84e4ece89e7ef24d3f Author: Michal Simek Date: Tue Aug 17 10:42:05 2010 +0200 serial: Add CONSOLE_POLL support for uartlite CONSOLE_POLL support for uartlite enables KGDB debugging over serial line. Signed-off-by: Michal Simek Signed-off-by: Jason Wessel Acked-by: Peter Korsgaard Signed-off-by: Greg Kroah-Hartman commit a95898114059e1038f3f7ee9bd2e43aefa62709a Author: Dan Carpenter Date: Thu Aug 12 09:50:09 2010 +0200 serial: mfd: snprintf() returns largish values snprintf() returns the number of bytes which would have been written so it can be larger than the size of the buffer. In this case it's fine, but people copy and paste this code so I've fixed it. Signed-off-by: Dan Carpenter Acked-by: Feng Tang Signed-off-by: Greg Kroah-Hartman commit de838a93cbf35671f890360b886a5c2a8a5d1aa4 Author: Dmitry Eremin-Solenikov Date: Mon Aug 9 18:22:50 2010 +0400 serport: place serport serio device correctly in the device tree Make serport serio device to be a child of corresponding tty device instead of just hanging at /sys/devices/serioX. Signed-off-by: Dmitry Eremin-Solenikov Acked-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman commit 30004ac9c090dcdcca99556b4587b3bad828731a Author: Dmitry Eremin-Solenikov Date: Mon Aug 9 18:22:49 2010 +0400 tty: add tty_struct->dev pointer to corresponding device instance Some device drivers (mostly tty line disciplines) would like to have way know a struct device instance corresponding to passed tty_struct. Add a struct device pointer to struct tty_struct and populate it during initialize_tty_struct(). Signed-off-by: Dmitry Eremin-Solenikov Acked-by: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 5abd935661e01289ba143c3b2c1ba300c65bcc5f Author: Mark Brown Date: Wed Oct 20 11:22:42 2010 -0700 driver core: Display error codes when class suspend fails Aid diagnostics by printing the error code from failed suspends, which doesn't otherwise seem to get displayed. Signed-off-by: Mark Brown Signed-off-by: Greg Kroah-Hartman commit 07681215975e05a1454b0afdeef07deb0db626ee Author: Nathan Fontenot Date: Tue Oct 19 12:46:19 2010 -0500 Driver core: Add section count to memory_block struct Add a section count property to the memory_block struct to track the number of memory sections that have been added/removed from a memory block. This allows us to know when the last memory section of a memory block has been removed so we can remove the memory block. Signed-off-by: Nathan Fontenot Reviewed-by: Robin Holt Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit 2938ffbd466d2811a6012609684a2298eef35065 Author: Nathan Fontenot Date: Tue Oct 19 12:45:24 2010 -0500 Driver core: Add mutex for adding/removing memory blocks Add a new mutex for use in adding and removing of memory blocks. This is needed to avoid any race conditions in which the same memory block could be added and removed at the same time. Signed-off-by: Nathan Fontenot Reviewed-by: Robin Holt Reviewed-By: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit e4619c857d1d769b1172a75ba6b6ebd1186a9c58 Author: Nathan Fontenot Date: Tue Oct 19 12:44:20 2010 -0500 Driver core: Move find_memory_block routine Move the find_memory_block() routine up to avoid needing a forward declaration in subsequent patches. Signed-off-by: Nathan Fontenot Reviewed-by: Robin Holt Reviewed-By: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit 1ce873abed551a4a0f35e25af9eeec4efdcf341b Author: dann frazier Date: Fri Oct 15 10:14:34 2010 -0600 hpilo: Despecificate driver from iLO generation This driver supports iLO, iLO2 and iLO3. However, comments and Kconfig reference only iLO and iLO2. Let's just call it "iLO" to avoid having to update strings for each iLO generation. This is similar to the change made to hpwdt in commit 36e3ff44cebd7e46756dec88f30c982bebefdab7. Signed-off-by: dann frazier Signed-off-by: Greg Kroah-Hartman commit 63d027a63888e993545d10fdfe4107d543f01bca Author: Robin Holt Date: Wed Sep 29 14:00:56 2010 -0500 driver core: Convert link_mem_sections to use find_memory_block_hinted. Modify link_mem_sections() to pass in the previous mem_block as a hint to locating the next mem_block. Since they are typically added in order this results in a massive saving in time during boot of a very large system. For example, on a 16TB x86_64 machine, it reduced the total time spent linking all node's memory sections from 1 hour, 27 minutes to 46 seconds. Signed-off-by: Robin Holt To: Gary Hade To: Badari Pulavarty To: Ingo Molnar Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit 98383031ed77c6eb49ab612166fef9c0efe1604a Author: Robin Holt Date: Wed Sep 29 14:00:55 2010 -0500 driver core: Introduce find_memory_block_hinted which utilizes kset_find_obj_hinted. Introduce a find_memory_block_hinted() which utilizes the recently added kset_find_obj_hinted(). Signed-off-by: Robin Holt To: Dave Hansen To: Matt Tolentino Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit c25d1dfbd403209025df41a737f82ce8f43d93f5 Author: Robin Holt Date: Wed Sep 29 14:00:54 2010 -0500 kobject: Introduce kset_find_obj_hinted. One call chain getting to kset_find_obj is: link_mem_sections() find_mem_section() kset_find_obj() This is done during boot. The memory sections were added in a linearly increasing order and link_mem_sections tends to utilize them in that same linear order. Introduce a kset_find_obj_hinted which is passed the result of the previous kset_find_obj which it uses for a quick "is the next object our desired object" check before falling back to the old behavior. Signed-off-by: Robin Holt To: Robert P. J. Day Reviewed-by: KAMEZAWA Hiroyuki Signed-off-by: Greg Kroah-Hartman commit ead454feb6cbfe0fa6a1eeb30aa9abc338dacf62 Author: Randy Dunlap Date: Fri Sep 24 14:36:49 2010 -0700 driver core: fix build for CONFIG_BLOCK not enabled Fix build errors when CONFIG_BLOCK is not enabled: drivers/base/core.c: In function 'get_device_parent': drivers/base/core.c:634: error: 'block_class' undeclared (first use in this function) drivers/base/core.c: In function 'device_add_class_symlinks': drivers/base/core.c:723: error: 'block_class' undeclared (first use in this function) drivers/base/core.c: In function 'device_remove_class_symlinks': drivers/base/core.c:751: error: 'block_class' undeclared (first use in this function) Signed-off-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit 7a868088ee48d1816c10f9be6d32aef4cf30bcf7 Author: matt mooney Date: Fri Sep 24 12:17:11 2010 -0700 driver-core: base: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Acked-by: WANG Cong Signed-off-by: Greg Kroah-Hartman commit 38f49a5132f24d29236820eb5c7dd956e47f94a3 Author: Eric W. Biederman Date: Mon Sep 20 00:57:03 2010 -0700 sysfs: only access bin file vm_ops with the active lock bb->vm_ops is a cached copy of the vm_ops of the underlying sysfs bin file, which means that after sysfs_bin_remove_file completes it is only longer valid to deference bb->vm_ops. So move all of the tests of bb->vm_ops inside of where we hold the sysfs active lock. Signed-off-by: Eric W. Biederman Signed-off-by: Greg Kroah-Hartman commit a6849fa1f7d7d7adbeb6a696beeabfa078acf173 Author: Eric W. Biederman Date: Mon Sep 20 00:56:27 2010 -0700 sysfs: Fail bin file mmap if vma close is implemented. It is not reasonably possible to wrap vma->close(). To correctly wrap close would imply calling close on any vmas that remain when sysfs_remove_bin_file is called. Finding the proper lists walking them getting the locking right etc, requires deep knowledge of the mm subsystem and as such would require assistence from the mm subsystem to implement. That assistence does not currently exist. Signed-off-by: Eric W. Biederman Signed-off-by: Greg Kroah-Hartman commit 5fc6e9cbce3342379719fc0f8294c45bb888f5cc Author: Randy Dunlap Date: Sat Sep 18 13:23:08 2010 -0700 FW_LOADER: fix kconfig dependency warning on HOTPLUG Fix kconfig dependency warning for FW_LOADER. Lots of drivers select FW_LOADER without bothering to depend on HOTPLUG and/or without selecting HOTPLUG. A kernel builds fine when FW_LOADER is enabled, whether HOTPLUG is enabled or not, and a kernel config file (make oldconfig) is not changed by this patch. (Yes, drivers/base/firmware_class.c uses interfaces from linux/kobject.h, which does have some CONFIG_HOTPLUG dependencies, but this patch does not change that.) warning: (MICROCODE || MICROCODE_INTEL && MICROCODE || MICROCODE_AMD && MICROCODE || PCMCIA_LOAD_CIS && PCCARD && PCMCIA && EXPERIMENTAL || USB_IRDA && NET && IRDA && USB || BT_HCIBCM203X && NET && BT && USB || BT_HCIBFUSB && NET && BT && USB || BT_HCIBT3C && NET && BT && PCMCIA || BT_MRVL_SDIO && NET ... !STAGING_EXCLUDE_BUILD && USB && (X86 || ARM) && WLAN || DRM_NOUVEAU && STAGING && !STAGING_EXCLUDE_BUILD && DRM && PCI || TI_ST && STAGING && !STAGING_EXCLUDE_BUILD && RFKILL || DELL_RBU && X86) selects FW_LOADER which has unmet direct dependencies (HOTPLUG) (5200 byte line reduced a lot) Signed-off-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit c66fdab64fd791bdd49fed4f5785643251ddf586 Author: Eric W. Biederman Date: Tue Sep 14 11:38:36 2010 -0700 uio: Statically allocate uio_class and use class .dev_attrs. Instead of adding uio class attributes manually after the uio device has been created and we have sent a uevent to userspace, use the class attribute mechanism. This removes races and makes the code simpler. At the same time don't bother to dynamically allocate a struct class for uio, just declare one statically. Less code is needed and it is easier to set the class parameters.tune the class Signed-off-by: Eric W. Biederman Reviewed-by: Thomas Gleixner Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit 91960a46c658b719c03fba80f1c60a96393bbcfd Author: Eric W. Biederman Date: Tue Sep 14 11:38:06 2010 -0700 uio: Support 2^MINOR_BITS minors register_chrdev limits uio devices to 256 minor numbers which causes problems on one system I have with 384+ uio devices. So instead set UIO_MAX_DEVICES to the maximum number of minors and use alloc_chrdev_region to reserve the uio minors. The final result is that the code works the same but the uio driver now supports any minor the idr allocator comes up with. Signed-off-by: Eric W. Biederman Reviewed-by: Thomas Gleixner Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit 6427a7655afd7f07dfa83736defd1d94656c83e5 Author: Eric W. Biederman Date: Tue Sep 14 11:37:36 2010 -0700 uio: Cleanup irq handling. Change the value of UIO_IRQ_NONE -2 to 0. 0 is well defined in the rest of the kernel as the value to indicate an irq has not been assigned. Update the calls to request_irq and free_irq to only ignore UIO_IRQ_NONE and UIO_IRQ_CUSTOM allowing the rest of the kernel's possible irq numbers to be used. Signed-off-by: Eric W. Biederman Reviewed-by: Thomas Gleixner Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit 70a9156bad9d9d1476df35dde582b9f411bf5914 Author: Eric W. Biederman Date: Tue Sep 14 11:36:54 2010 -0700 uio: Don't clear driver data Currently uio sets it's driver data to NULL just as it is unregistering attributes. sysfs maks the guaranatee that it will not call attributes after device_destroy is called so this is unncessary and leads to lots of unnecessary code in uio.c Signed-off-by: Eric W. Biederman Reviewed-by: Thomas Gleixner Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit 3d4f9d76b0641b7984f95982e390927fc5998ad6 Author: Eric W. Biederman Date: Tue Sep 14 11:36:27 2010 -0700 uio: Fix lack of locking in init_uio_class There is no locking in init_uio_class so multiple drivers can race and create multiple uio classes. Fix this by simplifying the code. In particular always register the uio class during module_init and make things simpler. Signed-off-by: Eric W. Biederman Reviewed-by: Thomas Gleixner Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit e52eec13cd6b7f30ab19081b387813e03e592ae5 Author: Andi Kleen Date: Wed Sep 8 16:54:17 2010 +0200 SYSFS: Allow boot time switching between deprecated and modern sysfs layout I have some systems which need legacy sysfs due to old tools that are making assumptions that a directory can never be a symlink to another directory, and it's a big hazzle to compile separate kernels for them. This patch turns CONFIG_SYSFS_DEPRECATED into a run time option that can be switched on/off the kernel command line. This way the same binary can be used in both cases with just a option on the command line. The old CONFIG_SYSFS_DEPRECATED_V2 option is still there to set the default. I kept the weird name to not break existing config files. Also the compat code can be still completely disabled by undefining CONFIG_SYSFS_DEPRECATED_SWITCH -- just the optimizer takes care of this now instead of lots of ifdefs. This makes the code look nicer. v2: This is an updated version on top of Kay's patch to only handle the block devices. I tested it on my old systems and that seems to work. Cc: axboe@kernel.dk Signed-off-by: Andi Kleen Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit 39aba963d937edb20db7d9d93e6dda5d2adfdcdd Author: Kay Sievers Date: Sat Sep 4 22:33:14 2010 -0700 driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices This patch removes the old CONFIG_SYSFS_DEPRECATED_V2 config option, but it keeps the logic around to handle block devices in the old manner as some people like to run new kernel versions on old (pre 2007/2008) distros. Signed-off-by: Kay Sievers Cc: Jens Axboe Cc: Stephen Hemminger Cc: "Eric W. Biederman" Cc: Alan Stern Cc: "James E.J. Bottomley" Cc: Andrew Morton Cc: Alexey Kuznetsov Cc: Randy Dunlap Cc: Tejun Heo Cc: "David S. Miller" Cc: Jaroslav Kysela Cc: Takashi Iwai Cc: Ingo Molnar Cc: Peter Zijlstra Cc: David Howells Signed-off-by: Greg Kroah-Hartman commit 807508c8ff9af6ce8f25c5ca5f3eb06a8e7d3286 Author: Anton Vorontsov Date: Tue Sep 7 17:31:54 2010 +0400 base/platform: Simplifications for NULL platform data/resources handling There's no need to explicitly check for data and resources being NULL, as platform_device_add_{data,resources}() do this internally nowadays. This makes the code more linear and less indented. Signed-off-by: Anton Vorontsov Signed-off-by: Greg Kroah-Hartman commit 5cfc64ceb6222aabec640ba76e89529a8fc2c1f0 Author: Anton Vorontsov Date: Tue Sep 7 17:31:49 2010 +0400 base/platform: Safe handling for NULL platform data and resources Some users of platform_device_add_{data,resources}() assume that NULL data and resources will be handled specially, i.e. just ignored. But the platform core ends up calling kmemdup(NULL, 0, ...), which returns a non-NULL result (i.e. ZERO_SIZE_PTR), which causes drivers to oops on a valid code, something like: if (platform_data) stuff = platform_data->stuff; This patch makes the platform core a bit more safe for such cases. Signed-off-by: Anton Vorontsov Signed-off-by: Greg Kroah-Hartman commit 87544653abe4a03324bc85dae32d5bdaabcfccef Author: Greg Kroah-Hartman Date: Tue Sep 21 06:39:23 2010 -0700 debugfs: mark me as the maintainer Add DEBUGFS information to my MAINTAINERS entry as some people have asked about this recently. Signed-off-by: Greg Kroah-Hartman commit da0d7f982d538f4a5bcdddb84df4a484a3b1770b Author: Greg Kroah-Hartman Date: Wed Sep 1 18:06:09 2010 -0700 pch_phub: fix build warnings This patch fixes up all of the build warnings for the pch_phub driver. Cc: Masayuki Ohtake Signed-off-by: Greg Kroah-Hartman commit cf4ece53460c64a04a643ef13f6b6cb4bf3a8342 Author: Masayuki Ohtak Date: Wed Sep 1 21:16:30 2010 +0900 add Packet hub driver for Topcliff Platform controller hub Packet hub driver of Topcliff PCH Topcliff PCH is the platform controller hub that is going to be used in Intel's upcoming general embedded platform. All IO peripherals in Topcliff PCH are actually devices sitting on AMBA bus. Packet hub is a special converter device in Topcliff PCH that translate AMBA transactions to PCI Express transactions and vice versa. Thus packet hub helps present all IO peripherals in Topcliff PCH as PCIE devices to IA system. Topcliff PCH has MAC address and Option ROM data. These data are in SROM which is connected to PCIE bus. Packet hub driver of Topcliff PCH can access MAC address and Option ROM data in SROM via sysfs interface. Signed-off-by: Greg Kroah-Hartman commit c64a0926710153b9d44c979d2942f4a8648fd74e Author: Kevin Hilman Date: Wed Aug 25 12:50:00 2010 -0700 driver core: platform_bus: allow runtime override of dev_pm_ops Currently, the platform_bus allows customization of several of the busses dev_pm_ops methods by using weak symbols so that platform code can override them. The weak-symbol approach is not scalable when wanting to support multiple platforms in a single kernel binary. Instead, provide __init methods for platform code to customize the dev_pm_ops methods at runtime. NOTE: after these dynamic methods are merged, the weak symbols should be removed from drivers/base/platform.c. AFAIK, this will only affect SH and sh-mobile which should be converted to use this runtime approach instead of the weak symbols. After SH & sh-mobile are converted, the weak symobols could be removed. Tested on OMAP3. Cc: Magnus Damm Acked-by: Grant Likely Signed-off-by: Kevin Hilman Signed-off-by: Greg Kroah-Hartman commit 1037246cacd45d951227c8798f181b3ba5c8bcbe Author: Kulikov Vasiliy Date: Tue Aug 3 19:44:23 2010 +0400 uio: do not use PCI resources before pci_enable_device() IRQ and resource[] may not have correct values until after PCI hotplug setup occurs at pci_enable_device() time. The semantic match that finds this problem is as follows: // @@ identifier x; identifier request ~= "pci_request.*|pci_resource.*"; @@ ( * x->irq | * x->resource | * request(x, ...) ) ... *pci_enable_device(x) // Signed-off-by: Kulikov Vasiliy Acked-by: Michael S. Tsirkin Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit d79d32440c33cf60f1e0efbeb8144b1647be0b50 Author: Patrick Pannuto Date: Fri Aug 6 17:12:41 2010 -0700 driver core: platform: Use drv->driver.bus instead of assuming platform_bus_type In theory (although not *yet* in practice), a driver being passed to platform_driver_probe might have driver.bus set to something other than platform_bus_type. Locking drv->driver.bus is always correct. Signed-off-by: Patrick Pannuto Signed-off-by: Greg Kroah-Hartman commit 6a5c083de2f5fbf89a4b0a251be2c2205434d7ea Author: Thomas Renninger Date: Fri Aug 6 16:11:03 2010 +0200 Dynamic Debug: Initialize dynamic debug earlier via arch_initcall Having the ddebug_query= boot parameter it makes sense to set up dynamic debug as soon as possible. I expect sysfs files cannot be set up via an arch_initcall, because this one is even before fs_initcall. Therefore I splitted the dynamic_debug_init function into an early one and a later one providing /sys/../dynamic_debug/control file. Possibly dynamic_debug can be initialized even earlier, not sure whether this still makes sense then. I picked up arch_initcall as it covers quite a lot already. Dynamic debug needs to allocate memory, therefore it's not easily possible to set it up even before the command line gets parsed. Therefore the boot param query string is stored in a temp string which is applied when dynamic debug gets set up. This has been tested with ddebug_query="file ec.c +p" and I could retrieve pr_debug() messages early at boot during ACPI setup: ACPI: EC: Look up EC in DSDT ACPI: EC: ---> status = 0x08 ACPI: EC: transaction start ACPI: EC: <--- command = 0x80 ACPI: EC: ~~~> interrupt ACPI: EC: ---> status = 0x08 ACPI: EC: <--- data = 0xa4 ... ACPI: Interpreter enabled ACPI: (supports S0 S3 S4 S5) ACPI: Using IOAPIC for interrupt routing ACPI: EC: ---> status = 0x00 ACPI: EC: transaction start ACPI: EC: <--- command = 0x80 Signed-off-by: Thomas Renninger Acked-by: jbaron@redhat.com Acked-by: Pekka Enberg CC: linux-acpi@vger.kernel.org Signed-off-by: Greg Kroah-Hartman commit a648ec05bb950fae2f35d0490ddd6cf15010af72 Author: Thomas Renninger Date: Fri Aug 6 16:11:02 2010 +0200 Dynamic Debug: Introduce ddebug_query= boot parameter Dynamic debug lacks the ability to enable debug messages at boot time. One could patch initramfs or service startup scripts to write to /sys/../dynamic_debug/control, but this sucks. This patch makes it possible to pass a query in the same format one can write to /sys/../dynamic_debug/control via boot param. When dynamic debug gets initialized, this query will automatically be applied. Signed-off-by: Thomas Renninger Acked-by: jbaron@redhat.com Acked-by: Pekka Enberg Signed-off-by: Greg Kroah-Hartman commit fd89cfb8718753459fcea3fe6103d19de5e86c9b Author: Thomas Renninger Date: Fri Aug 6 16:11:01 2010 +0200 Dynamic Debug: Split out query string parsing/setup from proc_write The parsing and applying of dynamic debug strings is not only useful for /sys/../dynamic_debug/control write access, but can also be used for boot parameter parsing. The boot parameter is introduced in a follow up patch. Signed-off-by: Thomas Renninger Acked-by: jbaron@redhat.com Acked-by: Pekka Enberg Signed-off-by: Greg Kroah-Hartman commit 36845d09b93ff04b1c26c47f2c278dd779462468 Author: Dominik Brodowski Date: Fri Oct 22 18:39:23 2010 +0200 pcmcia: fix ni_daq_700 compilation Reported-by: Anca Emanuel Signed-off-by: Dominik Brodowski commit 91151240ed8e97cc4457dae4094153c2744f1eb8 Merge: 211baf4 fe8e0c2 Author: Linus Torvalds Date: Fri Oct 22 08:54:21 2010 -0700 Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, 32-bit: Align percpu area and irq stacks to THREAD_SIZE x86: Move alloc_desk_mask variables inside ifdef x86-32: Align IRQ stacks properly x86: Remove CONFIG_4KSTACKS x86: Always use irq stacks Fixed up trivial conflicts in include/linux/{irq.h, percpu-defs.h} commit 211baf4ffc6e78a2299bb4215264ada313048ec5 Merge: c19483c 995bd3b Author: Linus Torvalds Date: Fri Oct 22 08:47:45 2010 -0700 Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Hpet: Avoid the comparator readback penalty commit c19483cc5e56ac5e22dd19cf25ba210ab1537773 Author: Alan Cox Date: Fri Oct 22 14:11:26 2010 +0100 bluetooth: Fix missing NULL check Fortunately this is only exploitable on very unusual hardware. [Reported a while ago but nothing happened so just fixing it] Signed-off-by: Alan Cox Cc: stable@kernel.org Signed-off-by: Linus Torvalds commit 005a1d15f5a6b2bb4ada80349513effbf22b4588 Author: Jens Axboe Date: Fri Oct 22 10:58:33 2010 +0200 xen-blkfront: disable barrier/flush write support The driver doesn't handle empty flushes. Disable barrier/flush write support until this is fixed up. Signed-off-by: Jens Axboe commit 07bd8516a2f967aa67904c68ab97bb896a448b09 Author: Jan Beulich Date: Fri Oct 22 08:22:35 2010 +0100 x86, asm: Restore parentheses around one pushl_cfi argument These were (intentionally) stripped by "fix CFI macro invocations to deal with shortcomings in gas" to expose problems with unexpected splitting of arguments by older gas also on newer versions, but as it turns out there is at least one distro (Ubuntu 6.06) where even not having *any* spaces in a macro argument doesn't reliably prevent splitting into multiple arguments. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4CC157DB020000780001E8A2@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit a22dcdb0032c78c6b443f6897d7ac432a3b5a272 Author: Alexander van Heukelum Date: Thu Oct 21 23:30:49 2010 +0200 x86, asm: Fix ancient-GAS workaround It turns out to generate something like this: printk ( ("<3>") "something"); The extra parentheses here break the UML compile. Change the sed-program to add the parentheses only for numbers. Reported-by: Ingo Molnar Signed-off-by: Alexander van Heukelum Acked-by: Jan Beulich LKML-Reference: <1287696649.20421.1401306095@webmail.messagingengine.com> Signed-off-by: Ingo Molnar commit 5cc1c567c1106c22cee3b069c440da3f85f637f0 Author: Mike Frysinger Date: Wed Sep 22 02:46:44 2010 +0000 Blackfin: bf526-ezbrd/bf527-ezkit: add NAND partition for u-boot Since these boards can boot out of NAND, make sure we give u-boot its own partition by default to avoid clobbering it. Signed-off-by: Mike Frysinger commit 46284cd6bfc99a38165c41651477ec6497aa38ec Author: Sonic Zhang Date: Mon Sep 20 11:06:18 2010 +0000 Blackfin: merge kernel init memory back into main memory region If the kernel's init section is merged back into the main memory region during boot (which it should since that is how we've laid out the kernel linker map), we want to make sure that these aren't counted as independent regions. Otherwise, if a large mapping is attempted which starts in the init region and extends into the main memory region, the access_ok func will deny it. This leads to weird messages during runtime like "unable to map xxx library" from the ldso but upon running the application again, everything works fine. So if the address of the end of the init region is the same as the start of the main memory region, simply enlarge the memory region to include the init region. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit 05bbec38dbafa60583be8347dea88919d48cc733 Author: steven miao Date: Fri Sep 17 03:03:17 2010 +0000 Blackfin: gpio: add peripheral group check Many Blackfin parts group sets of pins into a single functional unit. This means you cannot use different pins within a group for different peripherals. Our resource conflict checking thus far has been limited to individual pins, so if someone tried to grab a different pin from the same group, it would be allowed while silently changing the other pins in the same group. One common example is the pin set PG12 - PG15 on BF51x parts. They may either be used with SPI0 (1st function), or they may be used with PTP/PWM/AMS3 (3rd function). Ideally, we'd like to use PG12 - PG14 for SPI0 while using PG15 with AMS3, but the hardware does not permit this. In the past, the software would allow the pins to be requested this way, but ultimately things like the Blackfin SPI driver would stop working when the hardware rerouted to a different peripheral. Signed-off-by: steven miao Signed-off-by: Mike Frysinger commit a71159b96a210d3e4d9bd24dd21278aa29770e9d Author: Mike Frysinger Date: Tue Sep 7 20:07:58 2010 +0000 Blackfin: dma: bf54x: add missing break for SPORT1 TX IRQ Reported-by: D Binderman Signed-off-by: Mike Frysinger commit 99a5b2878b56d24919eb7e646f2d8e02f63a6efc Author: Sonic Zhang Date: Mon Sep 6 10:16:04 2010 +0000 Blackfin: add new cacheflush syscall Flushing caches sometimes requires anomaly workarounds which require supervisor-only insns. Normally we don't need to flush caches from userspace so this isn't a problem, but when gcc generates trampolines on the stack, we do. So add a new syscall for gcc to use modeled after the mips version. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit 73775b892ee70bdc0dbd6aeeebb50894d062f9a1 Author: Mike Frysinger Date: Fri Aug 27 20:43:39 2010 +0000 Blackfin: bf548-ezkit: increase u-boot partition size The BF54x processor has a ton of on-chip peripherals and in order to support them all, the u-boot image is quite large. So give it 512KiB in all bootable flashes to make our lives easier. Signed-off-by: Mike Frysinger commit 39d3c1ca1f9482faa7d216c09553a6b81b955930 Author: steven miao Date: Thu Aug 26 08:25:13 2010 +0000 Blackfin: boards: add example i2c resources for ad525x devices Signed-off-by: steven miao Signed-off-by: Mike Frysinger commit bedeea6e3bdca8ccb455aef11d9db23911af3863 Author: Michael Hennerich Date: Fri Aug 20 11:59:27 2010 +0000 Blackfin: SIC: fix off-by-one error in loop Make sure we include EMAC_SYSTAT when showing errors. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 948ca1a788e948379c7164e2cc08797929f17258 Author: Sonic Zhang Date: Wed Aug 18 09:17:25 2010 +0000 Blackfin: bf537-stamp: tweak i2c address for ad5280 add-on tftlcd board The predefined i2c address 0x2c doesn't match the configuration of the ad5280 PINs AD0 and AD1 on the tftlcd add-on board. Both AD0 and AD1 are of voltage 3.3V, which means the i2c address should be 0x2F. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit 8060bb6f59c9a7b8621cf4d6ca999d9f75f203cb Author: Mike Frysinger Date: Mon Aug 16 16:18:12 2010 +0000 Blackfin: bf51x: enable support for 0.2 silicon Signed-off-by: Mike Frysinger commit 33ded95b1ca5ebd27a762cabaee63f50eb46dcd6 Author: Barry Song Date: Thu Aug 12 07:56:40 2010 +0000 Blackfin: initial preempt support while returning from interrupt Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit c0ab9387456d7660dead96ce1b5463741f087db1 Author: Robin Getz Date: Fri Jul 9 17:29:26 2010 +0000 Blackfin: workaround anomaly 05000481 (corruption with ITEST MMRs) Nothing actually needs to use these MMRs (as direct cache manipulation is done with the DTEST MMRs), so simply hide the read funcs behind the anomaly define. They're generally unusable anyways when this anomaly is in effect. Signed-off-by: Robin Getz Signed-off-by: Mike Frysinger commit 3d7dc8836a0f08cbe6d8d499ddce05809b687f58 Author: Mike Frysinger Date: Fri Jul 2 21:02:50 2010 +0000 Blackfin: i2c-gpio boards: use GPIO_PF# defines Rather than use raw numbers for the GPIO pins, use proper GPIO defines. Signed-off-by: Mike Frysinger commit 41c3e3346ab8e5caf9e76395bd812fac884ad371 Author: Barry Song Date: Tue Jun 29 08:43:38 2010 +0000 Blackfin: access_ok: permit L1 stack When apps run with their stack in L1, some system calls might be made where a buffer is in the stack as an argument. So make sure the core Blackfin access code does not reject this memory location. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 027285e86fca48f1af3ed8b86a5c03453766f5ca Author: Barry Song Date: Mon Jun 28 08:39:37 2010 +0000 Blackfin: bf561-ezkit: add AD1836 codec resources This board has an AD1836 codec, so make sure we have the right resources declared for it. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 175671e75c54cf4b17c71d9c99151dd5635964b1 Author: Barry Song Date: Mon Jun 21 10:19:50 2010 +0000 Blackfin: ptrace: enable access to L1 stacks If an app is placing its stack in L1 scratchpad SRAM, make sure ptrace is granted access to it so that gdb can do its thing. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit c5af5451fcf97f38f0c79cbb9f929af2779f234d Author: Mike Frysinger Date: Wed Jun 16 19:29:51 2010 +0000 Blackfin: boards: fix num_chipselect values for on-chip SPI buses The num_chipselect field for on-chip Blackfin SPI buses is supposed to be 1 larger than the number of actual CSs available. This is because the hardware starts counting at 1 and not 0. There is a field for "CS0", but it is marked as "reserved" everywhere. Signed-off-by: Mike Frysinger commit 8effc4a68bfc341764a2e3f3006c6dc8e67e9a67 Author: Michael Hennerich Date: Tue Jun 15 09:51:05 2010 +0000 Blackfin: ad7160eval: new board port Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 27e9f0b43600c19bb244aed588fbc25ba92d6343 Author: Sonic Zhang Date: Wed Jun 2 08:24:18 2010 +0000 Blackfin: bf537-stamp: re-use regulator framework with ad5398 parts We don't need our own header and structure to hook up the ad5398 part, so drop the custom resources for it. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit 1b04cbeabdbda802c53f4bf85cd9db0c82643152 Author: Sonic Zhang Date: Wed Jun 2 05:00:21 2010 +0000 Blackfin: bf537-stamp: re-use the fixed regulator voltage driver Rather than write our own ADP switch driver, use the existing fixed regulator driver and rewrite the platform resources accordingly. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit 2adcf194cbf3ec5181efa8e7af180e2c9f1a63e2 Author: Michael Hennerich Date: Fri May 21 13:20:38 2010 +0000 Blackfin: SIC: BF537: change default data/error relative priorities Some peripherals might generate an error interrupt shortly after the data interrupt due to the fact that the peripheral isn't serviced fast enough. In most cases this isn't a problem and is expected behavior. This hasn't been a problem on most parts since you simply don't request the error interrupt (or you leave it disabled while there is an expected state) and do the peripheral status checking in the data interrupt. The Blackfin SIC allows people to prioritize data and error interrupts, and the Blackfin CEC allows interrupts of equal or higher priority to nest. The current default settings gives error interrupts a higher priority than data interrupts. So if an error occurs while processing the data interrupt, it will be serviced immediately. However, the error interrupt on the BF537 SIC cannot be enabled on a per-peripheral basis. Once the error interrupt is enabled for one peripheral, it is automatically enabled for all peripherals. Therefore lower the default multiplexed error interrupt priority so most people need not worry themselves with this issue. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 0891baef7d2e1777b81e780c3b8cfcc169d6979f Author: Michael Hennerich Date: Mon Mar 8 11:58:53 2010 +0000 Blackfin: bf537-stamp: add example IIO resources Signed-off-by: Michael Hennerich Signed-off-by: Sonic Zhang Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 6fbfa0c41878a5284156d4678dc514c92524e0b9 Author: Barry Song Date: Mon Apr 12 05:04:15 2010 +0000 Blackfin: bf537-stamp: use correct spi mode with ad2s90 parts Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 3cbcb1616c071543525e2ef2fab439848c8bac88 Author: Cliff Cai Date: Thu Apr 22 05:55:56 2010 +0000 Blackfin: bf537-stamp: add example adau1373 i2c resources Signed-off-by: Cliff Cai Signed-off-by: Mike Frysinger commit a65912ca57886fcfd2568e422fbc58f91b015c9e Author: Yi Li Date: Tue Apr 6 05:53:16 2010 +0000 Blackfin: bf537-stamp: add example adav801/3 resources Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit 92b20f7fb28e541d7f8efb4e3e8d81733aa8adfc Author: Barry Song Date: Wed Mar 17 08:12:30 2010 +0000 Blackfin: bf537-stamp: add example ad1937 i2c resources Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 67d9963bd79b8f861387982ac5c0ff796f12be61 Author: Mike Frysinger Date: Tue Mar 16 14:28:44 2010 +0000 Blackfin: bf537-stamp: fix NAND resources The NAND platform driver expects the registers to have a "mem" resource type rather than "io". Signed-off-by: Mike Frysinger commit 9e75894c50d126bf3c8efb0efc91d5a93d6163dd Author: Michael Hennerich Date: Thu Mar 18 12:51:49 2010 +0000 Blackfin: boards: use proper irq flags with isp1362-hcd With the recent kernel update the isp1362-hcd driver evaluates the IORESOURCE_IRQ resource flags and requests the irq with the given polarity/edge settings. However the ISP1362 config requires low level/edge interrupts. Most of the Blackfin boards use some random flag or no flag at all. Make all boards use a know good flag IORESOURCE_IRQ_LOWEDGE. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 657bb918d91d8e291f7c40e4a101c44b53fe25fa Author: Valentin Yakovenkov Date: Tue Mar 16 13:01:50 2010 +0000 Blackfin: bf561-acvilon: fix NAND resources The NAND platform driver expects the registers to have a "mem" resource type rather than "io". Signed-off-by: Valentin Yakovenkov Signed-off-by: Mike Frysinger commit bf80caf4f14010f73cd4f14b49bba8fe6ae94046 Author: Michael Hennerich Date: Fri Apr 16 13:53:23 2010 +0000 Blackfin: cm-bf548: add support for Socket CAN Add platform resources for the on-chip CAN peripheral so we can use it. Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit b4627321e18582dcbdeb45d77df29d3177107c65 Author: Vivek Goyal Date: Fri Oct 22 09:48:43 2010 +0200 cfq-iosched: Fix a gcc 4.5 warning and put some comments - Andi encountedred following warning with gcc 4.5 linux/block/cfq-iosched.c: In function ‘cfq_dispatch_requests’: linux/block/cfq-iosched.c:2156:3: warning: array subscript is above array bounds - Warning happens due to following code. slice = group_slice * count / max_t(unsigned, cfqg->busy_queues_avg[cfqd->serving_prio], cfq_group_busy_queues_wl(cfqd->serving_prio, cfqd, cfqg)); gcc is complaining about cfqg->busy_queues_avg[] being indexed by CFQ prio classes (RT, BE and IDLE) while the array size is only 2. - At run time, we never access cfqg->busy_queues_avg[IDLE] and return from function before this code hits. - To fix warning increase the array size though it will remain unused. This patch also puts some comments to clarify some of the confusions. - I have taken Jens's patch and modified it a bit. - Compile tested with gcc 4.4 and boot tested. I don't have gcc 4.5 running, Andi can you please test it with gcc 4.5 to make sure it worked. Reported-by: Andi Kleen Signed-off-by: Vivek Goyal Acked-by: Jeff Moyer Signed-off-by: Jens Axboe commit 7ba80063e90302287625a105c546c2fc318fcfbf Author: Barry Song Date: Thu Jan 28 09:37:21 2010 +0000 Blackfin: boards: update AD183x resources Make sure we use the right Kconfig names and platform strings. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487 Author: Barry Song Date: Tue Nov 17 09:45:59 2009 +0000 Blackfin: bf537-stamp: update GPIO CS devices Now that we've rewritten the GPIO CS handling in the Blackfin SPI peripheral, we need to update the platform resources accordingly. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 3d6437b35d68836b6ec4d45a24dfdafc61a27a84 Author: Mike Frysinger Date: Thu Oct 15 04:13:29 2009 +0000 Blackfin: punt short SPI MMR bit names Now that the common header defines everything and the SPI drivers are using it, we can drop these duplicated global namespace polluters. Signed-off-by: Mike Frysinger commit 779b7e64b536ff65bcd40c0292871d2bb9b6d6e5 Author: Thorsten Glaser Date: Sun Oct 3 18:48:51 2010 +0000 m68k: Add missing I/O macros {in,out}{w,l}_p() for !CONFIG_ISA On m68k, I/O macros like inb() outw() etc. are only defined to something useful if CONFIG_ISA is set; dummies are in place if not, but four macros were missing from the !CONFIG_ISA case. Adding these makes some drivers, such as speakup, compile again. Signed-off-by: Thorsten Glaser Signed-off-by: Geert Uytterhoeven commit 2f81a18446c3061b74f4770eb95adeba2a864b0f Author: Geert Uytterhoeven Date: Tue Sep 14 21:34:58 2010 +0200 m68k: Remove big kernel lock in cache flush code The cache flush code doesn't need a lock, so we can remove the use of the BKL. Signed-off-by: Geert Uytterhoeven Reported-by: Arnd Bergmann Suggested-by: Andreas Schwab commit 22e58f9de5d140116eb3a30d5e54396e3030bed2 Author: Andrew Morton Date: Sat Oct 2 19:32:41 2010 +0200 m68k: __pa(): cast arg to long Fixes this: drivers/char/mem.c: In function 'mmap_kmem': drivers/char/mem.c:342: warning: cast to pointer from integer of different size by doing what other archtiectures do. Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Geert Uytterhoeven commit 8ce71db25edccde4d8e3e39bffb4178bf1018ef1 Author: Christian Dietrich Date: Mon Sep 6 16:36:47 2010 +0200 fbdev: atafb - Remove undead ifdef ATAFB_FALCON The ATAFB_FALCON ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Signed-off-by: Christian Dietrich Acked-by: Krzysztof Helt Signed-off-by: Geert Uytterhoeven commit 10b68799b32d60ff578742d0deebc98afff30dba Author: Vasiliy Kulikov Date: Sun Sep 19 16:55:21 2010 +0400 zorro: Fix device_register() error handling If device_register() fails then call put_device(). See comment to device_register. Signed-off-by: Vasiliy Kulikov Signed-off-by: Geert Uytterhoeven commit 0c37dd7c41b7391698bbe354b81fe9909c281984 Author: Henrik Kretzschmar Date: Fri Aug 20 19:13:24 2010 +0200 fbdev/m68k: Fix section mismatches in q40fb.c This patch moves the q40_fix and q40_var structures from .init.data to .devinit.data. This is where now the probe function resides, which only uses them. Signed-off-by: Henrik Kretzschmar Signed-off-by: Geert Uytterhoeven commit c6597dc46121582475358e3d46971902587d02d6 Author: Greg Ungerer Date: Tue Sep 7 15:49:31 2010 +1000 m68k/m68knommu: merge the MMU and non-MMU traps.h The MMU and non-MMU versions of traps.h are virtually identical, merge them into a single file. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit cddafa3500fde4a07e5bf899ec97a04069f8f7ce Author: Greg Ungerer Date: Mon Sep 13 14:10:45 2010 +1000 m68k/m68knommu: merge MMU and non-MMU thread_info.h The MMU and non-MMU versions of thread_info.h are quite similar. Merge the two files. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit 69f99746a2cfd88b9caed8e320ad86405b228ada Author: Greg Ungerer Date: Wed Sep 8 10:31:11 2010 +1000 m68k/m68knommu: merge MMU and non-MMU atomic.h The only difference between the MMU and non-MMU versions of atomic.h is some extra support needed by ColdFire family processors. So merge this into the MMU version of atomic.h. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit 138ff3462f53a7370bef15443e623ecba1c350bf Author: Greg Ungerer Date: Tue Sep 7 15:49:10 2010 +1000 m68k/m68knommu: clean up page.h There is a lot of common defines in the MMU and non-MMU variants of page.h. Factor out the common stuff into the master page.h. It still includes the underlying page_mm.h or page_no.h, but they only contain the real differences now. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit b0860c1d80016df82b93b926f1cff3110ccb5028 Author: Greg Ungerer Date: Tue Sep 7 15:48:43 2010 +1000 m68k/m68knommu: merge machdep.h files into a single file No need to have separate machdep.h files for each of the MMU and non-MMU cases. Merge them all into a single file. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit ea61bc461d09e8d331a307916530aaae808c72a2 Author: Greg Ungerer Date: Tue Sep 7 14:52:52 2010 +1000 m68k/m68knommu: merge MMU and non-MMU string.h The MMU and non-MMU string.h varients (string_no.h and string_mm.h) and almost the same. Switch to using the string_mm.h one, merging in the necessary ColdFire support. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit 5bc5a70b62e5b672e40dd031da3e0444f62dbd3a Author: Christian Dietrich Date: Wed Aug 4 14:41:45 2010 +0200 m68k/m68knommu: Remove dead SMP config option CONFIG_SMP doesn't exist in Kconfig (for this architecure), therefore remove all references to it from the source. Signed-off-by: Christian Dietrich Signed-off-by: Geert Uytterhoeven commit a8a6aa0f060e98f9af170c0905d3d5af3b3fa21d Author: Greg Ungerer Date: Tue Sep 7 15:49:00 2010 +1000 m68k: move definition of THREAD_SIZE into thread_info_mm.h Move the definition of THREAD_SIZE from page_mm.h to thread_info_mm.h This logically associates it with the other thread definitions, and will make it easier to merge the MMU and non-MMU versions of page.h and thread_info.h. Signed-off-by: Greg Ungerer Signed-off-by: Geert Uytterhoeven commit 03e4012c6df858ace45bd8571be59d0c6021ad55 Author: Jeff Mahoney Date: Fri Aug 20 17:14:09 2010 -0400 m68k: Use asm-generic/ioctls.h (enables termiox) This patch converts m68k to use asm-generic/ioctls.h instead of its own version. The differences between the arch-specific version and the generic version are as follows: - m68k defines its own value for FIOQSIZE, asm-generic/ioctls.h keeps it - The generic version adds TIOCSRS485 and TIOCGRS485m which are unused by any driver available on this architecture. - The generic version adds support for termiox Cc: Geert Uytterhoeven Cc: Roman Zippel Cc: Greg Kroah-Hartman Signed-off-by: Jeff Mahoney Signed-off-by: Geert Uytterhoeven commit 808fa62f1b0f75eef76aa3a7682a8fd89eae581f Author: Christian Dietrich Date: Wed Aug 4 14:41:34 2010 +0200 m68k: Remove dead GG2 config option CONFIG_GG2 doesn't exist in Kconfig, therefore remove all references to it from the source. Signed-off-by: Christian Dietrich Signed-off-by: Geert Uytterhoeven commit ff10fca5ceacf7bc59636f5ab808e775d1717167 Author: Dominik Brodowski Date: Fri Oct 22 08:46:36 2010 +0200 pcmcia: IOCARD is also required for using IRQs Dave Hinds pointed out to me that 37979e1546a7 will break b43 and ray_cs, as IOCARD is not -- as the name would suggest -- only needed for cards using IO ports. Instead, as it re-deines several pins, it is also required for using interrupts. Signed-off-by: Dominik Brodowski commit d4429f608abde89e8bc1e24b43cd503feb95c496 Merge: e10117d 6a1c9df Author: Linus Torvalds Date: Thu Oct 21 21:19:54 2010 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits) powerpc/44x: Update ppc44x_defconfig powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option fsl_rio: Add comments for sRIO registers. powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig powerpc/fsl-booke: Add p5020 DS board support powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes powerpc/fsl-booke: Add support for FSL 64-bit e5500 core powerpc/85xx: add cache-sram support powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board powerpc: Fix compile error with paca code on ppc64e powerpc/fsl-booke: Add p3041 DS board support oprofile/fsl emb: Don't set MSR[PMM] until after clearing the interrupt. powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips powerpc/mpc8xxx_gpio: Add support for 'qoriq-gpio' controllers powerpc/fsl_booke: Add support to boot from core other than 0 powerpc/p1022: Add probing for individual DMA channels powerpc/fsl_soc: Search all global-utilities nodes for rstccr powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT powerpc/mpc83xx: Support for MPC8308 P1M board ... Fix up conflict with the generic irq_work changes in arch/powerpc/kernel/time.c commit ec37a48d1d16c30b655ac5280209edf52a6775d4 Author: Jesse Gross Date: Thu Oct 21 11:30:43 2010 +0000 bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL. Some cards don't support changing vlan offloading settings. Make Ethtool set_flags return -EINVAL in those cases. Reported-by: Ben Hutchings Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 0988c4c7fb5881377ec20a6452f739a722e97c6b Author: Jesse Gross Date: Thu Oct 21 11:30:42 2010 +0000 vlan: Calling vlan_hwaccel_do_receive() is always valid. It is now acceptable to receive vlan tagged packets at any time, even if CONFIG_VLAN_8021Q is not set. This means that calling vlan_hwaccel_do_receive() should not result in BUG() but rather just behave as if there were no vlan devices configured. Reported-by: Vladislav Zolotarov Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit e10117d36ef758da0690c95ecffc09d5dd7da479 Merge: f3270b1 89692c0 Author: Linus Torvalds Date: Thu Oct 21 19:03:38 2010 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (26 commits) include/linux/libata.h: fix typo pata_bf54x: fix return type of bfin_set_devctl Drivers: ata: Makefile: replace the use of -objs with -y libahci: fix result_tf handling after an ATA PIO data-in command pata_sl82c105: implement sff_irq_check() method pata_sil680: implement sff_irq_check() method pata_pdc202xx_old: implement sff_irq_check() method pata_cmd640: implement sff_irq_check() method ata_piix: Add device ID for ICH4-L pata_sil680: make sil680_sff_exec_command() 'static' ata: Intel IDE-R support libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds libata: Signal that our SATL supports WRITE SAME(16) with UNMAP ata_piix: remove SIDPR locking libata: implement cross-port EH exclusion libata: add @ap to ata_wait_register() and introduce ata_msleep() ata_piix: implement LPM support libata: implement LPM support for port multipliers libata: reimplement link power management libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global ... commit f3270b16e00f0614fa418dcc50883da5949375b4 Merge: 3044100 2decd65 Author: Linus Torvalds Date: Thu Oct 21 19:01:34 2010 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (48 commits) ocfs2: Avoid to evaluate xattr block flags again. ocfs2/cluster: Release debugfs file elapsed_time_in_ms ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. Initialize max_slots early When I tried to compile I got the following warning: fs/ocfs2/slot_map.c: In function ‘ocfs2_init_slot_info’: fs/ocfs2/slot_map.c:360: warning: ‘bytes’ may be used uninitialized in this function fs/ocfs2/slot_map.c:360: note: ‘bytes’ was declared here Compiler: gcc version 4.4.3 (GCC) on Mandriva I'm not sure why this warning occurs, I think compiler don't know that variable "bytes" is initialized when it is sent by reference to ocfs2_slot_map_physical_size and it throws that ugly warning. However, a simple initialization of "bytes" variable with 0 will fix it. ocfs2: validate bg_free_bits_count after update ocfs2/cluster: Bump up dlm protocol to version 1.1 ocfs2/cluster: Show per region heartbeat elapsed time ocfs2/cluster: Add mlogs for heartbeat up/down events ocfs2/cluster: Create debugfs dir/files for each region ocfs2/cluster: Create debugfs files for live, quorum and failed region bitmaps ocfs2/cluster: Maintain bitmap of failed regions ocfs2/cluster: Maintain bitmap of quorum regions ocfs2/cluster: Track bitmap of live heartbeat regions ocfs2/cluster: Track number of global heartbeat regions ocfs2/cluster: Maintain live node bitmap per heartbeat region ocfs2/cluster: Reorganize o2hb debugfs init ocfs2/cluster: Check slots for unconfigured live nodes ocfs2/cluster: Print messages when adding/removing nodes ocfs2/cluster: Print messages when adding/removing heartbeat regions ... commit 3044100e58c84e133791c8b60a2f5bef69d732e4 Merge: b515316 67e87f0 Author: Linus Torvalds Date: Thu Oct 21 18:52:11 2010 -0700 Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits) x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S xen: Cope with unmapped pages when initializing kernel pagetable memblock, bootmem: Round pfn properly for memory and reserved regions memblock: Annotate memblock functions with __init_memblock memblock: Allow memblock_init to be called early memblock/arm: Fix memblock_region_is_memory() typo x86, memblock: Remove __memblock_x86_find_in_range_size() memblock: Fix wraparound in find_region() x86-32, memblock: Make add_highpages honor early reserved ranges x86, memblock: Fix crashkernel allocation arm, memblock: Fix the sparsemem build memblock: Fix section mismatch warnings powerpc, memblock: Fix memblock API change fallout memblock, microblaze: Fix memblock API change fallout x86: Remove old bootmem code x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve x86: Remove not used early_res code x86, memblock: Replace e820_/_early string with memblock_ x86: Use memblock to replace early_res x86, memblock: Use memblock_debug to control debug message print out ... Fix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile commit 89692c03226a066a017048cf7fbacbaa645f0e79 Author: Andrea Gelmini Date: Sat Oct 16 15:19:18 2010 +0200 include/linux/libata.h: fix typo Signed-off-by: Andrea Gelmini Signed-off-by: Jeff Garzik commit c0695733d56ea12ad62ee534c2eed91f917548ae Author: Mike Frysinger Date: Thu Oct 21 04:00:40 2010 -0400 pata_bf54x: fix return type of bfin_set_devctl The new devctl func added for us to the driver has the wrong return type. Which is to say there shouldn't be any. This fixes compile time warnings as there shouldn't be any runtime difference. Signed-off-by: Mike Frysinger Signed-off-by: Jeff Garzik commit 4b1be934110cee3ad8d3f813f1a5bf28a56ca691 Author: Tracey Dent Date: Fri Oct 15 23:41:33 2010 -0400 Drivers: ata: Makefile: replace the use of -objs with -y Changed -objs to -y in Makefile. Signed-off-by: Tracey Dent Signed-off-by: Jeff Garzik commit 6ad601955315b010a117306b994f2204fae85fdc Author: Tejun Heo Date: Fri Oct 15 11:00:08 2010 +0200 libahci: fix result_tf handling after an ATA PIO data-in command ATA devices don't send D2H Reg FIS after an successful ATA PIO data-in command. The host is supposed to take the TF and E_Status of the preceding PIO Setup FIS. Update ahci_qc_fill_rtf() such that it takes TF + E_Status from PIO Setup FIS after a successful ATA PIO data-in command. Without this patch, result_tf for such a command is filled with the content of the previous D2H Reg FIS which belongs to a previous command, which can make the command incorrectly seen as failed. * Patch updated to grab the whole TF + E_Status from PIO Setup FIS instead of just E_Status as suggested by Robert Hancock. Signed-off-by: Tejun Heo Reported-by: Mark Lord Cc: Robert Hancock Cc: stable@kernel.org Signed-off-by: Jeff Garzik commit f7a437dda2b5c104a897405cbff678aa1eb37897 Author: Sergei Shtylyov Date: Fri Oct 8 19:02:13 2010 +0400 pata_sl82c105: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 9b980e10fa7380b8315e8a414325045eab43826f Author: Sergei Shtylyov Date: Fri Oct 8 19:01:08 2010 +0400 pata_sil680: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 606254e3c1faeb091203c58c2da8e3e4433aae6d Author: Sergei Shtylyov Date: Fri Oct 8 18:57:45 2010 +0400 pata_pdc202xx_old: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit c1ce90f25c52201469c71a2a91e2d9b27c3082f2 Author: Sergei Shtylyov Date: Fri Oct 8 18:56:39 2010 +0400 pata_cmd640: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 4bb969db48dd507e5313dafa285215cb1c36704a Author: Ben Hutchings Date: Sun Oct 10 22:42:21 2010 +0100 ata_piix: Add device ID for ICH4-L ICH4-L is a variant of ICH4 lacking USB2 functionality and with some different device IDs. It is documented in Intel specification update 290745-025, currently at , and is included in the device ID table for piix. Signed-off-by: Ben Hutchings Signed-off-by: Jeff Garzik commit ada5b12ecca3088ddb588c872db56abef322787e Author: Sergei Shtylyov Date: Tue Oct 5 20:31:47 2010 +0400 pata_sil680: make sil680_sff_exec_command() 'static' ... since, of course, it's not used outside this driver. Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 60039a5295b3d82a48fe132c699987d2e1408675 Author: Alan Cox Date: Tue Sep 28 13:19:38 2010 +0100 ata: Intel IDE-R support Intel IDE-R devices are part of the Intel AMT management setup. They don't have any special configuration registers or settings so the ata_generic driver will support them fully. Rather than add a huge table of IDs for each chipset and keep sending in new ones this patch autodetects them. Signed-off-by: Alan Cox Acked-by: Tejun Heo Signed-off-by: Jeff Garzik commit b34e90429ce8a23546b6b927d4e151df4c113644 Author: Richard Kennedy Date: Fri Sep 10 12:19:43 2010 +0100 libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds Reorder structure ata_queued_cmd to remove 8 bytes of alignment padding on 64 bit builds & therefore reduce the size of structure ata_port by 256 bytes. Overall this will have little impact, other than reducing the amount of memory that is cleared when allocating ata_ports. Signed-off-by: Richard Kennedy Signed-off-by: Jeff Garzik commit 02e0a60477d839b8f8f974790192f5230f2371d2 Author: Martin K. Petersen Date: Fri Sep 10 01:23:18 2010 -0400 libata: Signal that our SATL supports WRITE SAME(16) with UNMAP Until now identifying that a device supports WRITE SAME(16) with the UNMAP bit set has been black magic. Implement support for the SBC-3 Thin Provisioning VPD page and set the TPWS bit. Signed-off-by: Martin K. Petersen Signed-off-by: Jeff Garzik commit 9950110cf0f79db91c0103876f3a58c9069243eb Author: Tejun Heo Date: Mon Sep 6 17:57:40 2010 +0200 ata_piix: remove SIDPR locking Now that libata provides proper cross-port EH exclusion. The SIDPR locking added by commit 213373cf (ata_piix: fix locking around SIDPR access) is no longer necessary. Remove it. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c0c362b60e259e3480a36ef70280d545818844f0 Author: Tejun Heo Date: Mon Sep 6 17:57:14 2010 +0200 libata: implement cross-port EH exclusion In libata, the non-EH code paths should always take and release ap->lock explicitly when accessing hardware or shared data structures. However, once EH is active, it's assumed that the port is owned by EH and EH methods don't explicitly take ap->lock unless race from irq handler or other code paths are expected. However, libata EH didn't guarantee exclusion among EHs for ports of the same host. IOW, multiple EHs may execute in parallel on multiple ports of the same controller. In many cases, especially in SATA, the ports are completely independent of each other and this doesn't cause problems; however, there are cases where different ports share the same resource, which lead to obscure timing related bugs such as the one fixed by commit 213373cf (ata_piix: fix locking around SIDPR access). This patch implements exclusion among EHs of the same host. When EH begins, it acquires per-host EH ownership by calling ata_eh_acquire(). When EH finishes, the ownership is released by calling ata_eh_release(). EH ownership is also released whenever the EH thread goes to sleep from ata_msleep() or explicitly and reacquired after waking up. This ensures that while EH is actively accessing the hardware, it has exclusive access to it while allowing EHs to interleave and progress in parallel as they hit waiting stages, which dominate the time spent in EH. This achieves cross-port EH exclusion without pervasive and fragile changes while still allowing parallel EH for the most part. This was first reported by yuanding02@gmail.com more than three years ago in the following bugzilla. :-) https://bugzilla.kernel.org/show_bug.cgi?id=8223 Signed-off-by: Tejun Heo Cc: Alan Cox Reported-by: yuanding02@gmail.com Signed-off-by: Jeff Garzik commit 97750cebb3000a9cc08f8ce8dc8c7143be7d7201 Author: Tejun Heo Date: Mon Sep 6 17:56:29 2010 +0200 libata: add @ap to ata_wait_register() and introduce ata_msleep() Add optional @ap argument to ata_wait_register() and replace msleep() calls with ata_msleep() which take optional @ap in addition to the duration. These will be used to implement EH exclusion. This patch doesn't cause any behavior difference. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit a97c40068fab5d85c4241451fc312cb9025d7e6c Author: Tejun Heo Date: Wed Sep 1 17:50:08 2010 +0200 ata_piix: implement LPM support Now that DIPM can be used independently from HIPM, ata_piix can support LPM too. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 6c8ea89cecd780faa4f4c8ed8b3b6ab88f9fa841 Author: Tejun Heo Date: Wed Sep 1 17:50:07 2010 +0200 libata: implement LPM support for port multipliers Port multipliers can do DIPM on fan-out links fine. Implement support for it. Tested w/ SIMG 57xx and marvell PMPs. Both the host and fan-out links enter power save modes nicely. SIMG 37xx and 47xx report link offline on SStatus causing EH to detach the devices. Blacklisted. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 6b7ae9545ad9875a289f4191c0216b473e313cb9 Author: Tejun Heo Date: Wed Sep 1 17:50:06 2010 +0200 libata: reimplement link power management The current LPM implementation has the following issues. * Operation order isn't well thought-out. e.g. HIPM should be configured after IPM in SControl is properly configured. Not the other way around. * Suspend/resume paths call ata_lpm_enable/disable() which must only be called from EH context directly. Also, ata_lpm_enable/disable() were called whether LPM was in use or not. * Implementation is per-port when it should be per-link. As a result, it can't be used for controllers with slave links or PMP. * LPM state isn't managed consistently. After a link reset for whatever reason including suspend/resume the actual LPM state would be reset leaving ap->lpm_policy inconsistent. * Generic/driver-specific logic boundary isn't clear. Currently, libahci has to mangle stuff which libata EH proper should be handling. This makes the implementation unnecessarily complex and fragile. * Tied to ALPM. Doesn't consider DIPM only cases and doesn't check whether the device allows HIPM. * Error handling isn't implemented. Given the extent of mismatch with the rest of libata, I don't think trying to fix it piecewise makes much sense. This patch reimplements LPM support. * The new implementation is per-link. The target policy is still port-wide (ap->target_lpm_policy) but all the mechanisms and states are per-link and integrate well with the rest of link abstraction and can work with slave and PMP links. * Core EH has proper control of LPM state. LPM state is reconfigured when and only when reconfiguration is necessary. It makes sure that LPM state is reset when probing for new device on the link. Controller agnostic logic is now implemented in libata EH proper and driver implementation only has to deal with controller specifics. * Proper error handling. LPM config failure is attributed to the device on the link and LPM is disabled for the link if it fails repeatedly. * ops->enable/disable_pm() are replaced with single ops->set_lpm() which takes @policy and @hints. This simplifies driver specific implementation. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 1152b2617a6e1943b6b82e07c962950e56f1000c Author: Tejun Heo Date: Wed Sep 1 17:50:05 2010 +0200 libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global Link power management is about to be reimplemented. Prepare for it. * Implement sata_link_scr_lpm(). * Drop static from ata_dev_set_feature() and make it available to other libata files. * Trivial whitespace adjustments. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c93b263e0d4fa8ce5fec0142a98196d1a127e845 Author: Tejun Heo Date: Wed Sep 1 17:50:04 2010 +0200 libata: clean up lpm related symbols and sysfs show/store functions Link power management related symbols are in confusing state w/ mixed usages of lpm, ipm and pm. This patch cleans up lpm related symbols and sysfs show/store functions as follows. * lpm states - NOT_AVAILABLE, MIN_POWER, MAX_PERFORMANCE and MEDIUM_POWER are renamed to ATA_LPM_UNKNOWN and ATA_LPM_{MIN|MAX|MED}_POWER. * Pre/postfixes are unified to lpm. * sysfs show/store functions for link_power_management_policy were curiously named get/put and unnecessarily complex. Renamed to show/store and simplified. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c43d559f0423816bb2918d892131d21c51816c3d Author: Luck, Tony Date: Mon Aug 23 13:18:02 2010 -0700 [libata] Fix section mismatch: ata_sff_exit This build error showed up in linux-next tag next-20100820 for ia64: WARNING: vmlinux.o(.init.text+0x4a952): Section mismatch in reference from the function ata_init() to the function .exit.text:ata_sff_exit() The function __init ata_init() references a function __exit ata_sff_exit(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __exit annotation of ata_sff_exit() so it may be used outside an exit section. Sure enough, dropping the __exit fixes the problem. Signed-off-by: Tony Luck Signed-off-by: Jeff Garzik commit 6a2148c6dc68cd221397a0b9d44ddb89802e5cc0 Author: Jeff Garzik Date: Thu Aug 19 16:11:32 2010 -0400 drivers/ata/libata-transport.c: include linux/slab.h Signed-off-by: Jeff Garzik commit 295124dce4ddfd40b1f12d3ffd2779673e87c701 Author: Grant Grundler Date: Tue Aug 17 10:56:53 2010 -0700 [libata] support for > 512 byte sectors (e.g. 4K Native) This change enables my x86 machine to recognize and talk to a "Native 4K" SATA device. When I started working on this, I didn't know Matthew Wilcox had posted a similar patch 2 years ago: http://git.kernel.org/?p=linux/kernel/git/willy/ata.git;a=shortlog;h=refs/heads/ata-large-sectors Gwendal Grignou pointed me at the the above code and small portions of this patch include Matthew's work. That's why Mathew is first on the "Signed-off-by:". I've NOT included his use of a bitmap to determine 512 vs Native for ATA command block size - just used a simple table. And bugs are almost certainly mine. Lastly, the patch has been tested with a native 4K 'Engineering Sample' drive provided by Hitachi GST. Signed-off-by: Matthew Wilcox Signed-off-by: Grant Grundler Reviewed-by: Gwendal Grignou Signed-off-by: Jeff Garzik commit 1aadf5c3bbbbb0db09dcb5aa26c61326e0d3e9e7 Author: Tejun Heo Date: Fri Jun 25 15:03:34 2010 +0200 libata: always use ata_qc_complete_multiple() for NCQ command completions Currently, sata_fsl, mv and nv call ata_qc_complete() multiple times from their interrupt handlers to indicate completion of NCQ commands. This limits the visibility the libata core layer has into how commands are being executed and completed, which is necessary to support IRQ expecting in generic way. libata already has an interface to complete multiple commands at once - ata_qc_complete_multiple() which ahci and sata_sil24 already use. This patch updates the three drivers to use ata_qc_complete_multiple() too and updates comments on ata_qc_complete[_multiple]() regarding their usages with NCQ completions. This change not only provides better visibility into command execution to the core layer but also simplifies low level drivers. * sata_fsl: It already builds done_mask. Conversion is straight forward. * sata_mv: mv_process_crpb_response() no longer checks for illegal completions, it just returns whether the tag is completed or not. mv_process_crpb_entries() builds done_mask from it and passes it to ata_qc_complete_multiple() which will check for illegal completions. * sata_nv adma: Similar to sata_mv. nv_adma_check_cpb() now just returns the tag status and nv_adma_interrupt() builds done_mask from it and passes it to ata_qc_complete_multiple(). * sata_nv swncq: It already builds done_mask. Drop unnecessary illegal transition checks and call ata_qc_complete_multiple(). In the long run, it might be a good idea to make ata_qc_complete() whine if called when multiple NCQ commands are in flight. Signed-off-by: Tejun Heo Cc: Ashish Kalra Cc: Saeed Bishara Cc: Mark Lord Cc: Robert Hancock Signed-off-by: Jeff Garzik commit d9027470b88631d0956ac37cdadfdeb9cdcf2c99 Author: Gwendal Grignou Date: Tue May 25 12:31:38 2010 -0700 [libata] Add ATA transport class This is a scheleton for libata transport class. All information is read only, exporting information from libata: - ata_port class: one per ATA port - ata_link class: one per ATA port or 15 for SATA Port Multiplier - ata_device class: up to 2 for PATA link, usually one for SATA. Signed-off-by: Gwendal Grignou Reviewed-by: Grant Grundler Signed-off-by: Jeff Garzik commit b5153163ed580e00c67bdfecb02b2e3843817b3e Merge: a8cbf22 6451d77 Author: Linus Torvalds Date: Thu Oct 21 16:42:32 2010 -0700 Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits) arm: remove machine_desc.io_pg_offst and .phys_io arm: use addruart macro to establish debug mappings arm: return both physical and virtual addresses from addruart arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC ARM: make struct machine_desc definition coherent with its comment eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free cpuimx27: fix compile when ULPI is selected mach-pcm037_eet: fix compile errors Fixing ethernet driver compilation error for i.MX31 ADS board cpuimx51: update board support mx5: add cpuimx51sd module and its baseboard iomux-mx51: fix GPIO_1_xx 's IOMUX configuration imx-esdhc: update devices registration mx51: add resources for SD/MMC on i.MX51 iomux-mx51: fix SD1 and SD2's iomux configuration clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability clock-mx51: factorize clk_set_parent and clk_get_rate eukrea_mbimxsd: add support for DVI displays cpuimx25 & cpuimx35: fix OTG port registration in host mode i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472 ... commit cdff08e76612e53580139653403aedea979aa639 Author: Steve French Date: Thu Oct 21 22:46:14 2010 +0000 [CIFS] move close processing from cifs_close to cifsFileInfo_put Now that it's feasible for a cifsFileInfo to outlive the filp under which it was created, move the close processing into cifsFileInfo_put. This means that the last user of the filehandle always does the actual on the wire close call. This also allows us to get rid of the closePend flag from cifsFileInfo. If we have an active reference to the file then it's never going to have a close pending. cifs_close is converted to simply put the filehandle. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Signed-off-by: Steve French commit a8cbf22559ceefdcdfac00701e8e6da7518b7e8e Merge: e36f561 9c03439 Author: Linus Torvalds Date: Thu Oct 21 14:53:17 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (26 commits) PM / Wakeup: Show wakeup sources statistics in debugfs PM: Introduce library for device-specific OPPs (v7) PM: Add sysfs attr for rechecking dev hash from PM trace PM: Lock PM device list mutex in show_dev_hash() PM / Runtime: Remove idle notification after failing suspend PM / Hibernate: Modify signature used to mark swap PM / Runtime: Reduce code duplication in core helper functions PM: Allow wakeup events to abort freezing of tasks PM: runtime: add missed pm_request_autosuspend PM / Hibernate: Make some boot messages look less scary PM / Runtime: Implement autosuspend support PM / Runtime: Add no_callbacks flag PM / Runtime: Combine runtime PM entry points PM / Runtime: Merge synchronous and async runtime routines PM / Runtime: Replace boolean arguments with bitflags PM / Runtime: Move code in drivers/base/power/runtime.c sysfs: Add sysfs_merge_group() and sysfs_unmerge_group() PM: Fix potential issue with failing asynchronous suspend PM / Wakeup: Introduce wakeup source objects and event statistics (v3) PM: Fix signed/unsigned warning in dpm_show_time() ... commit e36f561a2c88394ef2708f1ab300fe8a79e9f651 Merge: 70ada77 df9ee29 Author: Linus Torvalds Date: Thu Oct 21 14:37:27 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags: Fix IRQ flag handling naming MIPS: Add missing #inclusions of smc91x: Add missing #inclusion of Drop a couple of unnecessary asm/system.h inclusions SH: Add missing consts to sys_execve() declaration Blackfin: Rename IRQ flags handling functions Blackfin: Add missing dep to asm/irqflags.h Blackfin: Rename DES PC2() symbol to avoid collision Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header Blackfin: Split PLL code from mach-specific cdef headers commit 70ada77920723fbc2b35e9b301022fb1e166b41b Merge: b22793f 2764c50 Author: Linus Torvalds Date: Thu Oct 21 14:37:00 2010 -0700 Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (53 commits) spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA spi/omap2_mcspi: disable channel after TX_ONLY transfer in PIO mode spi/bfin_spi: namespace local structs spi/bfin_spi: init early spi/bfin_spi: check per-transfer bits_per_word spi/bfin_spi: warn when CS is driven by hardware (CPHA=0) spi/bfin_spi: cs should be always low when a new transfer begins spi/bfin_spi: fix typo in comment spi/bfin_spi: reject unsupported SPI modes spi/bfin_spi: use dma_disable_irq_nosync() in irq handler spi/bfin_spi: combine duplicate SPI_CTL read/write logic spi/bfin_spi: reset ctl_reg bits when setup is run again on a device spi/bfin_spi: push all size checks into the transfer function spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler spi/bfin_spi: sync hardware state before reprogramming everything spi/bfin_spi: save/restore state when suspending/resuming spi/bfin_spi: redo GPIO CS handling Blackfin: SPI: expand SPI bitmasks spi/bfin_spi: use the SPI namespaced bit names spi/bfin_spi: drop extra memory we don't need ... commit b22793f7fdc38d73c4bb4299a313deef56dcfe66 Merge: b653788 c0f37d2 Author: Linus Torvalds Date: Thu Oct 21 14:27:18 2010 -0700 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Cannot use register_percpu_irq() from ia64_mca_init() [IA64] Initialize interrupts later (from init_IRQ()) [IA64] enable ARCH_DMA_ADDR_T_64BIT [IA64] ioc3_serial: release resources in error return path [IA64] Stop using the deprecated __do_IRQ() code path [IA64] Remove unnecessary casts of private_data in perfmon.c [IA64] Fix missing iounmap in error path in cyclone.c [IA64] salinfo: sema_init instead of init_MUTEX [IA64] xen: use ARRAY_SIZE macro in xen_pv_ops.c [IA64] Use static const char * const in palinfo.c [IA64] remove asm/compat.h [IA64] Add CONFIG_STACKTRACE_SUPPORT [IA64] Move local_softirq_pending() definition [IA64] iommu: Add a dummy iommu_table.h file in IA64. [IA64] unwind - optimise linked-list searches for modules [IA64] unwind: remove preprocesser noise, and correct comment commit b65378898c2eefb20f419632c1199bc0592e2f79 Merge: 157b6ce 5b917a1 Author: Linus Torvalds Date: Thu Oct 21 14:25:16 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (22 commits) pcmcia: synclink_cs: fix information leak to userland pcmcia: don't call flush_scheduled_work() spuriously serial_cs: drop spurious flush_scheduled_work() call pcmcia/yenta: guide users in case of problems with O2-bridges pcmcia: fix unused function compile warning pcmcia: vrc4173_cardu: Fix error path for pci_release_regions and pci_disable_device pcmcia: add a few debug statements pcmcia: remove obsolete and wrong comments pcmcia: avoid messages on module (un)loading pcmcia: move driver name to struct pcmcia_driver pcmcia: remove the "Finally, report what we've done" message pcmcia: use autoconfiguration feature for ioports and iomem pcmcia: introduce autoconfiguration feature pcmcia: Documentation update pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device pcmcia: move config_{base,index,regs} to struct pcmcia_device pcmcia: simplify IntType pcmcia: simplify Status, ExtStatus register access pcmcia: remove Pin, Copy configuration register access pcmcia: move Vpp setup to struct pcmcia_device ... commit 157b6ceb13e4b4148ee03dd517dbe88748943125 Merge: 4a60cfa 6e96366 Author: Linus Torvalds Date: Thu Oct 21 14:23:48 2010 -0700 Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, iommu: Update header comments with appropriate naming ia64, iommu: Add a dummy iommu_table.h file in IA64. x86, iommu: Fix IOMMU_INIT alignment rules x86, doc: Adding comments about .iommu_table and its neighbors. x86, iommu: Utilize the IOMMU_INIT macros functionality. x86, VT-d: Make Intel VT-d IOMMU use IOMMU_INIT_* macros. x86, GART/AMD-VI: Make AMD GART and IOMMU use IOMMU_INIT_* macros. x86, calgary: Make Calgary IOMMU use IOMMU_INIT_* macros. x86, xen-swiotlb: Make Xen-SWIOTLB use IOMMU_INIT_* macros. x86, swiotlb: Make SWIOTLB use IOMMU_INIT_* macros. x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. x86, iommu: Add proper dependency sort routine (and sanity check). x86, iommu: Make all IOMMU's detection routines return a value. x86, iommu: Add IOMMU_INIT macros, .iommu_table section, and iommu_table_entry structure commit 4a60cfa9457749f7987fd4f3c956dbba5a281129 Merge: 62bea97 27afdf2 Author: Linus Torvalds Date: Thu Oct 21 14:11:46 2010 -0700 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (96 commits) apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets apic, x86: Check if EILVT APIC registers are available (AMD only) x86: ioapic: Call free_irte only if interrupt remapping enabled arm: Use ARCH_IRQ_INIT_FLAGS genirq, ARM: Fix boot on ARM platforms genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED=y build x86: Switch sparse_irq allocations to GFP_KERNEL genirq: Switch sparse_irq allocator to GFP_KERNEL genirq: Make sparse_lock a mutex x86: lguest: Use new irq allocator genirq: Remove the now unused sparse irq leftovers genirq: Sanitize dynamic irq handling genirq: Remove arch_init_chip_data() x86: xen: Sanitise sparse_irq handling x86: Use sane enumeration x86: uv: Clean up the direct access to irq_desc x86: Make io_apic.c local functions static genirq: Remove irq_2_iommu x86: Speed up the irq_remapped check in hot pathes intr_remap: Simplify the code further ... Fix up trivial conflicts in arch/x86/Kconfig commit 62bea97f54d806218a992b18d1f425cfb5060175 Merge: b61f6a5 8af3c15 Author: Linus Torvalds Date: Thu Oct 21 14:08:08 2010 -0700 Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: ntp: Clamp PLL update interval commit b61f6a57f1919ef8dbd33f864df9b8b361c65b11 Merge: 0575db8 fb62db2 Author: Linus Torvalds Date: Thu Oct 21 14:06:17 2010 -0700 Merge branch 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: futex: Fix kernel-doc notation & typos futex: Add lock context annotations futex: Mark restart_block.futex.uaddr[2] __user futex: Change 3rd arg of fetch_robust_entry() to unsigned int* commit 0575db881d18a4791013fc93ba756ad08b18fb48 Merge: c029e40 7ada876 Author: Linus Torvalds Date: Thu Oct 21 14:05:55 2010 -0700 Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: futex: Fix errors in nested key ref-counting commit c029e405bd3d4e92d09fbbc97c03952585986ebe Merge: a9ccd80 525906b Author: Linus Torvalds Date: Thu Oct 21 14:04:58 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (21 commits) EDAC, MCE: Fix shift warning on 32-bit EDAC, MCE: Add a BIT_64() macro EDAC, MCE: Enable MCE decoding on F12h EDAC, MCE: Add F12h NB MCE decoder EDAC, MCE: Add F12h IC MCE decoder EDAC, MCE: Add F12h DC MCE decoder EDAC, MCE: Add support for F11h MCEs EDAC, MCE: Enable MCE decoding on F14h EDAC, MCE: Fix FR MCEs decoding EDAC, MCE: Complete NB MCE decoders EDAC, MCE: Warn about LS MCEs on F14h EDAC, MCE: Adjust IC decoders to F14h EDAC, MCE: Adjust DC decoders to F14h EDAC, MCE: Rename files EDAC, MCE: Rework MCE injection EDAC: Export edac sysfs class to users. EDAC, MCE: Pass complete MCE info to decoders EDAC, MCE: Sanitize error codes EDAC, MCE: Remove unused function parameter EDAC, MCE: Add HW_ERR prefix ... commit a9ccd80aadadef8c424142d41fddea7c0880f0e9 Merge: 81d1c3a e79f86b Author: Linus Torvalds Date: Thu Oct 21 14:04:25 2010 -0700 Merge branch 'stable/swiotlb-0.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6 * 'stable/swiotlb-0.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6: swiotlb: Use page alignment for early buffer allocation swiotlb: make io_tlb_overflow static commit 81d1c3a52cd78fdbb9f0d80214fc9e7d49bf22c0 Merge: 5fe8321 3e0f686 Author: Linus Torvalds Date: Thu Oct 21 14:04:03 2010 -0700 Merge branch 'stable/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft-2.6 * 'stable/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft-2.6: ibft: fix kconfig dependencies commit 5fe8321b8886d814e65952d74b207fe59e1096ea Merge: 709d9f5 fa47f7e Author: Linus Torvalds Date: Thu Oct 21 13:54:05 2010 -0700 Merge branch 'x86-x2apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-x2apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, x2apic: Simplify apic init in SMP and UP builds x86, intr-remap: Remove IRTE setup duplicate code x86, intr-remap: Set redirection hint in the IRTE commit 709d9f54cc1847a2d24224ffedec7fd4d0f3c714 Merge: cca8209 b0f4c06 Author: Linus Torvalds Date: Thu Oct 21 13:53:24 2010 -0700 Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, paravirt: Remove alloc_pmd_clone hook, only used by VMI x86, vmware: Remove deprecated VMI kernel support Fix up trivial #include conflict in arch/x86/kernel/smpboot.c commit cca8209ed962f87990345ba073979d2b55dd1187 Merge: d77bdc4 9e9006e Author: Linus Torvalds Date: Thu Oct 21 13:52:01 2010 -0700 Merge branch 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, olpc: XO-1 uses/depends on PCI x86, olpc: Register XO-1 platform devices x86, olpc: Add XO-1 poweroff support x86, olpc: Don't retry EC commands forever x86, olpc: Rework BIOS signature check x86, olpc: Only enable PCI configuration type override on XO-1 commit d77bdc423d6d6efcd18d329bbf8eb9351953dd30 Merge: 87affd0b 351e5a7 Author: Linus Torvalds Date: Thu Oct 21 13:51:41 2010 -0700 Merge branch 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mtrr: Support mtrr lookup for range spanning across MTRR range x86, mtrr: Refactor MTRR type overlap check code commit 87affd0b9416d8f43d2d4de1f3fdfbe7f3559380 Merge: c3b86a2 940b3c7 Author: Linus Torvalds Date: Thu Oct 21 13:47:54 2010 -0700 Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: sfi: Make local functions static x86, earlyprintk: Add hsu early console for Intel Medfield platform x86, earlyprintk: Add earlyprintk for Intel Moorestown platform x86: Add two helper macros for fixed address mapping x86, mrst: A function in a header file needs to be marked "inline" commit c3b86a29429dac1033e3f602f51fa8d00006a8eb Merge: 8d8d2e9 2aeb66d Author: Linus Torvalds Date: Thu Oct 21 13:47:29 2010 -0700 Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-32, percpu: Correct the ordering of the percpu readmostly section x86, mm: Enable ARCH_DMA_ADDR_T_64BIT with X86_64 || HIGHMEM64G x86: Spread tlb flush vector between nodes percpu: Introduce a read-mostly percpu API x86, mm: Fix incorrect data type in vmalloc_sync_all() x86, mm: Hold mm->page_table_lock while doing vmalloc_sync x86, mm: Fix bogus whitespace in sync_global_pgds() x86-32: Fix sparse warning for the __PHYSICAL_MASK calculation x86, mm: Add RESERVE_BRK_ARRAY() helper mm, x86: Saving vmcore with non-lazy freeing of vmas x86, kdump: Change copy_oldmem_page() to use cached addressing x86, mm: fix uninitialized addr in kernel_physical_mapping_init() x86, kmemcheck: Remove double test x86, mm: Make spurious_fault check explicitly check the PRESENT bit x86-64, mem: Update all PGDs for direct mapping and vmemmap mapping changes x86, mm: Separate x86_64 vmalloc_sync_all() into separate functions x86, mm: Avoid unnecessary TLB flush commit 8d8d2e9ccd331a1345c88b292ebee9d256fd8749 Merge: 2a8b67f 3b4b682 Author: Linus Torvalds Date: Thu Oct 21 13:46:28 2010 -0700 Merge branch 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mem: Optimize memmove for small size and unaligned cases x86, mem: Optimize memcpy by avoiding memory false dependece x86, mem: Don't implement forward memmove() as memcpy() commit 2a8b67fb72c4c4bc15fe8095e3ed613789c8b82f Merge: b6f7e38 ce5f682 Author: Linus Torvalds Date: Thu Oct 21 13:45:38 2010 -0700 Merge branch 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, hotplug: In the MWAIT case of play_dead, CLFLUSH the cache line x86, hotplug: Move WBINVD back outside the play_dead loop x86, hotplug: Use mwait to offline a processor, fix the legacy case x86, mwait: Move mwait constants to a common header file commit b6f7e38dbb310557fe890b04b1a376c93f638c3b Merge: 214515b b2b57fe Author: Linus Torvalds Date: Thu Oct 21 13:34:32 2010 -0700 Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, fpu: Merge fpu_save_init() x86-32, fpu: Rewrite fpu_save_init() x86, fpu: Remove PSHUFB_XMM5_* macros x86, fpu: Remove unnecessary ifdefs from i387 code. x86-32, fpu: Remove math_emulate stub x86-64, fpu: Simplify constraints for fxsave/fxtstor x86-64, fpu: Fix %cs value in convert_from_fxsr() x86-64, fpu: Disable preemption when using TS_USEDFPU x86, fpu: Merge __save_init_fpu() x86, fpu: Merge tolerant_fwait() x86, fpu: Merge fpu_init() x86: Use correct type for %cr4 x86, xsave: Disable xsave in i387 emulation mode Fixed up fxsaveq-induced conflict in arch/x86/include/asm/i387.h commit 214515b5787a1035b2c8807abe8be569de63b2f6 Merge: bf70030 d0ed0c3 Author: Linus Torvalds Date: Thu Oct 21 13:20:32 2010 -0700 Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Remove pr_ uses of KERN_ therm_throt.c: Trivial printk message fix for a unsuitable abbreviation of 'thermal' x86: Use {push,pop}{l,q}_cfi in more places i386: Add unwind directives to syscall ptregs stubs x86-64: Use symbolics instead of raw numbers in entry_64.S x86-64: Adjust frame type at paranoid_exit: x86-64: Fix unwind annotations in syscall stubs commit bf70030dc0b031f000c74721f2e9c88686b7da6d Merge: d60a279 366d4a4 Author: Linus Torvalds Date: Thu Oct 21 13:18:36 2010 -0700 Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, cpu: Fix X86_FEATURE_NOPL x86, cpu: Re-run get_cpu_cap() after adjusting the CPUID level commit d60a2793ba562c6ea9bbf62112da3e6342adcf83 Merge: 781c5a6 40ffa93 Author: Linus Torvalds Date: Thu Oct 21 13:18:06 2010 -0700 Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Remove stale pmtimer_64.c x86, cleanups: Use clear_page/copy_page rather than memset/memcpy x86: Remove unnecessary #ifdef ACPI/X86_IO_ACPI x86, cleanup: Remove obsolete boot_cpu_id variable commit 781c5a67f152c17c3e4a9ed9647f8c0be6ea5ae9 Merge: e990c77 9ea77bd Author: Linus Torvalds Date: Thu Oct 21 13:06:49 2010 -0700 Merge branch 'x86-bios-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-bios-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, bios: Make the x86 early memory reservation a kernel option x86, bios: By default, reserve the low 64K for all BIOSes commit e990c77d06dbacc8e5c5edd2c4a1005d318a4fa6 Merge: 2f0384e d7acb92 Author: Linus Torvalds Date: Thu Oct 21 13:06:00 2010 -0700 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-64, asm: If the assembler supports fxsave64, use it i386: Make kernel_execve() suitable for stack unwinding commit 2f0384e5fc4766ad909597547d0e2b716c036755 Merge: bc4016f 5c80cc7 Author: Linus Torvalds Date: Thu Oct 21 13:01:08 2010 -0700 Merge branch 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, amd_nb: Enable GART support for AMD family 0x15 CPUs x86, amd: Use compute unit information to determine thread siblings x86, amd: Extract compute unit information for AMD CPUs x86, amd: Add support for CPUID topology extension of AMD CPUs x86, nmi: Support NMI watchdog on newer AMD CPU families x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD CPUs x86, k8: Rename k8.[ch] to amd_nb.[ch] and CONFIG_K8_NB to CONFIG_AMD_NB x86, k8-gart: Decouple handling of garts and northbridges x86, cacheinfo: Fix dependency of AMD L3 CID x86, kvm: add new AMD SVM feature bits x86, cpu: Fix allowed CPUID bits for KVM guests x86, cpu: Update AMD CPUID feature bits x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit x86, AMD: Remove needless CPU family check (for L3 cache info) x86, tsc: Remove CPU frequency calibration on AMD commit bc4016f48161454a9a8e5eb209b0693c6cde9f62 Merge: 5d70f79 b7dadc3 Author: Linus Torvalds Date: Thu Oct 21 12:55:43 2010 -0700 Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits) sched: Export account_system_vtime() sched: Call tick_check_idle before __irq_enter sched: Remove irq time from available CPU power sched: Do not account irq time to current task x86: Add IRQ_TIME_ACCOUNTING sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time sched: Add a PF flag for ksoftirqd identification sched: Consolidate account_system_vtime extern declaration sched: Fix softirq time accounting sched: Drop group_capacity to 1 only if local group has extra capacity sched: Force balancing on newidle balance if local group has capacity sched: Set group_imb only a task can be pulled from the busiest cpu sched: Do not consider SCHED_IDLE tasks to be cache hot sched: Drop all load weight manipulation for RT tasks sched: Create special class for stop/migrate work sched: Unindent labels sched: Comment updates: fix default latency and granularity numbers tracing/sched: Add sched_pi_setprio tracepoint sched: Give CPU bound RT tasks preference sched: Try not to migrate higher priority RT tasks ... commit 5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22 Merge: 888a6f7 750ed15 Author: Linus Torvalds Date: Thu Oct 21 12:54:49 2010 -0700 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits) tracing: Fix compile issue for trace_sched_wakeup.c [S390] hardirq: remove pointless header file includes [IA64] Move local_softirq_pending() definition perf, powerpc: Fix power_pmu_event_init to not use event->ctx ftrace: Remove recursion between recordmcount and scripts/mod/empty jump_label: Add COND_STMT(), reducer wrappery perf: Optimize sw events perf: Use jump_labels to optimize the scheduler hooks jump_label: Add atomic_t interface jump_label: Use more consistent naming perf, hw_breakpoint: Fix crash in hw_breakpoint creation perf: Find task before event alloc perf: Fix task refcount bugs perf: Fix group moving irq_work: Add generic hardirq context callbacks perf_events: Fix transaction recovery in group_sched_in() perf_events: Fix bogus AMD64 generic TLB events perf_events: Fix bogus context time tracking tracing: Remove parent recording in latency tracer graph options tracing: Use one prologue for the preempt irqs off tracer function tracers ... commit 888a6f77e0418b049f83d37547c209b904d30af4 Merge: 31b7eab 6506cf6c Author: Linus Torvalds Date: Thu Oct 21 12:54:12 2010 -0700 Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits) sched: fix RCU lockdep splat from task_group() rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value sched: suppress RCU lockdep splat in task_fork_fair net: suppress RCU lockdep false positive in sock_update_classid rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter rcu: Add tracing data to support queueing models rcu: fix sparse errors in rcutorture.c rcu: only one evaluation of arg in rcu_dereference_check() unless sparse kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC rcu: fix _oddness handling of verbose stall warnings rcu: performance fixes to TINY_PREEMPT_RCU callback checking rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes vhost: add __rcu annotations rcu: add comment stating that list_empty() applies to RCU-protected lists rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods rcu: document ways of stalling updates in low-memory situations rcu: repair code-duplication FIXMEs ... commit 31b7eab27a314b153d8fa07ba9e9ec00a98141e1 Merge: 1053e6b 4ba053c Author: Linus Torvalds Date: Thu Oct 21 12:49:31 2010 -0700 Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: lockdep: Check the depth of subclass lockdep: Add improved subclass caching affs: Use sema_init instead of init_MUTEX hfs: Convert tree_lock to mutex arm: Bcmring: semaphore cleanup printk: Make console_sem a semaphore not a pseudo mutex drivers/macintosh/adb: Do not claim that the semaphore is a mutex parport: Semaphore cleanup irda: Semaphore cleanup net: Wan/cosa.c: Convert "mutex" to semaphore net: Ppp_async: semaphore cleanup hamradio: Mkiss: semaphore cleanup hamradio: 6pack: semaphore cleanup net: 3c527: semaphore cleanup input: Serio/hp_sdc: semaphore cleanup input: Serio/hil_mlc: semaphore cleanup input: Misc/hp_sdc_rtc: semaphore cleanup lockup_detector: Make callback function static lockup detector: Fix grammar by adding a missing "to" in the comments lockdep: Remove __debug_show_held_locks commit 1053e6bba091d9d18797f7789df6a7ef8735f20c Merge: a8fe150 3d8a1a6 Author: Linus Torvalds Date: Thu Oct 21 12:49:15 2010 -0700 Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86/amd-iommu: Update copyright headers x86/amd-iommu: Reenable AMD IOMMU if it's mysteriously vanished over suspend AGP: Warn when GATT memory cannot be set to UC x86, GART: Disable GART table walk probes x86, GART: Remove superfluous AMD64_GARTEN commit a8fe1500986c32b46b36118aa250f6badca11bfc Merge: 94ebd23 f0d3d98 Author: Linus Torvalds Date: Thu Oct 21 12:41:19 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (26 commits) selinux: include vmalloc.h for vmalloc_user secmark: fix config problem when CONFIG_NF_CONNTRACK_SECMARK is not set selinux: implement mmap on /selinux/policy SELinux: allow userspace to read policy back out of the kernel SELinux: drop useless (and incorrect) AVTAB_MAX_SIZE SELinux: deterministic ordering of range transition rules kernel: roundup should only reference arguments once kernel: rounddown helper function secmark: export secctx, drop secmark in procfs conntrack: export lsm context rather than internal secid via netlink security: secid_to_secctx returns len when data is NULL secmark: make secmark object handling generic secmark: do not return early if there was no error AppArmor: Ensure the size of the copy is < the buffer allocated to hold it TOMOYO: Print URL information before panic(). security: remove unused parameter from security_task_setscheduler() tpm: change 'tpm_suspend_pcr' to be module parameter selinux: fix up style problem on /selinux/status selinux: change to new flag variable selinux: really fix dependency causing parallel compile failure. ... commit 94ebd235c493f43681f609b0e02733337053e8f0 Merge: f6f0a6d fe5a50a Author: Linus Torvalds Date: Thu Oct 21 12:40:33 2010 -0700 Merge branch 'virtio' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus * 'virtio' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: virtio_blk: remove BKL leftovers virtio: console: Disable lseek(2) for port file operations virtio: console: Send SIGIO in case of port unplug virtio: console: Send SIGIO on new data arrival on ports virtio: console: Send SIGIO to processes that request it for host events virtio: console: Reference counting portdev structs is not needed virtio: console: Add reference counting for port struct virtio: console: Use cdev_alloc() instead of cdev_init() virtio: console: Add a find_port_by_devt() function virtio: console: Add a list of portdevs that are active virtio: console: open: Use a common path for error handling virtio: console: remove_port() should return void virtio: console: Make write() return -ENODEV on hot-unplug virtio: console: Make read() return -ENODEV on hot-unplug virtio: console: Unblock poll on port hot-unplug virtio: console: Un-block reads on chardev close virtio: console: Check if portdev is valid in send_control_msg() virtio: console: Remove control vq data only if using multiport support virtio: console: Reset vdev before removing device commit f6f0a6d6a7258eff41fd202fc70df18271a2de79 Merge: 2017bd1 33027af Author: Linus Torvalds Date: Thu Oct 21 12:39:53 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (22 commits) GFS2: fixed typo GFS2: Fix type mapping for demote_rq interface GFS2 fatal: filesystem consistency error on rename GFS2: Improve journal allocation via sysfs GFS2: Add "norecovery" mount option as a synonym for "spectator" GFS2: Fix spectator umount issue GFS2: Fix compiler warning from previous patch GFS2: reserve more blocks for transactions GFS2: Fix journal check for spectator mounts GFS2: Remove upgrade mount option GFS2: Remove localcaching mount option GFS2: Remove ignore_local_fs mount argument GFS2: Make . and .. qstrs constant GFS2: Use new workqueue scheme GFS2: Update handling of DLM return codes to match reality GFS2: Don't enforce min hold time when two demotes occur in rapid succession GFS2: Fix whitespace in previous patch GFS2: fallocate support GFS2: Add a bug trap in allocation code GFS2: No longer experimental ... commit 2017bd19454ea7cdae19922d15b6930f6c8088a2 Merge: 9f1ad09 efa4c12 Author: Linus Torvalds Date: Thu Oct 21 12:38:28 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (22 commits) ceph: do not carry i_lock for readdir from dcache fs/ceph/xattr.c: Use kmemdup rbd: passing wrong variable to bvec_kunmap_irq() rbd: null vs ERR_PTR ceph: fix num_pages_free accounting in pagelist ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl. ceph: don't crash when passed bad mount options ceph: fix debugfs warnings block: rbd: removing unnecessary test block: rbd: fixed may leaks ceph: switch from BKL to lock_flocks() ceph: preallocate flock state without locks held ceph: add pagelist_reserve, pagelist_truncate, pagelist_set_cursor ceph: use mapping->nrpages to determine if mapping is empty ceph: only invalidate on check_caps if we actually have pages ceph: do not hide .snap in root directory rbd: introduce rados block device (rbd), based on libceph ceph: factor out libceph from Ceph file system ceph-rbd: osdc support for osd call and rollback operations ceph: messenger and osdc changes for rbd ... commit 9f1ad09493451c19d00c004da479acf699eeedd6 Merge: f6f94e2 46bf36e Author: Linus Torvalds Date: Thu Oct 21 12:33:45 2010 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus: (29 commits) hfsplus: fix getxattr return value hfsplus: remove the unused hfsplus_kmap/hfsplus_kunmap helpers hfsplus: create correct initial catalog entries for device files hfsplus: remove superflous rootflags field in hfsplus_inode_info hfsplus: fix link corruption hfsplus: validate btree flags hfsplus: handle more on-disk corruptions without oopsing hfsplus: hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage hfsplus: fix oops on mount with corrupted btree extent records hfsplus: fix rename over directories hfsplus: convert tree_lock to mutex hfsplus: add missing extent locking in hfsplus_write_inode hfsplus: protect readdir against removals from open_dir_list hfsplus: use atomic bitops for the superblock flags hfsplus: add per-superblock lock for volume header updates hfsplus: remove the rsrc_inodes list hfsplus: do not cache and write next_alloc hfsplus: fix error handling in hfsplus_symlink hfsplus: merge mknod/mkdir/creat hfsplus: clean up hfsplus_write_inode ... commit 6d7bccc2215c37205ede6c9cf84db64e7c4f9443 Author: Arnd Bergmann Date: Thu Oct 21 15:58:01 2010 +0200 BKL: remove BKL from freevxfs All uses of the BKL in freevxfs were the result of a pushdown into code that doesn't really need it. As Christoph points out, this is a read-only file system, which eliminates most of the races in readdir/lookup. Signed-off-by: Arnd Bergmann Cc: Christoph Hellwig commit 073c21416268658bd1bc573af85eeac2ebb56ed5 Author: Arnd Bergmann Date: Thu Oct 21 15:53:15 2010 +0200 BKL: remove BKL from qnx4 All uses of the BKL in qnx4 were the result of a pushdown into code that doesn't really need it. As Christoph points out, this is a read-only file system, which eliminates most of the races in readdir/lookup. Signed-off-by: Arnd Bergmann Acked-by: Anders Larsen Cc: Christoph Hellwig commit 2198a10b501fd4443430cb17e065a9e859cc58c9 Merge: 9941fb6 db5a753 Author: David S. Miller Date: Thu Oct 21 08:43:05 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/core/dev.c commit 5b917a1420d3d1a9c8da49fb0090692dc9aaee86 Author: Vasiliy Kulikov Date: Sun Oct 17 18:41:24 2010 +0400 pcmcia: synclink_cs: fix information leak to userland Structure new_line is copied to userland with some padding fields unitialized. It leads to leaking of stack memory. Signed-off-by: Vasiliy Kulikov CC: stable@kernel.org Signed-off-by: Dominik Brodowski commit 9941fb62762253774cc6177d0b9172ece5133fe1 Merge: a5190b4 3b1a1ce Author: David S. Miller Date: Thu Oct 21 08:21:34 2010 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6 commit 3b1a1ce6f418cb7ab35eb55c8a6575987a524e30 Merge: cc6eb43 b0aeef3 Author: Patrick McHardy Date: Thu Oct 21 16:25:51 2010 +0200 Merge branch 'for-patrick' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-test-2.6 commit cc6eb433856983e91071469c4ce57accb6947ccb Author: Balazs Scheidler Date: Thu Oct 21 16:21:10 2010 +0200 tproxy: use the interface primary IP address as a default value for --on-ip The REDIRECT target and the older TProxy versions used the primary address of the incoming interface as the default value of the --on-ip parameter. This was unintentionally changed during the initial TProxy submission and caused confusion among users. Since IPv6 has no notion of primary address, we just select the first address on the list: this way the socket lookup finds wildcard bound sockets properly and we cannot really do better without the user telling us the IPv6 address of the proxy. This is implemented for both IPv4 and IPv6. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit b64c9256a9b76fc9f059f71bd08ba88fb0cbba2e Author: Balazs Scheidler Date: Thu Oct 21 16:19:42 2010 +0200 tproxy: added IPv6 support to the socket match The ICMP extraction bits were contributed by Harry Mason. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit a5190b4eea1f1c53ee26b3d1176441cafa8e7f79 Author: stephen hemminger Date: Fri Oct 15 12:43:10 2010 +0000 cxgb3: function namespace cleanup Make local functions static. Remove functions that are defined and never used. Compile tested only. Signed-off-by: Stephen Hemminger Acked-by: Divy Le Ray Signed-off-by: David S. Miller commit 6ad7889327a5ee6ab4220bd34e4428c7d0de0f32 Author: Balazs Scheidler Date: Thu Oct 21 16:17:26 2010 +0200 tproxy: added IPv6 support to the TPROXY target This requires a new revision as the old target structure was IPv4 specific. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 3b9afb29917f4ab08decf358ecfd354a72a91ac0 Author: Balazs Scheidler Date: Thu Oct 21 16:12:14 2010 +0200 tproxy: added IPv6 socket lookup function to nf_tproxy_core Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit cc4ce020935eab2d261b7b8d24a9843b56ad594c Author: Somnath Kotur Date: Thu Oct 21 07:11:14 2010 -0700 be2net: Changes to use only priority codes allowed by f/w Changes to use one of the priority codes allowed by CNA f/w for NIC traffic from host. The driver gets the bit map of the priority codes allowed for host traffic through a asynchronous message from the f/w that the driver subscribes to. Signed-off-by: Somnath Kotur Signed-off-by: David S. Miller commit 0a513f6af962525ed4b3395f8c8d5daae8682aa9 Author: Balazs Scheidler Date: Thu Oct 21 16:10:03 2010 +0200 tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 6c46862280c5f55eda7750391bc65cd7e08c7535 Author: Balazs Scheidler Date: Thu Oct 21 16:08:28 2010 +0200 tproxy: added tproxy sockopt interface in the IPV6 layer Support for IPV6_RECVORIGDSTADDR sockopt for UDP sockets were contributed by Harry Mason. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit aa976fc011efa1f0e3290c6c9addf7c20757f885 Author: Balazs Scheidler Date: Thu Oct 21 16:05:41 2010 +0200 tproxy: added udp6_lib_lookup function Just like with IPv4, we need access to the UDP hash table to look up local sockets, but instead of exporting the global udp_table, export a lookup function. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 88440ae70eda83d0cc94148d404f4990c9f1289c Author: Balazs Scheidler Date: Thu Oct 21 16:04:33 2010 +0200 tproxy: added const specifiers to udp lookup functions The parameters for various UDP lookup functions were non-const, even though they could be const. TProxy has some const references and instead of downcasting it, I added const specifiers along the path. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit e97c3e278e951501c2f385de70c3ceacdea78c4a Author: Balazs Scheidler Date: Thu Oct 21 16:03:43 2010 +0200 tproxy: split off ipv6 defragmentation to a separate module Like with IPv4, TProxy needs IPv6 defragmentation but does not require connection tracking. Since defragmentation was coupled with conntrack, I split off the two, creating an nf_defrag_ipv6 module, similar to the already existing nf_defrag_ipv4. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 6de5bd128d381ad88ac6d419a5e597048eb468cf Author: Arnd Bergmann Date: Sat Sep 11 18:00:57 2010 +0200 BKL: introduce CONFIG_BKL. With all the patches we have queued in the BKL removal tree, only a few dozen modules are left that actually rely on the BKL, and even there are lots of low-hanging fruit. We need to decide what to do about them, this patch illustrates one of the options: Every user of the BKL is marked as 'depends on BKL' in Kconfig, and the CONFIG_BKL becomes a user-visible option. If it gets disabled, no BKL using module can be built any more and the BKL code itself is compiled out. The one exception is file locking, which is practically always enabled and does a 'select BKL' instead. This effectively forces CONFIG_BKL to be enabled until we have solved the fs/lockd mess and can apply the patch that removes the BKL from fs/locks.c. Signed-off-by: Arnd Bergmann commit 39dc948c6921169e13224a97fa53188922acfde8 Merge: a731cd1 f6f94e2 Author: Alex Elder Date: Thu Oct 21 08:29:34 2010 -0500 Merge branch 'v2.6.36' commit 3f9bcca7820a6711307b6499952b13cfcfc31dd6 Author: Suresh Jayaraman Date: Mon Oct 18 23:29:37 2010 +0530 cifs: convert cifs_tcp_ses_lock from a rwlock to a spinlock cifs_tcp_ses_lock is a rwlock with protects the cifs_tcp_ses_list, server->smb_ses_list and the ses->tcon_list. It also protects a few ref counters in server, ses and tcon. In most cases the critical section doesn't seem to be large, in a few cases where it is slightly large, there seem to be really no benefit from concurrent access. I briefly considered RCU mechanism but it appears to me that there is no real need. Replace it with a spinlock and get rid of the last rwlock in the cifs code. Signed-off-by: Suresh Jayaraman Signed-off-by: Steve French commit e5953cbdff26f7cbae7eff30cd9b18c4e19b7594 Author: Nicolas Kaiser Date: Thu Oct 21 14:56:00 2010 +0200 pipe: fix failure to return error code on ->confirm() The arguments were transposed, we want to assign the error code to 'ret', which is being returned. Signed-off-by: Nicolas Kaiser Cc: stable@kernel.org Signed-off-by: Jens Axboe commit 4d1529043705737ba442f5a0048043718e601ce4 Author: Mike Snitzer Date: Thu Oct 21 14:54:19 2010 +0200 Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c Signed-off-by: Mike Snitzer Signed-off-by: Jens Axboe commit 525906bc898d712f21e5bfcfc85ab0e517e3d086 Author: Borislav Petkov Date: Fri Oct 15 15:27:02 2010 +0200 EDAC, MCE: Fix shift warning on 32-bit Fix drivers/edac/mce_amd.c:262: warning: left shift count >= width of type on 32-bit builds. Reported-by: Randy Dunlap Signed-off-by: Borislav Petkov commit cf1d2200dbc214c26a116c4d0c75b7cf27bb19b6 Author: Borislav Petkov Date: Fri Oct 15 15:20:18 2010 +0200 EDAC, MCE: Add a BIT_64() macro Add a macro for 64-bit vectors to use when accessing MSR contents. Signed-off-by: Borislav Petkov commit fda7561f438aeddf074e2db0890e283195aa7779 Author: Borislav Petkov Date: Wed Sep 22 16:12:03 2010 +0200 EDAC, MCE: Enable MCE decoding on F12h Turn on MCE decoding on F12h. Signed-off-by: Borislav Petkov commit cb9d5ecdff66197f65a6be8032ccc1ebf7199684 Author: Borislav Petkov Date: Thu Sep 16 17:36:12 2010 +0200 EDAC, MCE: Add F12h NB MCE decoder F12h is completely covered by the generic path. Signed-off-by: Borislav Petkov commit e7281eb37da045abac5bd795d1169fc2e3eeea49 Author: Borislav Petkov Date: Thu Sep 16 16:45:22 2010 +0200 EDAC, MCE: Add F12h IC MCE decoder ... which is the same as for K8 and F10h. Signed-off-by: Borislav Petkov commit 9be0bb1072e3544934e0ac20f184e50805aecf9c Author: Borislav Petkov Date: Thu Sep 16 15:08:14 2010 +0200 EDAC, MCE: Add F12h DC MCE decoder F12h DC MCE signatures are a subset of F10h's so reuse them. Signed-off-by: Borislav Petkov commit f0157b3afd2ec6331245768a785487249a3c9734 Author: Borislav Petkov Date: Tue Oct 5 19:07:16 2010 +0200 EDAC, MCE: Add support for F11h MCEs F11h has almost the same MCE signatures as K8 except DRAM ECC and MC5 bank errors. Reuse functionality from the other families. Signed-off-by: Borislav Petkov commit 9530d608ef0e1f76b7fd82bb92645062292fc009 Author: Borislav Petkov Date: Mon Sep 6 15:05:45 2010 +0200 EDAC, MCE: Enable MCE decoding on F14h Now that all decoders have been taught about F14h, models < 0x10 MCEs, enable decoding on this family of CPUs. Also, issue a short informational message upon boot that MCE decoding gets enabled. Signed-off-by: Borislav Petkov commit fe4ea2623bec3e595f8e77a8514307c389c096ae Author: Borislav Petkov Date: Tue Aug 31 18:38:24 2010 +0200 EDAC, MCE: Fix FR MCEs decoding Those are N/A on K8, so don't decode them there. Signed-off-by: Borislav Petkov commit 5ce88f6ea6bef929f59f9468413f922c9a486fa4 Author: Borislav Petkov Date: Tue Aug 31 18:28:08 2010 +0200 EDAC, MCE: Complete NB MCE decoders Add support for decoding F14h BU MCEs and improve decoding of the remaining families. Signed-off-by: Borislav Petkov commit ded506232865e8e932bc21c87f48170d50db4d97 Author: Borislav Petkov Date: Fri Aug 27 17:03:34 2010 +0200 EDAC, MCE: Warn about LS MCEs on F14h F14h CPUs do not generate LS MCEs so exit early and warn the user in case this path is ever hit that something else might be going haywire. Signed-off-by: Borislav Petkov commit dd53bce4e8987f6848840d42bbeead5221eff308 Author: Borislav Petkov Date: Thu Aug 26 19:05:49 2010 +0200 EDAC, MCE: Adjust IC decoders to F14h Add support for IC MCEs for F14h CPUs. K8 and F10h are almost identical so use one function for both. Signed-off-by: Borislav Petkov commit 888ab8e6eb2e41179cdc8edf5d0abd1cce0f0370 Author: Borislav Petkov Date: Wed Aug 18 15:11:35 2010 +0200 EDAC, MCE: Adjust DC decoders to F14h Add a per-family data cache decoders. Since there is a certain overlap between the different DC MCE signatures, reuse functionality between the families as far as possible. Signed-off-by: Borislav Petkov commit 47ca08a40b043815134d489e21870b53276f1a4a Author: Borislav Petkov Date: Mon Sep 27 15:30:39 2010 +0200 EDAC, MCE: Rename files Drop "edac_" string from the filenames since they're prefixed with edac/ in their pathname anyway. Signed-off-by: Borislav Petkov commit 9cdeb404a1870c5022915e576dbdc3cde21af5bf Author: Borislav Petkov Date: Thu Sep 2 18:33:24 2010 +0200 EDAC, MCE: Rework MCE injection Add sysfs injection facilities for testing of the MCE decoding code. Remove large parts of amd64_edac_dbg.c, as a result, which did only NB MCE injection anyway and the new injection code supports that functionality already. Add an injection module so that MCE decoding code in production kernels like those in RHEL and SLES can be tested. Signed-off-by: Borislav Petkov commit 30e1f7a8122145f44f45c95366e27b6bb0b08428 Author: Borislav Petkov Date: Thu Sep 2 17:26:48 2010 +0200 EDAC: Export edac sysfs class to users. Move toplevel sysfs class to the stub and make it available to non-modularized code too. Add proper refcounting of its users and move the registration functionality into the reference counting routines. Signed-off-by: Borislav Petkov commit 7cfd4a87441f5ca3018fdd1f7ad67e8a73a05dc2 Author: Borislav Petkov Date: Wed Sep 1 14:45:20 2010 +0200 EDAC, MCE: Pass complete MCE info to decoders ... instead of the MCi_STATUS info only for improved handling of certain types of errors later. Signed-off-by: Borislav Petkov commit 6337583d7dc0dced36ab98dd63de2389c95c22d9 Author: Borislav Petkov Date: Mon Sep 6 18:13:39 2010 +0200 EDAC, MCE: Sanitize error codes Clean up error codes names, shorten to mnemonics, add RRRR boundary checking. Signed-off-by: Borislav Petkov commit 0ee8efa8f4672ce35ee370291c0f21d7b87b1e3f Author: Borislav Petkov Date: Mon Aug 30 12:34:19 2010 +0200 EDAC, MCE: Remove unused function parameter Remove remains from previous functionality. Signed-off-by: Borislav Petkov commit c9f281fd96b29367363ee232021c030d025c52a8 Author: Borislav Petkov Date: Wed Aug 18 18:21:42 2010 +0200 EDAC, MCE: Add HW_ERR prefix .. so that the user knows what she's looking at there in dmesg. Also, fix a minor cosmetic output inconsistency. Signed-off-by: Borislav Petkov commit ca755e0a49ff1272efff0b3bfdf3f1e0b0fc5d57 Author: Borislav Petkov Date: Wed Sep 1 16:32:20 2010 +0200 EDAC: Fix error return We should return a negative value when we cannot get the toplevel edac sysfs class. Signed-off-by: Borislav Petkov commit e83726b0460f4741c8f10e1488fbcc0a9e5f0b7e Author: Eric Dumazet Date: Thu Oct 21 04:39:09 2010 -0700 l2tp: small cleanup Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit b0aeef30433ea6854e985c2e9842fa19f51b95cc Author: Julian Anastasov Date: Mon Oct 11 11:23:07 2010 +0300 nf_nat: restrict ICMP translation for embedded header Skip ICMP translation of embedded protocol header if NAT bits are not set. Needed for IPVS to see the original embedded addresses because for IPVS traffic the IPS_SRC_NAT_BIT and IPS_DST_NAT_BIT bits are not set. It happens when IPVS performs DNAT for client packets after using nf_conntrack_alter_reply to expect replies from real server. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 612eef4f4714d5c0e7127b7b245dbfc444d14a4b Author: Marc Kleine-Budde Date: Wed Oct 20 00:02:26 2010 +0000 can: mcp251x: fix generation of error frames The function "mcp251x_error_skb" is used to generate error frames. They are identified by the "CAN_ERR_FLAG" in can_id. The function overwrites the can_id so that the frames show up as normal frames instead of error frames. This patch fixes the problem by or'ing the can_id instead of overwriting it. Signed-off-by: Marc Kleine-Budde Tested-by: Jargalan Nermunkh Signed-off-by: David S. Miller commit 5601b2dfae86198667dd6e075a074fbef0c83423 Author: Marc Kleine-Budde Date: Wed Oct 20 00:02:25 2010 +0000 can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set Commit d3cd15657516141adce387810be8cb377baf020e introduced a bug, the interrupt handler would loop endlessly if the CANINTF_MERRF bit is set, because it's not cleared. This patch fixes the problem by masking out the CANINTF_MERRF and all other non interesting bits. Signed-off-by: Marc Kleine-Budde Signed-off-by: David S. Miller commit 1e55659ce6ddb5247cee0b1f720d77a799902b85 Author: Oliver Hartkopp Date: Tue Oct 19 09:32:04 2010 +0000 can-raw: add msg_flags to distinguish local traffic CAN has no addressing scheme. It is currently impossible for userspace to tell is a received CAN frame comes from another process on the local host, or from a remote CAN device. This patch add support for userspace applications to distinguish between 'own', 'local' and 'remote' CAN traffic. The distinction is made by returning flags in msg->msg_flags in the call to recvmsg(). The added documentation explains the introduced flags. Signed-off-by: Kurt Van Dijck Signed-off-by: Oliver Hartkopp Signed-off-by: David S. Miller commit 32a875adcdcf5f470bf967250cfd01722e23844f Author: stephen hemminger Date: Tue Oct 19 06:48:16 2010 +0000 9p: client code cleanup Make p9_client_version static since only used in one file. Remove p9_client_auth because it is defined but never used. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ff51bf841587c75b58d25ed77263158619784dd3 Author: stephen hemminger Date: Tue Oct 19 08:08:33 2010 +0000 rds: make local functions/variables static The RDS protocol has lots of functions that should be declared static. rds_message_get/add_version_extension is removed since it defined but never used. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit d0c2b0d265a0f1f92922a99a31def9da582197ac Author: stephen hemminger Date: Tue Oct 19 07:12:10 2010 +0000 napi: unexport napi_reuse_skb The function napi_reuse_skb is only used inside core. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit a0e00369f1e1ff9142a20efe4785890e52b2e525 Author: Allan Stephens Date: Mon Oct 18 11:43:56 2010 +0000 tipc: delete needless memset from bearer enabling. Eliminates zeroing out of the new bearer structure at the start of activation, since it is already in that state. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Acked-by: Neil Horman Signed-off-by: David S. Miller commit 13eea19213c1f4b711124ddc08c4bb9344442b64 Author: Julia Lawall Date: Mon Oct 18 04:11:14 2010 +0000 drivers/net/ax88796.c: Return error code in failure In this code, 0 is returned on failure, even though other failures return -ENOMEM or other similar values. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @a@ identifier alloc; identifier ret; constant C; expression x; @@ x = alloc(...); if (x == NULL) { <+... \(ret = -C; \| return -C; \) ...+> } @@ identifier f, a.alloc; expression ret; expression x,e1,e2,e3; @@ ret = 0 ... when != ret = e1 *x = alloc(...) ... when != ret = e2 if (x == NULL) { ... when != ret = e3 return ret; } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit afed4ccb0d975f1d3c98880ecf19a24f3d842394 Author: James Hogan Date: Sun Oct 17 01:48:59 2010 +0000 b44: fix resume, request_irq after hw reset On resume, call request_irq() after resetting the hardware rather than before. It's a shared interrupt so the handler could be called immediately if another device on the same irq interrupts (and will be called immediately if CONFIG_DEBUG_SHIRQ=y), but unless the hardware is reinitialised with b44_init_hw() the read of the interrupt status register will hang the system. Signed-off-by: James Hogan Signed-off-by: David S. Miller commit 31b9c19bfe32bed7fdf80cd0b1aa9d0f0569844a Author: stephen hemminger Date: Mon Oct 18 05:39:18 2010 +0000 cxgb4: function namespace cleanup (v3) Make functions only used in one file local. Remove lots of dead code, relating to unsupported functions in mainline driver like RSS, IPv6, and TCP offload. Signed-off-by: Stephen Hemminger Acked-by: Dimitris Michailidis Signed-off-by: David S. Miller commit b003f4e171304234eae9cc11c9fd7f1cbaaf0d6b Author: Jan Kiszka Date: Sun Oct 17 05:18:15 2010 +0000 CAPI: Silence lockdep warning on get_capi_appl_by_nr usage As long as we hold capi_controller_lock, we can safely access capi_applications without RCU protection as no one can modify the application list underneath us. Introduce an RCU-free __get_capi_appl_by_nr for this purpose. This silences lockdep warnings on suspicious rcu_dereference usage. Signed-off-by: Jan Kiszka Signed-off-by: David S. Miller commit 1e253c3b8a1aeed51eef6fc366812f219b97de65 Author: Benjamin Poirier Date: Mon Oct 18 16:09:35 2010 +0000 bridge: Forward reserved group addresses if !STP Make all frames sent to reserved group MAC addresses (01:80:c2:00:00:00 to 01:80:c2:00:00:0f) be forwarded if STP is disabled. This enables forwarding EAPOL frames, among other things. Signed-off-by: Benjamin Poirier Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit a5c30b349b872aa2ac13babbd5ceb26737f17e95 Author: Tejun Heo Date: Tue Oct 19 06:04:42 2010 +0000 net/neighbour: cancel_delayed_work() + flush_scheduled_work() -> cancel_delayed_work_sync() flush_scheduled_work() is going away. Prepare for it. Signed-off-by: Tejun Heo Signed-off-by: David S. Miller commit db5a753bf198ef7a50e17d2ff358adf37efe8648 Author: Neil Horman Date: Thu Oct 21 01:06:16 2010 +0000 Revert d88dca79d3852a3623f606f781e013d61486828a TIPC needs to have its endianess issues fixed. Unfortunately, the format of a subscriber message is passed in directly from user space, so requiring this message to be in network byte order breaks user space ABI. Revert this change until such time as we can determine how to do this in a backwards compatible manner. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit 8c974438085d2c81b006daeaab8801eedbd19758 Author: Neil Horman Date: Thu Oct 21 01:06:15 2010 +0000 Revert c6537d6742985da1fbf12ae26cde6a096fd35b5c Backout the tipc changes to the flags int he subscription message. These changees, while reasonable on the surface, interefere with user space ABI compatibility which is a no-no. This was part of the changes to fix the endianess issues in the TIPC protocol, which would be really nice to do but we need to do so in a way that is backwards compatible with user space. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit 093d282321daeb19c107e5f1f16d7f68484f3ade Author: Balazs Scheidler Date: Thu Oct 21 13:06:43 2010 +0200 tproxy: fix hash locking issue when using port redirection in __inet_inherit_port() When __inet_inherit_port() is called on a tproxy connection the wrong locks are held for the inet_bind_bucket it is added to. __inet_inherit_port() made an implicit assumption that the listener's port number (and thus its bind bucket). Unfortunately, if you're using the TPROXY target to redirect skbs to a transparent proxy that assumption is not true anymore and things break. This patch adds code to __inet_inherit_port() so that it can handle this case by looking up or creating a new bind bucket for the child socket and updates callers of __inet_inherit_port() to gracefully handle __inet_inherit_port() failing. Reported by and original patch from Stephen Buck . See http://marc.info/?t=128169268200001&r=1&w=2 for the original discussion. Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit d2ed817766987fd05e69b7da65d4861b38f1aa2a Author: Ben Greear Date: Thu Oct 21 04:06:29 2010 -0700 net/core: Allow tagged VLAN packets to flow through VETH devices. When there are VLANs on a VETH device, the packets being transmitted through the VETH device may be 4 bytes bigger than MTU. A check in dev_forward_skb did not take this into account and so dropped these packets. This patch is needed at least as far back as 2.6.34.7 and should be considered for -stable. Signed-off-by: Ben Greear Signed-off-by: David S. Miller commit be8c648051048bc66fbca590d00f3e8543ec32af Author: Arnaud Patard Date: Thu Oct 21 03:59:57 2010 -0700 phy/marvell: fix 88e1121 support Commit c477d0447db08068a497e7beb892b2b2a7bff64b added support for RGMII rx/tx delays except that it ends up clearing rx/tx delays bit for modes differents that RGMII*ID. Due to this, ethernet is not working anymore on my guruplug server +. This patch is fixing that. Signed-off-by: Arnaud Patard Signed-off-by: David S. Miller commit 27ab76065c0c6734ea98ccc7080046a72d98455b Author: Yi Zou Date: Wed Oct 20 23:00:30 2010 +0000 ixgbe: add a refcnt when turning on/off FCoE offload capability The FCoE offload is enabled/disabled per adapter, but upper FCoE protocol stack could have multiple FCoE instances created on the same physical network interface, e.g., FCoE on multiple VLAN interfaces on the same physical network interface. In this case we want to turn on FCoE offload at the first request from ndo_fcoe_enable() but only turn off FCoE offload at the very last call to ndo_fcoe_disable(). This is fixed by adding a refcnt in the per adapter FCoE structure and tear down FCoE offload when refcnt decrements to zero. Signed-off-by: Yi Zou Tested-by: Ross Brattain Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit de1036b1cea147c5049c65f5bd26fb451f1624cd Author: Eric Dumazet Date: Wed Oct 20 23:00:04 2010 +0000 ixgbe: fix stats handling Current ixgbe stats have following problems : - Not 64 bit safe (on 32bit arches) - Not safe in ixgbe_clean_rx_irq() : All cpus dirty a common location (netdev->stats.rx_bytes & netdev->stats.rx_packets) without proper synchronization. This slow down a bit multiqueue operations, and possibly miss some updates. Fixes : Implement ndo_get_stats64() method to provide accurate 64bit rx|tx bytes/packets counters, using 64bit safe infrastructure. ixgbe_get_ethtool_stats() also use this infrastructure to provide 64bit safe counters. Signed-off-by: Eric Dumazet Acked-by: Don Skidmore Tested-by: Stephen Ko Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 3a338cbb8bb46a6b86f4dca54bf73b9c78751659 Author: Emil Tantilov Date: Wed Oct 20 22:59:40 2010 +0000 ixgbe: update copyright info Update copyright notice Signed-off-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit e47dfcd81edb7c6065fd2219c818b3b526bd624d Author: Guo-Fu Tseng Date: Mon Oct 18 14:10:44 2010 +0000 jme: Advance version number Advance version number and update copyright info Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller commit 334fbbb747c978ae9171b9c29dfcea881f4a8d57 Author: Guo-Fu Tseng Date: Mon Oct 18 14:10:43 2010 +0000 jme: Adding mii-tool support Adding mii-tool support for some distribution only have mii-tool installed by default. Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller commit ea192aa89c3b26d56113e70c72238f6951d4097f Author: Guo-Fu Tseng Date: Mon Oct 18 14:10:42 2010 +0000 jme: Prevent possible read re-order error Adding read memory barrier in between flag reading and data reading of receive descriptors. This prevents the data being read before hardware complete writing informations. Reported-by: Stefan Hajnoczi Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller commit 3ee94018a9f49ca98e3f77f54a769c784115dbb8 Author: Guo-Fu Tseng Date: Mon Oct 18 14:10:41 2010 +0000 jme: Add comment in jme_set_settings Explains what `fdc` variable is for. Signed-off-by: Guo-Fu Tseng Signed-off-by: David S. Miller commit c8a8684d5cfb0f110a962c93586630c0bf91ebc1 Author: Guo-Fu Tseng Date: Mon Oct 18 14:10:40 2010 +0000 jme: Fix PHY power-off error Adding phy_on in opposition to phy_off. Signed-off-by: Guo-Fu Tseng Cc: Signed-off-by: David S. Miller commit 6006db84a91838813cdad8a6622a4e39efe9ea47 Author: Balazs Scheidler Date: Thu Oct 21 12:47:34 2010 +0200 tproxy: add lookup type checks for UDP in nf_tproxy_get_sock_v4() Also, inline this function as the lookup_type is always a literal and inlining removes branches performed at runtime. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 106e4c26b1529e559d1aae777f11b4f8f7bafc26 Author: Balazs Scheidler Date: Thu Oct 21 12:45:14 2010 +0200 tproxy: kick out TIME_WAIT sockets in case a new connection comes in with the same tuple Without tproxy redirections an incoming SYN kicks out conflicting TIME_WAIT sockets, in order to handle clients that reuse ports within the TIME_WAIT period. The same mechanism didn't work in case TProxy is involved in finding the proper socket, as the time_wait processing code looked up the listening socket assuming that the listener addr/port matches those of the established connection. This is not the case with TProxy as the listener addr/port is possibly changed with the tproxy rule. Signed-off-by: Balazs Scheidler Signed-off-by: KOVACS Krisztian Signed-off-by: Patrick McHardy commit 7bfc47532301a84c575cfc20b4531f5de5c326bc Author: Bandan Das Date: Sat Oct 16 20:19:59 2010 +0000 bonding: cleanup: remove braces from single block statements checkpatch.pl cleanup : Remove braces from single statement blocks. Signed-off-by: Bandan Das Signed-off-by: David S. Miller commit 128ea6c3eece8e87c05813d3a57f4ea079c3dbc7 Author: Bandan Das Date: Sat Oct 16 20:19:58 2010 +0000 bonding: cleanup : add space around operators checkpatch.pl cleanup: Added spaces around operators at various places. Also fixed some c99 style comments that I came across. Signed-off-by: Bandan Das Signed-off-by: David S. Miller commit 7453da829786061e81c9c11b7a34a2834146894f Author: Tracey Dent Date: Fri Oct 15 17:53:29 2010 +0000 Drivers: atm: Makefile: replace the use of -objs with -y Changed -objs to -y in Makefile. Signed-off-by: Tracey Dent Signed-off-by: David S. Miller commit f4e8ab7cc4e819011ca6325e54383b3da7a5d130 Author: Bernard Blackham Date: Mon Oct 18 13:16:39 2010 +0000 smsc95xx: generate random MAC address once, not every ifup The smsc95xx driver currently generates a new random MAC address every time the interface is brought up. This makes it impossible to override using the standard `ifconfig hw ether` approach. Past patches tried to make the MAC address a module parameter or base it off the die ID, but it seems to me much simpler (and hopefully less controversial) to stick with the current random generation scheme, but allow the user to change the address. This patch does exactly that - it moves the random address generation from smsc95xx_reset() into smsc95xx_bind(), so that it is done once on module load, not on every ifup. The user can then override this using the standard mechanisms. Applies against 2.6.35 and linux-2.6 head. Signed-off-by: Bernard Blackham Signed-off-by: David S. Miller commit fdb246f526e422b18b48d578085c01ab28ec2c33 Author: Michael Chan Date: Mon Oct 18 14:30:54 2010 +0000 bnx2: Increase max rx ring size from 1K to 2K A number of customers are reporting packet loss under certain workloads (e.g. heavy bursts of small packets) with flow control disabled. A larger rx ring helps to prevent these losses. No change in default rx ring size and memory consumption. Signed-off-by: Andy Gospodarek Acked-by: John Feeney Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 3511c9132f8b1e1b5634e41a3331c44b0c13be70 Author: Changli Gao Date: Sat Oct 16 13:04:08 2010 +0000 net_sched: remove the unused parameter of qdisc_create_dflt() The first parameter dev isn't in use in qdisc_create_dflt(). Signed-off-by: Changli Gao Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit 26d8ee75e08cfca8b65ade871d68c8cd96e4ea23 Author: stephen hemminger Date: Fri Oct 15 05:09:34 2010 +0000 bonding: make release_and_destroy static Only used in main file. Signed-off-by: Stephen Hemminger Acked-by: Andy Gospodarek Signed-off-by: Jay Vosburgh Signed-off-by: David S. Miller commit 1c4c40c42da468ef02dc04940930c1926c964558 Author: stephen hemminger Date: Fri Oct 15 05:14:19 2010 +0000 xfrm: make xfrm_bundle_ok local Only used in one place. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 8d8a0b1cc2a8f9794a3f1f747089b6a93774408d Author: stephen hemminger Date: Fri Oct 15 05:12:01 2010 +0000 rtnetlink: remove rtnl_kill_links The function rtnl_kill_links is defined but never used. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 6f747aca5e61778190d1e27bdc469f49149f0230 Author: stephen hemminger Date: Fri Oct 15 05:15:59 2010 +0000 xfrm6: make xfrm6_tunnel_free_spi local Function only defined and used in one file. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 191cc6877408348e90f4adb64726b60a93246b8b Author: stephen hemminger Date: Fri Oct 15 11:09:14 2010 +0000 pch_gbe: make local functions static Make routines that are only used in one file static. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ae316bb57d25d73ae9c1ddc9c59fe56d733849bf Author: stephen hemminger Date: Fri Oct 15 11:06:20 2010 +0000 vmxnet3: make bit twiddle routines inline Gcc doesn't usually handle inline across compilation units, and the functions don't have to be global in scope. Move the set/reset flag functions int the existing vmxnet3 header. Signed-off-by: Stephen Hemminger Acked-by: Shreyas Bhatewara Signed-off-by: David S. Miller commit 379b7383413d883ffc4db55914626ca303e6f7f5 Author: stephen hemminger Date: Fri Oct 15 11:02:56 2010 +0000 bonding: make bond_resend_igmp_join_requests_delayed static Signed-off-by: Stephen Hemminger Acked-by: Flavio Leitner Signed-off-by: Jay Vosburgh Signed-off-by: David S. Miller commit d215697fe14a0c5a96765c6279b4751e632587a5 Author: stephen hemminger Date: Mon Oct 18 05:27:31 2010 +0000 sfc: make functions static Make local functions and variable static. Do some rearrangement of the string table stuff to put it where it gets used. Signed-off-by: Stephen Hemminger Acked-by: Ben Hutchings Signed-off-by: David S. Miller commit d0280232813a6a5e2bfca6e9257b866352115c09 Author: stephen hemminger Date: Mon Oct 18 14:03:21 2010 +0000 bridge: make br_parse_ip_options static Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 11165f1457181e4499e5eada442434a07827ffd8 Author: stephen hemminger Date: Mon Oct 18 14:27:29 2010 +0000 socket: localize functions A couple of functions in socket.c are only used there and should be localized. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 7e12bb0adb5b3114a73098d3536b3c45635e6c95 Author: stephen hemminger Date: Mon Oct 18 17:40:10 2010 +0000 netxen: make local function static. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 9b0c290e78d667e6a483bde8c7cef7dd15f49017 Author: Eric Dumazet Date: Wed Oct 20 22:03:38 2010 +0000 fib: introduce fib_alias_accessed() helper Perf tools session at NFWS 2010 pointed out a false sharing on struct fib_alias that can be avoided pretty easily, if we set FA_S_ACCESSED bit only if needed (ie : not already set) Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7b5edbc4cfe2297b0915adea5aa1eafcafadbf06 Author: Eric Dumazet Date: Fri Oct 15 19:22:34 2010 +0000 net/sched: fix missing spinlock init Under network load, doing : tc qdisc del dev eth0 root triggers : [ 167.193087] BUG: spinlock bad magic on CPU#3, udpflood/4928 [ 167.193139] lock: c15bc324, .magic: 00000000, .owner: /-1, .owner_cpu: -1 [ 167.193193] Pid: 4928, comm: udpflood Not tainted 2.6.36-rc7-11417-g215340c-dirty #323 [ 167.193245] Call Trace: [ 167.193292] [] ? printk+0x18/0x20 [ 167.193342] [] spin_bug+0xa3/0xf0 [ 167.193389] [] do_raw_spin_lock+0x7d/0x160 [ 167.193440] [] ? __dev_xmit_skb+0x27e/0x2b0 [ 167.193496] [] ? trace_hardirqs_on+0xb/0x10 [ 167.193545] [] _raw_spin_lock+0x3a/0x40 [ 167.193593] [] ? __dev_xmit_skb+0x27e/0x2b0 [ 167.193641] [] __dev_xmit_skb+0x27e/0x2b0 commit 79640a4ca695 (add additional lock to qdisc to increase throughput) forgot to initialize noop_qdisc and noqueue_qdisc busylock Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 0d79641a96d612aaa6d57a4d4f521d7ed9c9ccdd Author: Julian Anastasov Date: Sun Oct 17 16:46:17 2010 +0300 ipvs: provide address family for debugging As skb->protocol is not valid in LOCAL_OUT add parameter for address family in packet debugging functions. Even if ports are not present in AH and ESP change them to use ip_vs_tcpudp_debug_packet to show at least valid addresses as before. This patch removes the last user of skb->protocol in IPVS. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 3233759be7eeca9998c514b8f49e8cf2b85e64d3 Author: Julian Anastasov Date: Sun Oct 17 16:43:36 2010 +0300 ipvs: inherit forwarding method in backup Connections in backup server should inherit the forwarding method from real server. It is a way to fix a problem where the forwarding method in backup connection is damaged by logical OR operation with the real server's connection flags. And the change is needed for setups where the backup server uses different forwarding method for the same real servers. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit cb59155f21d4c0507d2034c2953f6a3f7806913d Author: Julian Anastasov Date: Sun Oct 17 16:40:51 2010 +0300 ipvs: changes for local client This patch deals with local client processing. Prefer LOCAL_OUT hook for scheduling connections from local clients. LOCAL_IN is still supported if the packets are not marked as processed in LOCAL_OUT. The idea to process requests in LOCAL_OUT is to alter conntrack reply before it is confirmed at POST_ROUTING. If the local requests are processed in LOCAL_IN the conntrack can not be updated and matching by state is impossible. Add the following handlers: - ip_vs_reply[46] at LOCAL_IN:99 to process replies from remote real servers to local clients. Now when both replies from remote real servers (ip_vs_reply*) and local real servers (ip_vs_local_reply*) are handled it is safe to remove the conn_out_get call from ip_vs_in because it does not support related ICMP packets. - ip_vs_local_request[46] at LOCAL_OUT:-98 to process requests from local client Handling in LOCAL_OUT causes some changes: - as skb->dev, skb->protocol and skb->pkt_type are not defined in LOCAL_OUT make sure we set skb->dev before calling icmpv6_send, prefer skb_dst(skb) for struct net and remove the skb->protocol checks from TUN transmitters. [ horms@verge.net.au: removed trailing whitespace ] Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit fc604767613b6d2036cdc35b660bc39451040a47 Author: Julian Anastasov Date: Sun Oct 17 16:38:15 2010 +0300 ipvs: changes for local real server This patch deals with local real servers: - Add support for DNAT to local address (different real server port). It needs ip_vs_out hook in LOCAL_OUT for both families because skb->protocol is not set for locally generated packets and can not be used to set 'af'. - Skip packets in ip_vs_in marked with skb->ipvs_property because ip_vs_out processing can be executed in LOCAL_OUT but we still have the conn_out_get check in ip_vs_in. - Ignore packets with inet->nodefrag from local stack - Require skb_dst(skb) != NULL because we use it to get struct net - Add support for changing the route to local IPv4 stack after DNAT depending on the source address type. Local client sets output route and the remote client sets input route. It looks like IPv6 does not need such rerouting because the replies use addresses from initial incoming header, not from skb route. - All transmitters now have strict checks for the destination address type: redirect from non-local address to local real server requires NAT method, local address can not be used as source address when talking to remote real server. - Now LOCALNODE is not set explicitly as forwarding method in real server to allow the connections to provide correct forwarding method to the backup server. Not sure if this breaks tools that expect to see 'Local' real server type. If needed, this can be supported with new flag IP_VS_DEST_F_LOCAL. Now it should be possible connections in backup that lost their fwmark information during sync to be forwarded properly to their daddr, even if it is local address in the backup server. By this way backup could be used as real server for DR or TUN, for NAT there are some restrictions because tuple collisions in conntracks can create problems for the traffic. - Call ip_vs_dst_reset when destination is updated in case some real server IP type is changed between local and remote. [ horms@verge.net.au: removed trailing whitespace ] Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit f5a41847acc535e2e2018e397b1876ba7577d9d9 Author: Julian Anastasov Date: Sun Oct 17 16:35:46 2010 +0300 ipvs: move ip_route_me_harder for ICMP Currently, ip_route_me_harder after ip_vs_out_icmp is called even if packet is not related to IPVS connection. Move it into handle_response_icmp. Also, force rerouting if sending to local client because IPv4 stack uses addresses from the route. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 1ca5bb5450aa2401fa272efeb741ebb260d0fbb0 Author: Julian Anastasov Date: Sun Oct 17 16:32:29 2010 +0300 ipvs: create ip_vs_defrag_user Create new function ip_vs_defrag_user to return correct IP_DEFRAG_xxx user depending on the hooknum. It will be needed when we add handlers in LOCAL_OUT. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 4256f1aaa662697c1faa0984b7a698c2c8c57735 Author: Julian Anastasov Date: Sun Oct 17 16:29:40 2010 +0300 ipvs: fix CHECKSUM_PARTIAL for TUN method The recent change in IP_VS_XMIT_TUNNEL to set CHECKSUM_NONE is not correct. After adding IPIP header skb->csum becomes invalid but the CHECKSUM_PARTIAL case must be supported. So, use skb_forward_csum() which is most suitable for us to allow local clients to send IPIP to remote real server. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 489fdedaed5ddb437dd2840eb93df37a6dd8c7de Author: Julian Anastasov Date: Sun Oct 17 16:27:31 2010 +0300 ipvs: stop ICMP from FORWARD to local Delivering locally ICMP from FORWARD hook is not supported. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 190ecd27cd7294105e3b26ca71663c7d940acbbb Author: Julian Anastasov Date: Sun Oct 17 16:24:37 2010 +0300 ipvs: do not schedule conns from real servers This patch is needed to avoid scheduling of packets from local real server when we add ip_vs_in in LOCAL_OUT hook to support local client. Currently, when ip_vs_in can not find existing connection it tries to create new one by calling ip_vs_schedule. The default indication from ip_vs_schedule was if connection was scheduled to real server. If real server is not available we try to use the bypass forwarding method or to send ICMP error. But in some cases we do not want to use the bypass feature. So, add flag 'ignored' to indicate if the scheduler ignores this packet. Make sure we do not create new connections from replies. We can hit this problem for persistent services and local real server when ip_vs_in is added to LOCAL_OUT hook to handle local clients. Also, make sure ip_vs_schedule ignores SYN packets for Active FTP DATA from local real server. The FTP DATA connection should be created on SYN+ACK from client to assign correct connection daddr. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit cf356d69db0afef692cd640917bc70f708c27f14 Author: Julian Anastasov Date: Sun Oct 17 16:21:07 2010 +0300 ipvs: switch to notrack mode Change skb->ipvs_property semantic. This is preparation to support ip_vs_out processing in LOCAL_OUT. ipvs_property=1 will be used to avoid expensive lookups for traffic sent by transmitters. Now when conntrack support is not used we call ip_vs_notrack method to avoid problems in OUTPUT and POST_ROUTING hooks instead of exiting POST_ROUTING as before. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 8b27b10f5863a5b63e46304a71aa01463d1efac4 Author: Julian Anastasov Date: Sun Oct 17 16:17:20 2010 +0300 ipvs: optimize checksums for apps Avoid full checksum calculation for apps that can provide info whether csum was broken after payload mangling. For now only ip_vs_ftp mangles payload and it updates the csum, so the full recalculation is avoided for all packets. Add CHECKSUM_UNNECESSARY for snat_handler (TCP and UDP). It is needed to support SNAT from local address for the case when csum is fully recalculated. Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit 5bc9068e9d962ca6b8bec3f0eb6f60ab4dee1d04 Author: Julian Anastasov Date: Sun Oct 17 16:14:31 2010 +0300 ipvs: fix CHECKSUM_PARTIAL for TCP, UDP Fix CHECKSUM_PARTIAL handling. Tested for IPv4 TCP, UDP not tested because it needs network card with HW CSUM support. May be fixes problem where IPVS can not be used in virtual boxes. Problem appears with DNAT to local address when the local stack sends reply in CHECKSUM_PARTIAL mode. Fix tcp_dnat_handler and udp_dnat_handler to provide vaddr and daddr in right order (old and new IP) when calling tcp_partial_csum_update/udp_partial_csum_update (CHECKSUM_PARTIAL). Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman commit d827d86b6fe87b420ef3c0685ab580290ae64beb Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:43 2010 +0000 r8169: print errors when dma mapping fail If dma mapping fail we are dropping packages or fail to open device. But exact reason of drop/fail stays unknow for a user, so print errors. Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit fccec10b33503a2b1197c8e7a3abd30443bedb08 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:42 2010 +0000 r8169: (re)init phy on resume Fix switching device to low-speed mode after resume reported in: https://bugzilla.redhat.com/show_bug.cgi?id=502974 Reported-and-tested-by: Laurentiu Badea Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 323bb6857533d7132e1d4fd9cc8edc599a06f5e6 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:41 2010 +0000 r8169: changing mtu clean up Since we do not change rx buffer size any longer, we can clean up rtl8169_change_mtu and in consequence rtl8169_down. Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit cac4b22f3d6a2601d896e9ae5147d173342c66f8 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:40 2010 +0000 r8169: do not account fragments as packets Only increase tx_{packets,dropped} statistics when transmit or drop full skb, not just fragment. Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 48addcc9edd551d09063148886bd6f3467d74c15 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:39 2010 +0000 r8169: use pointer to struct device as local variable Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 231aee63c1e270353fc0dc7fd4d5605a96562ec0 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:38 2010 +0000 r8169: replace PCI_DMA_{TO,FROM}DEVICE to DMA_{TO,FROM}_DEVICE Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 0ecbe1cadd406cb48424c796450bfaa18cb0b3ac Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:37 2010 +0000 r8169: init rx ring cleanup Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 3eafe50708deca10d155ccff597a91dcecc2d869 Author: Stanislaw Gruszka Date: Wed Oct 20 22:25:36 2010 +0000 r8169: check dma mapping failures Check possible dma mapping errors and do clean up if it happens. Fix overwrap bug in rtl8169_tx_clear on the way. Signed-off-by: Stanislaw Gruszka Signed-off-by: David S. Miller commit 11a691bea48887c27425cc40bf291e74c922df25 Author: Geert Uytterhoeven Date: Thu Oct 21 10:32:29 2010 +0200 block: Turn bvec_k{un,}map_irq() into static inline functions Convert bvec_k{un,}map_irq() from macros to static inline functions if !CONFIG_HIGHMEM, so we can easier detect mistakes like the one fixed in 93055c31045a2d5599ec613a0c6cdcefc481a460 ("ps3disk: passing wrong variable = to bvec_kunmap_irq()") Signed-off-by: Geert Uytterhoeven Signed-off-by: Jens Axboe commit 9bcc08939223c5a2bad42748ee53ab69f5338a32 Author: Hao Zheng Date: Wed Oct 20 13:56:11 2010 +0000 bnx2x: Update bnx2x to use new vlan accleration. Make the bnx2x driver use the new vlan accleration model. Signed-off-by: Hao Zheng Signed-off-by: Jesse Gross CC: Eilon Greenstein Signed-off-by: David S. Miller commit f62bbb5e62c6e4a91fb222d22bc46e8d4d7e59ef Author: Jesse Gross Date: Wed Oct 20 13:56:10 2010 +0000 ixgbe: Update ixgbe to use new vlan accleration. Make the ixgbe driver use the new vlan accleration model. Signed-off-by: Jesse Gross CC: Peter Waskiewicz CC: Emil Tantilov CC: Jeff Kirsher Signed-off-by: David S. Miller commit 7d0fd2117e3d0550d7987b3aff2bfbc0244cf7c6 Author: Jesse Gross Date: Wed Oct 20 13:56:09 2010 +0000 bnx2: Update bnx2 to use new vlan accleration. Make the bnx2 driver use the new vlan accleration model. Signed-off-by: Jesse Gross CC: Michael Chan Signed-off-by: David S. Miller commit 361ff8a6cf90d62c0071b7e532e37369bfd3ae77 Author: Jesse Gross Date: Wed Oct 20 13:56:08 2010 +0000 bridge: Add support for TX vlan offload. If some of the underlying devices support it, enable vlan offload on transmit for bridge devices. This allows senders to take advantage of the hardware support, similar to other forms of acceleration. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit d5dbda23804156ae6f35025ade5307a49d1db6d7 Author: Jesse Gross Date: Wed Oct 20 13:56:07 2010 +0000 ethtool: Add support for vlan accleration. Now that vlan acceleration is handled consistently regardless of usage, it is possible to enable and disable it at will. This adds support for Ethtool operations that change the offloading status for debugging purposes, similar to other forms of hardware acceleration. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 3701e51382a026cba10c60b03efabe534fba4ca4 Author: Jesse Gross Date: Wed Oct 20 13:56:06 2010 +0000 vlan: Centralize handling of hardware acceleration. Currently each driver that is capable of vlan hardware acceleration must be aware of the vlan groups that are configured and then pass the stripped tag to a specialized receive function. This is different from other types of hardware offload in that it places a significant amount of knowledge in the driver itself rather keeping it in the networking core. This makes vlan offloading function more similarly to other forms of offloading (such as checksum offloading or TSO) by doing the following: * On receive, stripped vlans are passed directly to the network core, without attempting to check for vlan groups or reconstructing the header if no group * vlans are made less special by folding the logic into the main receive routines * On transmit, the device layer will add the vlan header in software if the hardware doesn't support it, instead of spreading that logic out in upper layers, such as bonding. There are a number of advantages to this: * Fixes all bugs with drivers incorrectly dropping vlan headers at once. * Avoids having to disable VLAN acceleration when in promiscuous mode (good for bridging since it always puts devices in promiscuous mode). * Keeps VLAN tag separate until given to ultimate consumer, which avoids needing to do header reconstruction as in tg3 unless absolutely necessary. * Consolidates common code in core networking. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 65ac6a5fa658b90f1be700c55e7cd72e4611015d Author: Jesse Gross Date: Wed Oct 20 13:56:05 2010 +0000 vlan: Avoid hash table lookup to find group. A struct net_device always maps to zero or one vlan groups and we always know the device when we are looking up a group. We currently do a hash table lookup on the device to find the group but it is much simpler to just store a pointer. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 7b9c60903714bf0a19d746b228864bad3497284e Author: Jesse Gross Date: Wed Oct 20 13:56:04 2010 +0000 vlan: Enable software emulation for vlan accleration. Currently users of hardware vlan accleration need to know whether the device supports it before generating packets. However, vlan acceleration will soon be available in a more flexible manner so knowing ahead of time becomes much more difficult. This adds a software fallback path for vlan packets on devices without the necessary offloading support, similar to other types of hardware accleration. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit eab6d18d20fc5b5ba04a7e7fcd6f357197870e51 Author: Jesse Gross Date: Wed Oct 20 13:56:03 2010 +0000 vlan: Don't check for vlan group before vlan_tx_tag_present. Many (but not all) drivers check to see whether there is a vlan group configured before using a tag stored in the skb. There's not much point in this check since it just throws away data that should only be present in the expected circumstances. However, it will soon be legal and expected to get a vlan tag when no vlan group is configured, so remove this check from all drivers to avoid dropping the tags. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit b738127dfb469bb9f595cdace30e7f881e8146b2 Author: Jesse Gross Date: Wed Oct 20 13:56:02 2010 +0000 vlan: Rename VLAN_GROUP_ARRAY_LEN to VLAN_N_VID. VLAN_GROUP_ARRAY_LEN is simply the number of possible vlan VIDs. Since vlan groups will soon be more of an implementation detail for vlan devices, rename the constant to be descriptive of its actual purpose. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 13937911f93ef52ae652f4652761aea6a58d3193 Author: Jesse Gross Date: Wed Oct 20 13:56:01 2010 +0000 ebtables: Allow filtering of hardware accelerated vlan frames. An upcoming commit will allow packets with hardware vlan acceleration information to be passed though more parts of the network stack, including packets trunked through the bridge. This adds support for matching and filtering those packets through ebtables. Signed-off-by: Jesse Gross Signed-off-by: David S. Miller commit 53c90536e96218ed6d60e7ea7a69a92b68805cdf Author: Vasanthy Kolluri Date: Wed Oct 20 10:17:19 2010 +0000 enic: Fix log message Fix a log message Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit d058590976cb76defb636d78999cca353a09695b Author: Vasanthy Kolluri Date: Wed Oct 20 10:17:14 2010 +0000 enic: Change min MTU Change min MTU to 68. Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit 2db77e0f331d343511d08e204be5e22f934e1a68 Author: Vasanthy Kolluri Date: Wed Oct 20 10:17:09 2010 +0000 enic: Replace firmware devcmd CMD_ENABLE with CMD_ENABLE_WAIT Replace no wait CMD_ENABLE firmware devcmd with CMD_ENABLE_WAIT Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit c76fd32d0504c0450edb0e00890aa32e3ff1f73d Author: Vasanthy Kolluri Date: Wed Oct 20 10:17:04 2010 +0000 enic: Make firmware cognizant of the user set mac address Let the firmware know about the mac address set by the user using ndo_set_mac_address Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit 717258ba4b3ecca9c7c0ef2b76d7aa5800242bad Author: Vasanthy Kolluri Date: Wed Oct 20 10:16:59 2010 +0000 enic: Add support for multiple hardware receive queues Add support for multiple hardware receive queues. The ingress traffic is hashed into one of the receive queues based on IP or TCP or both headers. The max no. of receive queues supported is 8. Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit e0e8ab596012d8c2147beb3c8b70d2d6ab90acda Author: Denis Kirjanov Date: Wed Oct 20 04:21:51 2010 +0000 ibmveth: Free irq on error path Free irq on error path. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 88426f2acae0cf887446013db9eab776871610e7 Author: Denis Kirjanov Date: Wed Oct 20 04:21:13 2010 +0000 ibmveth: Cleanup error handling inside ibmveth_open Remove duplicated code in one place. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 45aafd32996e27bfc4862654ff31231bdddbe200 Author: Artem Bityutskiy Date: Wed Oct 20 11:54:58 2010 +0300 UBI: tighten the corrupted PEB criteria If we get a bit-flip of ECC error while reading the data area, do not add it to corrupted list, because it is possible that this is just unstable PEB with corruptions caused by unclean reboots. This patch also improves commentaries. Signed-off-by: Artem Bityutskiy commit df3fca4cdddfa6e1f51b65214d4342660649bd1f Author: Artem Bityutskiy Date: Wed Oct 20 11:51:21 2010 +0300 UBI: fix check_data_ff return code When the data does not contain all 0xFF bytes, 'check_data_ff()' should return 1, not -EINVAL; Also, the caller ('process_eb()') should not add the PEB to the "corrupted" list if there was a read error. Signed-off-by: Artem Bityutskiy commit fb22b59b2c38054cc847f6acc5c46daa26dc6dd3 Author: Artem Bityutskiy Date: Tue Oct 19 22:00:11 2010 +0300 UBI: remember copy_flag while scanning While scanning the flash we read all VID headers and store some important information in 'struct ubi_scan_leb'. Store also the 'copy_flag' value there as it is needed when comparing LEBs. We do not increase memory consumption because this is just one bit and we have plenty of spare bits in 'struct ubi_scan_leb' (sizeof(struct ubi_scan_leb) is 48 both with and without this patch). Signed-off-by: Artem Bityutskiy commit 6599fcbd01baf9d57e847db103d215ea4ec088f9 Author: Artem Bityutskiy Date: Mon Oct 18 10:00:40 2010 +0300 UBIFS: do not allocate unneeded scan buffer In 'ubifs_replay_journal()' we allocate 'sbuf' for scanning the log. However, we already have 'c->sbuf' for these purposes, so do not allocate yet another one. This reduces UBIFS memory consumption while recovering. Signed-off-by: Artem Bityutskiy commit 3601ba27353a968df843454e4b81155376682505 Author: Artem Bityutskiy Date: Mon Oct 18 08:32:35 2010 +0300 UBIFS: do not forget to cancel timers This is a bug-fix: when we unmount, and we are currently in R/O mode because of an error - we do not sync write-buffers, which means we also do not cancel write-buffer timers we may possibly have armed. This patch fixes the issue. The issue can easily be reproduced by enabling UBIFS failure debug mode (echo 4 > /sys/module/ubifs/parameters/debug_tsts) and unmounting as soon as a failure happen. At some point the system oopses because we have an armed hrtimer but UBIFS is unmounted already. Signed-off-by: Artem Bityutskiy commit 39037559e651c417fb68b828926dc61cd5d6e5e2 Author: Artem Bityutskiy Date: Mon Oct 18 08:28:50 2010 +0300 UBIFS: remove a bit of unneeded code This is a clean-up patch which: 1. Removes explicite 'hrtimer_cancel()' after 'ubifs_wbuf_sync()' in 'ubifs_remount_ro()', because the timers will be canceled by 'ubifs_wbuf_sync()', no need to cancel them for the second time. 2. Remove "if (c->jheads)" check from 'ubifs_put_super()', because at journal heads must always be allocated there, since we checked earlier that we were mounted R/W, and the olny situation when journal heads are not allocated is when mounter or re-mounted R/O. Signed-off-by: Artem Bityutskiy commit d836b31e164e15a5f366199f4ee757c6be7dc91e Merge: 4993e0d 6d97e55 Author: David S. Miller Date: Thu Oct 21 01:08:39 2010 -0700 Merge branch 'vhost-net' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost commit 4993e0d211105bc72d4ffc62ba20232d25ad418a Merge: 4c2a1b8 d793fe8 Author: David S. Miller Date: Thu Oct 21 00:54:29 2010 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6 commit 4c2a1b86644a6f3fc6b788d3a591563aff71f836 Merge: e226930 f6f94e2 Author: David S. Miller Date: Thu Oct 21 00:54:21 2010 -0700 Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ commit 2aeb66d3036dbafc297ac553a257a40283dadb3e Author: H. Peter Anvin Date: Thu Oct 21 00:15:00 2010 -0700 x86-32, percpu: Correct the ordering of the percpu readmostly section Checkin c957ef2c59e952803766ddc22e89981ab534606f had inconsistent ordering of .data..percpu..page_aligned and .data..percpu..readmostly; the still-broken version affected x86-32 at least. The page aligned version really must be page aligned... Signed-off-by: H. Peter Anvin LKML-Reference: <1287544022.4571.7.camel@sli10-conroe.sh.intel.com> Cc: Shaohua Li Cc: Eric Dumazet commit fe5a50a10c7b3bf38e47045eadc6b87a5c157f44 Author: Christoph Hellwig Date: Wed Sep 15 01:27:23 2010 +0200 virtio_blk: remove BKL leftovers Remove the BKL usage added in "block: push down BKL into .locked_ioctl". Virtio-blk doesn't use the BKL for anything, and doesn't implement any ioctl command by itself, but only uses the generic scsi_cmd_ioctl which is fine without the BKL. Signed-off-by: Christoph Hellwig Signed-off-by: Rusty Russell commit 299fb61c08c2fcd1bb6d3a4e87e53dc368475416 Author: Amit Shah Date: Thu Sep 16 14:43:09 2010 +0530 virtio: console: Disable lseek(2) for port file operations The ports are char devices; do not have seeking capabilities. Calling nonseekable_open() from the fops_open() call and setting the llseek fops pointer to no_llseek ensures an lseek() call from userspace returns -ESPIPE. Signed-off-by: Amit Shah CC: Arnd Bergmann Signed-off-by: Rusty Russell commit a461e11e7b8ca2705889bcf9582f6a8f84884bd2 Author: Amit Shah Date: Thu Sep 2 18:47:54 2010 +0530 virtio: console: Send SIGIO in case of port unplug If a port has registered for SIGIO signals, let the application know that the port is getting unplugged. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 55f6bcce3691f68476a530daa6666b66c43420a8 Author: Amit Shah Date: Thu Sep 2 18:47:53 2010 +0530 virtio: console: Send SIGIO on new data arrival on ports Send a SIGIO signal when new data arrives on a port. This is sent only when the process has requested for the signal to be sent using fcntl(). Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 3eae0adea949d8fdd8fa3e5301192901219d2c64 Author: Amit Shah Date: Thu Sep 2 18:47:52 2010 +0530 virtio: console: Send SIGIO to processes that request it for host events A process can request for SIGIO on host connect / disconnect events using the O_ASYNC file flag using fcntl(). If that's requested, and if the guest-side connection for the port is open, any host-side open/close events for that port will raise a SIGIO. The process can then use poll() within the signal handler to find out which port triggered the signal. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit e062013c7d22e40ee634b818d28fd615db36998e Author: Amit Shah Date: Thu Sep 2 18:38:30 2010 +0530 virtio: console: Reference counting portdev structs is not needed Explain in a comment why there's no need to reference-count the portdev struct: when a device is yanked out, we can't do anything more with it anyway so just give up doing anything more with the data or the vqs and exit cleanly. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit b353a6b821627053f82b4e7b907e824cb7a6879c Author: Amit Shah Date: Thu Sep 2 18:38:29 2010 +0530 virtio: console: Add reference counting for port struct When a port got hot-unplugged, when a port was open, any file operation after the unplugging resulted in a crash. This is fixed by ref-counting the port structure, and releasing it only when the file is closed. This splits the unplug operation in two parts: first marks the port as unavailable, removes all the buffers in the vqs and removes the port from the per-device list of ports. The second stage, invoked when all references drop to zero, releases the chardev and frees all other memory. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit d22a69892bd8f29e3096f6f54c2c00d8aec2e796 Author: Amit Shah Date: Thu Sep 2 18:20:59 2010 +0530 virtio: console: Use cdev_alloc() instead of cdev_init() This moves to using cdev on the heap instead of it being embedded in the ports struct. This helps individual refcounting and will allow us to properly remove cdev structs after hot-unplugs and close operations. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 04950cdf071b6e5aa4794c93ad3e3ce8a1c4aa8c Author: Amit Shah Date: Thu Sep 2 18:20:58 2010 +0530 virtio: console: Add a find_port_by_devt() function To convert to using cdev as a pointer to avoid kref troubles, we have to use a different method to get to a port from an inode than the current container_of method. Add find_port_by_devt() that looks up all portdevs and ports with those portdevs to find the right port. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 6bdf2afd02ae12bf8ac93e6d14c4b4dfef7c4c59 Author: Amit Shah Date: Thu Sep 2 18:11:49 2010 +0530 virtio: console: Add a list of portdevs that are active The virtio_console.c driver is capable of handling multiple devices at a time. Maintain a list of devices for future traversal. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 8ad37e83c8dc413f92b10c3d9bdeabe9237f521d Author: Amit Shah Date: Thu Sep 2 18:11:48 2010 +0530 virtio: console: open: Use a common path for error handling Just re-arrange code for future patches. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 7a2853178dfba9553d58f356113f47fd582e9cc6 Author: Amit Shah Date: Thu Sep 2 18:11:47 2010 +0530 virtio: console: remove_port() should return void When a port is removed, we have to assume the port is gone. So a success/failure return value doesn't make sense. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit f4028119714e452f9b49377ec55e0ed1e5d1dfa4 Author: Amit Shah Date: Thu Sep 2 18:11:46 2010 +0530 virtio: console: Make write() return -ENODEV on hot-unplug When a port is hot-unplugged while an app was blocked on a write() call, the call was unblocked but would not get an error returned. Return -ENODEV to ensure the app knows the port has gone away. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit b3dddb9e6ddab74327f5557c1a6640ea0f56ad1c Author: Amit Shah Date: Thu Sep 2 18:11:45 2010 +0530 virtio: console: Make read() return -ENODEV on hot-unplug When a port is hot-unplugged while an app was blocked on a read() call, the call was unblocked but would not get an error returned. Return -ENODEV to ensure the app knows the port has gone away. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 8529a504273d4efa6bb004dcd6ef28fe67b64ae9 Author: Amit Shah Date: Thu Sep 2 18:11:44 2010 +0530 virtio: console: Unblock poll on port hot-unplug When a port is hot-unplugged while an app is blocked on poll(), unblock the poll() and return. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 3709ea7ae7d698b428576c2db0bbb6e08a18cf12 Author: Amit Shah Date: Thu Sep 2 18:11:43 2010 +0530 virtio: console: Un-block reads on chardev close If a chardev is closed, any blocked read / poll calls should just return and not attempt to use other state. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 84ec06c59a14d0941dd58ca6793b24a7e86b3b85 Author: Amit Shah Date: Thu Sep 2 18:11:42 2010 +0530 virtio: console: Check if portdev is valid in send_control_msg() A portdev may have been hot-unplugged while a port was open()ed. Skip sending control messages when the portdev isn't valid. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 96eb872b2a041b1536ccc6ae2fa87eb28f6e2bb2 Author: Amit Shah Date: Thu Sep 2 18:11:41 2010 +0530 virtio: console: Remove control vq data only if using multiport support If a portdev isn't using multiport support, it won't have any control vq data to remove. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 02238959944ce031f066f21e541a14933aca6575 Author: Amit Shah Date: Thu Sep 2 18:11:40 2010 +0530 virtio: console: Reset vdev before removing device The virtqueues should be disabled before attempting to remove the device. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit f0d3d9894e43fc68d47948e2c6f03e32da88b799 Author: Stephen Rothwell Date: Wed Oct 20 16:08:00 2010 +1100 selinux: include vmalloc.h for vmalloc_user Include vmalloc.h for vmalloc_user (fixes ppc build warning). Acked-by: Eric Paris Signed-off-by: James Morris commit ff660c80d00b52287f1f67ee6c115dc0057bcdde Author: Eric Paris Date: Tue Oct 19 18:17:32 2010 -0400 secmark: fix config problem when CONFIG_NF_CONNTRACK_SECMARK is not set When CONFIG_NF_CONNTRACK_SECMARK is not set we accidentally attempt to use the secmark fielf of struct nf_conn. Problem is when that config isn't set the field doesn't exist. whoops. Wrap the incorrect usage in the config. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 845ca30fe9691f1bab7cfbf30b6d11c944eb4abd Author: Eric Paris Date: Wed Oct 13 17:50:31 2010 -0400 selinux: implement mmap on /selinux/policy /selinux/policy allows a user to copy the policy back out of the kernel. This patch allows userspace to actually mmap that file and use it directly. Signed-off-by: Eric Paris Signed-off-by: James Morris commit cee74f47a6baba0ac457e87687fdcf0abd599f0a Author: Eric Paris Date: Wed Oct 13 17:50:25 2010 -0400 SELinux: allow userspace to read policy back out of the kernel There is interest in being able to see what the actual policy is that was loaded into the kernel. The patch creates a new selinuxfs file /selinux/policy which can be read by userspace. The actual policy that is loaded into the kernel will be written back out to userspace. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 00d85c83ac52e2c1a66397f1abc589f80c543425 Author: Eric Paris Date: Wed Oct 13 17:50:19 2010 -0400 SELinux: drop useless (and incorrect) AVTAB_MAX_SIZE AVTAB_MAX_SIZE was a define which was supposed to be used in userspace to define a maximally sized avtab when userspace wasn't sure how big of a table it needed. It doesn't make sense in the kernel since we always know our table sizes. The only place it is used we have a more appropiately named define called AVTAB_MAX_HASH_BUCKETS, use that instead. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 4419aae1f4f380a3fba0f4f12ffbbbdf3f267c51 Author: Eric Paris Date: Wed Oct 13 17:50:14 2010 -0400 SELinux: deterministic ordering of range transition rules Range transition rules are placed in the hash table in an (almost) arbitrary order. This patch inserts them in a fixed order to make policy retrival more predictable. Signed-off-by: Eric Paris Signed-off-by: James Morris commit b28efd54d9d5c8005a29cd8782335beb9daaa32d Author: Eric Paris Date: Wed Oct 13 17:50:08 2010 -0400 kernel: roundup should only reference arguments once Currently the roundup macro references it's arguments more than one time. This patch changes it so it will only use its arguments once. Suggested-by: Andrew Morton Signed-off-by: Eric Paris Signed-off-by: James Morris commit 686a0f3d71203bbfcc186900bbb8ac2cfc3d803c Author: Eric Paris Date: Wed Oct 13 17:50:02 2010 -0400 kernel: rounddown helper function The roundup() helper function will round a given value up to a multiple of another given value. aka roundup(11, 7) would give 14 = 7 * 2. This new function does the opposite. It will round a given number down to the nearest multiple of the second number: rounddown(11, 7) would give 7. I need this in some future SELinux code and can carry the macro myself, but figured I would put it in the core kernel so others might find and use it if need be. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 1ae4de0cdf855305765592647025bde55e85e451 Author: Eric Paris Date: Wed Oct 13 16:25:00 2010 -0400 secmark: export secctx, drop secmark in procfs The current secmark code exports a secmark= field which just indicates if there is special labeling on a packet or not. We drop this field as it isn't particularly useful and instead export a new field secctx= which is the actual human readable text label. Signed-off-by: Eric Paris Acked-by: Patrick McHardy Signed-off-by: James Morris commit 1cc63249adfa957b34ca51effdee90ff8261d63f Author: Eric Paris Date: Wed Oct 13 16:24:54 2010 -0400 conntrack: export lsm context rather than internal secid via netlink The conntrack code can export the internal secid to userspace. These are dynamic, can change on lsm changes, and have no meaning in userspace. We should instead be sending lsm contexts to userspace instead. This patch sends the secctx (rather than secid) to userspace over the netlink socket. We use a new field CTA_SECCTX and stop using the the old CTA_SECMARK field since it did not send particularly useful information. Signed-off-by: Eric Paris Reviewed-by: Paul Moore Acked-by: Patrick McHardy Signed-off-by: James Morris commit d5630b9d276bd389299ffea620b7c340ab19bcf5 Author: Eric Paris Date: Wed Oct 13 16:24:48 2010 -0400 security: secid_to_secctx returns len when data is NULL With the (long ago) interface change to have the secid_to_secctx functions do the string allocation instead of having the caller do the allocation we lost the ability to query the security server for the length of the upcoming string. The SECMARK code would like to allocate a netlink skb with enough length to hold the string but it is just too unclean to do the string allocation twice or to do the allocation the first time and hold onto the string and slen. This patch adds the ability to call security_secid_to_secctx() with a NULL data pointer and it will just set the slen pointer. Signed-off-by: Eric Paris Reviewed-by: Paul Moore Signed-off-by: James Morris commit 2606fd1fa5710205b23ee859563502aa18362447 Author: Eric Paris Date: Wed Oct 13 16:24:41 2010 -0400 secmark: make secmark object handling generic Right now secmark has lots of direct selinux calls. Use all LSM calls and remove all SELinux specific knowledge. The only SELinux specific knowledge we leave is the mode. The only point is to make sure that other LSMs at least test this generic code before they assume it works. (They may also have to make changes if they do not represent labels as strings) Signed-off-by: Eric Paris Acked-by: Paul Moore Acked-by: Patrick McHardy Signed-off-by: James Morris commit 15714f7b58011cf3948cab2988abea560240c74f Author: Eric Paris Date: Tue Oct 12 11:40:08 2010 -0400 secmark: do not return early if there was no error Commit 4a5a5c73 attempted to pass decent error messages back to userspace for netfilter errors. In xt_SECMARK.c however the patch screwed up and returned on 0 (aka no error) early and didn't finish setting up secmark. This results in a kernel BUG if you use SECMARK. Signed-off-by: Eric Paris Acked-by: Paul Moore Signed-off-by: James Morris commit 3ed02ada2a5e695e2fbb5e4a0008cfcb0f50feaa Author: John Johansen Date: Sat Oct 9 00:47:53 2010 -0700 AppArmor: Ensure the size of the copy is < the buffer allocated to hold it Actually I think in this case the appropriate thing to do is to BUG as there is currently a case (remove) where the alloc_size needs to be larger than the copy_size, and if copy_size is ever greater than alloc_size there is a mistake in the caller code. Signed-off-by: John Johansen Acked-by: Kees Cook Signed-off-by: James Morris commit 9f1c1d426b0402b25cd0d7ca719ffc8e20e46d5f Author: Tetsuo Handa Date: Fri Oct 8 14:43:22 2010 +0900 TOMOYO: Print URL information before panic(). Configuration files for TOMOYO 2.3 are not compatible with TOMOYO 2.2. But current panic() message is too unfriendly and is confusing users. Signed-off-by: Tetsuo Handa Reviewed-by: KOSAKI Motohiro Signed-off-by: James Morris commit b0ae19811375031ae3b3fecc65b702a9c6e5cc28 Author: KOSAKI Motohiro Date: Fri Oct 15 04:21:18 2010 +0900 security: remove unused parameter from security_task_setscheduler() All security modules shouldn't change sched_param parameter of security_task_setscheduler(). This is not only meaningless, but also make a harmful result if caller pass a static variable. This patch remove policy and sched_param parameter from security_task_setscheduler() becuase none of security module is using it. Cc: James Morris Signed-off-by: KOSAKI Motohiro Signed-off-by: James Morris commit 9b3056cca09529d34af2d81305b2a9c6b622ca1b Author: Dmitry Torokhov Date: Fri Oct 1 14:16:39 2010 -0700 tpm: change 'tpm_suspend_pcr' to be module parameter Fix the following warning: drivers/char/tpm/tpm.c:1085: warning: `tpm_suspend_setup' defined but not used and make the workaround operable in case when TPM is compiled as a module. As a side-effect the option will be called tpm.suspend_pcr. Signed-off-by: Dmitry Torokhov Cc: Rajiv Andrade Cc: David Safford Cc: James Morris Cc: Debora Velarde Signed-off-by: Andrew Morton Signed-off-by: James Morris commit 36f7f28416c97dbb725154930066d115b4447e17 Author: KaiGai Kohei Date: Thu Sep 30 11:49:55 2010 +0900 selinux: fix up style problem on /selinux/status This patch fixes up coding-style problem at this commit: 4f27a7d49789b04404eca26ccde5f527231d01d5 selinux: fast status update interface (/selinux/status) Signed-off-by: KaiGai Kohei Signed-off-by: James Morris commit 8b0c543e5cb1e47a54d3ea791b8a03b9c8a715db Author: matt mooney Date: Wed Sep 22 23:50:06 2010 -0700 selinux: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Signed-off-by: James Morris commit 60272da0341e9eaa136e1dc072bfef72c995d851 Author: Paul Gortmaker Date: Wed Sep 15 20:14:53 2010 -0400 selinux: really fix dependency causing parallel compile failure. While the previous change to the selinux Makefile reduced the window significantly for this failure, it is still possible to see a compile failure where cpp starts processing selinux files before the auto generated flask.h file is completed. This is easily reproduced by adding the following temporary change to expose the issue everytime: - cmd_flask = scripts/selinux/genheaders/genheaders ... + cmd_flask = sleep 30 ; scripts/selinux/genheaders/genheaders ... This failure happens because the creation of the object files in the ss subdir also depends on flask.h. So simply incorporate them into the parent Makefile, as the ss/Makefile really doesn't do anything unique. With this change, compiling of all selinux files is dependent on completion of the header file generation, and this test case with the "sleep 30" now confirms it is functioning as expected. Signed-off-by: Paul Gortmaker Signed-off-by: James Morris commit ceba72a68d17ee36ef24a71b80dde39ee934ece8 Author: Paul Gortmaker Date: Mon Aug 9 17:34:25 2010 -0400 selinux: fix parallel compile error Selinux has an autogenerated file, "flask.h" which is included by two other selinux files. The current makefile has a single dependency on the first object file in the selinux-y list, assuming that will get flask.h generated before anyone looks for it, but that assumption breaks down in a "make -jN" situation and you get: selinux/selinuxfs.c:35: fatal error: flask.h: No such file or directory compilation terminated. remake[9]: *** [security/selinux/selinuxfs.o] Error 1 Since flask.h is included by security.h which in turn is included nearly everywhere, make the dependency apply to all of the selinux-y list of objs. Signed-off-by: Paul Gortmaker Signed-off-by: James Morris commit 119041672592d1890d89dd8f194bd0919d801dc8 Author: KaiGai Kohei Date: Tue Sep 14 18:28:39 2010 +0900 selinux: fast status update interface (/selinux/status) This patch provides a new /selinux/status entry which allows applications read-only mmap(2). This region reflects selinux_kernel_status structure in kernel space. struct selinux_kernel_status { u32 length; /* length of this structure */ u32 sequence; /* sequence number of seqlock logic */ u32 enforcing; /* current setting of enforcing mode */ u32 policyload; /* times of policy reloaded */ u32 deny_unknown; /* current setting of deny_unknown */ }; When userspace object manager caches access control decisions provided by SELinux, it needs to invalidate the cache on policy reload and setenforce to keep consistency. However, the applications need to check the kernel state for each accesses on userspace avc, or launch a background worker process. In heuristic, frequency of invalidation is much less than frequency of making access control decision, so it is annoying to invoke a system call to check we don't need to invalidate the userspace cache. If we can use a background worker thread, it allows to receive invalidation messages from the kernel. But it requires us an invasive coding toward the base application in some cases; E.g, when we provide a feature performing with SELinux as a plugin module, it is unwelcome manner to launch its own worker thread from the module. If we could map /selinux/status to process memory space, application can know updates of selinux status; policy reload or setenforce. A typical application checks selinux_kernel_status::sequence when it tries to reference userspace avc. If it was changed from the last time when it checked userspace avc, it means something was updated in the kernel space. Then, the application can reset userspace avc or update current enforcing mode, without any system call invocations. This sequence number is updated according to the seqlock logic, so we need to wait for a while if it is odd number. Signed-off-by: KaiGai Kohei Acked-by: Eric Paris -- security/selinux/include/security.h | 21 ++++++ security/selinux/selinuxfs.c | 56 +++++++++++++++ security/selinux/ss/Makefile | 2 +- security/selinux/ss/services.c | 3 + security/selinux/ss/status.c | 129 +++++++++++++++++++++++++++++++++++ 5 files changed, 210 insertions(+), 1 deletions(-) Signed-off-by: James Morris commit 4b04a7cfc5ccb573ca3752429c81d37f8dd2f7c6 Author: Yong Zhang Date: Sat Aug 28 10:25:09 2010 +0800 .gitignore: ignore apparmor/rlim_names.h Signed-off-by: Yong Zhang Signed-off-by: John Johansen Signed-off-by: James Morris commit 065d78a0603cc6f8d288e96dbf761b96984b634f Author: Tetsuo Handa Date: Sat Aug 28 14:58:44 2010 +0900 LSM: Fix security_module_enable() error. We can set default LSM module to DAC (which means "enable no LSM module"). If default LSM module was set to DAC, security_module_enable() must return 0 unless overridden via boot time parameter. Signed-off-by: Tetsuo Handa Acked-by: Serge E. Hallyn Signed-off-by: James Morris commit daa6d83a2863c28197b0c7dabfdf1e0606760b78 Author: Eric Paris Date: Tue Aug 3 15:26:05 2010 -0400 selinux: type_bounds_sanity_check has a meaningless variable declaration type is not used at all, stop declaring and assigning it. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit 68eda8f59081c74a51d037cc29893bd7c9b3c2d8 Author: Dan Carpenter Date: Sun Aug 8 00:17:51 2010 +0200 tomoyo: cleanup. don't store bogus pointer If domain is NULL then &domain->list is a bogus address. Let's leave head->r.domain NULL instead of saving an unusable pointer. This is just a cleanup. The current code always checks head->r.eof before dereferencing head->r.domain. Signed-off-by: Dan Carpenter Acked-by: Tetsuo Handa commit 66f2b061546974b96b7b238a92ce89a87ecf0754 Author: FUJITA Tomonori Date: Wed Oct 20 15:55:35 2010 -0700 x86, mm: Enable ARCH_DMA_ADDR_T_64BIT with X86_64 || HIGHMEM64G Set CONFIG_ARCH_DMA_ADDR_T_64BIT when we set dma_addr_t to 64 bits in ; this allows Kconfig decisions based on this property. Signed-off-by: FUJITA Tomonori LKML-Reference: <201010202255.o9KMtZXu009370@imap1.linux-foundation.org> Acked-by: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: H. Peter Anvin commit efa4c1206eaff047c474af2136748a58eb8cc33b Author: Sage Weil Date: Mon Oct 18 14:04:31 2010 -0700 ceph: do not carry i_lock for readdir from dcache We were taking dcache_lock inside of i_lock, which introduces a dependency not found elsewhere in the kernel, complicationg the vfs locking scalability work. Since we don't actually need it here anyway, remove it. We only need i_lock to test for the I_COMPLETE flag, so be careful to do so without dcache_lock held. Signed-off-by: Sage Weil commit 61413c2f594e6b63db2b14c70c2e7d8cf02f9c00 Author: Julia Lawall Date: Sun Oct 17 21:55:21 2010 +0200 fs/ceph/xattr.c: Use kmemdup Convert a sequence of kmalloc and memcpy to use kmemdup. The semantic patch that performs this transformation is: (http://coccinelle.lip6.fr/) // @@ expression a,flag,len; expression arg,e1,e2; statement S; @@ a = - \(kmalloc\|kzalloc\)(len,flag) + kmemdup(arg,len,flag) <... when != a if (a == NULL || ...) S ...> - memcpy(a,arg,len+1); // Signed-off-by: Julia Lawall Signed-off-by: Sage Weil commit 85b5aaa624aac568b8a3a88dbe4de6628c7cc527 Author: Dan Carpenter Date: Mon Oct 11 21:15:11 2010 +0200 rbd: passing wrong variable to bvec_kunmap_irq() We should be passing "buf" here insead of "bv". This is tricky because it's not the same as kmap() and kunmap(). GCC does warn about it if you compile on i386 with CONFIG_HIGHMEM. Signed-off-by: Dan Carpenter Signed-off-by: Sage Weil commit b8d0638a98aa4a42ff322234b882487cd74e5c52 Author: Dan Carpenter Date: Mon Oct 11 21:14:23 2010 +0200 rbd: null vs ERR_PTR ceph_alloc_page_vector() returns ERR_PTR(-ENOMEM) on errors. Signed-off-by: Dan Carpenter Signed-off-by: Sage Weil commit 240634e9b3a8ae2a9e2b7effeea3b9a5b30d68fb Author: Sage Weil Date: Tue Oct 5 12:03:23 2010 -0700 ceph: fix num_pages_free accounting in pagelist Decrement the free page counter when removing a page from the free_list. Signed-off-by: Sage Weil commit 571dba52a34015a5a7aa5d480a86936878444a6f Author: Greg Farnum Date: Fri Sep 24 14:56:40 2010 -0700 ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl. Signed-off-by: Sage Weil commit 010e3b48fca57920557d2b80b83f8b2899fb5d1e Author: Yehuda Sadeh Date: Thu Sep 30 11:58:31 2010 -0700 ceph: don't crash when passed bad mount options This only happened when parse_extra_token was not passed to ceph_parse_option() (hence, only happened in rbd). Signed-off-by: Yehuda Sadeh commit 6f453ed6c07dbed83b368269c9c0fb170866ee71 Author: Randy Dunlap Date: Tue Sep 28 09:53:10 2010 -0700 ceph: fix debugfs warnings Include "super.h" outside of CONFIG_DEBUG_FS to eliminate a compiler warning: fs/ceph/debugfs.c:266: warning: 'struct ceph_fs_client' declared inside parameter list fs/ceph/debugfs.c:266: warning: its scope is only this definition or declaration, which is probably not what you want fs/ceph/debugfs.c:271: warning: 'struct ceph_fs_client' declared inside parameter list Signed-off-by: Randy Dunlap Signed-off-by: Yehuda Sadeh commit f4cf3deef4c474381e8fee2e6099d49edd9105cb Author: Yehuda Sadeh Date: Mon Sep 27 10:51:53 2010 -0700 block: rbd: removing unnecessary test rbd_get_segment() can't return a negative value, we don't need to check the return output. Signed-off-by: Yehuda Sadeh commit 28f259b7cd78eb29d38b7ae6b475d656e08fd348 Author: Vasiliy Kulikov Date: Sun Sep 26 12:59:37 2010 +0400 block: rbd: fixed may leaks rbd_client_create() doesn't free rbdc, this leads to many leaks. seg_len in rbd_do_op() is unsigned, so (seg_len < 0) makes no sense. Also if fixed check fails then seg_name is leaked. Signed-off-by: Vasiliy Kulikov Signed-off-by: Yehuda Sadeh commit 496e59553c51ce18acc836de070106b583926b87 Author: Sage Weil Date: Wed Sep 22 19:57:10 2010 -0700 ceph: switch from BKL to lock_flocks() Switch from using the BKL explicitly to the new lock_flocks() interface. Eventually this will turn into a spinlock. Signed-off-by: Sage Weil commit fca4451acfdcf894154e4809529ca28a09db88ff Author: Greg Farnum Date: Fri Sep 17 10:24:02 2010 -0700 ceph: preallocate flock state without locks held When the lock_kernel() turns into lock_flocks() and a spinlock, we won't be able to do allocations with the lock held. Preallocate space without the lock, and retry if the lock state changes out from underneath us. Signed-off-by: Greg Farnum Signed-off-by: Sage Weil commit ac0b74d8a1ced8ea86147467daf06b15b130dd94 Author: Greg Farnum Date: Fri Sep 17 10:10:55 2010 -0700 ceph: add pagelist_reserve, pagelist_truncate, pagelist_set_cursor These facilitate preallocation of pages so that we can encode into the pagelist in an atomic context. Signed-off-by: Greg Farnum Signed-off-by: Sage Weil commit 18a38193efcaac1fb3c94ad8fa04bb117850a3c2 Author: Sage Weil Date: Fri Sep 17 10:46:44 2010 -0700 ceph: use mapping->nrpages to determine if mapping is empty This is simpler and faster. Signed-off-by: Sage Weil commit 93afd449aa3c0430ef409c13e1cb2b3f0458fc10 Author: Sage Weil Date: Fri Sep 17 08:38:25 2010 -0700 ceph: only invalidate on check_caps if we actually have pages The i_rdcache_gen value only implies we MAY have cached pages; actually check the mapping to see if it's worth bothering with an invalidate. Signed-off-by: Sage Weil commit 4c32f5dda5ffe23687a55da1538b7cc426710d1a Author: Sage Weil Date: Tue Aug 24 16:27:36 2010 -0700 ceph: do not hide .snap in root directory Snaps in the root directory are now supported by the MDS, and harmless on older versions. Signed-off-by: Sage Weil commit 602adf400201636e95c3fed9f31fba54a3d7e844 Author: Yehuda Sadeh Date: Thu Aug 12 16:11:25 2010 -0700 rbd: introduce rados block device (rbd), based on libceph The rados block device (rbd), based on osdblk, creates a block device that is backed by objects stored in the Ceph distributed object storage cluster. Each device consists of a single metadata object and data striped over many data objects. The rbd driver supports read-only snapshots. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 3d14c5d2b6e15c21d8e5467dc62d33127c23a644 Author: Yehuda Sadeh Date: Tue Apr 6 15:14:15 2010 -0700 ceph: factor out libceph from Ceph file system This factors out protocol and low-level storage parts of ceph into a separate libceph module living in net/ceph and include/linux/ceph. This is mostly a matter of moving files around. However, a few key pieces of the interface change as well: - ceph_client becomes ceph_fs_client and ceph_client, where the latter captures the mon and osd clients, and the fs_client gets the mds client and file system specific pieces. - Mount option parsing and debugfs setup is correspondingly broken into two pieces. - The mon client gets a generic handler callback for otherwise unknown messages (mds map, in this case). - The basic supported/required feature bits can be expanded (and are by ceph_fs_client). No functional change, aside from some subtle error handling cases that got cleaned up in the refactoring process. Signed-off-by: Sage Weil commit ae1533b62b3369e6ae32338f4a77d64d0e88f676 Author: Yehuda Sadeh Date: Tue May 18 16:38:08 2010 -0700 ceph-rbd: osdc support for osd call and rollback operations This will be used for rbd snapshots administration. Signed-off-by: Yehuda Sadeh commit 68b4476b0bc13fef18266b4140309a30e86739d2 Author: Yehuda Sadeh Date: Tue Apr 6 15:01:27 2010 -0700 ceph: messenger and osdc changes for rbd Allow the messenger to send/receive data in a bio. This is added so that we wouldn't need to copy the data into pages or some other buffer when doing IO for an rbd block device. We can now have trailing variable sized data for osd ops. Also osd ops encoding is more modular. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 3499e8a5d4dbb083324efd942e2c4fb7eb65f27c Author: Yehuda Sadeh Date: Tue Apr 6 14:51:47 2010 -0700 ceph: refactor osdc requests creation functions The osd requests creation are being decoupled from the vino parameter, allowing clients using the osd to use other arbitrary object names that are not necessarily vino based. Also, calc_raw_layout now takes a snap id. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 7669a2c95e502a77f93f27e5449fc93a00d588b6 Author: Yehuda Sadeh Date: Mon May 17 12:31:35 2010 -0700 ceph: lookup pool in osdmap by name Implement a pool lookup by name. This will be used by rbd. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 932967202182743c01a2eee4bdfa2c42697bc586 Author: Shaohua Li Date: Wed Oct 20 11:07:03 2010 +0800 x86: Spread tlb flush vector between nodes Currently flush tlb vector allocation is based on below equation: sender = smp_processor_id() % 8 This isn't optimal, CPUs from different node can have the same vector, this causes a lot of lock contention. Instead, we can assign the same vectors to CPUs from the same node, while different node has different vectors. This has below advantages: a. if there is lock contention, the lock contention is between CPUs from one node. This should be much cheaper than the contention between nodes. b. completely avoid lock contention between nodes. This especially benefits kswapd, which is the biggest user of tlb flush, since kswapd sets its affinity to specific node. In my test, this could reduce > 20% CPU overhead in extreme case.The test machine has 4 nodes and each node has 16 CPUs. I then bind each node's kswapd to the first CPU of the node. I run a workload with 4 sequential mmap file read thread. The files are empty sparse file. This workload will trigger a lot of page reclaim and tlbflush. The kswapd bind is to easy trigger the extreme tlb flush lock contention because otherwise kswapd keeps migrating between CPUs of a node and I can't get stable result. Sure in real workload, we can't always see so big tlb flush lock contention, but it's possible. [ hpa: folded in fix from Eric Dumazet to use this_cpu_read() ] Signed-off-by: Shaohua Li LKML-Reference: <1287544023.4571.8.camel@sli10-conroe.sh.intel.com> Cc: Eric Dumazet Signed-off-by: H. Peter Anvin commit c957ef2c59e952803766ddc22e89981ab534606f Author: Shaohua Li Date: Wed Oct 20 11:07:02 2010 +0800 percpu: Introduce a read-mostly percpu API Add a new readmostly percpu section and API. This can be used to avoid dirtying data lines which are generally not written to, which is especially important for data which may be accessed by processors other than the one for which the percpu area belongs to. [ hpa: moved it *after* the page-aligned section, for obvious reasons. ] Signed-off-by: Shaohua Li LKML-Reference: <1287544022.4571.7.camel@sli10-conroe.sh.intel.com> Cc: Eric Dumazet Signed-off-by: H. Peter Anvin commit b40827fa7268fda8a62490728a61c2856f33830b Author: Borislav Petkov Date: Sat Aug 28 15:58:33 2010 +0200 x86-32, mm: Add an initial page table for core bootstrapping This patch adds an initial page table with low mappings used exclusively for booting APs/resuming after ACPI suspend/machine restart. After this, there's no need to add low mappings to swapper_pg_dir and zap them later or create own swsusp PGD page solely for ACPI sleep needs - we have initial_page_table for that. Signed-off-by: Borislav Petkov LKML-Reference: <20101020070526.GA9588@liondog.tnic> Signed-off-by: H. Peter Anvin commit d25e6b0b326278a1096e8334584c3e64517057a3 Merge: e44dea3 40ffa93 Author: H. Peter Anvin Date: Wed Oct 20 14:22:45 2010 -0700 Merge branch 'x86/cleanups' into x86/trampoline commit e44dea35ccb78ab7dc3a75ccec71d7d6f35017c4 Merge: 51ea8a8 b0f4c06 Author: H. Peter Anvin Date: Wed Oct 20 13:18:17 2010 -0700 Merge branch 'x86/vmware' into x86/trampoline commit f01f7c56a1425b9749a99af821e1de334fb64d7e Author: Borislav Petkov Date: Tue Oct 19 22:17:37 2010 +0000 x86, mm: Fix incorrect data type in vmalloc_sync_all() arch/x86/mm/fault.c: In function 'vmalloc_sync_all': arch/x86/mm/fault.c:238: warning: assignment makes integer from pointer without a cast introduced by 617d34d9e5d8326ec8f188c616aa06ac59d083fe. Signed-off-by: Borislav Petkov LKML-Reference: <20101020103642.GA3135@kryptos.osrc.amd.com> Signed-off-by: H. Peter Anvin commit 2764c500be0c1f057349ee6c81557239de060f87 Author: Ilkka Koskinen Date: Tue Oct 19 17:07:31 2010 +0300 spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA In case of TX only with DMA, the driver assumes that the data has been transferred once DMA callback in invoked. However, SPI's shift register may still contain data. Thus, the driver is supposed to verify that the register is empty and the end of the SPI transfer has been reached. Signed-off-by: Ilkka Koskinen Tested-by: Tuomas Katila Acked-by: Tony Lindgren Signed-off-by: Grant Likely commit e1993ed6420afd4421336d75e73641f75da87a7f Author: Jason Wang Date: Tue Oct 19 18:03:27 2010 +0800 spi/omap2_mcspi: disable channel after TX_ONLY transfer in PIO mode In the TX_ONLY transfer, the SPI controller also receives data simultaneously and saves them in the rx register. After the TX_ONLY transfer, the rx register will hold the random data received during the last tx transaction. If the direct following transfer is RX_ONLY, this random data has the possibility to affect this transfer like this: When the SPI controller is changed from TX_ONLY to RX_ONLY, the random data makes the rx register full immediately and triggers a dummy write automatically(in SPI RX_ONLY transfers, we need a dummy write to trigger the first transaction). So the first data received in the RX_ONLY transfer will be that random data instead of something meaningful. We can avoid this by inserting a Disable/Re-enable toggle of the channel after the TX_ONLY transfer, since it purges the rx register. Signed-off-by: Jason Wang Tested-by: Grazvydas Ignotas Acked-by: Tony Lindgren Signed-off-by: Grant Likely commit 27b75c95f10d249574d9c4cb9dab878107faede8 Author: Eric Dumazet Date: Fri Oct 15 05:44:11 2010 +0000 net: avoid RCU for NOCACHE dst There is no point using RCU for dst we allocate for a very short time (used once). Change dst_release() to take DST_NOCACHE into account, but also change skb_dst_set_noref() to force a refcount increment for such dst. This is a _huge_ gain, because we dont waste memory to store xx thousand of dsts. Instead of queueing them to RCU, we can free them instantly. CPU caches can stay hot, re-using same memory blocks to hold temporary dsts. Note : remove unneeded smp_mb__before_atomic_dec(); in dst_release(), since atomic_dec_return() implies a full memory barrier. Stress test, 160.000.000 udp frames sent, IP route cache disabled (DDOS). Before: real 0m38.091s user 0m13.189s sys 7m53.018s After: real 0m29.946s user 0m12.157s sys 7m40.605s For reference, if IP route cache was enabled : real 0m32.030s user 0m10.521s sys 8m15.243s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit e6484930d7c73d324bccda7d43d131088da697b9 Author: Tom Herbert Date: Mon Oct 18 18:04:39 2010 +0000 net: allocate tx queues in register_netdevice This patch introduces netif_alloc_netdev_queues which is called from register_device instead of alloc_netdev_mq. This makes TX queue allocation symmetric with RX allocation. Also, queue locks allocation is done in netdev_init_one_queue. Change set_real_num_tx_queues to fail if requested number < 1 or greater than number of allocated queues. Signed-off-by: Tom Herbert Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit bd25fa7ba59cd26094319dfba0011b48465f7355 Author: Tom Herbert Date: Mon Oct 18 18:00:16 2010 +0000 net: cleanups in RX queue allocation Clean up in RX queue allocation. In netif_set_real_num_rx_queues return error on attempt to set zero queues, or requested number is greater than number of allocated queues. In netif_alloc_rx_queues, do BUG_ON if queue_count is zero. Signed-off-by: Tom Herbert Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 55513fb4281464e97aa1ff2b9c906ca5aed917c5 Author: Tom Herbert Date: Mon Oct 18 17:55:58 2010 +0000 net: fail alloc_netdev_mq if queue count < 1 In alloc_netdev_mq fail if requested queue_count < 1. Signed-off-by: Tom Herbert Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 5eeaa2db162f1f6d83e988d4d28f4ba7be600e44 Merge: c5e90f5 c64557d Author: David S. Miller Date: Wed Oct 20 01:59:48 2010 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit c5e90f562047ff9713183cf5e18f5e8997bc7373 Author: Changli Gao Date: Tue Oct 19 21:51:03 2010 +0000 phonet: remove the unused variable pn Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit f13d493d9cf772d510d78ae00bb9f4d680b3170b Author: Neil Horman Date: Tue Oct 19 07:04:26 2010 +0000 netpoll: Revert napi_poll fix for bonding driver In an erlier patch I modified napi_poll so that devices with IFF_MASTER polled the per_cpu list instead of the device list for napi. I did this because the bonding driver has no napi instances to poll, it instead expects to check the slave devices napi instances, which napi_poll was unaware of. Looking at this more closely however, I now see this isn't strictly needed. As the bond driver poll_controller calls the slaves poll_controller via netpoll_poll_dev, which recursively calls poll_napi on each slave, allowing those napi instances to get serviced. The earlier patch isn't at all harmfull, its just not needed, so lets revert it to make the code cleaner. Sorry for the noise, Signed-off-by: Neil Horman Reviewed-by: WANG Cong Signed-off-by: David S. Miller commit 9ff76c951c5194d44a7cdce51d807d67fc3ae514 Author: Neil Horman Date: Tue Oct 19 07:04:25 2010 +0000 netpoll: Remove netpoll blocking from uninit path Some recent testing in netpoll with bonding showed this backtrace ------------[ cut here ]------------ kernel BUG at drivers/net/bonding/bonding.h:134! invalid opcode: 0000 [#1] SMP last sysfs file: /sys/devices/pci0000:00/0000:00:1d.2/usb7/devnum CPU 0 Pid: 1876, comm: rmmod Not tainted 2.6.36-rc3+ #10 D26928/ RIP: 0010:[] [] bond_uninit+0x6f4/0x7a0 RSP: 0018:ffff88003b1b5d58 EFLAGS: 00010296 RAX: ffff88003b9b6200 RBX: ffff8800373e8e00 RCX: 00000000000f4240 RDX: 00000000ffffffff RSI: 0000000000000286 RDI: 0000000000000286 RBP: ffff88003b1b5dc8 R08: 0000000000000000 R09: 00000001af7de920 R10: 0000000000000000 R11: ffff880002495e98 R12: ffff880037922700 R13: ffff880038c31000 R14: ffff880037922730 R15: 0000000000000286 FS: 00007f90e6d72700(0000) GS:ffff880002400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 000000346f0d9ad0 CR3: 000000003b263000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process rmmod (pid: 1876, threadinfo ffff88003b1b4000, task ffff88003b36aa80) Stack: 00000000ffffffff ffff88003b1b5d7a ffff8800379221e8 ffff880037922000 <0> ffff88003b1b5dc8 ffffffff813eb5fb ffff88003b1b5da8 0000000031b177a3 <0> ffff88003b1b5da8 ffff880037922000 ffff88003b1b5e48 ffff88003b1b5e48 Call Trace: [] ? rtmsg_ifinfo+0xcb/0xf0 [] rollback_registered_many+0x168/0x280 [] unregister_netdevice_many+0x19/0x80 [] __rtnl_kill_links+0x63/0x90 [] __rtnl_link_unregister+0x2b/0x60 [] rtnl_link_unregister+0x1e/0x30 [] bonding_exit+0x37/0x51 [bonding] [] sys_delete_module+0x19e/0x270 [] ? audit_syscall_entry+0x252/0x280 [] system_call_fastpath+0x16/0x1b RIP [] bond_uninit+0x6f4/0x7a0 [bonding] RSP ---[ end trace 1395ad691cea24d1 ]--- It occurs because of my recent netpoll blocking patches, which I added to avoid recursive deadlock in the bonding driver. It relies on some per cpu bits, but the shutdown path forces some rescheduling as we cancel workqueues for the driver and wait for some device refcounts. If after the forced reschedule, we wind up on a different cpu we trigger the bughalt in unblock_netpoll_tx. The fix is to remove the netpoll block/unblock calls from bond_release_all. This is safe to do because bond_uninit, which is called via ndo_uninit in rollback_registered_many, doesn't occur until we send a NETDEV_UNREGISTER event, which triggers netconsole to remove us as a netpoll client, so we are guaranteed not to recurse into our own tx path here. Signed-off-by: Neil Horman Reviewed-by: WANG Cong Signed-off-by: David S. Miller commit 6451d7783ba5ff24eb1a544eaa6665b890f30466 Author: Nicolas Pitre Date: Thu Oct 14 22:21:46 2010 -0400 arm: remove machine_desc.io_pg_offst and .phys_io Since we're now using addruart to establish the debug mapping, we can remove the io_pg_offst and phys_io members of struct machine_desc. The various declarations were removed using the following script: grep -rl MACHINE_START arch/arm | xargs \ sed -i '/MACHINE_START/,/MACHINE_END/ { /\.\(phys_io\|io_pg_offst\)/d }' [ Initial patch was from Jeremy Kerr, example script from Russell King ] Signed-off-by: Nicolas Pitre Acked-by: Eric Miao commit c293393faa8e11a5a80a9e358718432b8697f451 Author: Jeremy Kerr Date: Wed Jul 7 11:19:48 2010 +0800 arm: use addruart macro to establish debug mappings Since we can get both physical and virtual addresses from the addruart macro, we can use this to establish the debug mappings. In the case of CONFIG_DEBUG_ICEDCC, we don't need any mappings, but may still need to setup r7 correctly. Incorporating ASM changes from Nicolas Pitre . Signed-off-by: Jeremy Kerr Tested-by: Kevin Hilman commit 0ea1293009826da45e1019f45dfde1e557bb30df Author: Jeremy Kerr Date: Tue Jul 6 18:30:06 2010 +0800 arm: return both physical and virtual addresses from addruart Rather than checking the MMU status in every instance of addruart, do it once in kernel/debug.S, and change the existing addruart macros to return both physical and virtual addresses. The main debug code can then select the appropriate address to use. This will also allow us to retreive the address of a uart for the MMU state that we're not current in. Updated with fixes for OMAP from Jason Wang and Tony Lindgren , and fix for versatile express from Lorenzo Pieralisi . Signed-off-by: Jeremy Kerr Signed-off-by: Lorenzo Pieralisi Signed-off-by: Jason Wang Signed-off-by: Tony Lindgren Tested-by: Kevin Hilman commit 1ea64615601229f0dc16dee91dc5b50216411baa Author: Jeremy Kerr Date: Wed Jul 21 10:40:50 2010 +0200 arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC We have the same (empty) macro for all IDEDCC flavours, so consolidate it to one. Signed-off-by: Jeremy Kerr commit d71e3eb5894dbb626dc7e28cfd4f33ebee9a739a Author: Nicolas Pitre Date: Thu Oct 14 22:37:52 2010 -0400 ARM: make struct machine_desc definition coherent with its comment As mentioned in the comment right at the top, the first four fields are directly accessed by assembly code in head.S. Move nr_irqs so the comment is true again. Signed-off-by: Nicolas Pitre commit 27afdf2008da0b8878a73e32e4eb12381b84e224 Author: Robert Richter Date: Wed Oct 6 12:27:54 2010 +0200 apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets We want the BIOS to setup the EILVT APIC registers. The offsets were hardcoded and BIOS settings were overwritten by the OS. Now, the subsystems for MCE threshold and IBS determine the LVT offset from the registers the BIOS has setup. If the BIOS setup is buggy on a family 10h system, a workaround enables IBS. If the OS determines an invalid register setup, a "[Firmware Bug]: " error message is reported. We need this change also for upcomming cpu families. Signed-off-by: Robert Richter LKML-Reference: <1286360874-1471-3-git-send-email-robert.richter@amd.com> Signed-off-by: Ingo Molnar commit a68c439b1966c91f0ef474e2bf275d6792312726 Author: Robert Richter Date: Wed Oct 6 12:27:53 2010 +0200 apic, x86: Check if EILVT APIC registers are available (AMD only) This patch implements checks for the availability of LVT entries (APIC500-530) and reserves it if used. The check becomes necessary since we want to let the BIOS provide the LVT offsets. The offsets should be determined by the subsystems using it like those for MCE threshold or IBS. On K8 only offset 0 (APIC500) and MCE interrupts are supported. Beginning with family 10h at least 4 offsets are available. Since offsets must be consistent for all cores, we keep track of the LVT offsets in software and reserve the offset for the same vector also to be used on other cores. An offset is freed by setting the entry to APIC_EILVT_MASKED. If the BIOS is right, there should be no conflicts. Otherwise a "[Firmware Bug]: ..." error message is generated. However, if software does not properly determines the offsets, it is not necessarily a BIOS bug. Signed-off-by: Robert Richter LKML-Reference: <1286360874-1471-2-git-send-email-robert.richter@amd.com> Signed-off-by: Ingo Molnar commit 14d4962dc863ab42e898d66d4837aa6c3afedc3b Merge: 9717967 2b666ca Author: Ingo Molnar Date: Wed Oct 20 04:38:56 2010 +0200 Merge branch 'linus' into irq/core Merge reason: update to almost-final-.36 Signed-off-by: Ingo Molnar commit 9c034392533f3e9f00656d5c58478cff2560ef81 Author: Rafael J. Wysocki Date: Tue Oct 19 23:42:49 2010 +0200 PM / Wakeup: Show wakeup sources statistics in debugfs There may be wakeup sources that aren't associated with any devices and their statistics information won't be available from sysfs. Also, for debugging purposes it is convenient to have all of the wakeup sources statistics available from one place. For these reasons, introduce new file "wakeup_sources" in debugfs containing those statistics. Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 3234282f33b29d349bcada40204fc7c8fda7fe72 Author: Jan Beulich Date: Tue Oct 19 14:52:26 2010 +0100 x86, asm: Fix CFI macro invocations to deal with shortcomings in gas gas prior to (perhaps) 2.16.90 has problems with passing non- parenthesized expressions containing spaces to macros. Spaces, however, get inserted by cpp between any macro expanding to a number and a subsequent + or -. For the +, current x86 gas then removes the space again (future gas may not do so), but for the - the space gets retained and is then considered a separator between macro arguments. Fix the respective definitions for both the - and + cases, so that they neither contain spaces nor make cpp insert any (the latter by adding seemingly redundant parentheses). Signed-off-by: Jan Beulich LKML-Reference: <4CBDBEBA020000780001E05A@vpn.id2.novell.com> Cc: Alexander van Heukelum Signed-off-by: H. Peter Anvin commit 809b4e00baf006a990a73329ba381d536c6fa277 Merge: a0a5568 79a94c3 Author: Russell King Date: Tue Oct 19 22:06:36 2010 +0100 Merge branch 'devel-stable' into devel commit 79a94c3538bda6869d7bb150b5e02dd3a72314dd Merge: f779b7d f1de161 Author: Russell King Date: Tue Oct 19 22:04:42 2010 +0100 Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable commit 617d34d9e5d8326ec8f188c616aa06ac59d083fe Author: Jeremy Fitzhardinge Date: Tue Sep 21 12:01:51 2010 -0700 x86, mm: Hold mm->page_table_lock while doing vmalloc_sync Take mm->page_table_lock while syncing the vmalloc region. This prevents a race with the Xen pagetable pin/unpin code, which expects that the page_table_lock is already held. If this race occurs, then Xen can see an inconsistent page type (a page can either be read/write or a pagetable page, and pin/unpin converts it between them), which will cause either the pin or the set_p[gm]d to fail; either will crash the kernel. vmalloc_sync_all() should be called rarely, so this extra use of page_table_lock should not interfere with its normal users. The mm pointer is stashed in the pgd page's index field, as that won't be otherwise used for pgds. Reported-by: Ian Campbell Originally-by: Jan Beulich LKML-Reference: <4CB88A4C.1080305@goop.org> Signed-off-by: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit 44235dcde416104b8e1db7606c283f4c0149c760 Author: Jeremy Fitzhardinge Date: Thu Oct 14 17:04:59 2010 -0700 x86, mm: Fix bogus whitespace in sync_global_pgds() Whitespace cleanup only. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit f779b7dd3259ec138c7aba793f0602b20262af83 Merge: 3c00079 fe0cdec Author: Russell King Date: Tue Oct 19 20:12:24 2010 +0100 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable Conflicts: arch/arm/mach-at91/include/mach/system.h arch/arm/mach-imx/mach-cpuimx27.c AT91 conflict resolution: Acked-by: Anders Larsen IMX conflict resolution confirmed by Uwe Kleine-König. commit 3e24e132878c83910b61eb7704511a6d96a0389f Author: Tejun Heo Date: Tue Oct 19 17:55:54 2010 +0200 cifs: cancel_delayed_work() + flush_scheduled_work() -> cancel_delayed_work_sync() flush_scheduled_work() is going away. Signed-off-by: Tejun Heo Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 89f150f401c32b0a587dcb98d3bcfafe0b9c1c70 Author: Shirish Pargaonkar Date: Tue Oct 19 11:47:52 2010 -0500 Clean up two declarations of blob_len - Eliminate double declaration of variable blob_len - Modify function build_ntlmssp_auth_blob to return error code as well as length of the blob. Signed-off-by: Shirish Pargaonkar Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 3c00079b31f910309b30ed5c2fd2b7a2d86bba60 Merge: 7f9c7e2 88b5227 Author: Russell King Date: Tue Oct 19 19:55:59 2010 +0100 Merge branch 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm into devel-stable commit 750ed158bf6c782d2813da1bca2c824365a0b777 Merge: 3f7edb1 7e40798 Author: Ingo Molnar Date: Tue Oct 19 20:41:38 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit f1de1613da54f754d5d2bbf79fcacbd5ed965537 Author: Fabio Estevam Date: Thu Oct 14 08:38:04 2010 -0700 eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free Pass the correct GPIO to gpio_free Signed-off-by: Fabio Estevam Acked-by: Eric BĂ©nard Signed-off-by: Sascha Hauer commit 4e6898a731c7060facc837f2ab2cb27205228c25 Author: Eric BĂ©nard Date: Fri Oct 8 10:37:40 2010 +0200 cpuimx27: fix compile when ULPI is selected without this patch we get : arch/arm/mach-imx/built-in.o: In function `eukrea_cpuimx27_init': eukrea_mbimx27-baseboard.c:(.init.text+0x44c): undefined reference to `mxc_ulpi_access_ops' Signed-off-by: Eric BĂ©nard Signed-off-by: Uwe Kleine-König commit c0f832bca9672831fc5bdab1a0f93f80592dac4c Author: Eric BĂ©nard Date: Fri Oct 15 01:00:01 2010 +0200 mach-pcm037_eet: fix compile errors this patch fix the following errors : arch/arm/mach-mx3/mach-pcm037_eet.c:62: error: implicit declaration of function 'MXC_SPI_CS' arch/arm/mach-mx3/mach-pcm037_eet.c:185: error: implicit declaration of function 'imx35_add_spi_imx0' from the Kconfig pcm037 is i.MX31 based and not i.MX35 so replace imx35_add_spi_imx0 by imx31_add_spi_imx0 Signed-off-by: Eric BĂ©nard [ukl: remove unneeded #include ] Signed-off-by: Uwe Kleine-König commit d24d96e05565c9bd81becba695131b0144c01707 Author: Ian Lartey Date: Thu Oct 14 12:07:33 2010 +0100 Fixing ethernet driver compilation error for i.MX31 ADS board This is only a partial revert of "ARM: mx3/mx31ads: fold board header in its only user" [commit ccfa7c269843001077df02d98918c6c9bde91395)] As some of the the board defines are also used in the cs89x0 ethernet driver by the i.MX31 ADS. Signed-off-by: Ian Lartey Signed-off-by: Sascha Hauer commit a3927416bf7f5cc9a0cfddab1e36035738bc287c Author: Eric BĂ©nard Date: Tue Oct 12 16:29:20 2010 +0200 cpuimx51: update board support add NAND, SDHC Signed-off-by: Eric BĂ©nard commit 70b1726820ba85febfd067471534a19a9902ea60 Author: Eric BĂ©nard Date: Tue Oct 12 16:12:36 2010 +0200 mx5: add cpuimx51sd module and its baseboard Signed-off-by: Eric BĂ©nard commit b545d9ed1b92f169d0326afac091328be5e76620 Author: Eric BĂ©nard Date: Tue Oct 12 14:16:16 2010 +0200 iomux-mx51: fix GPIO_1_xx 's IOMUX configuration this patch really configure the GPIO in GPIO mode. Signed-off-by: Eric BĂ©nard commit c074512905c0a08be2a91670bdd69cd1de4e2823 Author: Eric BĂ©nard Date: Tue Oct 12 13:12:32 2010 +0200 imx-esdhc: update devices registration Tested on i.MX25 and i.MX35 and i.MX51 Signed-off-by: Eric BĂ©nard commit 6a001b886c8c4ff7477a3692a2d87a9dbdd860ee Author: Eric BĂ©nard Date: Mon Oct 11 17:59:47 2010 +0200 mx51: add resources for SD/MMC on i.MX51 the attached patch allows SD to work on i.MX51 with Wolfram's drivers Tested on i.MX51. Based on original patch from: Richard Zhu Signed-off-by: Eric BĂ©nard commit 217f580ba643eff91bac04a474a7db6d40863d5b Author: Eric BĂ©nard Date: Tue Oct 12 12:29:37 2010 +0200 iomux-mx51: fix SD1 and SD2's iomux configuration Based on original patch from: Richard Zhu Signed-off-by: Eric BĂ©nard commit 7e5a747113cabb71ec855411bb7666e8963a75b7 Author: Eric BĂ©nard Date: Tue Oct 12 12:26:32 2010 +0200 clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability Signed-off-by: Eric BĂ©nard commit 0076232d54b3fb2908c7fcf19bf699c4e8376213 Author: Eric BĂ©nard Date: Mon Oct 11 21:55:24 2010 +0200 clock-mx51: factorize clk_set_parent and clk_get_rate Signed-off-by: Eric BĂ©nard commit c0550c4bf1a6b868ac98b63f88ffd1a7ebdbeaeb Author: Eric BĂ©nard Date: Fri Oct 8 10:56:10 2010 +0200 eukrea_mbimxsd: add support for DVI displays Signed-off-by: Eric BĂ©nard commit 52d084fc90f754a7aed7e7d6e1484be45454aba3 Author: Eric BĂ©nard Date: Tue Oct 5 18:02:30 2010 +0200 cpuimx25 & cpuimx35: fix OTG port registration in host mode the PHY is UTMI so don't create an ULPI viewpoint. Signed-off-by: Eric BĂ©nard commit 4a66b5d980a244c403c3f6cb42c762ef5c112956 Author: Eric BĂ©nard Date: Tue Oct 5 11:20:21 2010 +0200 i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472 Without this exiting WFI can result in cache corruption. Code taken from Freescale's 2.6.27 BSP and tested on i.MX35 Signed-off-by: Eric BĂ©nard commit ec4aac206b65d9764d601a7ee433e161878623b9 Author: Eric BĂ©nard Date: Tue Oct 12 14:08:42 2010 +0200 mx25: fix compile error in platform-imx-dma.c this patch fix the following errors : arch/arm/plat-mxc/devices/platform-imx-dma.c:44: error: ‘MX25_SDMA_BASE_ADDR’ undeclared here (not in a function) arch/arm/plat-mxc/devices/platform-imx-dma.c:44: error: ‘MX25_INT_SDMA’ undeclared here (not in a function) Signed-off-by: Eric BĂ©nard Acked-by: Uwe Kleine-König commit e482b3bee66d627356904746c217f8f1bf891e60 Author: Eric BĂ©nard Date: Tue Oct 12 19:26:34 2010 +0200 mx25: fix clock's calculation * get_rate_arm : when 400MHz clock is selected (cctl & 1<<14), ARM clock is 400MHz (MPLL * 3 / 4) and not 800MHz * get_rate_per : peripherals's clock is derived from AHB and not from IPG (ref manual : figure 5-1) * can2_clk : use the correct ID * without this patch, peripherals getting their clock from PER clocks work fine because of the 2 errors which fix themselves (ARM clock x 2 and per clock actually based on IPG which is AHB/2) but flexcan can't work as it gets its clock from IPG and thus calculates its bitrate using a reference value which is twice what it really is. Signed-off-by: Eric BĂ©nard commit 6136a6ddc9db50d909344bb7e6f45dbe631f2e29 Author: Marc Kleine-Budde Date: Wed Oct 13 10:00:10 2010 +0200 ARM: imx: add lost 3rd imx-i2c device for mx35 During the reorganisation of the imx-i2c devices (in 64de5ec168d9743903e6ec482c3e9f37af49f9c1) the 3rd imx-i2c device for the mx35 got lost. This patch adds the missing device. Signed-off-by: Marc Kleine-Budde Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 68a2f7301ae3a97bf7b1713d20de7618c9b9a5f5 Author: Dinh Nguyen Date: Tue Oct 12 11:29:01 2010 -0500 ARM: imx: Add iram allocator functions Add IRAM(Internal RAM) allocation functions using GENERIC_ALLOCATOR. The allocation size is 4KB multiples to guarantee alignment. The idea for these functions is for i.MX platforms to use them to dynamically allocate IRAM usage. Applies on 2.6.36-rc7 Signed-off-by: Dinh Nguyen Reviewed-by: Amit Kucheria Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0683e31ad5d9b4cab3cc32d033269e8cf675823a Author: Dmitry Kravkov Date: Tue Oct 19 05:13:00 2010 +0000 bnx2x: update version to 1.60.00-3 Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit f4a66897e77277335ae98ffeb1f4ebb9cf24ed6d Author: Vladislav Zolotarov Date: Tue Oct 19 05:13:09 2010 +0000 bnx2x: prevent false parity error in MSI-X memory of HC block Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit a0fd065cd5d8f758b27c13cafabbbcf59d1eb8ec Author: Dmitry Kravkov Date: Tue Oct 19 05:13:05 2010 +0000 bnx2x: fix possible deadlock in HC hw block The possible deadlock (on 57710 devices only) will prevent from the device to generate interrupts. Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit d86bef73b4a24e59e7c1f896a72bbf38430ac2c6 Author: Eduardo Blanco Date: Tue Oct 19 10:26:47 2010 +0100 Fixed race condition at ip_vs.ko module init. Lists were initialized after the module was registered. Multiple ipvsadm processes at module load triggered a race condition that resulted in a null pointer dereference in do_ip_vs_get_ctl(). As a result, __ip_vs_mutex was left locked preventing all further ipvsadm commands. Signed-off-by: Eduardo J. Blanco Signed-off-by: Simon Horman commit 7e40798f406fe73f9bac496a390daabd8768a8f7 Author: Steven Rostedt Date: Tue Oct 19 10:56:19 2010 -0400 tracing: Fix compile issue for trace_sched_wakeup.c The function start_func_tracer() was incorrectly added in the #ifdef CONFIG_FUNCTION_TRACER condition, but is still used even when function tracing is not enabled. The calls to register_ftrace_function() and register_ftrace_graph() become nops (and their arguments are even ignored), thus there is no reason to hide start_func_tracer() when function tracing is not enabled. Reported-by: Ingo Molnar Signed-off-by: Steven Rostedt commit 5fc01ab6934c43b42c41bc753fe1123c16d7f38f Author: Artem Bityutskiy Date: Fri Sep 3 23:08:15 2010 +0300 UBI: preserve corrupted PEBs Currently UBI erases all corrupted eraseblocks, irrespectively of the nature of corruption: corruption due to power cuts and non-power cut corruption. The former case is OK, but the latter is not, because UBI may destroy potentially important data. With this patch, during scanning, when UBI hits a PEB with corrupted VID header, it checks whether this PEB contains only 0xFF data. If yes, it is safe to erase this PEB and it is put to the 'erase' list. If not, this may be important data and it is better to avoid erasing this PEB. Instead, UBI puts it to the corr list and moves out of the pool of available PEB. IOW, UBI preserves this PEB. Such corrupted PEB lessen the amount of available PEBs. So the more of them we accumulate, the less PEBs are available. The maximum amount of non-power cut corrupted PEBs is 8. This patch is a response to UBIFS problem where reporter (Matthew L. Creech ) observes that UBIFS index points to an unmapped LEB. The theory is that corresponding PEB somehow got corrupted and UBI wiped it. This patch (actually a series of patches) tries to make sure such PEBs are preserved - this would make it is easier to analyze the corruption. Signed-off-by: Artem Bityutskiy commit feeba4b872e5166ca64c44fbb5bbec234dfce199 Author: Artem Bityutskiy Date: Fri Sep 3 22:50:53 2010 +0300 UBI: add truly corrupted PEBs to corrupted list Start using the 'corr' list and add there PEBs which look truly corrupted, which means they have corrupted VID header and the data which follows the corrupted header does not contain all 0xFF bytes. At the moment, this does not change UBI functionality much because these PEBs will be erase when scanning finishes. But the plan is to teach UBI preserving them. Signed-off-by: Artem Bityutskiy commit 315324947cbc7264af86b7ecdc2d5fb5f8556222 Author: Artem Bityutskiy Date: Fri Sep 3 22:27:46 2010 +0300 UBI: introduce debugging helper function Introduce a helper function to print hexdump: 'ubi_dbg_print_hex_dump()'. It is compiled out if debugging is enabled. Will be used in the next patch. Signed-off-by: Artem Bityutskiy commit bb00e180a93a6c8e89c3b2d1f9473781e1e2d2a4 Author: Artem Bityutskiy Date: Sat Jul 31 09:37:34 2010 +0300 UBI: make check_pattern function non-static This patch turns static function 'check_pattern()' into a non-static 'ubi_check_pattern()'. This is just a preparation for the chages which are coming in the next patches. Signed-off-by: Artem Bityutskiy commit 0525dac9fd31e5a12fb934238abd09e2752a5967 Author: Artem Bityutskiy Date: Fri Sep 3 17:11:37 2010 +0300 UBI: do not put eraseblocks to the corrupted list unnecessarily Currently UBI maintains 2 lists of PEBs during scanning: 1. 'erase' list - PEBs which have no corruptions but should be erased 2. 'corr' list - PEBs which have some corruptions and should be erased But we do not really need 2 lists for PEBs which should be erased after scanning is done - this is redundant. So this patch makes sure all PEBs which are corrupted are moved to the head of the 'erase' list. We add them to the head to make sure they are erased first and we get rid of corruption ASAP. However, we do not remove the 'corr' list and realted functions, because the plan is to use this list for other purposes. Namely, we plan to put eraseblocks with corruption which does not look like it was caused by unclean power cut. Then we'll preserve thes PEBs in order to avoid killing potentially valuable user data. This patch also amends PEBs accounting, because it was closely tight to the 'erase'/'corr' lists separation. Signed-off-by: Artem Bityutskiy commit 3fb34124da9d5e37576d9f87d7a5005ba1d82dd7 Author: Artem Bityutskiy Date: Fri Sep 3 15:36:12 2010 +0300 UBI: separate out corrupted list This patch introduces 'add_corrupted()' function and separates out 'corr' list manipulation from the common 'add_to_list()' function. This is just a preparation for further changes - this patch does not change functionality. Signed-off-by: Artem Bityutskiy commit b33215084c1c06258a2d9deb035d343aafa4066e Author: Artem Bityutskiy Date: Fri Sep 3 14:40:55 2010 +0300 UBI: change cascade of ifs to switch statements This patch improves readability and simplifies scanning code by changing a long cascade of 'if' statements to a switch statement. This should presumably be a little faster as well. Signed-off-by: Artem Bityutskiy commit e0e718c281ce1dd4006681e1255535cc6f2857d4 Author: Artem Bityutskiy Date: Fri Sep 3 14:53:23 2010 +0300 UBI: rename a local variable Rename local variable 'ec_corr' into 'ec_err' to make the code a little bit more readable. 'ec_err' is more appropriate because it sounds more like 'error when EC was read' and it looks more logical because we use it together with 'err'. Just a minor nicification which should improve the rather complex scanning code. Signed-off-by: Artem Bityutskiy commit 92e1a7d9e7e07fb1cf0cbbcdf202938d0819b54d Author: Artem Bityutskiy Date: Fri Sep 3 14:22:17 2010 +0300 UBI: handle bit-flips when no header found Currently UBI has one small flaw - when we read EC or VID header, but find only 0xFF bytes, we return UBI_IO_FF and do not report whether we had bit-flips or not. In case of the VID header, the scanning code adds this PEB to the free list, even though there were bit-flips. Imagine the following situation: we start writing VID header to a PEB and have a power cut, so the PEB becomes unstable. When we scan and read the PEB, we get a bit-flip. Currently, UBI would just ignore this and treat the PEB as free. This patch changes UBI behavior and now UBI will schedule this PEB for erasure. Signed-off-by: Artem Bityutskiy commit 74d82d2660058e32644f0c673656b2a1d01d3688 Author: Artem Bityutskiy Date: Fri Sep 3 02:11:20 2010 +0300 UBI: remove duplicate IO error codes The 'UBI_IO_PEB_EMPTY' and 'UBI_IO_PEB_FREE' are essentially the same and mean that there are only 0xFF bytes instead of headers. Simplify UBI a little by turning them into a single 'UBI_IO_FF' error code. Also, stop maintaining commentaries in 'ubi_io_read_vid_hdr()' which are almost identical to commentaries in 'ubi_io_read_ec_hdr()'. Signed-off-by: Artem Bityutskiy commit 756e1df1d2b8b572a92dd1b82d2a432d5b280b1c Author: Artem Bityutskiy Date: Fri Sep 3 01:30:16 2010 +0300 UBI: rename IO error code Rename UBI_IO_BAD_HDR_READ into UBI_IO_BAD_HDR_EBADMSG which is presumably more self-documenting and readable. Indeed, the '_READ' suffix does not tell much and even confuses, while '_EBADMSG' tells about uncorrectable ECC error, because we use -EBADMSG all over the place to represent ECC errors. Signed-off-by: Artem Bityutskiy commit c174a08c72ae77a05be59d0d810dc13239b81e8e Author: Artem Bityutskiy Date: Fri Sep 3 15:11:17 2010 +0300 UBI: fix small 80 characters limit style issue One line was longer than 80 lines, make it shorter. Signed-off-by: Artem Bityutskiy commit 1dd786328ff42b239a00fdbcdaed6fd9709042bf Author: H Hartley Sweeten Date: Thu Aug 19 17:28:50 2010 -0700 UBI: cleanup and simplify Kconfig Cleanup the Kconfig for UBI by using menuconfig to enable/disable the entire driver. Remove the dependency checks for MTD_UBI and MTD_UBI_DEBUG by wrapping the options in if/endif blocks and remove any redundant checks. Remove all default n since that is the Kconfig default. Change menu "Additional UBI debugging messages" into a comment to remove one menu level. Signed-off-by: H Hartley Sweeten Signed-off-by: Artem Bityutskiy commit e2269308359d5863b6aa1fcb95a425a2ab255f1f Author: Ben Hutchings Date: Thu Oct 14 17:41:53 2010 +0000 r6040: Fix multicast filter some more This code has been broken forever, but in several different and creative ways. So far as I can work out, the R6040 MAC filter has 4 exact-match entries, the first of which the driver uses for its assigned unicast address, plus a 64-entry hash-based filter for multicast addresses (maybe unicast as well?). The original version of this code would write the first 4 multicast addresses as exact-match entries from offset 1 (bug #1: there is no entry 4 so this could write to some PHY registers). It would fill the remainder of the exact-match entries with the broadcast address (bug #2: this would overwrite the last used entry). If more than 4 multicast addresses were configured, it would set up the hash table, write some random crap to the MAC control register (bug #3) and finally walk off the end of the list when filling the exact-match entries (bug #4). All of this seems to be pointless, since it sets the promiscuous bit when the interface is made promiscuous or if >4 multicast addresses are enabled, and never clears it (bug #5, masking bug #2). The recent(ish) changes to the multicast list fixed bug #4, but completely removed the limit on iteration over the exact-match entries (bug #6). Bug #4 was reported as and more recently as . Florian Fainelli attempted to fix these in commit 3bcf8229a8c49769e48d3e0bd1e20d8e003f8106, but that actually dealt with bugs #1-3, bug #4 having been fixed in mainline at that point. That commit fixes the most important current bug #6. Signed-off-by: Ben Hutchings Cc: stable@kernel.org [2.6.35 only] Signed-off-by: David S. Miller commit 3f7edb1656e5beba2b5e617d31e4064e1eed0bc0 Author: Heiko Carstens Date: Tue Oct 12 11:03:44 2010 +0200 [S390] hardirq: remove pointless header file includes Remove a couple of pointless header file includes. Fixes a compile bug caused by header file include dependencies with "irq: Add tracepoint to softirq_raise" within linux-next. Reported-by: Sachin Sant Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky [ cherry-picked from the s390 tree to fix "2bf2160: irq: Add tracepoint to softirq_raise" ] Signed-off-by: Ingo Molnar commit 3c4ea5b4985ecf831e22034d5d5db6e6391f3911 Author: Tony Luck Date: Mon Sep 20 13:15:07 2010 -0700 [IA64] Move local_softirq_pending() definition Ugly #include dependencies. We need to have local_softirq_pending() defined before it gets used in . But provides the definition *after* this #include chain: Signed-off-by: Tony Luck [ cherry-picked from the ia64 tree to fix "2bf2160: irq: Add tracepoint to softirq_raise" ] Signed-off-by: Ingo Molnar commit 8723e1b4ad9be4444423b4d41509ce859a629649 Author: Eric Dumazet Date: Tue Oct 19 00:39:26 2010 +0000 inet: RCU changes in inetdev_by_index() Convert inetdev_by_index() to not increment in_dev refcount. Callers hold RCU or RTNL, and should not decrement in_dev refcount. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9e917dca74138cccf398ce8bb924c7fd2980ec1d Author: Eric Dumazet Date: Tue Oct 19 00:39:18 2010 +0000 net: avoid a dev refcount in ip_mc_find_dev() We hold RTNL in ip_mc_find_dev(), no need to touch device refcount. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7ada876a8703f23befbb20a7465a702ee39b1704 Author: Darren Hart Date: Sun Oct 17 08:35:04 2010 -0700 futex: Fix errors in nested key ref-counting futex_wait() is leaking key references due to futex_wait_setup() acquiring an additional reference via the queue_lock() routine. The nested key ref-counting has been masking bugs and complicating code analysis. queue_lock() is only called with a previously ref-counted key, so remove the additional ref-counting from the queue_(un)lock() functions. Also futex_wait_requeue_pi() drops one key reference too many in unqueue_me_pi(). Remove the key reference handling from unqueue_me_pi(). This was paired with a queue_lock() in futex_lock_pi(), so the count remains unchanged. Document remaining nested key ref-counting sites. Signed-off-by: Darren Hart Reported-and-tested-by: Matthieu FertrĂ© Reported-by: Louis Rilling Cc: Peter Zijlstra Cc: Eric Dumazet Cc: John Kacur Cc: Rusty Russell LKML-Reference: <4CBB17A8.70401@linux.intel.com> Signed-off-by: Thomas Gleixner Cc: stable@kernel.org commit 5d6076bb2e642bbcb1263c6cf239b9a1f3d0df08 Author: Paul Gortmaker Date: Thu Oct 14 14:21:51 2010 +0000 3c52x: remove IRQF_SAMPLE_RANDOM from legacy MCA drivers. If you are genuinely using one of these legacy MCA drivers then you are tragically on hardware where you really don't have the extra CPU cycles to be wasting on this. In addition, it makes two less cases for people to inadvertently blindly copy flags from without explicitly thinking whether it makes sense -- see the addition to feature-removal.txt as per commit 9d9b8fb0e5ebf4b0398e579f6061d4451fea3242. Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 7ff52efdca367d4bfe2449bd3d4a1f8172c5953a Author: Arnd Bergmann Date: Mon Oct 4 21:24:14 2010 +0200 dabusb: remove the BKL The dabusb device driver is sufficiently serialized using its own mutex, no need for the big kernel lock here in addition. Signed-off-by: Arnd Bergmann Cc: Mauro Carvalho Chehab commit a6f8dbc654c3dddc5ac98cf59a88447a90e99ece Author: Arnd Bergmann Date: Mon Oct 4 21:18:23 2010 +0200 sunrpc: remove the big kernel lock The sunrpc cache_ioctl function does not need the big kernel lock because it uses its own queue_lock already. rpc_pipe_ioctl apparently should be using i_lock like the other operations on the pipe file descriptor do. Signed-off-by: Arnd Bergmann commit 1fa4f3b57cf0c525027ea61011312de139b04f9b Author: Namhyung Kim Date: Mon Sep 27 16:06:54 2010 +0900 init/main.c: remove BKL notations According to commit 5e3d20a68f63fc5a310687d81956c3b96e488b84 (init: Remove the BKL from startup code) these sparse notations should be removed also. Signed-off-by: Namhyung Kim Signed-off-by: Arnd Bergmann commit 01b284f9b6d51cc3f3bcf3b49f16d2601d3ca22d Author: Arnd Bergmann Date: Fri Sep 17 20:39:22 2010 +0200 blktrace: remove the big kernel lock According to Jens, this code does not need the BKL at all, it is sufficiently serialized by bd_mutex. Signed-off-by: Arnd Bergmann Cc: Jens Axboe Cc: Steven Rostedt commit 0fc86c7bd924debd0bddee790ecc884604fdcc63 Author: Arnd Bergmann Date: Sat Sep 11 20:11:08 2010 +0200 rtmutex-tester: make it build without BKL The big kernel lock is going away, so make sure that if it is disabled by Kconfig, we do not try to validate it, which would result in compile errors. Signed-off-by: Arnd Bergmann Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Arjan van de Ven Cc: Andrew Morton commit 72024f1ec5164a70d84dd8cf4458fe4064a6b692 Author: Arnd Bergmann Date: Sat Sep 11 19:56:45 2010 +0200 dvb-core: kill the big kernel lock The dvb core only uses the big kernel lock in the open and ioctl functions, which means it can be replaced with a dvb specific mutex. Fortunately, all the ioctl functions go through dvb_usercopy, so we can move the serialization in there. Signed-off-by: Arnd Bergmann Cc: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org commit adfedd216d9f0bc3f5bfa8aab42932301d4edc31 Author: Arnd Bergmann Date: Sat Sep 11 19:53:25 2010 +0200 dvb/bt8xx: kill the big kernel lock The bt8xx driver only uses the big kernel lock in its dst_ca_ioctl function and never to serialize against other code, so we can trivially replace it with a private mutex. Signed-off-by: Arnd Bergmann Cc: linux-media@vger.kernel.org Cc: Mauro Carvalho Chehab commit efbec1cd042008b49fe3cad45604088c54905a06 Author: Arnd Bergmann Date: Sat Sep 11 19:31:43 2010 +0200 tlclk: remove big kernel lock This driver already has a global mutex, so let's just use that in the open function instead of the BKL. It may not even be needed there, but this patch should have the smallest impact. Signed-off-by: Arnd Bergmann Cc: Mark Gross commit c4a047272566b44b44222369d50a307c708c4f74 Author: Al Viro Date: Mon Aug 24 22:42:56 2009 +0000 fix rawctl compat ioctls breakage on amd64 and itanic RAW_SETBIND and RAW_GETBIND 32bit versions are fscked in interesting ways. 1) fs/compat_ioctl.c has COMPATIBLE_IOCTL(RAW_SETBIND) followed by HANDLE_IOCTL(RAW_SETBIND, raw_ioctl). The latter is ignored. 2) on amd64 (and itanic) the damn thing is broken - we have int + u64 + u64 and layouts on i386 and amd64 are _not_ the same. raw_ioctl() would work there, but it's never called due to (1). As it is, i386 /sbin/raw definitely doesn't work on amd64 boxen. 3) switching to raw_ioctl() as is would *not* work on e.g. sparc64 and ppc64, which would be rather sad, seeing that normal userland there is 32bit. The thing is, slapping __packed on the struct in question does not DTRT - it eliminates *all* padding. The real solution is to use compat_u64. 4) of course, all that stuff has no business being outside of raw.c in the first place - there should be ->compat_ioctl() for /dev/rawctl instead of messing with compat_ioctl.c. [akpm@linux-foundation.org: coding-style fixes] [arnd@arndb.de: port to 2.6.36] Signed-off-by: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Arnd Bergmann commit 9a181c58617134822ae596339dbea076ef9b5cf7 Author: Arnd Bergmann Date: Sat Sep 11 18:38:03 2010 +0200 uml: kill big kernel lock Three uml device drivers still use the big kernel lock, but all of them can be safely converted to using a per-driver mutex instead. Most likely this is not even necessary, so after further review these can and should be removed as well. The exec system call no longer requires the BKL either, so remove it from there, too. Signed-off-by: Arnd Bergmann Cc: Jeff Dike Cc: user-mode-linux-devel@lists.sourceforge.net commit daaae6b010ac0f60c9c35e481589966f9f1fcc22 Author: Tejun Heo Date: Tue Oct 19 11:28:15 2010 +0200 workqueue: remove in_workqueue_context() Commit a25909a4 (lockdep: Add an in_workqueue_context() lockdep-based test function) added in_workqueue_context() but there hasn't been any in-kernel user and the lockdep annotation in workqueue is scheduled to change. Remove the unused function. Signed-off-by: Tejun Heo Cc: Paul E. McKenney commit 31ddd871fc3db73e2024cb3eb3ee5051edf5a80f Author: Tejun Heo Date: Tue Oct 19 11:14:49 2010 +0200 workqueue: Clarify that schedule_on_each_cpu is synchronous The documentation for schedule_on_each_cpu() states that it calls a function on each online CPU from keventd. This can easily be interpreted as an asyncronous call because the description does not mention that flush_work is called. Clarify that it is synchronous. tj: rephrased a bit Signed-off-by: Mel Gorman Reviewed-by: KOSAKI Motohiro Signed-off-by: Tejun Heo commit 10ccd84695c2a03075bad2f4fc728575fe9051f8 Author: Tejun Heo Date: Tue Oct 19 11:08:41 2010 +0200 memory_hotplug: drop spurious calls to flush_scheduled_work() lru_add_drain_all() uses schedule_on_each_cpu() which is synchronous. There is no reason to call flush_scheduled_work() after lru_add_drain_all(). Drop the spurious calls. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Acked-by: KAMEZAWA Hiroyuki Reviewed-by: Minchan Kim Acked-by: Mel Gorman commit 714f095f74582764d629785f03b459a3d0503624 Author: Hans Schillstrom Date: Tue Oct 19 10:38:48 2010 +0200 ipvs: IPv6 tunnel mode IPv6 encapsulation uses a bad source address for the tunnel. i.e. VIP will be used as local-addr and encap. dst addr. Decapsulation will not accept this. Example LVS (eth1 2003::2:0:1/96, VIP 2003::2:0:100) (eth0 2003::1:0:1/96) RS (ethX 2003::1:0:5/96) tcpdump 2003::2:0:100 > 2003::1:0:5: IP6 (hlim 63, next-header TCP (6) payload length: 40) 2003::3:0:10.50991 > 2003::2:0:100.http: Flags [S], cksum 0x7312 (correct), seq 3006460279, win 5760, options [mss 1440,sackOK,TS val 1904932 ecr 0,nop,wscale 3], length 0 In Linux IPv6 impl. you can't have a tunnel with an any cast address receiving packets (I have not tried to interpret RFC 2473) To have receive capabilities the tunnel must have: - Local address set as multicast addr or an unicast addr - Remote address set as an unicast addr. - Loop back addres or Link local address are not allowed. This causes us to setup a tunnel in the Real Server with the LVS as the remote address, here you can't use the VIP address since it's used inside the tunnel. Solution Use outgoing interface IPv6 address (match against the destination). i.e. use ip6_route_output() to look up the route cache and then use ipv6_dev_get_saddr(...) to set the source address of the encapsulated packet. Additionally, cache the results in new destination fields: dst_cookie and dst_saddr and properly check the returned dst from ip6_route_output. We now add xfrm_lookup call only for the tunneling method where the source address is a local one. Signed-off-by:Hans Schillstrom Signed-off-by: Patrick McHardy commit ebbf41df4aabb6d506fa18ea8cb4c2b4388a18b9 Author: Pablo Neira Ayuso Date: Tue Oct 19 10:19:06 2010 +0200 netfilter: ctnetlink: add expectation deletion events This patch allows to listen to events that inform about expectations destroyed. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy commit 6362beea8914cbd4630ccde3617d944aeca2d48f Author: Mike Miller Date: Tue Oct 19 09:40:34 2010 +0200 cciss: fix PCI IDs for new Smart Array controllers cciss: fix PCI IDs for new controllers This patch fixes the botched up PCI IDs of new controllers. Please consider this patch for inclusion. Signed-off-by: Mike Miller Signed-off-by: Jens Axboe commit 9717967c4b704ce344c954afb5bb160aa9c01c34 Author: Yinghai Lu Date: Mon Oct 18 13:47:48 2010 -0700 x86: ioapic: Call free_irte only if interrupt remapping enabled On a system that support intr-rempping when booting with "intremap=off" [ 177.895501] BUG: unable to handle kernel NULL pointer dereference at 00000000000000f8 [ 177.913316] IP: [] free_irte+0x47/0xc0 ... [ 178.173326] Call Trace: [ 178.173574] [] destroy_irq+0x3a/0x75 [ 178.192934] [] arch_teardown_msi_irq+0xe/0x10 [ 178.193418] [] arch_teardown_msi_irqs+0x56/0x7f [ 178.213021] [] free_msi_irqs+0x8d/0xeb Call free_irte only when interrupt remapping is enabled. Signed-off-by: Yinghai Lu LKML-Reference: <4CBCB274.7010108@kernel.org> Signed-off-by: Thomas Gleixner commit 57fa7214330be2e292ddb1402834ff0b221ef29a Author: Paul Mackerras Date: Tue Oct 19 16:55:35 2010 +1100 perf, powerpc: Fix power_pmu_event_init to not use event->ctx Commit c3f00c70 ("perf: Separate find_get_context() from event initialization") changed the generic perf_event code to call perf_event_alloc, which calls the arch-specific event_init code, before looking up the context for the new event. Unfortunately, power_pmu_event_init uses event->ctx->task to see whether the new event is a per-task event or a system-wide event, and thus crashes since event->ctx is NULL at the point where power_pmu_event_init gets called. (The reason it needs to know whether it is a per-task event is because there are some hardware events on Power systems which only count when the processor is not idle, and there are some fixed-function counters which count such events. For example, the "run cycles" event counts cycles when the processor is not idle. If the user asks to count cycles, we can use "run cycles" if this is a per-task event, since the processor is running when the task is running, by definition. We can't use "run cycles" if the user asks for "cycles" on a system-wide counter.) Fortunately the information we need is in the event->attach_state field, so we just use that instead. Signed-off-by: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <20101019055535.GA10398@drongo> Signed-off-by: Ingo Molnar Reported-by: Alexey Kardashevskiy Signed-off-by: Ingo Molnar commit fa251f89903d73989e2f63e13d0eaed1e07ce0da Merge: dd3932e cd07202 Author: Jens Axboe Date: Tue Oct 19 09:13:04 2010 +0200 Merge branch 'v2.6.36-rc8' into for-2.6.37/barrier Conflicts: block/blk-core.c drivers/block/loop.c mm/swapfile.c Signed-off-by: Jens Axboe commit 7681bfeeccff5efa9eb29bf09249a3c400b15327 Author: Yasuaki Ishimatsu Date: Tue Oct 19 09:05:00 2010 +0200 block: fix accounting bug on cross partition merges /proc/diskstats would display a strange output as follows. $ cat /proc/diskstats |grep sda 8 0 sda 90524 7579 102154 20464 0 0 0 0 0 14096 20089 8 1 sda1 19085 1352 21841 4209 0 0 0 0 4294967064 15689 4293424691 ~~~~~~~~~~ 8 2 sda2 71252 3624 74891 15950 0 0 0 0 232 23995 1562390 8 3 sda3 54 487 2188 92 0 0 0 0 0 88 92 8 4 sda4 4 0 8 0 0 0 0 0 0 0 0 8 5 sda5 81 2027 2130 138 0 0 0 0 0 87 137 Its reason is the wrong way of accounting hd_struct->in_flight. When a bio is merged into a request belongs to different partition by ELEVATOR_FRONT_MERGE. The detailed root cause is as follows. Assuming that there are two partition, sda1 and sda2. 1. A request for sda2 is in request_queue. Hence sda1's hd_struct->in_flight is 0 and sda2's one is 1. | hd_struct->in_flight --------------------------- sda1 | 0 sda2 | 1 --------------------------- 2. A bio belongs to sda1 is issued and is merged into the request mentioned on step1 by ELEVATOR_BACK_MERGE. The first sector of the request is changed from sda2 region to sda1 region. However the two partition's hd_struct->in_flight are not changed. | hd_struct->in_flight --------------------------- sda1 | 0 sda2 | 1 --------------------------- 3. The request is finished and blk_account_io_done() is called. In this case, sda2's hd_struct->in_flight, not a sda1's one, is decremented. | hd_struct->in_flight --------------------------- sda1 | -1 sda2 | 1 --------------------------- The patch fixes the problem by caching the partition lookup inside the request structure, hence making sure that the increment and decrement will always happen on the same partition struct. This also speeds up IO with accounting enabled, since it cuts down on the number of lookups we have to do. When reloading partition tables, quiesce IO to ensure that no request references to the partition struct exists. When it is safe to free the partition table, the IO for that device is restarted again. Signed-off-by: Yasuaki Ishimatsu Cc: stable@kernel.org Signed-off-by: Jens Axboe commit 1fa41266e9d20f6d66f9d7d067d9825e2c1002b9 Merge: ebf31f5 d7b4d6d Author: Ingo Molnar Date: Tue Oct 19 08:21:10 2010 +0200 Merge branch 'tip/perf/recordmcount-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit fe0cdec8bad919fd91cd344123906a55f3857209 Author: Kukjin Kim Date: Thu Sep 9 21:57:29 2010 +0900 ARM: S5PV310: Fix build error on GPIO map This patch fixes build error about GPIO address due to conflict of commit 4d914705 and 19a2c065. - commit 4d914705: Fix on GPIO base addresses - commit 19a2c065: Moves initial map for merging S5P64X0 Signed-off-by: Kukjin Kim commit a0a55682b83fd5f012afadcf415b030d7424ae68 Merge: 23beab7 865a4fa Author: Russell King Date: Mon Oct 18 22:34:47 2010 +0100 Merge branch 'hotplug' into devel Conflicts: arch/arm/kernel/head-common.S commit 23beab76b490172a9ff3d52843e4d27a35b2a4c6 Merge: 8ed9059 5fb31a9 80be7a7 19852e5 29e29f2 725343f 9e978f0 f3af03d 5333a3d Author: Russell King Date: Mon Oct 18 22:34:25 2010 +0100 Merge branches 'at91', 'dcache', 'ftrace', 'hwbpt', 'misc', 'mmci', 's3c', 'st-ux' and 'unwind' into devel commit d7b4d6de57d414a6384376880f2caf7125a45494 Author: Steven Rostedt Date: Mon Oct 18 14:42:00 2010 -0400 ftrace: Remove recursion between recordmcount and scripts/mod/empty When DYNAMIC_FTRACE is enabled and we use the C version of recordmcount, all objects are run through the recordmcount program to create a separate section that stores all the callers of mcount. The build process has a special file: scripts/mod/empty.o. This is built from empty.c which is literally an empty file (except for a single comment). This file is used to find information about the target elf format, like endianness and word size. The problem comes up when we need to build recordmcount. The build process requires that empty.o is built first. The build rules for empty.o will try to execute recordmcount on the empty.o file. We get an error that recordmcount does not exist. To avoid this recursion, the build file will skip running recordmcount if the file that it is building is script/mod/empty.o. [ extra comment Suggested-by: Sam Ravnborg ] Reported-by: Ingo Molnar Tested-by: Ingo Molnar Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Signed-off-by: Steven Rostedt commit f3af03de0b1c42225d492d874d9afeed0c02568c Author: Srinidhi Kasagar Date: Thu Oct 14 08:12:40 2010 +0100 ARM: 6441/1: ux500: The platform is not just based on early drop silicon version. Update Kconfig text accordingly. Signed-off-by: srinidhi kasagar Acked-by: Linus Walleij Signed-off-by: Russell King commit a731cd116c9334e01bcf3e676c0c621fe7de6ce4 Author: Thomas Gleixner Date: Tue Sep 7 14:33:15 2010 +0000 xfs: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. (Ported to current XFS code by .) Signed-off-by: Thomas Gleixner Signed-off-by: Alex Elder commit 6743099ce57a40509a86849a22317ed4b7516911 Author: Arkadiusz Mi?kiewicz Date: Sun Sep 26 06:10:18 2010 +0000 xfs: Extend project quotas to support 32bit project ids This patch adds support for 32bit project quota identifiers. On disk format is backward compatible with 16bit projid numbers. projid on disk is now kept in two 16bit values - di_projid_lo (which holds the same position as old 16bit projid value) and new di_projid_hi (takes existing padding) and converts from/to 32bit value on the fly. xfs_admin (for existing fs), mkfs.xfs (for new fs) needs to be used to enable PROJID32BIT support. Signed-off-by: Arkadiusz Miƛkiewicz Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1a1a3e97bad42e92cd2f32e81c396c8ee0bddb28 Author: Christoph Hellwig Date: Wed Oct 6 18:41:18 2010 +0000 xfs: remove xfs_buf wrappers Stop having two different names for many buffer functions and use the more descriptive xfs_buf_* names directly. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 6c77b0ea1bdf85dfd48c20ceb10fd215a95c66e2 Author: Christoph Hellwig Date: Wed Oct 6 18:41:17 2010 +0000 xfs: remove xfs_cred.h We're not actually passing around credentials inside XFS for a while now, so remove all xfs_cred.h with it's cred_t typedef and all instances of it. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 78a4b0961ff241c6f23b16329db0d67e97cb86a7 Author: Christoph Hellwig Date: Wed Oct 6 18:41:16 2010 +0000 xfs: remove xfs_globals.h This header only provides one extern that isn't actually declared anywhere, and shadowed by a macro. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 668332e5fec809bb100da619fda80e033b12b4a7 Author: Christoph Hellwig Date: Wed Oct 6 18:41:15 2010 +0000 xfs: remove xfs_version.h It used to have a place when it contained an automatically generated CVS version, but these days it's entirely superflous. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1ae4fe6dba24ebabcd12cd0fa45cc5955394cbd8 Author: Christoph Hellwig Date: Wed Oct 6 18:41:14 2010 +0000 xfs: remove xfs_refcache.h This header has been completely unused for a couple of years. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 4957a449a1bce2f5095f57f84114dc038a8f08d5 Author: Christoph Hellwig Date: Wed Oct 6 18:41:13 2010 +0000 xfs: fix the xfs_trans_committed Use the correct prototype for xfs_trans_committed instead of casting it. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit dfe188d4283752086d48380cde40d9801c318667 Author: Christoph Hellwig Date: Wed Oct 6 18:41:12 2010 +0000 xfs: remove unused t_callback field in struct xfs_trans Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit d276734d937a649ff43fd197d0df7a747bd55b7e Author: Christoph Hellwig Date: Wed Oct 6 18:31:23 2010 +0000 xfs: fix bogus m_maxagi check in xfs_iget These days inode64 should only control which AGs we allocate new inodes from, while we still try to support reading all existing inodes. To make this actually work the check ontop of xfs_iget needs to be relaxed to allow inodes in all allocation groups instead of just those that we allow allocating inodes from. Note that we can't simply remove the check - it prevents us from accessing invalid data when fed invalid inode numbers from NFS or bulkstat. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1b0407125f9a5be63e861eb27c8af9e32f20619c Author: Christoph Hellwig Date: Thu Sep 30 02:25:56 2010 +0000 xfs: do not use xfs_mod_incore_sb_batch for per-cpu counters Update the per-cpu counters manually in xfs_trans_unreserve_and_mod_sb and remove support for per-cpu counters from xfs_mod_incore_sb_batch to simplify it. And added benefit is that we don't have to take m_sb_lock for transactions that only modify per-cpu counters. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 96540c78583a417113df4d027e6b68a595ab9a09 Author: Christoph Hellwig Date: Thu Sep 30 02:25:55 2010 +0000 xfs: do not use xfs_mod_incore_sb for per-cpu counters Export xfs_icsb_modify_counters and always use it for modifying the per-cpu counters. Remove support for per-cpu counters from xfs_mod_incore_sb to simplify it. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 61ba35dea0593fbc8d062cab3e4c4c3da5ce7104 Author: Christoph Hellwig Date: Thu Sep 30 02:25:54 2010 +0000 xfs: remove XFS_MOUNT_NO_PERCPU_SB Fail the mount if we can't allocate memory for the per-CPU counters. This is consistent with how we handle everything else in the mount path and makes the superblock counter modification a lot simpler. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 50f59e8eed85ec4c79bc2454ed50c7886f6c5ebf Author: Dave Chinner Date: Fri Sep 24 19:59:15 2010 +1000 xfs: pack xfs_buf structure more tightly pahole reports the struct xfs_buf has quite a few holes in it, so packing the structure better will reduce the size of it by 16 bytes. Also, move all the fields used in cache lookups into the first cacheline. Before on x86_64: /* size: 320, cachelines: 5 */ /* sum members: 298, holes: 6, sum holes: 22 */ After on x86_64: /* size: 304, cachelines: 5 */ /* padding: 6 */ /* last cacheline: 48 bytes */ Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 74f75a0cb7033918eb0fa4a50df25091ac75c16e Author: Dave Chinner Date: Fri Sep 24 19:59:04 2010 +1000 xfs: convert buffer cache hash to rbtree The buffer cache hash is showing typical hash scalability problems. In large scale testing the number of cached items growing far larger than the hash can efficiently handle. Hence we need to move to a self-scaling cache indexing mechanism. I have selected rbtrees for indexing becuse they can have O(log n) search scalability, and insert and remove cost is not excessive, even on large trees. Hence we should be able to cache large numbers of buffers without incurring the excessive cache miss search penalties that the hash is imposing on us. To ensure we still have parallel access to the cache, we need multiple trees. Rather than hashing the buffers by disk address to select a tree, it seems more sensible to separate trees by typical access patterns. Most operations use buffers from within a single AG at a time, so rather than searching lots of different lists, separate the buffer indexes out into per-AG rbtrees. This means that searches during metadata operation have a much higher chance of hitting cache resident nodes, and that updates of the tree are less likely to disturb trees being accessed on other CPUs doing independent operations. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 69b491c214d7fd4d4df972ae5377be99ca3753db Author: Dave Chinner Date: Mon Sep 27 11:09:51 2010 +1000 xfs: serialise inode reclaim within an AG Memory reclaim via shrinkers has a terrible habit of having N+M concurrent shrinker executions (N = num CPUs, M = num kswapds) all trying to shrink the same cache. When the cache they are all working on is protected by a single spinlock, massive contention an slowdowns occur. Wrap the per-ag inode caches with a reclaim mutex to serialise reclaim access to the AG. This will block concurrent reclaim in each AG but still allow reclaim to scan multiple AGs concurrently. Allow shrinkers to move on to the next AG if it can't get the lock, and if we can't get any AG, then start blocking on locks. To prevent reclaimers from continually scanning the same inodes in each AG, add a cursor that tracks where the last reclaim got up to and start from that point on the next reclaim. This should avoid only ever scanning a small number of inodes at the satart of each AG and not making progress. If we have a non-shrinker based reclaim pass, ignore the cursor and reset it to zero once we are done. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit e3a20c0b02e1704ab115dfa9d012caf0fbc45ed0 Author: Dave Chinner Date: Fri Sep 24 19:51:50 2010 +1000 xfs: batch inode reclaim lookup Batch and optimise the per-ag inode lookup for reclaim to minimise scanning overhead. This involves gang lookups on the radix trees to get multiple inodes during each tree walk, and tighter validation of what inodes can be reclaimed without blocking befor we take any locks. This is based on ideas suggested in a proof-of-concept patch posted by Nick Piggin. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 78ae5256768b91f25ce7a4eb9f56d563e302cc10 Author: Dave Chinner Date: Tue Sep 28 12:28:19 2010 +1000 xfs: implement batched inode lookups for AG walking With the reclaim code separated from the generic walking code, it is simple to implement batched lookups for the generic walk code. Separate out the inode validation from the execute operations and modify the tree lookups to get a batch of inodes at a time. Reclaim operations will be optimised separately. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit e13de955ca67b0bd1cec9a2f9352a3053065bf7f Author: Dave Chinner Date: Tue Sep 28 12:28:06 2010 +1000 xfs: split out inode walk inode grabbing When doing read side inode cache walks, the code to validate and grab an inode is common to all callers. Split it out of the execute callbacks in preparation for batching lookups. Similarly, split out the inode reference dropping from the execute callbacks into the main lookup look to be symmetric with the grab. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 65d0f20533c503b50bd5e7e86434512af7761eea Author: Dave Chinner Date: Fri Sep 24 18:40:15 2010 +1000 xfs: split inode AG walking into separate code for reclaim The reclaim walk requires different locking and has a slightly different walk algorithm, so separate it out so that it can be optimised separately. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 69d6cc76cff3573ceefda178b75e20878866fdc3 Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: remove buftarg hash for external devices For RT and external log devices, we never use hashed buffers on them now. Remove the buftarg hash tables that are set up for them. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 1922c949c59f93beb560d59874bcc6d5c00115ac Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: use unhashed buffers for size checks When we are checking we can access the last block of each device, we do not need to use cached buffers as they will be tossed away immediately. Use uncached buffers for size checks so that all IO prior to full in-memory structure initialisation does not use the buffer cache. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 26af655233dd486659235f3049959d2f7dafc5a1 Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: kill XBF_FS_MANAGED buffers Filesystem level managed buffers are buffers that have their lifecycle controlled by the filesystem layer, not the buffer cache. We currently cache these buffers, which makes cleanup and cache walking somewhat troublesome. Convert the fs managed buffers to uncached buffers obtained by via xfs_buf_get_uncached(), and remove the XBF_FS_MANAGED special cases from the buffer cache. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit ebad861b5702c3e2332a3e906978f47144d22f70 Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: store xfs_mount in the buftarg instead of in the xfs_buf Each buffer contains both a buftarg pointer and a mount pointer. If we add a mount pointer into the buftarg, we can avoid needing the b_mount field in every buffer and grab it from the buftarg when needed instead. This shrinks the xfs_buf by 8 bytes. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 5adc94c247c3779782c7b0b8b5e28cf50596eb37 Author: Dave Chinner Date: Fri Sep 24 21:58:31 2010 +1000 xfs: introduced uncached buffer read primitve To avoid the need to use cached buffers for single-shot or buffers cached at the filesystem level, introduce a new buffer read primitive that bypasses the cache an reads directly from disk. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 686865f76e35b28ba7aa6afa19209426f0da6201 Author: Dave Chinner Date: Fri Sep 24 20:07:47 2010 +1000 xfs: rename xfs_buf_get_nodaddr to be more appropriate xfs_buf_get_nodaddr() is really used to allocate a buffer that is uncached. While it is not directly assigned a disk address, the fact that they are not cached is a more important distinction. With the upcoming uncached buffer read primitive, we should be consistent with this disctinction. While there, make page allocation in xfs_buf_get_nodaddr() safe against memory reclaim re-entrancy into the filesystem by allowing a flags parameter to be passed. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit dcd79a1423f64ee0184629874805c3ac40f3a2c5 Author: Dave Chinner Date: Tue Sep 28 12:27:25 2010 +1000 xfs: don't use vfs writeback for pure metadata modifications Under heavy multi-way parallel create workloads, the VFS struggles to write back all the inodes that have been changed in age order. The bdi flusher thread becomes CPU bound, spending 85% of it's time in the VFS code, mostly traversing the superblock dirty inode list to separate dirty inodes old enough to flush. We already keep an index of all metadata changes in age order - in the AIL - and continued log pressure will do age ordered writeback without any extra overhead at all. If there is no pressure on the log, the xfssyncd will periodically write back metadata in ascending disk address offset order so will be very efficient. Hence we can stop marking VFS inodes dirty during transaction commit or when changing timestamps during transactions. This will keep the inodes in the superblock dirty list to those containing data or unlogged metadata changes. However, the timstamp changes are slightly more complex than this - there are a couple of places that do unlogged updates of the timestamps, and the VFS need to be informed of these. Hence add a new function xfs_trans_ichgtime() for transactional changes, and leave xfs_ichgtime() for the non-transactional changes. Signed-off-by: Dave Chinner Reviewed-by: Alex Elder Reviewed-by: Christoph Hellwig commit e176579e70118ed7cfdb60f963628fe0ca771f3d Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: lockless per-ag lookups When we start taking a reference to the per-ag for every cached buffer in the system, kernel lockstat profiling on an 8-way create workload shows the mp->m_perag_lock has higher acquisition rates than the inode lock and has significantly more contention. That is, it becomes the highest contended lock in the system. The perag lookup is trivial to convert to lock-less RCU lookups because perag structures never go away. Hence the only thing we need to protect against is tree structure changes during a grow. This can be done simply by replacing the locking in xfs_perag_get() with RCU read locking. This removes the mp->m_perag_lock completely from this path. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit bd32d25a7cf7242512e77e70bab63df4402ab91c Author: Dave Chinner Date: Wed Sep 22 10:47:20 2010 +1000 xfs: remove debug assert for per-ag reference counting When we start taking references per cached buffer to the the perag it is cached on, it will blow the current debug maximum reference count assert out of the water. The assert has never caught a bug, and we have tracing to track changes if there ever is a problem, so just remove it. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit d1583a3833290ab9f8b13a064acbb5e508c59f60 Author: Dave Chinner Date: Fri Sep 24 18:14:13 2010 +1000 xfs: reduce the number of CIL lock round trips during commit When commiting a transaction, we do a lock CIL state lock round trip on every single log vector we insert into the CIL. This is resulting in the lock being as hot as the inode and dcache locks on 8-way create workloads. Rework the insertion loops to bring the number of lock round trips to one per transaction for log vectors, and one more do the busy extents. Also change the allocation of the log vector buffer not to zero it as we copy over the entire allocated buffer anyway. This patch also includes a structural cleanup to the CIL item insertion provided by Christoph Hellwig. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 9c169915ad374cd9efb1556943b2074ec07e1749 Author: Poyo VL Date: Thu Sep 2 07:41:55 2010 +0000 xfs: eliminate some newly-reported gcc warnings Ionut Gabriel Popescu submitted a simple change to eliminate some "may be used uninitialized" warnings when building XFS. The reported condition seems to be something that GCC did not used to recognize or report. The warnings were produced by: gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux) Signed-off-by: Ionut Gabriel Popescu Signed-off-by: Alex Elder commit c0e59e1ac0a106bbab93404024bb6e7927ad9d6d Author: Christoph Hellwig Date: Tue Sep 7 23:34:07 2010 +0000 xfs: remove the ->kill_root btree operation The implementation os ->kill_root only differ by either simply zeroing out the now unused buffer in the btree cursor in the inode allocation btree or using xfs_btree_setbuf in the allocation btree. Initially both of them used xfs_btree_setbuf, but the use in the ialloc btree was removed early on because it interacted badly with xfs_trans_binval. In addition to zeroing out the buffer in the cursor xfs_btree_setbuf updates the bc_ra array in the btree cursor, and calls xfs_trans_brelse on the buffer previous occupying the slot. The bc_ra update should be done for the alloc btree updated too, although the lack of it does not cause serious problems. The xfs_trans_brelse call on the other hand is effectively a no-op in the end - it keeps decrementing the bli_recur refcount until it hits zero, and then just skips out because the buffer will always be dirty at this point. So removing it for the allocation btree is just fine. So unify the code and move it to xfs_btree.c. While we're at it also replace the call to xfs_btree_setbuf with a NULL bp argument in xfs_btree_del_cursor with a direct call to xfs_trans_brelse given that the cursor is beeing freed just after this and the state updates are superflous. After this xfs_btree_setbuf is only used with a non-NULL bp argument and can thus be simplified. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit acecf1b5d8a846bf818bf74df454330f0b444b0a Author: Christoph Hellwig Date: Mon Sep 6 01:44:45 2010 +0000 xfs: stop using xfs_qm_dqtobp in xfs_qm_dqflush In xfs_qm_dqflush we know that q_blkno must be initialized already from a previous xfs_qm_dqread. So instead of calling xfs_qm_dqtobp we can simply read the quota buffer directly. This also saves us from a duplicate xfs_qm_dqcheck call check and allows xfs_qm_dqtobp to be simplified now that it is always called for a newly initialized inode. In addition to that properly unwind all locks in xfs_qm_dqflush when xfs_qm_dqcheck fails. This mirrors a similar cleanup in the inode lookup done earlier. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 52fda114249578311776b25da9f73a9c34f4fd8c Author: Christoph Hellwig Date: Mon Sep 6 01:44:22 2010 +0000 xfs: simplify xfs_qm_dqusage_adjust There is no need to have the users and group/project quota locked at the same time. Get rid of xfs_qm_dqget_noattach and just do a xfs_qm_dqget inside xfs_qm_quotacheck_dqadjust for the quota we are operating on right now. The new version of xfs_qm_quotacheck_dqadjust holds the inode lock over it's operations, which is not a problem as it simply increments counters and there is no concern about log contention during mount time. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 447223520520b17d3b6d0631aa4838fbaf8eddb4 Author: Dave Chinner Date: Tue Aug 24 12:02:11 2010 +1000 xfs: Introduce XFS_IOC_ZERO_RANGE XFS_IOC_ZERO_RANGE is the equivalent of an atomic XFS_IOC_UNRESVSP/ XFS_IOC_RESVSP call pair. It enabled ranges of written data to be turned into zeroes without requiring IO or having to free and reallocate the extents in the range given as would occur if we had to punch and then preallocate them separately. This enables applications to zero parts of files very quickly without changing the layout of the files in any way. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 3ae4c9deb30a8d5ee305b461625dcb298c9804a9 Author: Dave Chinner Date: Tue Aug 24 12:01:50 2010 +1000 xfs: use range primitives for xfs page cache operations While XFS passes ranges to operate on from the core code, the functions being called ignore the either the entire range or the end of the range. This is historical because when the function were written linux didn't have the necessary range operations. Update the functions to use the correct operations. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig commit b7dadc38797584f6203386da1947ed5edf516646 Author: Ingo Molnar Date: Mon Oct 18 20:00:37 2010 +0200 sched: Export account_system_vtime() KVM uses it for example: ERROR: "account_system_vtime" [arch/x86/kvm/kvm.ko] undefined! Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit d267f87fb8179c6dba03d08b91952e81bc3723c7 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:23 2010 -0700 sched: Call tick_check_idle before __irq_enter When CPU is idle and on first interrupt, irq_enter calls tick_check_idle() to notify interruption from idle. But, there is a problem if this call is done after __irq_enter, as all routines in __irq_enter may find stale time due to yet to be done tick_check_idle. Specifically, trace calls in __irq_enter when they use global clock and also account_system_vtime change in this patch as it wants to use sched_clock_cpu() to do proper irq timing. But, tick_check_idle was moved after __irq_enter intentionally to prevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a: irq: call __irq_enter() before calling the tick_idle_check Impact: avoid spurious ksoftirqd wakeups Moving tick_check_idle() before __irq_enter and wrapping it with local_bh_enable/disable would solve both the problems. Fixed-by: Yong Zhang Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-9-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit aa483808516ca5cacfa0e5849691f64fec25828e Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:22 2010 -0700 sched: Remove irq time from available CPU power The idea was suggested by Peter Zijlstra here: http://marc.info/?l=linux-kernel&m=127476934517534&w=2 irq time is technically not available to the tasks running on the CPU. This patch removes irq time from CPU power piggybacking on sched_rt_avg_update(). Tested this by keeping CPU X busy with a network intensive task having 75% oa a single CPU irq processing (hard+soft) on a 4-way system. And start seven cycle soakers on the system. Without this change, there will be two tasks on each CPU. With this change, there is a single task on irq busy CPU X and remaining 7 tasks are spread around among other 3 CPUs. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-8-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 305e6835e05513406fa12820e40e4a8ecb63743c Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:21 2010 -0700 sched: Do not account irq time to current task Scheduler accounts both softirq and interrupt processing times to the currently running task. This means, if the interrupt processing was for some other task in the system, then the current task ends up being penalized as it gets shorter runtime than otherwise. Change sched task accounting to acoount only actual task time from currently running task. Now update_curr(), modifies the delta_exec to depend on rq->clock_task. Note that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can extend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats for later. This change will impact scheduling behavior in interrupt heavy conditions. Tested on a 4-way system with eth0 handled by CPU 2 and a network heavy task (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2 spending 75%+ of its time in irq processing. CPU 3 spending around 35% time running nc task. Now, if I run another CPU intensive task on CPU 2, without this change /proc//schedstat shows 100% of time accounted to this task. With this change, it rightly shows less than 25% accounted to this task as remaining time is actually spent on irq processing. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-7-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit e82b8e4ea4f3dffe6e7939f90e78da675fcc450e Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:20 2010 -0700 x86: Add IRQ_TIME_ACCOUNTING This patch adds IRQ_TIME_ACCOUNTING option on x86 and runtime enables it when TSC is enabled. This change just enables fine grained irq time accounting, isn't used yet. Following patches use it for different purposes. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-6-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit b52bfee445d315549d41eacf2fa7c156e7d153d5 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:19 2010 -0700 sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time s390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does the fine granularity accounting of user, system, hardirq, softirq times. Adding that option on archs like x86 will be challenging however, given the state of TSC reliability on various platforms and also the overhead it will add in syscall entry exit. Instead, add a lighter variant that only does finer accounting of hardirq and softirq times, providing precise irq times (instead of timer tick based samples). This accounting is added with a new config option CONFIG_IRQ_TIME_ACCOUNTING so that there won't be any overhead for users not interested in paying the perf penalty. This accounting is based on sched_clock, with the code being generic. So, other archs may find it useful as well. This patch just adds the core logic and does not enable this logic yet. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-5-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 6cdd5199daf0cb7b0fcc8dca941af08492612887 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:18 2010 -0700 sched: Add a PF flag for ksoftirqd identification To account softirq time cleanly in scheduler, we need to identify whether softirq is invoked in ksoftirqd context or softirq at hardirq tail context. Add PF_KSOFTIRQD for that purpose. As all PF flag bits are currently taken, create space by moving one of the infrequently used bits (PF_THREAD_BOUND) down in task_struct to be along with some other state fields. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-4-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit e1e10a265d28273ab8c70be19d43dcbdeead6c5a Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:17 2010 -0700 sched: Consolidate account_system_vtime extern declaration Just a minor cleanup patch that makes things easier to the following patches. No functionality change in this patch. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 75e1056f5c57050415b64cb761a3acc35d91f013 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:16 2010 -0700 sched: Fix softirq time accounting Peter Zijlstra found a bug in the way softirq time is accounted in VIRT_CPU_ACCOUNTING on this thread: http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html The problem is, softirq processing uses local_bh_disable internally. There is no way, later in the flow, to differentiate between whether softirq is being processed or is it just that bh has been disabled. So, a hardirq when bh is disabled results in time being wrongly accounted as softirq. Looking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING as well. As account_system_time() in normal tick based accouting also uses softirq_count, which will be set even when not in softirq with bh disabled. Peter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count for local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq processing. The patch below does that and adds API in_serving_softirq() which returns whether we are currently processing softirq or not. Also changes one of the usages of softirq_count in net/sched/cls_cgroup.c to in_serving_softirq. Looks like many usages of in_softirq really want in_serving_softirq. Those changes can be made individually on a case by case basis. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-2-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 75dd321d79d495a0ee579e6249ebc38ddbb2667f Author: Nikhil Rao Date: Fri Oct 15 13:12:30 2010 -0700 sched: Drop group_capacity to 1 only if local group has extra capacity When SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1 only if the local group has extra capacity. The extra check prevents the case where you always pull from the heaviest group when it is already under-utilized (possible with a large weight task outweighs the tasks on the system). For example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA scheduling domains. Let's say we spawn 15 nice0 tasks and one nice-15 task, and each task is running on one core. In this case, we observe the following events when balancing at the NUMA domain: - find_busiest_group() will always pick the sched group containing the niced task to be the busiest group. - find_busiest_queue() will then always pick one of the cpus running the nice0 task (never picks the cpu with the nice -15 task since weighted_cpuload > imbalance). - The load balancer fails to migrate the task since it is the running task and increments sd->nr_balance_failed. - It repeats the above steps a few more times until sd->nr_balance_failed > 5, at which point it kicks off the active load balancer, wakes up the migration thread and kicks the nice 0 task off the cpu. The load balancer doesn't stop until we kick out all nice 0 tasks from the sched group, leaving you with 3 idle cpus and one cpu running the nice -15 task. When balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child domain (in this case MC) has SD_PREFER_SIBLING set. Subsequent load checks are not relevant because the niced task has a very large weight. In this patch, we add an extra condition to the "if(prefer_sibling)" check in update_sd_lb_stats(). We drop the capacity of a group only if the local group has extra capacity, ie. nr_running < group_capacity. This patch preserves the original intent of the prefer_siblings check (to spread tasks across the system in low utilization scenarios) and fixes the case above. It helps in the following ways: - In low utilization cases (where nr_tasks << nr_cpus), we still drop group_capacity down to 1 if we prefer siblings. - On very busy systems (where nr_tasks >> nr_cpus), sgs.nr_running will most likely be > sgs.group_capacity. - When balancing large weight tasks, if the local group does not have extra capacity, we do not pick the group with the niced task as the busiest group. This prevents failed balances, active migration and the under-utilization described above. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-5-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit fab476228ba37907ad75216d0fd9732ada9c119e Author: Nikhil Rao Date: Fri Oct 15 13:12:29 2010 -0700 sched: Force balancing on newidle balance if local group has capacity This patch forces a load balance on a newly idle cpu when the local group has extra capacity and the busiest group does not have any. It improves system utilization when balancing tasks with a large weight differential. Under certain situations, such as a niced down task (i.e. nice = -15) in the presence of nr_cpus NICE0 tasks, the niced task lands on a sched group and kicks away other tasks because of its large weight. This leads to sub-optimal utilization of the machine. Even though the sched group has capacity, it does not pull tasks because sds.this_load >> sds.max_load, and f_b_g() returns NULL. With this patch, if the local group has extra capacity, we shortcut the checks in f_b_g() and try to pull a task over. A sched group has extra capacity if the group capacity is greater than the number of running tasks in that group. Thanks to Mike Galbraith for discussions leading to this patch and for the insight to reuse SD_NEWIDLE_BALANCE. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-4-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit 2582f0eba54066b5e98ff2b27ef0cfa833b59f54 Author: Nikhil Rao Date: Wed Oct 13 12:09:36 2010 -0700 sched: Set group_imb only a task can be pulled from the busiest cpu When cycling through sched groups to determine the busiest group, set group_imb only if the busiest cpu has more than 1 runnable task. This patch fixes the case where two cpus in a group have one runnable task each, but there is a large weight differential between these two tasks. The load balancer is unable to migrate any task from this group, and hence do not consider this group to be imbalanced. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1286996978-7007-3-git-send-email-ncrao@google.com> [ small code readability edits ] Signed-off-by: Ingo Molnar commit ef8002f6848236de5adc613063ebeabddea8a6fb Author: Nikhil Rao Date: Wed Oct 13 12:09:35 2010 -0700 sched: Do not consider SCHED_IDLE tasks to be cache hot This patch adds a check in task_hot to return if the task has SCHED_IDLE policy. SCHED_IDLE tasks have very low weight, and when run with regular workloads, are typically scheduled many milliseconds apart. There is no need to consider these tasks hot for load balancing. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-2-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit ebf31f502492527e2b6b5e5cf85a4ebc7fc8a52e Author: Peter Zijlstra Date: Sun Oct 17 12:15:00 2010 +0200 jump_label: Add COND_STMT(), reducer wrappery The use of the JUMP_LABEL() construct ends up creating endless silly wrappers, create a higher level construct to reduce this clutter. Signed-off-by: Peter Zijlstra Cc: Jason Baron Cc: Steven Rostedt Cc: Arnaldo Carvalho de Melo Cc: Frederic Weisbecker Cc: Paul Mackerras LKML-Reference: Signed-off-by: Ingo Molnar commit 7e54a5a0b655734326dc78c2b5efc1eb35497bb6 Author: Peter Zijlstra Date: Thu Oct 14 22:32:45 2010 +0200 perf: Optimize sw events Acked-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 82cd6def9806dcb6a325fb6abbc1d61388a15f6a Author: Peter Zijlstra Date: Thu Oct 14 17:57:23 2010 +0200 perf: Use jump_labels to optimize the scheduler hooks Trades a call + conditional + ret for an unconditional jmp. Acked-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.501657727@chello.nl> Signed-off-by: Ingo Molnar commit 8b92538d84e50062560ba33adbaed7887b6e4a42 Author: Peter Zijlstra Date: Thu Oct 14 21:39:02 2010 +0200 jump_label: Add atomic_t interface Add an interface to allow usage of jump_labels with atomic counters. Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker LKML-Reference: <20101014203625.501657727@chello.nl> Signed-off-by: Ingo Molnar commit 3b6e901f839f42afb40f614418df82c08b01320a Author: Peter Zijlstra Date: Thu Oct 14 21:10:38 2010 +0200 jump_label: Use more consistent naming Now that there's still only a few users around, rename things to make them more consistent. Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.448565169@chello.nl> Signed-off-by: Ingo Molnar commit d580ff8699e8811a9af37e9de4dea375401bdeec Author: Peter Zijlstra Date: Thu Oct 14 17:43:23 2010 +0200 perf, hw_breakpoint: Fix crash in hw_breakpoint creation hw_breakpoint creation needs to account stuff per-task to ensure there is always sufficient hardware resources to back these things due to ptrace. With the perf per pmu context changes the event initialization no longer has access to the event context, for the simple reason that we need to first find the pmu (result of initialization) before we can find the context. This makes hw_breakpoints unhappy, because it can no longer do per task accounting, cure this by frobbing a task pointer in the event::hw bits for now... Signed-off-by: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <20101014203625.391543667@chello.nl> Signed-off-by: Ingo Molnar commit c6be5a5cb62592d9d661899a2aa78236eb00ffa5 Author: Peter Zijlstra Date: Thu Oct 14 16:59:46 2010 +0200 perf: Find task before event alloc So that we can pass the task pointer to the event allocation, so that we can use task associated data during event initialization. Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.340789919@chello.nl> Signed-off-by: Ingo Molnar commit e7d0bc047548d76feee6b23f7d3d9da927189a50 Author: Peter Zijlstra Date: Thu Oct 14 16:54:51 2010 +0200 perf: Fix task refcount bugs Currently it looks like find_lively_task_by_vpid() takes a task ref and relies on find_get_context() to drop it. The problem is that perf_event_create_kernel_counter() shouldn't be dropping task refs. Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker Acked-by: Matt Helsley LKML-Reference: <20101014203625.278436085@chello.nl> Signed-off-by: Ingo Molnar commit 74c3337c2fc6389d3a57a622a936036b6db6b2e8 Author: Peter Zijlstra Date: Fri Oct 15 11:40:29 2010 +0200 perf: Fix group moving Matt found we trigger the WARN_ON_ONCE() in perf_group_attach() when we take the move_group path in perf_event_open(). Since we cannot de-construct the group (we rely on it to move the events), we have to simply ignore the double attach. The group state is context invariant and doesn't need changing. Reported-by: Matt Fleming Signed-off-by: Peter Zijlstra LKML-Reference: <1287135757.29097.1368.camel@twins> Signed-off-by: Ingo Molnar commit e360adbe29241a0194e10e20595360dd7b98a2b3 Author: Peter Zijlstra Date: Thu Oct 14 14:01:34 2010 +0800 irq_work: Add generic hardirq context callbacks Provide a mechanism that allows running code in IRQ context. It is most useful for NMI code that needs to interact with the rest of the system -- like wakeup a task to drain buffers. Perf currently has such a mechanism, so extract that and provide it as a generic feature, independent of perf so that others may also benefit. The IRQ context callback is generated through self-IPIs where possible, or on architectures like powerpc the decrementer (the built-in timer facility) is set to generate an interrupt immediately. Architectures that don't have anything like this get to do with a callback from the timer tick. These architectures can call irq_work_run() at the tail of any IRQ handlers that might enqueue such work (like the perf IRQ handler) to avoid undue latencies in processing the work. Signed-off-by: Peter Zijlstra Acked-by: Kyle McMartin Acked-by: Martin Schwidefsky [ various fixes ] Signed-off-by: Huang Ying LKML-Reference: <1287036094.7768.291.camel@yhuang-dev> Signed-off-by: Ingo Molnar commit 8e5fc1a7320baf6076391607515dceb61319b36a Author: Stephane Eranian Date: Fri Oct 15 16:54:01 2010 +0200 perf_events: Fix transaction recovery in group_sched_in() The group_sched_in() function uses a transactional approach to schedule a group of events. In a group, either all events can be scheduled or none are. To schedule each event in, the function calls event_sched_in(). In case of error, event_sched_out() is called on each event in the group. The problem is that event_sched_out() does not completely cancel the effects of event_sched_in(). Furthermore event_sched_out() changes the state of the event as if it had run which is not true is this particular case. Those inconsistencies impact time tracking fields and may lead to events in a group not all reporting the same time_enabled and time_running values. This is demonstrated with the example below: $ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5 1946101 unhalted_core_cycles (32.85% scaling, ena=829181, run=556827) 11423 baclears (32.85% scaling, ena=829181, run=556827) 7671 baclears (0.00% scaling, ena=556827, run=556827) 2250443 unhalted_core_cycles (57.83% scaling, ena=962822, run=405995) 11705 baclears (57.83% scaling, ena=962822, run=405995) 11705 baclears (57.83% scaling, ena=962822, run=405995) Notice that in the first group, the last baclears event does not report the same timings as its siblings. This issue comes from the fact that tstamp_stopped is updated by event_sched_out() as if the event had actually run. To solve the issue, we must ensure that, in case of error, there is no change in the event state whatsoever. That means timings must remain as they were when entering group_sched_in(). To do this we defer updating tstamp_running until we know the transaction succeeded. Therefore, we have split event_sched_in() in two parts separating the update to tstamp_running. Similarly, in case of error, we do not want to update tstamp_stopped. Therefore, we have split event_sched_out() in two parts separating the update to tstamp_stopped. With this patch, we now get the following output: $ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5 2492050 unhalted_core_cycles (71.75% scaling, ena=1093330, run=308841) 11243 baclears (71.75% scaling, ena=1093330, run=308841) 11243 baclears (71.75% scaling, ena=1093330, run=308841) 1852746 unhalted_core_cycles (0.00% scaling, ena=784489, run=784489) 9253 baclears (0.00% scaling, ena=784489, run=784489) 9253 baclears (0.00% scaling, ena=784489, run=784489) Note that the uneven timing between groups is a side effect of the process spending most of its time sleeping, i.e., not enough event rotations (but that's a separate issue). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra LKML-Reference: <4cb86b4c.41e9d80a.44e9.3e19@mx.google.com> Signed-off-by: Ingo Molnar commit ba0cef3d149ce4db293c572bf36ed352b11ce7b9 Author: Stephane Eranian Date: Fri Oct 15 15:15:01 2010 +0200 perf_events: Fix bogus AMD64 generic TLB events PERF_COUNT_HW_CACHE_DTLB:READ:MISS had a bogus umask value of 0 which counts nothing. Needed to be 0x7 (to count all possibilities). PERF_COUNT_HW_CACHE_ITLB:READ:MISS had a bogus umask value of 0 which counts nothing. Needed to be 0x3 (to count all possibilities). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: Robert Richter Cc: # as far back as it applies LKML-Reference: <4cb85478.41e9d80a.44e2.3f00@mx.google.com> Signed-off-by: Ingo Molnar commit c530ccd9a1864a44a7ff35826681229ce9f2357a Author: Stephane Eranian Date: Fri Oct 15 15:26:01 2010 +0200 perf_events: Fix bogus context time tracking You can only call update_context_time() when the context is active, i.e., the thread it is attached to is still running. However, perf_event_read() can be called even when the context is inactive, e.g., user read() the counters. The call to update_context_time() must be conditioned on the status of the context, otherwise, bogus time_enabled, time_running may be returned. Here is an example on AMD64. The task program is an example from libpfm4. The -p prints deltas every 1s. $ task -p -e cpu_clk_unhalted sleep 5 2,266,610 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 5,242,358,071 cpu_clk_unhalted (99.95% scaling, ena=5,000,359,984, run=2,319,270) Whereas if you don't read deltas, e.g., no call to perf_event_read() until the process terminates: $ task -e cpu_clk_unhalted sleep 5 2,497,783 cpu_clk_unhalted (0.00% scaling, ena=2,376,899, run=2,376,899) Notice that time_enable, time_running are bogus in the first example causing bogus scaling. This patch fixes the problem, by conditionally calling update_context_time() in perf_event_read(). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: stable@kernel.org LKML-Reference: <4cb856dc.51edd80a.5ae0.38fb@mx.google.com> Signed-off-by: Ingo Molnar commit 4ba053c04aece1f4734056f21b751eee47ea3fb1 Author: Hitoshi Mitake Date: Wed Oct 13 17:30:26 2010 +0900 lockdep: Check the depth of subclass Current look_up_lock_class() doesn't check the parameter "subclass". This rarely rises problems because the main caller of this function, register_lock_class(), checks it. But register_lock_class() is not the only function which calls look_up_lock_class(). lock_set_class() and its callees also call it. And lock_set_class() doesn't check this parameter. This will rise problems when the the value of subclass is larger than MAX_LOCKDEP_SUBCLASSES. Because the address (used as the key of class) caliculated with too large subclass has a probability to point another key in different lock_class_key. Of course this problem depends on the memory layout and occurs with really low probability. Signed-off-by: Hitoshi Mitake Cc: Dmitry Torokhov Cc: Vojtech Pavlik Cc: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <1286958626-986-1-git-send-email-mitake@dcl.info.waseda.ac.jp> Signed-off-by: Ingo Molnar commit 620162505e5d46bc4494b1761743e4b0b3bf8e16 Author: Hitoshi Mitake Date: Tue Oct 5 18:01:51 2010 +0900 lockdep: Add improved subclass caching Current lockdep_map only caches one class with subclass == 0, and looks up hash table of classes when subclass != 0. It seems that this has no problem because the case of subclass != 0 is rare. But locks of struct rq are acquired with subclass == 1 when task migration is executed. Task migration is high frequent event, so I modified lockdep to cache subclasses. I measured the score of perf bench sched messaging. This patch has slightly but certain (order of milli seconds or 10 milli seconds) effect when lots of tasks are running. I'll show the result in the tail of this description. NR_LOCKDEP_CACHING_CLASSES specifies how many classes can be cached in the instances of lockdep_map. I discussed with Peter Zijlstra in LinuxCon Japan about this approach and he taught me that caching every subclasses(8) is cleary waste of memory. So number of cached classes should be configurable. === Score comparison of benchmarks === # "min" means best score, and "max" means worst score for i in `seq 1 10`; do ./perf bench -f simple sched messaging; done before: min: 0.565000, max: 0.583000, avg: 0.572500 after: min: 0.559000, max: 0.568000, avg: 0.563300 # with more processes for i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done before: min: 2.274000, max: 2.298000, avg: 2.286300 after: min: 2.242000, max: 2.270000, avg: 2.259700 Signed-off-by: Hitoshi Mitake Cc: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <1286269311-28336-2-git-send-email-mitake@dcl.info.waseda.ac.jp> Signed-off-by: Ingo Molnar commit f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62 Merge: 756b032 2b666ca Author: Ingo Molnar Date: Mon Oct 18 18:43:43 2010 +0200 Merge branch 'linus' into core/locking Merge reason: Update to almost-final-.36 Signed-off-by: Ingo Molnar commit 17bdcf949d03306b308c5fb694849cd35f119807 Author: Linus Walleij Date: Mon Oct 11 16:36:51 2010 +0200 sched: Drop all load weight manipulation for RT tasks Load weights are for the CFS, they do not belong in the RT task. This makes all RT scheduling classes leave the CFS weights alone. This fixes a real bug as well: I noticed the following phonomena: a process elevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is indeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight inserted by set_load_weight() remains at 0, giving the task insignificat priority. With this fix, the weight is reset to what the task had before being elevated to SCHED_RR/SCHED_FIFO. Cc: Lennart Poettering Cc: stable@kernel.org Signed-off-by: Linus Walleij Signed-off-by: Peter Zijlstra LKML-Reference: <1286807811-10568-1-git-send-email-linus.walleij@stericsson.com> Signed-off-by: Ingo Molnar commit 34f971f6f7988be4d014eec3e3526bee6d007ffa Author: Peter Zijlstra Date: Wed Sep 22 13:53:15 2010 +0200 sched: Create special class for stop/migrate work In order to separate the stop/migrate work thread from the SCHED_FIFO implementation, create a special class for it that is of higher priority than SCHED_FIFO itself. This currently solves a problem where cpu-hotplug consumes so much cpu-time that the SCHED_FIFO class gets throttled, but has the bandwidth replenishment timer pending on the now dead cpu. It is also required for when we add the planned deadline scheduling class above SCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks. Tested-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <1285165776.2275.1022.camel@laptop> Signed-off-by: Ingo Molnar commit 4924627423d5e286136ad2520f5be536345ae590 Author: Peter Zijlstra Date: Sun Oct 17 21:46:10 2010 +0200 sched: Unindent labels Labels should be on column 0. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 45b0cb8abdbdd425934f6b02dbb3963dd89fef55 Author: Neil Horman Date: Wed Oct 13 16:01:53 2010 +0000 bonding: Re-enable netpoll over bonding With the inclusion of previous fixup patches, netpoll over bonding apears to work reliably with failover conditions. This reverts Gospos previous commit c22d7ac844f1cb9c6a5fd20f89ebadc2feef891b, and allows access again to the netpoll functionality in the bonding driver. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit 3b410a310b48a8e7de3438957635093596ad5ca5 Author: Neil Horman Date: Wed Oct 13 16:01:52 2010 +0000 bonding: Fix netconsole to not deadlock on rmmod Netconsole calls netpoll_cleanup on receipt of a NETDEVICE_UNREGISTER event. The notifier subsystem calls these event handlers with rtnl_lock held, which netpoll_cleanup also takes, resulting in deadlock. Fix this by calling the __netpoll_cleanup interior function instead, and fixing up the additional pointers. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit 990c3d6f9c4115347659fc2b163907c8c832ae44 Author: Neil Horman Date: Wed Oct 13 16:01:51 2010 +0000 bonding: Fix napi poll for bonding driver Usually the netpoll path, when preforming a napi poll can get away with just polling all the napi instances of the configured device. Thats not the case for the bonding driver however, as the napi instances which may wind up getting flagged as needing polling after the poll_controller call don't belong to the bonded device, but rather to the slave devices. Fix this by checking the device in question for the IFF_MASTER flag, if set, we know we need to check the full poll list for this cpu, rather than just the devices napi instance list. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit e843fa50887582c867d8b7995f81fe9c1a076806 Author: Neil Horman Date: Wed Oct 13 16:01:50 2010 +0000 bonding: Fix deadlock in bonding driver resulting from internal locking when using netpoll The monitoring paths in the bonding driver take write locks that are shared by the tx path. If netconsole is in use, these paths can call printk which puts us in the netpoll tx path, which, if netconsole is attached to the bonding driver, result in deadlock (the xmit_lock guards are useless in netpoll_send_skb, as the monitor paths in the bonding driver don't claim the xmit_lock, nor should they). The solution is to use a per cpu flag internal to the driver to indicate when a cpu is holding the lock in a path that might recusrse into the tx path for the driver via netconsole. By checking this flag on transmit, we can defer the sending of the netconsole frames until a later time using the retransmit feature of netpoll_send_skb that is triggered on the return code NETDEV_TX_BUSY. I've tested this and am able to transmit via netconsole while causing failover conditions on the bond slave links. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit c2355e1ab910278a94d487b78590ee3c8eecd08a Author: Neil Horman Date: Wed Oct 13 16:01:49 2010 +0000 bonding: Fix bonding drivers improper modification of netpoll structure The bonding driver currently modifies the netpoll structure in its xmit path while sending frames from netpoll. This is racy, as other cpus can access the netpoll structure in parallel. Since the bonding driver points np->dev to a slave device, other cpus can inadvertently attempt to send data directly to slave devices, leading to improper locking with the bonding master, lost frames, and deadlocks. This patch fixes that up. This patch also removes the real_dev pointer from the netpoll structure as that data is really only used by bonding in the poll_controller, and we can emulate its behavior by check each slave for IS_UP. Signed-off-by: Neil Horman Signed-off-by: David S. Miller commit db181a8ee158fd0ccea2e2670c4f2d36af2814a0 Merge: ee2007d 9c0a788 Author: Grant Likely Date: Mon Oct 18 09:25:09 2010 -0600 Merge branch 'for-spi' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin into spi/next commit c6ce3854f098e1307ecd3bde07903d65fb14a9cb Author: Carolyn Wyborny Date: Fri Oct 15 17:35:31 2010 +0000 e1000e: Fix for offline diag test failure at first call Move link test call to later in the offline sequence, move the restore settings block to afterwards and add another reset to ensure the hardware is in a known state afterwards. Signed-off-by: Carolyn Wyborny Acked-by: Bruce Allan Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit a7714338aa9332e569b38c7643dc4a7bb37a0ff5 Author: Greg Rose Date: Fri Oct 15 17:26:47 2010 +0000 igbvf: Remove unneeded pm_qos* calls Power Management Quality of Service is not supported or used by the VF driver. Signed-off-by: Greg Rose Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 12dcd86b75d571772512676ab301279952efc0b0 Author: Eric Dumazet Date: Fri Oct 15 17:27:10 2010 +0000 igb: fix stats handling There are currently some problems with igb. - On 32bit arches, maintaining 64bit counters without proper synchronization between writers and readers. - Stats updated every two seconds, as reported by Jesper. (Jesper provided a patch for this) - Potential problem between worker thread and ethtool -S This patch uses u64_stats_sync, and convert everything to be 64bit safe, SMP safe, even on 32bit arches. It integrates Jesper idea of providing accurate stats at the time user reads them. Signed-off-by: Eric Dumazet Tested-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 78c89ba121221d9224a5747803d7fffe51cd6e44 Author: Steven Rostedt Date: Tue Oct 5 23:22:19 2010 -0400 tracing: Remove parent recording in latency tracer graph options Even though the parent is recorded with the normal function tracing of the latency tracers (irqsoff and wakeup), the function graph recording is bogus. This is due to the function graph messing with the return stack. The latency tracers pass in as the parent CALLER_ADDR0, which works fine for plain function tracing. But this causes bogus output with the graph tracer: 3) -0 | d.s3. 0.000 us | return_to_handler(); 3) -0 | d.s3. 0.000 us | _raw_spin_unlock_irqrestore(); 3) -0 | d.s3. 0.000 us | return_to_handler(); 3) -0 | d.s3. 0.000 us | trace_hardirqs_on(); The "return_to_handle()" call is the trampoline of the function graph tracer, and is meaningless in this context. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564 Author: Steven Rostedt Date: Tue Oct 5 19:41:43 2010 -0400 tracing: Use one prologue for the preempt irqs off tracer function tracers The preempt and irqsoff tracers have three types of function tracers. Normal function tracer, function graph entry, and function graph return. Each of these use a complex dance to prevent recursion and whether to trace the data or not (depending if interrupts are enabled or not). This patch moves the duplicate code into a single routine, to prevent future mistakes with modifying duplicate complex code. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 542181d3769d001c59cd17573dd4381e87d215f2 Author: Steven Rostedt Date: Tue Oct 5 16:38:49 2010 -0400 tracing: Use one prologue for the wakeup tracer function tracers The wakeup tracer has three types of function tracers. Normal function tracer, function graph entry, and function graph return. Each of these use a complex dance to prevent recursion and whether to trace the data or not (depending on the wake_task variable). This patch moves the duplicate code into a single routine, to prevent future mistakes with modifying duplicate complex code. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 7495a5beaa22f190f4888aa8cbe4827c16575d0a Author: Jiri Olsa Date: Thu Sep 23 14:00:53 2010 +0200 tracing: Graph support for wakeup tracer Add function graph support for wakeup latency tracer. The graph output is enabled by setting the 'display-graph' trace option. Signed-off-by: Jiri Olsa LKML-Reference: <1285243253-7372-4-git-send-email-jolsa@redhat.com> Signed-off-by: Steven Rostedt commit 0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf Author: Jiri Olsa Date: Thu Sep 23 14:00:52 2010 +0200 tracing: Make graph related irqs/preemptsoff functions global Move trace_graph_function() and print_graph_headers_flags() functions to the trace_function_graph.c to be globaly available. Signed-off-by: Jiri Olsa LKML-Reference: <1285243253-7372-3-git-send-email-jolsa@redhat.com> Signed-off-by: Steven Rostedt commit a9d61173dc1cb63e660ae89e874e51ba4fd2f991 Author: Jiri Olsa Date: Fri Sep 24 17:41:02 2010 +0200 tracing: Add proper check for irq_depth routines The check_irq_entry and check_irq_return could be called from graph event context. In such case there's no graph private data allocated. Adding checks to handle this case. Signed-off-by: Jiri Olsa LKML-Reference: <20100924154102.GB1818@jolsa.brq.redhat.com> [ Fixed some grammar in the comments ] Signed-off-by: Steven Rostedt commit 907f27840985fe6a0c62e43cd4702c6e04b4bcc7 Author: matt mooney Date: Mon Sep 27 19:04:53 2010 -0700 tracing/trivial: Remove cast from void* Unnecessary cast from void* in assignment. Signed-off-by: matt mooney Signed-off-by: Steven Rostedt commit dce87b960cf4794141f067d8c8180ccc6716513f Author: amit salecha Date: Mon Oct 18 02:03:42 2010 +0000 netxen: mask correctable error HW workaround: Disable logging of correctable error for some NX3031 based adapter. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 7a9905e64272c8021a8cfaf6015dd0fb8eeeb378 Author: Rajesh Borundia Date: Mon Oct 18 02:03:41 2010 +0000 netxen: fix race in tx stop queue There is race between netif_stop_queue and netif_stopped_queue check.So check once again if buffers are available to avoid race. With above logic we can also get rid of tx lock in process_cmd_ring. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 3666e0b04f092f9d9da8a6d6a3820de6c870407c Author: amit salecha Date: Mon Oct 18 01:47:48 2010 +0000 qlcnic: update ethtool stats Added statistics for Nic Partition supported adapter. These statistics are maintined in device. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 27a954bd560f3e385bbed38fde3051fe718b8d75 Author: Andy Walls Date: Sun Oct 17 15:11:22 2010 +0000 IPv4: route.c: Change checks against 0xffffffff to ipv4_is_lbcast() Change a few checks against the hardcoded broadcast address, 0xffffffff, to ipv4_is_lbcast(). Remove some existing checks using ipv4_is_lbcast() that are now obviously superfluous. Signed-off-by: Andy Walls Signed-off-by: David S. Miller commit 7f9c7e28119cf21ae1a035240da3705647d0d06a Merge: 4af8f24 b476ef0 Author: Russell King Date: Mon Oct 18 15:20:21 2010 +0100 Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel-stable commit a47d60561e111f5009ad0964069cfff77f76dbaa Merge: d8e6271 9c473fc Author: David S. Miller Date: Mon Oct 18 07:11:44 2010 -0700 Merge branch 'can/mcp251x-for-net-next' of git://git.pengutronix.de/git/mkl/linux-2.6 commit d8e62719ea63daf6afde2d2d09fb861c1559711e Author: Dmitry Kravkov Date: Sun Oct 17 23:08:55 2010 +0000 bnx2x: update version to 1.60.00-2 Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 030f3356b64a129a1ab34175491a8175bef98e6e Author: Dmitry Kravkov Date: Sun Oct 17 23:08:53 2010 +0000 bnx2x: remove unnecessary FUNC_FLG_RSS flag and related As suggested by: Joe Perches Although RSS is meaningless when there is a single HW queue we still need it enabled in order to have HW Rx hash generated. Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit c8e4f48a8eb236eb672c6da0731ee01a633844f0 Author: Dmitry Kravkov Date: Sun Oct 17 23:09:30 2010 +0000 bnx2x: Use correct FW constant for header padding the value of the constant is the same, but it's clearer to use original constant provided by HSI Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit adf5f6a18f2cbb215394599981fb48473b526faa Author: Dmitry Kravkov Date: Sun Oct 17 23:10:02 2010 +0000 bnx2x: do not deal with power if no capability Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit e3dba8141b651dd8f560a2fd9513b1d26f447f9d Author: Dmitry Kravkov Date: Sun Oct 17 23:05:09 2010 +0000 bnx2x: remove redundant commands during error handling Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit fe78d2637ad9acc6414e36ce781aadc8c77d560d Author: Vladislav Zolotarov Date: Sun Oct 17 23:02:20 2010 +0000 bnx2x: Optimized the branching in the bnx2x_rx_int() Optimized the branching in the bnx2x_rx_int() based on the fact that FP CQE will always have at least one of START or STOP flags set, so if not both bits are set and START bit is not set, then it's a STOP bit that is set. Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 33027af637da3f69bd17488cc3e68493c9052a7d Author: Andrea Gelmini Date: Sat Oct 16 15:19:22 2010 +0200 GFS2: fixed typo Signed-off-by: Andrea Gelmini Signed-off-by: Steven Whitehouse commit 9c473fc33915ddb14b71a4929c838c22b20a24ce Author: Marc Kleine-Budde Date: Mon Oct 4 12:09:31 2010 +0200 can: mcp251x: optimize 2515, rx int gets cleared automatically Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit beab675cb45f28a4a76780e43fd03e33bc773555 Author: Marc Kleine-Budde Date: Thu Sep 23 21:34:28 2010 +0200 can: mcp251x: define helper functions mcp251x_is_2510, mcp251x_is_2515 Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit f1f8c6cbe6f08f93ac2a4ca19625891d8a82b7f8 Author: Marc Kleine-Budde Date: Mon Oct 18 15:00:18 2010 +0200 can: mcp251x: Don't use pdata->model for chip selection anymore Since commit e446630c960946b5c1762e4eadb618becef599e7, i.e. v2.6.35-rc1, the mcp251x chip model can be selected via the modalias member in the struct spi_board_info. The driver stores the actual model in the struct mcp251x_platform_data. From the driver point of view the platform_data should be read only. Since all in-tree users of the mcp251x have already been converted to the modalias method, this patch moves the "model" member from the struct mcp251x_platform_data to the driver's private data structure. Signed-off-by: Marc Kleine-Budde Cc: Christian Pellegrin Cc: Marc Zyngier commit 138a6c7f4ff56b9886cbb46656ac7f26f990cdb4 Author: SeungChull Suh Date: Sat Oct 2 12:48:12 2010 +0900 ARM: S5P64X0: Bug fix on errors of build with CONFIG_PREEMPT_NONE This patch adds header into the below files for build with CONFIG_PREEMPT_NONE. arch/arm/mach-s5p64x0/cpu.c Signed-off-by: Seung-Chull Suh [kgene.kim@samsung.com: edited title and message] Signed-off-by: Kukjin Kim commit 3d4af5cac77f8d4f7422b1d00cb9e67000f94301 Author: Atul Dahiya Date: Fri Oct 8 21:00:02 2010 +0900 ARM: S5P64X0: Fix GPIO rbank support The patch removes s3c_gpio_lock/unlock to avoid acquiring the lock recursively as lock is already acquired by calling function. Signed-off-by: Atul Dahiya Signed-off-by: Sangbeom Kim [kgene.kim@samsung.com: removed useless variable due to this] Signed-off-by: Kukjin Kim commit d7297612ae53dfaf88b702f89a153d3da52bcd31 Author: Abhilash Kesavan Date: Fri Oct 8 20:55:02 2010 +0900 ARM: S5P64X0: Replace the 6440 system device class definition with 64x0 The s5p64x0_sysclass should be used in place of the obselete s5p6440_sysclass. Signed-off-by: Abhilash Kesavan Signed-off-by: Sangbeom Kim Signed-off-by: Kukjin Kim commit 6c6ad435cae29575ff632d97afedbcc2ce2e3840 Author: Naveen Krishna Ch Date: Fri Oct 8 20:53:08 2010 +0900 ARM: S5P64X0: FIX typo in the ADC device name Fix the touch screen device name from s3c64x0-adc to s3c64xx-adc. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit b7df2a7beb9cbdd1acfd52200e2de76ec18c90a1 Author: Kukjin Kim Date: Wed Sep 1 12:40:16 2010 +0900 ARM: s5p64x0_defconfig: Update for support S5P6440 and S5P6450 This patch updates s5p64x0_defconfig and changes the name from s5p6440_defconfig so that can support S5P6440 and S5P6450 with one kernel. Tested on SMDK6440(S5P6440) and SMDK6450(S5P6450). Signed-off-by: Kukjin Kim commit 2555e663b367b8d555e76023f4de3f6338c28d6c Author: Kukjin Kim Date: Wed Sep 1 15:13:44 2010 +0900 ARM: S5P64X0: Add UART serial support for S5P6450 This patch adds UART serial port support for S5P6450 SoC. The S5P6450 has 6 UARTs, so adds resource of UART4 and UART5. And to fix membase which is in serial/samsung.c is from Ben Dooks. Signed-off-by: Kukjin Kim Cc: Ben Dooks commit 6f315cb5620c1810e59e93fffb1a7f9c793c7213 Author: Kukjin Kim Date: Wed Sep 1 13:03:39 2010 +0900 ARM: S5P64X0: Move SMDK6440 board file and Add SMDK6450 board file This patch moves smdk6440 board file from mach-s5p6440 into the new mach-s5p64x0 directory and adds smdk6450 board file. Signed-off-by: Kukjin Kim commit 5dd33d89f4700990e00731a971754ecb08ab7022 Author: Kukjin Kim Date: Wed Sep 8 16:23:05 2010 +0900 ARM: S5P64X0: Move GPIO support files for merge S5P64X0 This patch moves S5P6440 GPIO support files from mach-s5p6440 into the new mach-s5p64x0 for merge S5P6440 and S5P6450 SocS. NOTE: Not supported S5P6450 GPIO yet. Will be supported soon. Signed-off-by: Kukjin Kim commit 2853a0efc3031dec88b47bbc50b8a6b3fe9e3cac Author: Kukjin Kim Date: Wed Sep 1 13:36:59 2010 +0900 ARM: S5P64X0: Add S5P6450 I2C support This patch adds S5P6450 I2C support in the ARCH_S5P64X0. And moves S5P6440 I2C support files into the mach-s5p64x0 together. Signed-off-by: Kukjin Kim commit f1fee5824cc2f145c2d926939ff88250245a7ac9 Author: Kukjin Kim Date: Wed Sep 8 19:25:44 2010 +0900 ARM: S5P64X0: Move DMA support for S5P64X0 This patch moves DMA support files in the mach-s5p64x0 for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim Cc: Jassi Brar commit e661faa488450786e295ac9b40e89abce8141e92 Author: Kukjin Kim Date: Wed Sep 8 19:21:23 2010 +0900 ARM: S5P64X0: Update Audio support This patch updates Audio and SPI for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim Cc: Jassi Brar commit 8c14482b8a64755322484bea6fc66e8b1fd91fe0 Author: Kukjin Kim Date: Wed Sep 1 13:23:31 2010 +0900 ARM: S5P64X0: Update Timer support This patch updates timer support for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim commit 96f2c00799f9e3c94ac5879d0289376da69bc4a5 Author: Kukjin Kim Date: Wed Sep 1 13:22:17 2010 +0900 ARM: S5P64X0: Update IRQ support This patch updates IRQ support for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim commit 3109e55099cb013f9e1b63d39606dc5d7ecf25bd Author: Kukjin Kim Date: Wed Sep 1 15:35:30 2010 +0900 ARM: S5P64X0: Update Clock for S5P6440 and S5P6450 This patch updates regarding clock files for supporting S5P6440 and S5P6450 with one kernel image. The mach-s5p64x0/clock.c is for common of them and there are specific clock files for each SoCs. Signed-off-by: Kukjin Kim commit a2e0d6249fa866ce7f5a8fe08a4d75511e4701c6 Author: Kukjin Kim Date: Mon Oct 18 18:29:51 2010 +0900 ARM: S5P64X0: Add S5P64X0(S5P6440 and S5P6450) initialization support This patch adds ARCH_S5P64X0 which can support S5P6440 and S5P6450 with one kernel image. So moved some files of mach-s5p6440 into the new ARCH directory mach-s5p64x0. Signed-off-by: Kukjin Kim commit 43f974cdb4ab6d65f849610deb9ef738d62b2e65 Author: Nick Bowler Date: Mon Oct 18 11:22:05 2010 +0200 netfilter: install missing ebtables headers for userspace The ebt_ip6.h and ebt_nflog.h headers are not not known to Kbuild and therefore not installed by make headers_install. Fix that up. Signed-off-by: Nick Bowler Signed-off-by: Patrick McHardy commit d3cd15657516141adce387810be8cb377baf020e Author: Marc Kleine-Budde Date: Tue Sep 28 10:18:34 2010 +0200 can: mcp251x: write intf only when needed This patch introduces a variable "clear_intf" that hold the bits that should be cleared. Only read-modify-write register if "clear_intf" is set. Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit 7e15de3a73899903f33975b1ce57cf59c616d1d9 Author: Sascha Hauer Date: Tue Sep 28 10:00:47 2010 +0200 can: mcp251x: read-modify-write eflag only when needed Use read-modify-write instead of a simple write to change the register contents, to close existing the race window between the original manual read and write. Signed-off-by: Sascha Hauer Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit f3a3ed3115d39463dc6672454bfbeaff46811a37 Author: Sascha Hauer Date: Tue Sep 28 09:53:35 2010 +0200 can: mcp251x: allow to read two registers in one spi transfer This patch bases on work done earlier by David Jander. Signed-off-by: Sascha Hauer Acked-by: David Jander Signed-off-by: Uwe Kleine-König Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit 711e4d6eccd72c57938228b8e0c29cb205527032 Author: Sascha Hauer Date: Thu Sep 30 09:46:00 2010 +0200 can: mcp251x: increase rx_errors on overflow, not only rx_over_errors Signed-off-by: Sascha Hauer Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit 57d3c7b09bd797b8db974557a71df8675a22601b Author: Marc Kleine-Budde Date: Mon Oct 4 10:50:51 2010 +0200 can: mcp251x: fix NOHZ local_softirq_pending 08 warning This patch replaces netif_rx() with netif_rx_ni() which has to be used from the threaded interrupt i.e. process context context. Thanks to Christian Pellegrin for pointing at the right fix: 481a8199142c050b72bff8a1956a49fd0a75bbe0 by Oliver Hartkopp. Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit 76b6717bc6ccb715b04e36efc26566a6313ede5f Author: Randy Dunlap Date: Mon Oct 18 11:13:30 2010 +0200 netfilter: fix kconfig unmet dependency warning Fix netfilter kconfig unmet dependencies warning & spell out "compatible" while there. warning: (IP_NF_TARGET_TTL && NET && INET && NETFILTER && IP_NF_IPTABLES && NETFILTER_ADVANCED || IP6_NF_TARGET_HL && NET && INET && IPV6 && NETFILTER && IP6_NF_IPTABLES && NETFILTER_ADVANCED) selects NETFILTER_XT_TARGET_HL which has unmet direct dependencies ((IP_NF_MANGLE || IP6_NF_MANGLE) && NETFILTER_ADVANCED) Signed-off-by: Randy Dunlap Signed-off-by: Patrick McHardy commit 9756403b16cfeda85efe77e62832a2f6b5752fdf Author: Dan Carpenter Date: Wed Oct 13 09:19:55 2010 +0000 gianfar: fix double lock typo This should be a _restore() instead of a _save(). Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit cdd861d68d27a0d0ebe4e641d20d8cfa5cef405f Author: Dan Carpenter Date: Wed Oct 13 09:18:53 2010 +0000 ns83820: spin_lock_irq() => spin_lock() This is essentially cosmetic. At this point the IRQs are already disabled because we called spin_lock_irq(&dev->rx_info.lock). The real bug here was fixed back in 2006 in 3a10ccebe: "[PATCH] lock validator: fix ns83820.c irq-flags bug". Prior to that patch, it was a "spin_lock_irq is not nestable" type bug. The 2006 patch changes the unlock to not re-enable IRQs, which eliminates the potential deadlock. But this bit was missed. We should change the lock function as well so it balances nicely. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit ccc901ee58cfb090a31216a6eda0f1e9dfc572fa Author: Allan Stephens Date: Thu Oct 14 13:58:26 2010 +0000 tipc: Simplify bearer shutdown logic Optimize processing in TIPC's bearer shutdown code, including: 1. Remove an unnecessary check to see if TIPC bearer's can exist. 2. Don't release spinlocks before calling a media-specific disabling routine, since the routine can't sleep. 3. Make bearer_disable() operate directly on a struct bearer, instead of needlessly taking a name and then mapping that to the struct. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Reviewed-by: Neil Horman Signed-off-by: David S. Miller commit 724829b3ad8e8aeb0aec46de383d35bfa1ad3875 Author: David S. Miller Date: Mon Oct 18 01:06:20 2010 -0700 tipc: Kill tipc_get_mode() completely. It's completely unused and exporting a static symbol makes no sense and breaks the build. Reported-by: Stephen Rothwell Signed-off-by: David S. Miller commit 35dbc0e020c6587f78a6c17693beca73aead7b54 Author: Mike Frysinger Date: Mon Oct 18 03:09:39 2010 -0400 asm-generic/io.h: allow people to override individual funcs For the Blackfin port, we can use much of the asm-generic/io.h header, but we still need to declare some of our own versions of functions. Like the __raw_read* and in/out "string" helpers. So let people do this easily for many of these funcs. Signed-off-by: Mike Frysinger Signed-off-by: Arnd Bergmann commit 9c0a788b4315b83f6138ffa15c56ccf541106e58 Author: Mike Frysinger Date: Mon Oct 18 02:45:22 2010 -0400 spi/bfin_spi: namespace local structs Signed-off-by: Mike Frysinger commit 6f7c17f4f91513247dfec52d6968cd70d5251b38 Author: Michael Hennerich Date: Thu Jul 1 14:34:10 2010 +0000 spi/bfin_spi: init early Some systems using this bus sometimes have very basic devices on them such as regulators. So we need to be loaded even earlier in case the devices are used by things such as early board init code. Therefore register in subsys_initcall(). Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 2e768659df35ea337cb57ea3573c918d31e07894 Author: Bob Liu Date: Fri Sep 17 03:46:22 2010 +0000 spi/bfin_spi: check per-transfer bits_per_word Currently, if the bits_per_word when doing a transfer is not 8bits, we always treat it as 16bits when we should actually be returning an error. Signed-off-by: Bob Liu Signed-off-by: Mike Frysinger commit 4190f6a51f3f9c7c8298202d31b3ead9381c33f1 Author: Barry Song Date: Tue Apr 6 03:36:24 2010 +0000 spi/bfin_spi: warn when CS is driven by hardware (CPHA=0) When the hardware is controlling the CS, there are some SPI options we are unable to support. So issue a warning in the hopes that the user will change to a SPI mode where we can support things sanely. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit e72dcde72c712708e2145ab0ecff539ff4a4c7fb Author: Rob Maris Date: Tue Apr 6 04:17:08 2010 +0000 spi/bfin_spi: cs should be always low when a new transfer begins Signed-off-by: Rob Maris Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit e35954053c1a2ede37f6ed1b28d626dba43dc79d Author: Rob Maris Date: Tue Apr 6 04:12:00 2010 +0000 spi/bfin_spi: fix typo in comment Signed-off-by: Rob Maris Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 7715aad4ef5cccb318942a0c47aef8a39d6130d7 Author: Mike Frysinger Date: Thu Feb 25 10:00:55 2010 +0000 spi/bfin_spi: reject unsupported SPI modes Who knows what people will try! Signed-off-by: Mike Frysinger commit a75bd65b2189d711938d0fa7d9a79df47ddd66fa Author: Barry Song Date: Fri Jan 22 10:07:30 2010 +0000 spi/bfin_spi: use dma_disable_irq_nosync() in irq handler Using disable_irq() on the IRQ whose handler we are currently executing in can easily lead to a hang. So use the nosync variant here. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 5e8592dca303fb429d1641c205fe509f4b781ca2 Author: Mike Frysinger Date: Fri Dec 18 18:00:10 2009 +0000 spi/bfin_spi: combine duplicate SPI_CTL read/write logic While combining things, also switch to the proper SPI bit define names. This lets us punt the rarely used SPI defines. Signed-off-by: Mike Frysinger commit 5b47bcd48b3bd53c86040321de0d348aadebed87 Author: Mike Frysinger Date: Fri Dec 18 17:43:31 2009 +0000 spi/bfin_spi: reset ctl_reg bits when setup is run again on a device During runtime, the spi setup function may be called multiple times on the same device in order to reconfigure some settings on the fly. When this happens, we need to reset the ctl_reg bits so that changing the mode works as expected. Reported-by: Andy Getzendanner Signed-off-by: Mike Frysinger commit 033f44bd0ebca1809e8274237a64263d909f01a7 Author: Mike Frysinger Date: Fri Dec 18 17:38:04 2009 +0000 spi/bfin_spi: push all size checks into the transfer function This reduces duplication between the setup/transfer functions and keeps values cached during setup from overriding values changed on a transfer basis (like bits_per_word). Signed-off-by: Mike Frysinger commit 7370ed6b91c37d7022a89a820b0fcd3156fa87fc Author: Yi Li Date: Mon Dec 7 08:07:01 2009 +0000 spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler Using disable_irq() on the IRQ whose handler we are currently executing in can easily lead to a hang. So use the nosync variant here. Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit 9677b0de10433d31e05864dfb4bf33d0c27f752a Author: Barry Song Date: Mon Nov 30 03:49:41 2009 +0000 spi/bfin_spi: sync hardware state before reprogramming everything Sometimes under load, the Blackfin core is able to send SPI register updates out before the controller is actually disabled. So when we go to reprogram the entire state (to switch to a different slave), make sure we sync after disabling the controller. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit b052fd0a44354c655eb98fd715ef52857631dfef Author: Barry Song Date: Wed Nov 18 09:43:21 2009 +0000 spi/bfin_spi: save/restore state when suspending/resuming We can't rely on the SPI_CTL/SPI_FLG registers retaining their state when suspending, so save/restore their entire values. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit d3cc71f71ae13596cb988e16bfa2b15f09fb7347 Author: Barry Song Date: Tue Nov 17 09:45:59 2009 +0000 spi/bfin_spi: redo GPIO CS handling The common SPI layers take care of detecting CS conflicts and preventing two devices from claiming the same CS. This causes problems for the GPIO CS support we currently have as we are using CS0 to mean "GPIO CS". But if we have multiple devices using a GPIO CS, the common SPI layers see multiple devices using the virtual "CS0" and reject any such attempts. To make both work, we introduce an offset define. This represents the max number of hardware CS values that the SPI peripheral supports. If the CS is below this limit, we know we can use the hardware CS. If it's above, we treat it as a GPIO CS. This keeps the CS unique as seen by the common code and prevents conflicts. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 0d2c6de2255cb299fdd77d4543738adee45f4f3f Author: Mike Frysinger Date: Thu Oct 15 04:13:29 2009 +0000 Blackfin: SPI: expand SPI bitmasks Expand the BIT_CTL defines to use the naming convention of the hardware, and expand the masks to cover all documented bits. Signed-off-by: Mike Frysinger commit 90008a641dd832cc2e2c4d21b7da94de91e9d0a4 Author: Mike Frysinger Date: Thu Oct 15 04:13:29 2009 +0000 spi/bfin_spi: use the SPI namespaced bit names This lets us push the short SPI MMR bit names out of the global namespace. Signed-off-by: Mike Frysinger commit 2a045131db69c207b9e3f9614b2c9b0f2e82bcb7 Author: Mike Frysinger Date: Thu Sep 24 01:28:54 2009 +0000 spi/bfin_spi: drop extra memory we don't need The driver that we based ours on uses a little extra memory behind the normal driver state, but we don't. So drop this useless bit of memory. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit b9f139a7a6a8b24e61ad94c3334eb26f34a4cb63 Author: Mike Frysinger Date: Thu Sep 24 01:27:47 2009 +0000 spi/bfin_spi: convert struct names to something more logical The current structure names are a bit confusing as to what they represent, so use better names. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 9c4542c7a3082bf74f00145355ef407ac82c0b3f Author: Mike Frysinger Date: Thu Sep 24 01:04:04 2009 +0000 spi/bfin_spi: convert read/write/duplex funcs to a dedicated ops structure Rather than having to look up the same 3 sets of functions at the same time, just use an ops structure so we only need to set one pointer. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit f4f50c3ff7815d83dcbb19341f35db2f408ac4f8 Author: Mike Frysinger Date: Thu Sep 24 00:41:49 2009 +0000 spi/bfin_spi: convert queue run state to true/false No point in creating our own version of true/false defines when there is already a standard stdbool available to us. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit ab09e0406ffd42d26fc9a6dcbb626f9eb1da9160 Author: Mike Frysinger Date: Wed Sep 23 23:32:34 2009 +0000 spi/bfin_spi: fix up some unused/misleading comments Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 5cc0159a5779f297d1b987d5f6d0feb6dc36a27a Author: Mike Frysinger Date: Wed Sep 23 23:24:59 2009 +0000 spi/bfin_spi: punt useless null read/write funcs The chip ops should always be initialized, so having null fallback functions are useless. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 201bbc6fd84c67b4021f454d3e4c30d5cd77f702 Author: Mike Frysinger Date: Wed Sep 23 20:56:10 2009 +0000 spi/bfin_spi: drop custom cs_change_per_word support As David points out, the cs_change_per_word option isn't standard, nor is anyone actually using it. So punt all of the dead code considering it makes up ~10% of the code size. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 8221610e9990e7ee542a4e508d278302af8a9e75 Author: Barry Song Date: Wed Jun 17 10:10:53 2009 +0000 spi/bfin_spi: fix CS handling The CS helper functions were toggling both the Flag Enable and the Flag Value bits, but the Flag Value bit is ignored if the corresponding Flag Enable bit is cleared. So under high speed transactions, the CS sometimes would not toggle properly. Since it makes no sense to toggle the Flag Enable bit dynamically when we actually want to control the Flag Value, do this when setting up the device and then only handle toggling of the CS value during runtime. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit f6a6d96685be6e784849d067b44acb831f595417 Author: Yi Li Date: Wed Jun 3 09:46:22 2009 +0000 spi/bfin_spi: utilize the SPI interrupt in PIO mode The current behavior in PIO mode is to poll the SPI status registers which can obviously lead to higher latencies when doing a lot of SPI traffic. There is a SPI interrupt which can be used instead to signal individual completion of transactions. Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit bb8beecd98de45f821a3360e0b061fc1f8da947c Author: Wolfgang Muees Date: Fri May 22 01:11:02 2009 +0000 spi/bfin_spi: force sane master-mode state at boot We should make sure the SPI controller is in a sane state in case the boot loader left it in a crappy state. Such as DMA pending which causes interrupts to fire on us. When setting a sane initial state, do not default to slave mode. If we do, then the SPI peripheral may implicitly take over the SPISS pin which other things might be using. For example, the BF533-STAMP uses this pin as a GPIO to control switching between ethernet and flash. If the SPI peripheral controls the output state instead, the ethernet is no longer accessible. URL: http://blackfin.uclinux.org/gf/tracker/5630 Signed-off-by: Wolfgang Muees Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 60d0071b609ecb0aebe12aaedf34fe552da12c5b Author: Sonic Zhang Date: Mon May 18 10:01:16 2009 +0000 spi/bfin_spi: work around anomaly 05000119 Anomaly 05000119 states that the DMA_RUN bit with peripherals isn't reliable. However, the way the driver is currently written (DMA IRQ callback), we don't need the polling in the first place, so drop it. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit ac01e97d644da8e947ffa1bde5083290fe2e36e7 Author: Daniel Mack Date: Wed Mar 25 00:18:35 2009 +0000 spi/bfin_spi: fix resources leakage Re-order setup() a bit so we don't leak memory/dma/gpio resources upon errors. Also make sure we don't call kfree() twice on the same object. Signed-off-by: Daniel Mack Signed-off-by: Bryan Wu Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit e24dcbef93dbbf529fbedfc6ce8ab22d2cef35f0 Author: Tejun Heo Date: Mon Oct 18 08:33:02 2010 +0200 shpchp: update workqueue usage * Rename shpchp_wq to shpchp_ordered_wq and add non-ordered shpchp_wq which is used instead of the system workqueue. This is to remove the use of flush_scheduled_work() which is deprecated and scheduled for removal. * With cmwq in place, there's no point in creating workqueues lazily. Create both shpchp_wq and shpchp_ordered_wq upfront. * Include workqueue.h from shpchp.h. Signed-off-by: Tejun Heo Acked-by: Jesse Barnes commit a827ea307b147aeb050803433b3f6842582c6ced Author: Tejun Heo Date: Mon Oct 18 08:31:02 2010 +0200 pciehp: update workqueue usage * Rename pciehp_wq to pciehp_ordered_wq and add non-ordered pciehp_wq which is used instead of the system workqueue. This is to remove the use of flush_scheduled_work() which is deprecated and scheduled for removal. * With cmwq in place, there's no point in creating workqueues lazily. Create both pciehp_wq and pciehp_ordered_wq upfront. * Include workqueue.h from pciehp.h. Signed-off-by: Tejun Heo Acked-by: Jesse Barnes commit 49b7a491b797305a0dc373e7f7a5d2a87955c819 Author: Kukjin Kim Date: Tue Sep 7 15:47:18 2010 +0900 ARM: S5P64X0: Update Kconfig and Makefile This patch updates the Kconfig and Makefile for the S5P6440 and S5P6450 machines. It also updates arch/arm/ Kconfig and Makefile to include for support ARCH_S5P64X0 with one kernel image. Signed-off-by: Kukjin Kim commit 19a2c06548db1fa69c40be5bf3ad2095d6119871 Author: Kukjin Kim Date: Tue Aug 31 16:30:51 2010 +0900 ARM: S5P: Moves initial map for merging S5P64X0 This patch moves some initial maps from plat-s5p to machine, so that can merge mach-s5p6440 and mach-s5p6450. Signed-off-by: Kukjin Kim commit 13904fba37aa00867dee0b4fe13df92fed1120f9 Author: Kukjin Kim Date: Fri Aug 27 13:56:54 2010 +0900 ARM: S5P: Move OneNAND device definitions in plat-s5p This patch moves OneNAND device definitions from mach-s5pv210 to plat-s5p so that can support it commonly. Note: S5PC110 and S5PC210 have same OneNAND driver. Signed-off-by: Kukjin Kim Cc: Kyungmin Park commit b33879aa834ebe03ced3dca4e3b822bd8894a474 Author: Jeff Layton Date: Fri Oct 15 15:34:04 2010 -0400 cifs: move cifsFileInfo_put to file.c ...and make it non-inlined in preparation for the move of most of cifs_close to it. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Signed-off-by: Steve French commit 4477288a103631980750c86547d1fd54bfd2ba7d Author: Jeff Layton Date: Fri Oct 15 15:34:03 2010 -0400 cifs: convert GlobalSMBSeslock from a rwlock to regular spinlock Convert this lock to a regular spinlock A rwlock_t offers little value here. It's more expensive than a regular spinlock unless you have a fairly large section of code that runs under the read lock and can benefit from the concurrency. Additionally, we need to ensure that the refcounting for files isn't racy and to do that we need to lock areas that can increment it for write. That means that the areas that can actually use a read_lock are very few and relatively infrequently used. While we're at it, change the name to something easier to type, and fix a bug in find_writable_file. cifsFileInfo_put can sleep and shouldn't be called while holding the lock. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Signed-off-by: Steve French commit 7a16f1961a5c61d1f60d9e0d3d171cf7793fb5cb Author: Steve French Date: Mon Oct 18 01:09:48 2010 +0000 [CIFS] Fix minor checkpatch warning and update cifs version Signed-off-by: Steve French commit 15ecb436c00fcb13b6dc32bdcbb9f75fc9b7613e Author: Jeff Layton Date: Fri Oct 15 15:34:02 2010 -0400 cifs: move cifs_new_fileinfo to file.c It's currently in dir.c which makes little sense... Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit 2e396b83f6087b78dac5a18d6d0cf9f8426a00b3 Author: Jeff Layton Date: Fri Oct 15 15:34:01 2010 -0400 cifs: eliminate pfile pointer from cifsFileInfo All the remaining users of cifsFileInfo->pfile just use it to get at the f_flags/f_mode. Now that we store that separately in the cifsFileInfo, there's no need to consult the pfile at all from a cifsFileInfo pointer. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit 7da4b49a0ec481239d9cd51f7053aa8e4e191fa7 Author: Jeff Layton Date: Fri Oct 15 15:34:00 2010 -0400 cifs: cifs_write argument change and cleanup Have cifs_write take a cifsFileInfo pointer instead of a filp. Since cifsFileInfo holds references on the dentry, and that holds one to the inode, we can eliminate some unneeded NULL pointer checks. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit 15886177e412db00aa86155fe72608c4ebf5a08f Author: Jeff Layton Date: Fri Oct 15 15:33:59 2010 -0400 cifs: clean up cifs_reopen_file Add a f_flags field that holds the f_flags field from the filp. We'll need this info in case the filp ever goes away before the cifsFileInfo does. Have cifs_reopen_file use that value instead of filp->f_flags too and have it take a cifsFileInfo arg instead of a filp. While we're at it, get rid of some bogus cargo-cult NULL pointer checks in that function and reduce the level of indentation. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit abfe1eedd682ea0f20e7035445982e6d371a2024 Author: Jeff Layton Date: Fri Oct 15 15:33:58 2010 -0400 cifs: eliminate the inode argument from cifs_new_fileinfo It already takes a file pointer. The inode associated with that had damn well better be the same one we're passing in anyway. Thus, there's no need for a separate argument here. Also, get rid of the bogus check for a null pCifsInode pointer. The CIFS_I macro uses container_of(), and that will virtually never return a NULL pointer anyway. Finally, move the setting of the canCache* flags outside of the lock. Other places in the code don't hold that lock when setting it, so I assume it's not really needed here either. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit f6a53460e2a105904deeada737b3f878d78517b3 Author: Jeff Layton Date: Fri Oct 15 15:33:57 2010 -0400 cifs: eliminate oflags option from cifs_new_fileinfo Eliminate the poor, misunderstood "oflags" option from cifs_new_fileinfo. The callers mostly pass in the filp->f_flags here. That's not correct however since we're checking that value for the presence of FMODE_READ. Luckily that only affects how the f_list is ordered. What it really wants here is the file->f_mode. Just use that field from the filp to determine it. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Signed-off-by: Steve French commit 608712fe8609492a8670638ea86b97fafe49ebba Author: Jeff Layton Date: Fri Oct 15 15:33:56 2010 -0400 cifs: fix flags handling in cifs_posix_open The way flags are passed and converted for cifs_posix_open is rather non-sensical. Some callers call cifs_posix_convert_flags on the flags before they pass them to cifs_posix_open, whereas some don't. Two flag conversion steps is just confusing though. Change the function instead to clearly expect input in f_flags format, and fix the callers to pass that in. Then, have cifs_posix_open call cifs_convert_posix_flags to do the conversion. Move cifs_posix_open to file.c as well so we can keep cifs_convert_posix_flags as a static function. Fix it also to not ignore O_CREAT, O_EXCL and O_TRUNC, and instead have cifs_reopen_file mask those bits off before calling cifs_posix_open. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Signed-off-by: Steve French commit d793fe8caa3911e6a1e826b45d4ee00d250cdec8 Author: Nathan Holstein Date: Fri Oct 15 11:54:02 2010 -0400 Bluetooth: fix oops in l2cap_connect_req In error cases when the ACL is insecure or we fail to allocate a new struct sock, we jump to the "response" label. If so, "sk" will be null and the kernel crashes. Signed-off-by: Nathan Holstein Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 7c1a96a9966efc2eb33d1021569c5ef6ae6f5ecb Author: Matt Carlson Date: Thu Oct 14 10:37:45 2010 +0000 tg3: Update version to 3.115 This patch updates the tg3 version to 3.115. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 64c2218266996b562a8e940a95a887fc432daced Author: Matt Carlson Date: Thu Oct 14 10:37:44 2010 +0000 tg3: Report invalid link from tg3_get_settings() Currently the tg3 driver leaves the speed and duplex fields uninitialized in tg3_get_settings() if the device is not up. This can lead to some strange deductions in certain versions of ethtool. When the device is up and the link is down, the driver reports SPEED_INVALID and DUPLEX_INVALID for these fields. This patch makes the presentation consistent by returning SPEED_INVALID and DUPLEX_INVALID when the device has not been brought up as well. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 4803572815feea2dca9485a343a8556c9037e36e Author: Matt Carlson Date: Thu Oct 14 10:37:43 2010 +0000 tg3: Don't allocate jumbo ring for 5780 class devs The 5714, 5715, and 5780 devices do not have a separate rx jumbo producer ring. This patch changes the code so that resources are not allocated for it. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit f94e290eba2f98e8f759d273d9d04e8487fb4b6b Author: Matt Carlson Date: Thu Oct 14 10:37:42 2010 +0000 tg3: Cleanup tg3_alloc_rx_skb() src_map is no longer used in tg3_alloc_rx_skb(). Remove it. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 52b02d04c801fff51ca49ad033210846d1713253 Author: Matt Carlson Date: Thu Oct 14 10:37:41 2010 +0000 tg3: Add EEE support This patch adds Energy Efficient Ethernet (EEE) support for the 5718 device ID and the 57765 B0 asic revision. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit ddfc87bfd16f370904c6ff7d23738335dd68d0ce Author: Matt Carlson Date: Thu Oct 14 10:37:40 2010 +0000 tg3: Add clause 45 register accessor methods This patch adds clause 45 register access methods. They will be used in the following patch. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 3d37728bc55994fdf2888f6c872bdeea03a84cc2 Author: Matt Carlson Date: Thu Oct 14 10:37:39 2010 +0000 tg3: Disable unused transmit rings This patch allows the driver to disable the additional transmit rings available on the 5717 and 5719 devices. This is not strictly necessary, but is done anyways for correctness. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit bba226acf4d13586ce47cf8376db33bed7bc0bd6 Author: Matt Carlson Date: Thu Oct 14 10:37:38 2010 +0000 tg3: Add support for selfboot format 1 v6 5718 B0 and 5719 devices will use a new selfboot firmware format. This patch adds code to detect the new format so that bootcode versions get reported correctly. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 19f572565ef66a0439574fd2299a7c804147e133 Author: Eric Dumazet Date: Thu Oct 14 20:56:39 2010 +0000 fib_hash: RCU conversion phase 2 Get rid of fib_hash_lock rwlock. The fn_zone hash table resize is the noticeable part of this patch. I added a seqlock per fn_zone, so that readers can restart their lookup in the (very rare) case a writer expanded the hash table. Add rcu heads in fib_alias and fib_node, use call_rcu() to defer their freeing, and use appropriate _rcu list manipulations. Stress test (160.000.000 udp frames sent, IP route cache disabled to mimic DDOS attack, FIB_HASH) Before: real 0m41.191s user 0m13.137s sys 8m55.241s After: real 0m38.091s user 0m13.189s sys 7m53.018s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 117a8cdea3647e8e11fac10d14eafefc20f9bda5 Author: Eric Dumazet Date: Thu Oct 14 20:53:34 2010 +0000 fib_hash: RCU conversion phase 1 First step for RCU conversion of fib_hash : struct fn_zone are created and never deleted. Very classic conversion, using rcu_assign_pointer(), rcu_dereference() and rtnl_dereference() verbs. __rcu markers on fz_next and fn_zone_list They are created under RTNL, we dont need fib_hash_lock anymore in fn_new_zone(). Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9bef83edfba72ba58b42c14fb046da2199574bc0 Author: Eric Dumazet Date: Thu Oct 14 20:53:04 2010 +0000 fib_hash: embed initial hash table in fn_zone While looking for false sharing problems, I noticed sizeof(struct fn_zone) was small (28 bytes) and possibly sharing a cache line with an often written kernel structure. Most of the time, fn_zone uses its initial hash table of 16 slots. We can avoid the false sharing problem by embedding this initial hash table in fn_zone itself, so that sizeof(fn_zone) > L1_CACHE_BYTES We did a similar optimization in commit a6501e080c (Reduce memory needs and speedup lookups) Add a fz_revorder field to speedup fn_hash() a bit. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7fc4463309faa087f5e41569a987d43b1d71b982 Author: Joe Perches Date: Thu Oct 14 09:55:50 2010 +0000 drivers/net/pch_gbe: Use DEFINE_PCI_DEVICE_TABLE Use the standard macro to put this table in __devinitconst. Compiled, untested. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 8e602ce2980fd6941dc0d3dda12e5095e8206f34 Author: Eric Dumazet Date: Thu Oct 14 05:56:18 2010 +0000 netns: reorder fields in struct net In a network bench, I noticed an unfortunate false sharing between 'loopback_dev' and 'count' fields in "struct net". 'count' is written each time a socket is created or destroyed, while loopback_dev might be often read in routing code. Move loopback_dev in a read mostly section of "struct net" Note: struct netns_xfrm is cache line aligned on SMP. (It contains a "struct dst_ops") Move it at the end to avoid holes, and reduce sizeof(struct net) by 128 bytes on ia32. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit c60ce4e265404ca42ba860401f4b0f1e97332a67 Author: Ilpo JĂ€rvinen Date: Thu Oct 14 01:52:09 2010 +0000 tcp: use correct counters in CA_CWR state too As CWR is stronger than CA_Disorder state, we can miscount SACK/Reno failure into other timeouts. Not a bad problem as it can happen only due to ECN, FRTO detecting spurious RTO or xmit error which are the only callers of tcp_enter_cwr. And even then losses and RTO must still follow thereafter to actually end up into the relevant code paths. Compile tested. Signed-off-by: Ilpo JĂ€rvinen Signed-off-by: David S. Miller commit 1fdb936101637c91819efea47e921bb592e07e34 Author: Ilpo JĂ€rvinen Date: Thu Oct 14 01:42:30 2010 +0000 tcp: sack lost marking fixes When only fast rexmit should be done, tcp_mark_head_lost marks L too far. Also, sacked_upto below 1 is perfectly valid number, the packets == 0 then needs to be trapped elsewhere. Signed-off-by: Ilpo JĂ€rvinen Signed-off-by: David S. Miller commit f3e85df845a5da60fc461cf49537435b1d07cf6d Author: Giuseppe Cavallaro Date: Sun Oct 17 13:43:56 2010 -0700 stmmac: remove ifdef NETIF_F_TSO from stmmac_ethtool.c Signed-off-by: Giuseppe Cavallaro Reported-by: Armando Visconti Signed-off-by: David S. Miller commit ed440e82fee9652715a8145ffee8f56396017d9a Author: Harvey Harrison Date: Wed Oct 13 18:59:13 2010 +0000 niu: introduce temp variables to avoid sparse warnings when swapping in-situ Suppress a large block of warnings like: drivers/net/niu.c:7094:38: warning: incorrect type in assignment (different base types) drivers/net/niu.c:7094:38: expected restricted __be32 [usertype] ip4src drivers/net/niu.c:7094:38: got unsigned long long drivers/net/niu.c:7104:17: warning: cast from restricted __be32 ... Signed-off-by: Harvey Harrison Signed-off-by: David S. Miller commit 7d08ae3c9205b559f90c3d7a3abba3c6479673c7 Author: Artem Bityutskiy Date: Sun Oct 17 15:50:19 2010 +0300 UBIFS: add a commentary about log recovery Add a commentary which elaborates that 'ubifs_recover_log_leb()' recovers only the last log LEB, not any. Also remove some unneeded newlines. Signed-off-by: Artem Bityutskiy commit 7bf4a5ddc9fbff52855cad8d4d74bf5344fe8093 Author: Tejun Heo Date: Sun Oct 17 11:25:03 2010 +0200 isdn/eicon: don't call flush_scheduled_work() from diva_os_remove_soft_isr() diva doesn't use workqueue and there is no reason to flush the system workqueue from diva_os_remove_soft_isr(). Remove it. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Acked-by: Armin Schindler commit e1f60b292ffd61151403327aa19ff7a1871820bd Author: Nishanth Menon Date: Wed Oct 13 00:13:10 2010 +0200 PM: Introduce library for device-specific OPPs (v7) SoCs have a standard set of tuples consisting of frequency and voltage pairs that the device will support per voltage domain. These are called Operating Performance Points or OPPs. The actual definitions of OPP varies over silicon versions. For a specific domain, we can have a set of {frequency, voltage} pairs. As the kernel boots and more information is available, a default set of these are activated based on the precise nature of device. Further on operation, based on conditions prevailing in the system (such as temperature), some OPP availability may be temporarily controlled by the SoC frameworks. To implement an OPP, some sort of power management support is necessary hence this library depends on CONFIG_PM. Contributions include: Sanjeev Premi for the initial concept: http://patchwork.kernel.org/patch/50998/ Kevin Hilman for converting original design to device-based. Kevin Hilman and Paul Walmsey for cleaning up many of the function abstractions, improvements and data structure handling. Romit Dasgupta for using enums instead of opp pointers. Thara Gopinath, Eduardo Valentin and Vishwanath BS for fixes and cleanups. Linus Walleij for recommending this layer be made generic for usage in other architectures beyond OMAP and ARM. Mark Brown, Andrew Morton, Rafael J. Wysocki, Paul E. McKenney for valuable improvements. Discussions and comments from: http://marc.info/?l=linux-omap&m=126033945313269&w=2 http://marc.info/?l=linux-omap&m=125482970102327&w=2 http://marc.info/?t=125809247500002&r=1&w=2 http://marc.info/?l=linux-omap&m=126025973426007&w=2 http://marc.info/?t=128152609200064&r=1&w=2 http://marc.info/?t=128468723000002&r=1&w=2 incorporated. v1: http://marc.info/?t=128468723000002&r=1&w=2 Signed-off-by: Nishanth Menon Signed-off-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki commit d33ac60beaf2c7dee5cd90aba7c1eb385dd70937 Author: James Hogan Date: Tue Oct 12 00:00:25 2010 +0200 PM: Add sysfs attr for rechecking dev hash from PM trace If the device which fails to resume is part of a loadable kernel module it won't be checked at startup against the magic number stored in the RTC. Add a read-only sysfs attribute /sys/power/pm_trace_dev_match which contains a list of newline separated devices (usually just the one) which currently match the last magic number. This allows the device which is failing to resume to be found after the modules are loaded again. Signed-off-by: James Hogan Signed-off-by: Rafael J. Wysocki commit 2ac21c6bc4249ee6d922f18dbec7266377592c32 Author: James Hogan Date: Mon Oct 11 23:59:58 2010 +0200 PM: Lock PM device list mutex in show_dev_hash() Lock the PM device list mutex using device_pm_lock() and device_pm_unlock() around the list iteration in show_dev_hash(). show_dev_hash() was reverse iterating dpm_list without first locking the mutex that the functions in drivers/base/power/main.c lock. I assume this was unintentional since there is no comment suggesting why the lock might not be necessary. Signed-off-by: James Hogan Signed-off-by: Rafael J. Wysocki commit f71648d73c1650b8b4aceb3856bebbde6daa3b86 Author: Rafael J. Wysocki Date: Mon Oct 11 01:02:27 2010 +0200 PM / Runtime: Remove idle notification after failing suspend If runtime suspend of a device fails returning -EAGAIN or -EBUSY, which means that it's safe to try to suspend it again, the PM core runs the runtime idle helper function for it. Unfortunately this may lead to problems, for example for PCI devices whose drivers don't implement the ->runtime_idle() callback, because in that case the PCI bus type's ->runtime_idle() always calls pm_runtime_suspend() for the given device. Then, if there's an automatic idle notification after the driver's ->runtime_suspend() returning -EAGAIN or -EBUSY, it will make the suspend happen again possibly causing a busy loop to appear. To avoid that, remove the idle notification after failing runtime suspend of a device altogether and let the callers of pm_runtime_suspend() repeat the operation if need be. Signed-off-by: Rafael J. Wysocki Acked-by: Alan Stern commit 3624eb04c24861ab296842414f9752a393e68372 Author: Rafael J. Wysocki Date: Mon Oct 4 22:08:12 2010 +0200 PM / Hibernate: Modify signature used to mark swap Since we are adding compression to the kernel's hibernate code, change signature used by it to mark swap spaces, so that earlier kernels don't attempt to restore compressed images they cannot handle. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek commit 71c63122c4609a917f14a79c32067a68909fc487 Author: Rafael J. Wysocki Date: Mon Oct 4 22:08:01 2010 +0200 PM / Runtime: Reduce code duplication in core helper functions Reduce code duplication in rpm_idle(), rpm_suspend() and rpm_resume() by using local pointers to store callback addresses and moving some duplicated code into a separate function. Signed-off-by: Rafael J. Wysocki Reviewed-by: Alan Stern commit dbeeec5fe868f2e2e92fe94daa2c5a047240fdc4 Author: Rafael J. Wysocki Date: Mon Oct 4 22:07:32 2010 +0200 PM: Allow wakeup events to abort freezing of tasks If there is a wakeup event during the freezing of tasks, suspend or hibernation will fail anyway. Since try_to_freeze_tasks() can take up to 20 seconds to complete or fail, aborting it as soon as a wakeup event is detected improves the worst case wakeup latency. Based on a patch from Arve HjĂžnnevĂ„g. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek commit 5fc62aad4e7779c2f04691e48b351d08c050c1f1 Author: Ming Lei Date: Wed Sep 29 00:12:22 2010 +0200 PM: runtime: add missed pm_request_autosuspend The patch "PM / Runtime: Implement autosuspend support" introduces "autosuspend" facility for runtime PM, but misses helper function of pm_request_autosuspend, so add it. Signed-off-by: Ming Lei Signed-off-by: Rafael J. Wysocki commit d0941ead3fdd31aafff992d211bcefdbff1eaedb Author: Rafael J. Wysocki Date: Tue Sep 28 23:31:22 2010 +0200 PM / Hibernate: Make some boot messages look less scary The hibernate resume code checks if there is an image to resume from on every boot and, if the kernel is built with CONFIG_PM_DEBUG set and the image is not present, it prints some scary messages suggesting there was a boot error of some sort. Apparently, some users are confused by them, so make them look less scary and adjust the other hibernate resume debug messages to match them. Signed-off-by: Rafael J. Wysocki commit 15bcb91d7e607d8a2e060f01f7784a7454668da4 Author: Alan Stern Date: Sat Sep 25 23:35:21 2010 +0200 PM / Runtime: Implement autosuspend support This patch (as1427) implements the "autosuspend" facility for runtime PM. A few new fields are added to the dev_pm_info structure and several new PM helper functions are defined, for telling the PM core whether or not a device uses autosuspend, for setting the autosuspend delay, and for marking periods of device activity. Drivers that do not want to use autosuspend can continue using the same helper functions as before; their behavior will not change. In addition, drivers supporting autosuspend can also call the old helper functions to get the old behavior. The details are all explained in Documentation/power/runtime_pm.txt and Documentation/ABI/testing/sysfs-devices-power. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 7490e44239e60293bca0c2663229050c36c660c2 Author: Alan Stern Date: Sat Sep 25 23:35:15 2010 +0200 PM / Runtime: Add no_callbacks flag Some devices, such as USB interfaces, cannot be power-managed independently of their parents, i.e., they cannot be put in low power while the parent remains at full power. This patch (as1425) creates a new "no_callbacks" flag, which tells the PM core not to invoke the runtime-PM callback routines for the such devices but instead to assume that the callbacks always succeed. In addition, the non-debugging runtime-PM sysfs attributes for the devices are removed, since they are pretty much meaningless. The advantage of this scheme comes not so much from avoiding the callbacks themselves, but rather from the fact that without the need for a process context in which to run the callbacks, more work can be done in interrupt context. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 140a6c945211ee911dec776fafa52e03a7d7bb9a Author: Alan Stern Date: Sat Sep 25 23:35:07 2010 +0200 PM / Runtime: Combine runtime PM entry points This patch (as1424) combines the various public entry points for the runtime PM routines into three simple functions: one for idle, one for suspend, and one for resume. A new bitflag specifies whether or not to increment or decrement the usage_count field. The new entry points are named __pm_runtime_idle, __pm_runtime_suspend, and __pm_runtime_resume, to reflect that they are trampolines. Simultaneously, the corresponding internal routines are renamed to rpm_idle, rpm_suspend, and rpm_resume. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 1bfee5bc86fdaecc912e06080583eddab7263df2 Author: Alan Stern Date: Sat Sep 25 23:35:00 2010 +0200 PM / Runtime: Merge synchronous and async runtime routines This patch (as1423) merges the asynchronous routines __pm_request_idle(), __pm_request_suspend(), and __pm_request_resume() with their synchronous counterparts. The RPM_ASYNC bitflag argument serves to indicate what sort of operation to perform. In the course of performing this merger, it became apparent that the various functions don't all behave consistenly with regard to error reporting and cancellation of outstanding requests. A new routine, rpm_check_suspend_allowed(), was written to centralize much of the testing, and the other functions were revised to follow a simple algorithm: If the operation is disallowed because of the device's settings or current state, return an error. Cancel pending or scheduled requests of lower priority. Schedule, queue, or perform the desired operation. A few special cases and exceptions are noted in comments. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 3f9af0513ae5b1f185302c2d0ba656640926d970 Author: Alan Stern Date: Sat Sep 25 23:34:54 2010 +0200 PM / Runtime: Replace boolean arguments with bitflags The "from_wq" argument in __pm_runtime_suspend() and __pm_runtime_resume() supposedly indicates whether or not the function was called by the PM workqueue thread, but in fact it isn't always used this way. It really indicates whether or not the function should return early if the requested operation is already in progress. Along with this badly-named boolean argument, later patches in this series will add several other boolean arguments to these functions and others. Therefore this patch (as1422) begins the conversion process by replacing from_wq with a bitflag argument. The same bitflags are also used in __pm_runtime_get() and __pm_runtime_put(), where they indicate whether or not the operation should be asynchronous. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 4769373ca2c8d0b999749a070c48fd8648888831 Author: Alan Stern Date: Sat Sep 25 23:34:46 2010 +0200 PM / Runtime: Move code in drivers/base/power/runtime.c This patch (as1421) moves the PM runtime accounting subroutines up to the beginning of runtime.c, taking them out of the middle of the functions that do the actual work. No operational changes. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 69d44ffbd772bede8c2a6d182e6e14f94826520b Author: Alan Stern Date: Sat Sep 25 23:34:22 2010 +0200 sysfs: Add sysfs_merge_group() and sysfs_unmerge_group() This patch (as1420) adds sysfs_merge_group() and sysfs_unmerge_group() functions, allowing drivers easily to add and remove sets of attributes to a pre-existing attribute group directory. Signed-off-by: Alan Stern Acked-by: Greg Kroah-Hartman Signed-off-by: Rafael J. Wysocki commit 098dff738abbeaea15fc95c4f4fdaee1e9bbea75 Author: Rafael J. Wysocki Date: Wed Sep 22 22:10:57 2010 +0200 PM: Fix potential issue with failing asynchronous suspend There is a potential issue with the asynchronous suspend code that a device driver suspending asynchronously may not notice that it should back off. There are two failing scenarions, (1) when the driver is waiting for a driver suspending synchronously to complete and that second driver returns error code, in which case async_error won't be set and the waiting driver will continue suspending and (2) after the driver has called device_pm_wait_for_dev() and the waited for driver returns error code, in which case the caller of device_pm_wait_for_dev() will not know that there was an error and will continue suspending. To fix this issue make __device_suspend() set async_error, so async_suspend() doesn't need to set it any more, and make device_pm_wait_for_dev() return async_error, so that its callers can check whether or not they should continue suspending. No more changes are necessary, since device_pm_wait_for_dev() is not used by any drivers' suspend routines. Reported-by: Colin Cross Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 074037ec79bea73edf1b1ec72fef1010e83e3cc5 Author: Rafael J. Wysocki Date: Wed Sep 22 22:09:10 2010 +0200 PM / Wakeup: Introduce wakeup source objects and event statistics (v3) Introduce struct wakeup_source for representing system wakeup sources within the kernel and for collecting statistics related to them. Make the recently introduced helper functions pm_wakeup_event(), pm_stay_awake() and pm_relax() use struct wakeup_source objects internally, so that wakeup statistics associated with wakeup devices can be collected and reported in a consistent way (the definition of pm_relax() is changed, which is harmless, because this function is not called directly by anyone yet). Introduce new wakeup-related sysfs device attributes in /sys/devices/.../power for reporting the device wakeup statistics. Change the global wakeup events counters event_count and events_in_progress into atomic variables, so that it is not necessary to acquire a global spinlock in pm_wakeup_event(), pm_stay_awake() and pm_relax(), which should allow us to avoid lock contention in these functions on SMP systems with many wakeup devices. Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 0702d9ee0f1dcb6258789032f03b3208bfafaffc Author: Kevin Cernekee Date: Mon Sep 20 22:32:10 2010 +0200 PM: Fix signed/unsigned warning in dpm_show_time() Seen on MIPS32, gcc 4.4.3, 2.6.36-rc4: drivers/base/power/main.c: In function 'dpm_show_time': drivers/base/power/main.c:415: warning: comparison of distinct pointer types lacks a cast do_div() takes unsigned parameters: uint32_t do_div(uint64_t *n, uint32_t base); Using an unsigned variable for usecs64 should not cause any problems, because calltime >= starttime . Signed-off-by: Kevin Cernekee Signed-off-by: Rafael J. Wysocki commit ac5c24ec1e983313ef0015258fba6f630e54e7cf Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:56 2010 +0200 PM / Hibernate: Make default image size depend on total RAM size The default hibernation image size is currently hard coded and euqal to 500 MB, which is not a reasonable default on many contemporary systems. Make it equal 2/5 of the total RAM size (this is slightly below the maximum, i.e. 1/2 of the total RAM size, and seems to be generally suitable). Signed-off-by: Rafael J. Wysocki Tested-by: M. Vefa Bicakci commit 266f1a25eff5ff98c498d7754a419aacfd88f71c Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:38 2010 +0200 PM / Hibernate: Improve comments in hibernate_preallocate_memory() One comment in hibernate_preallocate_memory() is wrong, so fix it and add one more comment to clarify the meaning of the fixed one. Signed-off-by: Rafael J. Wysocki commit bcb5ba8b4e8a5ae14b27351bdf499dd4c3bcc944 Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:17 2010 +0200 PM / Runtime: Use alloc_workqueue() for creating the PM workqueue Although we need the PM workqueue to be freezable, we don't need it to be singlethread. Also, the number of concurrent work items running on a single CPU need not be constrained. For these reasons use alloc_workqueue() directly, with suitable arguments, instead of create_freezeable_workqueue(), to create the runtime PM workqueue. Signed-off-by: Rafael J. Wysocki Acked-by: Tejun Heo commit ede890c2c069d611ece0e184103a6b9236ce416a Author: Rafael J. Wysocki Date: Sun Sep 12 21:40:01 2010 +0200 PM: Fix unmet dependency warning from kconfig Fix the following build warning: warning: (PM_SLEEP_SMP && SMP && (ARCH_SUSPEND_POSSIBLE || \ ARCH_HIBERNATION_POSSIBLE) && PM_SLEEP) selects HOTPLUG_CPU which \ has unmet direct dependencies (SMP && HOTPLUG) by selecting HOTPLUG along with CPU_HOTPLUG. Signed-off-by: Rafael J. Wysocki Acked-by: Randy Dunlap commit f996fc9671d088bd5f52a70f18c64bfe3d0e418f Author: Bojan Smojver Date: Thu Sep 9 23:06:23 2010 +0200 PM / Hibernate: Compress hibernation image with LZO Compress hibernation image with LZO in order to save on I/O and therefore time to hibernate/thaw. [rjw: Added hibernate=nocompress command line option instead of just nocompress which would be confusing, fixed a couple of compiler warnings, fixed kerneldoc comments, minor cleanups.] Signed-off-by: Bojan Smojver Signed-off-by: Rafael J. Wysocki commit 05aa55dddb9ee4045c320661068bea78dad6a6e5 Author: Ohad Ben-Cohen Date: Thu Sep 9 00:46:16 2010 +0200 PM / Runtime: Lenient generic runtime pm callbacks Allow drivers, that belong to subsystems which use the generic runtime pm callbacks, not to define runtime pm suspend/resume handlers, by implicitly assuming success in such cases. This is needed to eliminate nop handlers that would otherwise be necessary by drivers which enable runtime pm, but don't need to do anything when their devices are runtime-suspended/resumed. Signed-off-by: Ohad Ben-Cohen Acked-by: Kevin Hilman Acked-by: Mark Brown Signed-off-by: Rafael J. Wysocki commit 032fa36091a925f555158f4e80f8a09d951cdb10 Author: Thomas Gleixner Date: Sat Oct 16 21:17:08 2010 +0200 arm: Use ARCH_IRQ_INIT_FLAGS The core code now initializes the requested number of interrupts and sets the flags in irq_desc.status which are requested by the architecture via ARCH_IRQ_INIT_FLAGS. Add ARCH_IRQ_INIT_FLAGS and remove the loop which sets those flags after the irq descriptors are allocated. [ This patch should have been in the original irq rework and got dropped accidentaly ] Signed-off-by: Thomas Gleixner Cc: Russell King Cc: Linus Walleij Cc: Anand Gadiyar commit fa0d4c26be9f989816b30626f6c67d9e7ef867f8 Author: Arnd Bergmann Date: Sat Sep 11 18:24:46 2010 +0200 parisc: remove big kernel lock The parisc version of the perf code is sufficiently protected by its own spinlock, no need to use the BKL. Signed-off-by: Arnd Bergmann Cc: Kyle McMartin Cc: Helge Deller Cc: "James E.J. Bottomley" Cc: linux-parisc@vger.kernel.org commit f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52 Merge: 66af86e cd254f2 Author: Ingo Molnar Date: Sat Oct 16 20:17:25 2010 +0200 Merge branch 'core' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile into perf/core commit 81ccb499e7c5ae47e988e59a4e40a6d5ee66af79 Author: Randy Dunlap Date: Wed Oct 13 15:18:59 2010 +0000 net: move MII outside of NET_ETHERNET, fix kconfig warning We have USB, PCMCIA, and gigabit ethernet drivers that select MII even though NET_ETHERNET is not enabled, so make MII not be dependent on NET_ETHERNET. It is still dependent on NET and NETDEVICES. Fixes kconfig unmet dependency warning (shortened, was very long string): warning: (ARM_AT91_ETHER && NETDEVICES && NET_ETHERNET && ARM && ARCH_AT91RM9200 || ARM_KS8695_ETHER && NETDEVICES && NET_ETHERNET && ARM && ARCH_KS8695 || ... || IP1000 && NETDEVICES && NETDEV_1000 && PCI && EXPERIMENTAL || HAMACHI && NETDEVICES && NETDEV_1000 && PCI || R8169 && NETDEVICES && NETDEV_1000 && PCI || SIS190 && NETDEVICES && NETDEV_1000 && PCI || VIA_VELOCITY && NETDEVICES && NETDEV_1000 && PCI || ATL1 && NETDEVICES && NETDEV_1000 && PCI || ATL1E && NETDEVICES && NETDEV_1000 && PCI && EXPERIMENTAL || ATL1C && NETDEVICES && NETDEV_1000 && PCI && EXPERIMENTAL || JME && NETDEVICES && NETDEV_1000 && PCI || STMMAC_ETH && NETDEV_1000 && NETDEVICES && HAS_IOMEM || USB_PEGASUS && NETDEVICES && USB && NET || USB_RTL8150 && NETDEVICES && USB && NET && EXPERIMENTAL || USB_USBNET && NETDEVICES && USB && NET || PCMCIA_SMC91C92 && NETDEVICES && NET_PCMCIA && PCMCIA) selects MII which has unmet direct dependencies (NETDEVICES && NET_ETHERNET) Signed-off-by: Randy Dunlap Acked-by: Jeff Garzik [2006-NOV-30] Signed-off-by: David S. Miller commit e00ce92e0bb966227e88d674d4f7311f4f3bacac Author: Randy Dunlap Date: Wed Oct 13 15:12:53 2010 +0000 infiniband: fix mlx4 kconfig dependency warning Fix kconfig dependency warning to satisfy dependencies: warning: (MLX4_EN && NETDEVICES && NETDEV_10000 && PCI && INET || MLX4_INFINIBAND && INFINIBAND) selects MLX4_CORE which has unmet direct dependencies (NETDEVICES && NETDEV_10000 && PCI) Signed-off-by: Randy Dunlap Signed-off-by: David S. Miller commit cadb7924b10b2a3117dafe14d6d6d28035ec4ddb Author: stephen hemminger Date: Wed Oct 13 14:51:25 2010 +0000 stmmac: make function tables const These tables only contain function pointers. Signed-off-by: Stephen Hemminger Acked-by: Gustavo F. Padovan Signed-off-by: David S. Miller commit 8ee17ae68c0f1e281a432a4318fa2511e25c9492 Author: stephen hemminger Date: Wed Oct 13 14:50:31 2010 +0000 stmmac: make ethtool functions local Signed-off-by: Stephen Hemminger Acked-by: Gustavo F. Padovan Signed-off-by: David S. Miller commit 31e3c3f6f1f9b154981a0e6620df700463db30ee Author: stephen hemminger Date: Wed Oct 13 13:20:35 2010 +0000 tipc: cleanup function namespace Do some cleanups of TIPC based on make namespacecheck 1. Don't export unused symbols 2. Eliminate dead code 3. Make functions and variables local 4. Rename buf_acquire to tipc_buf_acquire since it is used in several files Compile tested only. This make break out of tree kernel modules that depend on TIPC routines. Signed-off-by: Stephen Hemminger Acked-by: Jon Maloy Acked-by: Paul Gortmaker Signed-off-by: David S. Miller commit 15419227f773b6c1b5fae44bde876078a9204caa Author: françois romieu Date: Wed Oct 13 09:26:05 2010 +0000 via-velocity: forced 1000 Mbps mode support. Full duplex only. Half duplex 1000 Mbps is not supported. Signed-off-by: David Lv Acked-by: Francois Romieu Tested-by: Seguier Regis Signed-off-by: David S. Miller commit 10da66f7552b3c7966c2f4f1f72009fb0b5539ec Author: Eric Dumazet Date: Wed Oct 13 08:22:03 2010 +0000 fib: avoid false sharing on fib_table_hash While doing profile analysis, I found fib_hash_table was sometime in a cache line shared by a possibly often written kernel structure. (CONFIG_IP_ROUTE_MULTIPATH || !CONFIG_IPV6_MULTIPLE_TABLES) It's hard to detect because not easily reproductible. Make sure we allocate a full cache line to keep this shared in all cpus caches. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 874ffa8f72444d6253d2669fed304875c128f86b Author: Eric Dumazet Date: Wed Oct 13 06:56:11 2010 +0000 fib_trie: use fls() instead of open coded loop fib_table_lookup() might use fls() to speedup an open coded loop. Noticed while doing a profile analysis. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a0a4a85a15df6335e3d11f83b2ac06ebebea313f Author: Eric Dumazet Date: Wed Oct 13 04:43:04 2010 +0000 fib: remove a useless synchronize_rcu() call fib_nl_delrule() calls synchronize_rcu() for no apparent reason, while rtnl is held. I suspect it was done to avoid an atomic_inc_not_zero() in fib_rules_lookup(), which commit 7fa7cb7109d07 added anyway. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 2c1c00040af3d187b7d602dd53b5adbbf3a4caa4 Author: Eric Dumazet Date: Wed Oct 13 02:45:40 2010 +0000 fib6: use FIB_LOOKUP_NOREF in fib6_rule_lookup() Avoid two atomic ops on found rule in fib6_rule_lookup() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 725a4a465c943ab0f91fcffc3846acbcdb704aac Author: Denis Kirjanov Date: Wed Oct 13 00:56:09 2010 +0000 sundance: Add initial ethtool stats support Add ethtool stats support. Signed-off-by: Denis Kirjanov Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 89980827c7a1e3c2b36895c22c6ef0e92aea6b0c Author: Dan Carpenter Date: Tue Oct 12 23:36:19 2010 +0000 pch_gbe: fix if condition in set_settings() There were no curly braces in this if condition so it always enabled full duplex. And ecmd->speed is an unsigned short so it is never equal to -1. The effect is that mii_ethtool_sset() fails with -EINVAL and an error is printed to dmesg. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 35f2516f0a1f9dddb339849c7a07e089322c18c3 Author: Harvey Harrison Date: Tue Oct 12 22:20:34 2010 +0000 dnet: mark methods static and annotate for correct endianness Their doesn't appear to be bugs with the endianness handling here, just get the annotations right to keep sparse happy. Suppresses the following sparse warnings: drivers/net/dnet.c:30:5: warning: symbol 'dnet_readw_mac' was not declared. Should it be static? drivers/net/dnet.c:49:6: warning: symbol 'dnet_writew_mac' was not declared. Should it be static? drivers/net/dnet.c:364:5: warning: symbol 'dnet_phy_marvell_fixup' was not declared. Should it be static? drivers/net/dnet.c:66:13: warning: incorrect type in assignment (different base types) drivers/net/dnet.c:66:13: expected unsigned short [unsigned] [usertype] tmp drivers/net/dnet.c:66:13: got restricted __be16 [usertype] drivers/net/dnet.c:68:13: warning: incorrect type in assignment (different base types) drivers/net/dnet.c:68:13: expected unsigned short [unsigned] [usertype] tmp drivers/net/dnet.c:68:13: got restricted __be16 [usertype] drivers/net/dnet.c:70:13: warning: incorrect type in assignment (different base types) drivers/net/dnet.c:70:13: expected unsigned short [unsigned] [usertype] tmp drivers/net/dnet.c:70:13: got restricted __be16 [usertype] drivers/net/dnet.c:92:27: warning: cast to restricted __be16 drivers/net/dnet.c:94:33: warning: cast to restricted __be16 drivers/net/dnet.c:96:33: warning: cast to restricted __be16 Signed-off-by: Harvey Harrison Signed-off-by: David S. Miller commit 65495745d7d617893f368bf5580353f5d2d88908 Author: Harvey Harrison Date: Tue Oct 12 21:52:26 2010 +0000 cxgb4vf: make single bit signed bitfields unsigned Single bit signed bitfields don't make a lot of sense, noticed by sparse: drivers/net/cxgb4vf/t4vf_common.h:135:31: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:136:36: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:137:36: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:138:36: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:139:36: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:140:31: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:141:31: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:142:35: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:143:35: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:154:27: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:155:26: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:156:27: error: dubious one-bit signed bitfield drivers/net/cxgb4vf/t4vf_common.h:157:26: error: dubious one-bit signed bitfield Signed-off-by: Harvey Harrison Signed-off-by: David S. Miller commit 564824b0c52c34692d804bb6ea214451615b0b50 Author: Eric Dumazet Date: Mon Oct 11 19:05:25 2010 +0000 net: allocate skbs on local node commit b30973f877 (node-aware skb allocation) spread a wrong habit of allocating net drivers skbs on a given memory node : The one closest to the NIC hardware. This is wrong because as soon as we try to scale network stack, we need to use many cpus to handle traffic and hit slub/slab management on cross-node allocations/frees when these cpus have to alloc/free skbs bound to a central node. skb allocated in RX path are ephemeral, they have a very short lifetime : Extra cost to maintain NUMA affinity is too expensive. What appeared as a nice idea four years ago is in fact a bad one. In 2010, NIC hardwares are multiqueue, or we use RPS to spread the load, and two 10Gb NIC might deliver more than 28 million packets per second, needing all the available cpus. Cost of cross-node handling in network and vm stacks outperforms the small benefit hardware had when doing its DMA transfert in its 'local' memory node at RX time. Even trying to differentiate the two allocations done for one skb (the sk_buff on local node, the data part on NIC hardware node) is not enough to bring good performance. Signed-off-by: Eric Dumazet Acked-by: Tom Herbert Signed-off-by: David S. Miller commit 6f0333b8fde44b8c04a53b2461504f0e8f1cebe6 Author: Eric Dumazet Date: Mon Oct 11 11:17:47 2010 +0000 r8169: use 50% less ram for RX ring Using standard skb allocations in r8169 leads to order-3 allocations (if PAGE_SIZE=4096), because NIC needs 16383 bytes, and skb overhead makes this bigger than 16384 -> 32768 bytes per "skb" Using kmalloc() permits to reduce memory requirements of one r8169 nic by 4Mbytes. (256 frames * 16Kbytes). This is fine since a hardware bug requires us to copy incoming frames, so we build real skb when doing this copy. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 05d0ca85c91013d5f73c43fb566bde09a9718019 Author: Anand Gadiyar Date: Thu Oct 14 22:59:57 2010 +0530 genirq, ARM: Fix boot on ARM platforms Commit b683de2b3 in linux-next as of 20101014 (genirq: Query arch for number of early descriptors) seems to have broken bootup on several ARM boards - my beagleboard gives the following dump with earlyprintk: NR_IRQS:402 Unable to handle kernel NULL pointer dereference at virtual address 00000028 pgd = c0004000 [00000028] *pgd=00000000 Internal error: Oops: 5 [#1] last sysfs file: Modules linked in: CPU: 0 Not tainted (2.6.36-rc7-next-20101014-linux-next-20101012+ #40) PC is at init_IRQ+0x14/0x48 LR is at start_kernel+0x150/0x2c0 [...] We seem to be using desc->status without assigning desc to anything. Fix this by adding back the code that was originally there. Signed-off-by: Anand Gadiyar Tested-by: Linus Walleij Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org LKML-Reference: <1287077397-21781-1-git-send-email-gadiyar@ti.com> Signed-off-by: Ingo Molnar commit 66af86e2c630908b21cec018cb612576cf5f516e Merge: 0fdf136 85caa99 Author: Ingo Molnar Date: Sat Oct 16 14:48:58 2010 +0200 Merge branch 'tip/perf/recordmcount' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 97299c726881603f44c30be8718c24015e7a4676 Author: Tejun Heo Date: Fri Oct 15 16:58:21 2010 +0200 pcmcia: don't call flush_scheduled_work() spuriously au100_generic and soc_common call flush_scheduled_work() spuriously. Remove them. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Signed-off-by: Dominik Brodowski commit 0f64f70e9c029450e38fcc496148ffc9256bf8c1 Author: Tejun Heo Date: Fri Oct 15 17:04:45 2010 +0200 serial_cs: drop spurious flush_scheduled_work() call serial_cs doesn't use the system workqueue. Drop spurious flush_scheduled_work() call. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Signed-off-by: Dominik Brodowski commit ee2007d299ad4020115b193858817e6c57e95db5 Author: Matthias Brugger Date: Sat Oct 16 01:39:49 2010 +0200 spi/atmel: typo in debug message This patches a typo in the debug message. Signed-off-by: Matthias Brugger Signed-off-by: Grant Likely commit c64557d666eb62eb5f296c6b93bd0a5525ed1e36 Merge: 1a63c35 0d91f22 Author: John W. Linville Date: Fri Oct 15 16:11:56 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem commit 2decd65a2630633cee04d0b83fdcee46ad2989a1 Author: Jeff Liu Date: Tue Oct 12 11:18:18 2010 +0800 ocfs2: Avoid to evaluate xattr block flags again. It was evaludated to indexed before, check it is ok i think. Signed-off-by: Jeff Liu Signed-off-by: Joel Becker commit fc3718918f13ad72827d62d36ea0f5fb55090644 Merge: 7bdb0d1 d4396ea Author: Joel Becker Date: Fri Oct 15 13:03:09 2010 -0700 Merge branch 'globalheartbeat-2' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-merge-window Conflicts: fs/ocfs2/ocfs2.h commit 1a63c353c856c9f6d44a533afb6ad6dbbcdea683 Merge: 7662ff4 b3c0598 Author: John W. Linville Date: Fri Oct 15 16:00:02 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-next-2.6 into for-davem commit 0d91f22b75347d9503b17a42b6c74d3f7750acd6 Author: Julia Lawall Date: Fri Oct 15 15:00:06 2010 +0200 drivers/net/wireless/p54/eeprom.c: Return -ENOMEM on memory allocation failure In this code, 0 is returned on memory allocation failure, even though other failures return -ENOMEM or other similar values. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression ret; expression x,e1,e2,e3; @@ ret = 0 ... when != ret = e1 *x = \(kmalloc\|kcalloc\|kzalloc\)(...) ... when != ret = e2 if (x == NULL) { ... when != ret = e3 return ret; } // Signed-off-by: Julia Lawall Cc: Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 6cf9e995f91e5bbffb2bef85feef490e5b67605d Author: Ben Greear Date: Thu Oct 14 12:45:30 2010 -0700 ath9k: Null out references to stale pointers. This doesn't fix any problem that I'm aware of, but should make it harder to add use-after-free type bugs in the future. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit c1739eb3e61e160f124bc842c219011916f63068 Author: Ben Greear Date: Thu Oct 14 12:45:29 2010 -0700 ath9k: Remove bf_dmacontext. The bf_dmacontext seems to be totally useless and duplicated by bf_buf_addr. Remove it entirely, use bf_buf_addr in its place. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit 5161bec5a8b3509b8cf69418129a191cf90bbd87 Author: RafaƂ MiƂecki Date: Thu Oct 14 21:16:33 2010 +0200 b43: N-PHY: put 2056-radio's specific code in separated file Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 886b42bf5e54098061c8bae3d5e292a8b6897401 Author: Luis R. Rodriguez Date: Thu Oct 14 11:44:27 2010 -0700 ath9k_hw: remove AR9003 2.0 support These chipsets will not hit the market, all customers will be on >= AR9003 2.2. This shaves down the ath9k_hw size by 24161 bytes (24 KB) on my system. Before: $ size drivers/net/wireless/ath/ath9k/ath9k_hw.ko text data bss dec hex filename 292328 616 1824 294768 47f70 drivers/net/wireless/ath/ath9k/ath9k_hw.ko $ du -b drivers/net/wireless/ath/ath9k/ath9k_hw.ko 5987825 drivers/net/wireless/ath/ath9k/ath9k_hw.ko After: $ size drivers/net/wireless/ath/ath9k/ath9k_hw.ko text data bss dec hex filename 277192 616 1824 279632 44450 drivers/net/wireless/ath/ath9k/ath9k_hw.ko $ du -b drivers/net/wireless/ath/ath9k/ath9k_hw.ko 5963664 drivers/net/wireless/ath/ath9k/ath9k_hw.ko Cc: Yixiang Li Cc: Don Breslin Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6db507ff9232cc3874306f7b25b399cb2cdc1675 Author: RafaƂ MiƂecki Date: Thu Oct 14 19:33:36 2010 +0200 b43: N-PHY: put radio-specific code in separated file Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 5818e989360b06d249cf1d88e7d4601ca70a7322 Author: RafaƂ MiƂecki Date: Thu Oct 14 19:33:35 2010 +0200 b43: N-PHY: fix typo: read table when caching IQ LO calibration (do not write) Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 204a665ba390bca861ad7b1a061f3ccded0e7eab Author: RafaƂ MiƂecki Date: Thu Oct 14 19:33:34 2010 +0200 b43: N-PHY: replace N-specific radio_chanspec with common code Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 9ebad4ab87f2ffa6eca825327721e647c7457264 Author: Johannes Berg Date: Thu Oct 14 13:41:35 2010 +0200 radiotap: fix vendor namespace parsing There's a bug with radiotap vendor namespace parsing if you don't register for the given namespace extensions. Fix this by passing only the unknown vendor namespaces and the registered data to frontends, but not both. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 94a40c0c6bcc47ceba12e0247c5a23fb1e6c81e4 Author: Rajkumar Manoharan Date: Thu Oct 14 10:50:26 2010 +0530 ath9k_htc: set probe request rx filter This patch enables to receive probe request frames on p2p client mode. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 4f329c043ba3495f0f97ec782948cbba7bd01047 Author: Paul Fox Date: Wed Oct 13 20:14:56 2010 +0100 libertas: Communicate USB transfer errors The return code was being overwritten with -1. Useful for debugging. Signed-off-by: Paul Fox Signed-off-by: Daniel Drake Acked-by: Dan Williams Signed-off-by: John W. Linville commit d4659912b557e9f68c0ad8be14e2cafd3210dd16 Author: Felix Fietkau Date: Thu Oct 14 16:02:39 2010 +0200 ath9k_hw: remove enum wireless_mode and its users The wireless mode bitfield was only used to detect 2.4 and 5 GHz support, which can be simplified by using ATH9K_HW_CAP_* capabilities. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 4e9900180eb72b3b22fc9742999045b11607eb24 Author: Felix Fietkau Date: Wed Oct 13 16:43:27 2010 +0200 ath9k: remove sc->cur_rate_table and sc->cur_rate_mode Set the rate table in the rc module properly based on band and HT capabilities instead, which was already partially done, but not for every mode. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 772d5515635fef5bc7a9d0efee785b58b0181ee5 Author: Felix Fietkau Date: Wed Oct 13 16:43:26 2010 +0200 ath9k: make rate control debugfs stats per station Move them to the same debugfs file that the other rc modules use. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 88eac2dad876a58b9c6a4c4805c3fc27b02c048f Author: Felix Fietkau Date: Tue Oct 12 16:08:03 2010 +0200 ath9k: add missing locking around ath9k_hw_proc_mib_event ath9k_hw_proc_mib_event updates the cycle counters, so it common->cc_lock must be acquired. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 431c74821432a6078d54f08de7cd561f8ef8f1ba Author: Felix Fietkau Date: Tue Oct 12 16:08:02 2010 +0200 ath9k_hw: fix PHY counter overflow handling in ANI v1 PHY counter overflows need to be checked for the old ANI version, because of its use of interrupt based counter overflow reports when the counters exceed the configured thresholds. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit e49f913750bb8745085cc4c547912c330cd3eacb Author: Felix Fietkau Date: Tue Oct 12 16:08:01 2010 +0200 ath9k_hw: fix division by zero in the ANI monitor code The commit "ath9k_hw: remove code duplication in phy error counter handling" split off some duplicate code into a separate function, but did not have a return code for aborting ANI processing based on counter values. This introduced a divide by zero issue. This patch adds the missing return code check in ath9k_hw_ani_monitor Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 898c914a0871ea7e5557b77156d4358c0f15d98a Author: Felix Fietkau Date: Tue Oct 12 14:02:53 2010 +0200 ath9k: do not track cycle counter updates in powersave mode While the chip is in powersave mode, the cycle counter updates do not contain useful values. While the chip is in full sleep, the rx_clear signal stays high, indicating a busy medium. To ensure sane values, update cycle counters before going into powersave, and clear them right after switching back to awake. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 40ffa93791985ab300fd488072e9f37ccf72e88c Author: Thomas Gleixner Date: Fri Oct 15 21:08:14 2010 +0200 x86: Remove stale pmtimer_64.c This file is unused since the apic unification in 2.6.29, but nobody noticed. Signed-off-by: Thomas Gleixner commit d4396eafe402b710a8535137b3bf2abe6c059a15 Author: Sunil Mushran Date: Fri Oct 15 11:57:21 2010 -0700 ocfs2/cluster: Release debugfs file elapsed_time_in_ms An earlier commit forgot to remove a debugfs file, elapsed_time_in_ms. Signed-off-by: Sunil Mushran commit 2f4f26fcf393ef4a44abe10e79c1966e64e86055 Author: Jeff Layton Date: Wed Oct 13 18:50:39 2010 -0400 cifs: eliminate cifs_posix_open_inode_helper cifs: eliminate cifs_posix_open_inode_helper This function is redundant. The only thing it does is set the canCache flags, but those get set in cifs_new_fileinfo anyway. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit 940b3c7b193ec54141976a8642c00582f423690c Author: Thomas Gleixner Date: Fri Oct 15 19:36:26 2010 +0200 x86: sfi: Make local functions static Signed-off-by: Thomas Gleixner Cc: Len Brown commit 7662ff46b7b3678162ce125903115e4ab0607a2d Author: John Fastabend Date: Fri Oct 15 09:27:38 2010 -0700 ixgbe: DCB: remove DCB check config Remove a DCB check config from DCB configuration we continue to configure DCB even if it fails so don't even bother to check. Plus user space (lldpad) checks this before programming the hw anyways. Worse case is we program some values into the hw that don't make total sense resulting in incorrect bandwidth allocation. Signed-off-by: John Fastabend Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 85caa993d7f218b7c2abcfcb28e212396b6a3313 Author: Steven Rostedt Date: Fri Oct 15 12:09:25 2010 -0400 ftrace: Use objtree for C version of recordmcount The C version of recordmcount is compiled to a binary, which will end up located in the objtree. If the kernel is built with O=path, the srctree will not include the binary recordmcount caller. Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Signed-off-by: Steven Rostedt commit 444758636439810f110f86a3042c2dfd3626a9e2 Author: Steven Rostedt Date: Fri Oct 15 11:49:47 2010 -0400 ftrace: Do not process kernel/trace/ftrace.o with C recordmcount program The file kernel/trace/ftrace.c references the mcount() call to convert the mcount() callers to nops. But because it references mcount(), the mcount() address is placed in the relocation table. The C version of recordmcount reads the relocation table of all object files, and it will add all references to mcount to the __mcount_loc table that is used to find the places that call mcount() and change the call to a nop. When recordmcount finds the mcount reference in kernel/trace/ftrace.o, it saves that location even though the code is not a call, but references mcount as data. On boot up, when all calls are converted to nops, the code has a safety check to determine what op code it is actually replacing before it replaces it. If that op code at the address does not match, then a warning is printed and the function tracer is disabled. The reference to mcount in ftrace.c, causes this warning to trigger, since the reference is not a call to mcount(). The ftrace.c file is not compiled with the -pg flag, so no calls to mcount() should be expected. This patch simply makes recordmcount.c skip the kernel/trace/ftrace.c file. This was the same solution used by the perl version of recordmcount. Reported-by: Ingo Molnar Cc: John Reiser Signed-off-by: Steven Rostedt commit 6221ddd0f5e2ddc1d5d928119a2cde033d16f96d Author: Suresh Jayaraman Date: Fri Oct 1 21:23:33 2010 +0530 cifs: handle FindFirst failure gracefully FindFirst failure due to permission errors or any other errors are silently ignored by cifs_readdir(). This could cause problem to applications that depend on the error to do further processing. Reproducer: - mount a cifs share - mkdir tdir;touch tdir/1 tdir/2 tdir/3 - chmod -x tdir - ls tdir Currently, we start calling filldir() for '.' and '..' before we know we whether FindFirst could succeed or not. If FindFirst fails later, there is no way to notify VFS by setting buf.error and so VFS won't be able to catch this. Fix this by moving the call to initiate_cifs_search() before we start doing filldir(). This fixes https://bugzilla.samba.org/show_bug.cgi?id=7535 Reported-by: Tom Dexter Signed-off-by: Suresh Jayaraman Signed-off-by: Steve French commit 776c163b1b93c8dfa5edba885bc2bfbc2d228a5f Author: Arnd Bergmann Date: Wed Jul 7 23:10:11 2010 +0200 vfs: make no_llseek the default All file operations now have an explicit .llseek operation pointer, so we can change the default action for future code. This makes changes the default from default_llseek to no_llseek, which always returns -ESPIPE if a user tries to seek on a file without a .llseek operation. The name of the default_llseek function remains unchanged, if anyone thinks we should change it, please speak up. Signed-off-by: Arnd Bergmann Cc: Christoph Hellwig Cc: Al Viro Cc: linux-fsdevel@vger.kernel.org commit ab91261f5c43f196ec7ff1d113847b87b7606b26 Author: Arnd Bergmann Date: Wed Jul 7 22:55:17 2010 +0200 vfs: don't use BKL in default_llseek There are currently 191 users of default_llseek. Nine of these are in device drivers that use the big kernel lock. None of these ever touch file->f_pos outside of llseek or file_pos_write. Consequently, we never rely on the BKL in the default_llseek function and can replace that with i_mutex, which is also used in generic_file_llseek. Signed-off-by: Arnd Bergmann commit 6038f373a3dc1f1c26496e60b6c40b164716f07e Author: Arnd Bergmann Date: Sun Aug 15 18:52:59 2010 +0200 llseek: automatically add .llseek fop All file_operations should get a .llseek operation so we can make nonseekable_open the default for future file operations without a .llseek pointer. The three cases that we can automatically detect are no_llseek, seq_lseek and default_llseek. For cases where we can we can automatically prove that the file offset is always ignored, we use noop_llseek, which maintains the current behavior of not returning an error from a seek. New drivers should normally not use noop_llseek but instead use no_llseek and call nonseekable_open at open time. Existing drivers can be converted to do the same when the maintainer knows for certain that no user code relies on calling seek on the device file. The generated code is often incorrectly indented and right now contains comments that clarify for each added line why a specific variant was chosen. In the version that gets submitted upstream, the comments will be gone and I will manually fix the indentation, because there does not seem to be a way to do that using coccinelle. Some amount of new code is currently sitting in linux-next that should get the same modifications, which I will do at the end of the merge window. Many thanks to Julia Lawall for helping me learn to write a semantic patch that does all this. ===== begin semantic patch ===== // This adds an llseek= method to all file operations, // as a preparation for making no_llseek the default. // // The rules are // - use no_llseek explicitly if we do nonseekable_open // - use seq_lseek for sequential files // - use default_llseek if we know we access f_pos // - use noop_llseek if we know we don't access f_pos, // but we still want to allow users to call lseek // @ open1 exists @ identifier nested_open; @@ nested_open(...) { <+... nonseekable_open(...) ...+> } @ open exists@ identifier open_f; identifier i, f; identifier open1.nested_open; @@ int open_f(struct inode *i, struct file *f) { <+... ( nonseekable_open(...) | nested_open(...) ) ...+> } @ read disable optional_qualifier exists @ identifier read_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; expression E; identifier func; @@ ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off) { <+... ( *off = E | *off += E | func(..., off, ...) | E = *off ) ...+> } @ read_no_fpos disable optional_qualifier exists @ identifier read_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; @@ ssize_t read_f(struct file *f, char *p, size_t s, loff_t *off) { ... when != off } @ write @ identifier write_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; expression E; identifier func; @@ ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off) { <+... ( *off = E | *off += E | func(..., off, ...) | E = *off ) ...+> } @ write_no_fpos @ identifier write_f; identifier f, p, s, off; type ssize_t, size_t, loff_t; @@ ssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off) { ... when != off } @ fops0 @ identifier fops; @@ struct file_operations fops = { ... }; @ has_llseek depends on fops0 @ identifier fops0.fops; identifier llseek_f; @@ struct file_operations fops = { ... .llseek = llseek_f, ... }; @ has_read depends on fops0 @ identifier fops0.fops; identifier read_f; @@ struct file_operations fops = { ... .read = read_f, ... }; @ has_write depends on fops0 @ identifier fops0.fops; identifier write_f; @@ struct file_operations fops = { ... .write = write_f, ... }; @ has_open depends on fops0 @ identifier fops0.fops; identifier open_f; @@ struct file_operations fops = { ... .open = open_f, ... }; // use no_llseek if we call nonseekable_open //////////////////////////////////////////// @ nonseekable1 depends on !has_llseek && has_open @ identifier fops0.fops; identifier nso ~= "nonseekable_open"; @@ struct file_operations fops = { ... .open = nso, ... +.llseek = no_llseek, /* nonseekable */ }; @ nonseekable2 depends on !has_llseek @ identifier fops0.fops; identifier open.open_f; @@ struct file_operations fops = { ... .open = open_f, ... +.llseek = no_llseek, /* open uses nonseekable */ }; // use seq_lseek for sequential files ///////////////////////////////////// @ seq depends on !has_llseek @ identifier fops0.fops; identifier sr ~= "seq_read"; @@ struct file_operations fops = { ... .read = sr, ... +.llseek = seq_lseek, /* we have seq_read */ }; // use default_llseek if there is a readdir /////////////////////////////////////////// @ fops1 depends on !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier readdir_e; @@ // any other fop is used that changes pos struct file_operations fops = { ... .readdir = readdir_e, ... +.llseek = default_llseek, /* readdir is present */ }; // use default_llseek if at least one of read/write touches f_pos ///////////////////////////////////////////////////////////////// @ fops2 depends on !fops1 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read.read_f; @@ // read fops use offset struct file_operations fops = { ... .read = read_f, ... +.llseek = default_llseek, /* read accesses f_pos */ }; @ fops3 depends on !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier write.write_f; @@ // write fops use offset struct file_operations fops = { ... .write = write_f, ... + .llseek = default_llseek, /* write accesses f_pos */ }; // Use noop_llseek if neither read nor write accesses f_pos /////////////////////////////////////////////////////////// @ fops4 depends on !fops1 && !fops2 && !fops3 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read_no_fpos.read_f; identifier write_no_fpos.write_f; @@ // write fops use offset struct file_operations fops = { ... .write = write_f, .read = read_f, ... +.llseek = noop_llseek, /* read and write both use no f_pos */ }; @ depends on has_write && !has_read && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier write_no_fpos.write_f; @@ struct file_operations fops = { ... .write = write_f, ... +.llseek = noop_llseek, /* write uses no f_pos */ }; @ depends on has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; identifier read_no_fpos.read_f; @@ struct file_operations fops = { ... .read = read_f, ... +.llseek = noop_llseek, /* read uses no f_pos */ }; @ depends on !has_read && !has_write && !fops1 && !fops2 && !has_llseek && !nonseekable1 && !nonseekable2 && !seq @ identifier fops0.fops; @@ struct file_operations fops = { ... +.llseek = noop_llseek, /* no read or write fn */ }; ===== End semantic patch ===== Signed-off-by: Arnd Bergmann Cc: Julia Lawall Cc: Christoph Hellwig commit 495d2b3883682fcd1c3dee3a45e38fd00154ae25 Author: Martin K. Petersen Date: Fri Oct 15 15:49:20 2010 +0200 block: Make the integrity mapped property a bio flag Previously we tracked whether the integrity metadata had been remapped using a request flag. This was fine for low-level retries. However, if an I/O was redriven by upper layers we would end up remapping again, causing the retry to fail. Deprecate the REQ_INTEGRITY flag and introduce BIO_MAPPED_INTEGRITY which enables filesystems to notify lower layers that the bio in question has already been remapped. Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit e817bf3f68f55e7307c3e9abe5f32d0c05c83988 Author: Martin K. Petersen Date: Fri Oct 15 15:49:18 2010 +0200 block: Fix double free in blk_integrity_unregister Commit 3839e4b introduced a kobject_put but failed to remove the kmem_cache_free beneath it, leading to a double free. Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit 46bf36ecec79bbe5373ef68f0ed36cbf62e03482 Author: Christoph Hellwig Date: Fri Oct 15 05:45:00 2010 -0700 hfsplus: fix getxattr return value We need to support -EOPNOTSUPP for attributes that are not supported to match other filesystems and allow userspace to detect if Posix ACLs are supported or not. setxattr already gets this right. Signed-off-by: Christoph Hellwig commit a5360df9413987ed56ce8cffad678e557eff92e1 Author: Wolfram Sang Date: Fri Oct 15 14:18:21 2010 +0200 pcmcia/yenta: guide users in case of problems with O2-bridges Some cards need the speedups on, some need them off. As we can't detect this reliably, at least give the users a hint how to tweak the system. Reported-by: David Bluecame Signed-off-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 5dbfe7aedf54aa7f62fd659e34371d4ea0e7bffe Author: Lars Ellenberg Date: Fri Oct 15 09:52:46 2010 +0200 drbd: add race-breaker to drbd_go_diskless This adds a necessary race breaker to these commits: drbd: fix for possible deadlock on IO error during resync drbd: drop wrong debug asserts, fix recently introduced race What we do is get a refcount, check the state, then depending on the state and the requested minimum disk state, either hold it (success), or give it back immediately (failed "try lock"). Some code paths (flushing of drbd metadata) may still grab and hold a refcount even if we are D_FAILED (application IO won't). So even if we hit local_cnt == 0 once after being D_FAILED, we still need to wait for that again after we changed to D_DISKLESS. Once local_cnt reaches 0 while we are D_DISKLESS, we can be sure that no one will look at the protected members anymore, so only then is it safe to free them. We cannot easily convert to standard locking primitives here, as we want to be able to use it in atomic context (we always do a "try lock"), as well as hold references for a "long time" (from IO submission to completion callback). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit cd254f295248c98b62ea824f361e10d80a081fe7 Author: Robert Richter Date: Fri Oct 15 11:28:07 2010 +0200 oprofile: make !CONFIG_PM function stubs static inline Make !CONFIG_PM function stubs static inline and remove section attribute. Signed-off-by: Robert Richter commit b3b3a9b63f2deacfd59137e3781211d21a568ca9 Author: Anand Gadiyar Date: Thu Oct 14 11:31:42 2010 -0400 oprofile: fix linker errors Commit e9677b3ce (oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure) caused oprofile_perf_exit to be called in the cleanup path of oprofile_perf_init. The __exit tag for oprofile_perf_exit should therefore be dropped. The same has to be done for exit_driverfs as well, as this function is called from oprofile_perf_exit. Else, we get the following two linker errors. LD .tmp_vmlinux1 `oprofile_perf_exit' referenced in section `.init.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 LD .tmp_vmlinux1 `exit_driverfs' referenced in section `.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Anand Gadiyar Cc: Will Deacon Signed-off-by: Robert Richter commit 277dd984172b063497d2ff6cfa7f2355f13a292d Author: Anand Gadiyar Date: Thu Oct 14 11:31:43 2010 -0400 oprofile: include platform_device.h to fix build break oprofile_perf.c needs to include platform_device.h Otherwise we get the following build break. CC arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.o arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: its scope is only this definition or declaration, which is probably not what you want arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:201: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:210: error: variable 'oprofile_driver' has initializer but incomplete type arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: unknown field 'driver' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: extra brace group at end of initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: error: unknown field 'resume' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: error: unknown field 'suspend' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c: In function 'init_driverfs': Signed-off-by: Anand Gadiyar Cc: Matt Fleming Cc: Will Deacon Signed-off-by: Robert Richter commit 6268464b370e234e0255330190f9bd5d19386ad7 Merge: 7df01d9 0fdf136 Author: Robert Richter Date: Fri Oct 15 12:45:00 2010 +0200 Merge remote branch 'tip/perf/core' into oprofile/core Conflicts: arch/arm/oprofile/common.c kernel/perf_event.c commit ac7241211ded714873e8dc6d2f7c98ae7ea2cc30 Author: Lars Ellenberg Date: Thu Oct 7 15:18:08 2010 +0200 drbd: use dynamic_dev_dbg to optionally log uuid changes Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit be70e2671b95a8982ff133ebaafff6399ad393d4 Author: Philipp Reisner Date: Thu Oct 14 11:58:20 2010 +0200 dynamic_debug.h: Fix dynamic_dev_dbg() macro if CONFIG_DYNAMIC_DEBUG not set Signed-off-by: Philipp Reisner commit 9e9006e9090dc1f88d5127cb69f416013e7ecd60 Author: Randy Dunlap Date: Thu Oct 14 10:13:13 2010 -0700 x86, olpc: XO-1 uses/depends on PCI olpc-xo1 uses pci_*() interfaces so it should depend on PCI. Otherwise we get build failure like: arch/x86/kernel/olpc-xo1.c:65: error: implicit declaration of function 'pci_enable_device_io' arch/x86/kernel/olpc-xo1.c:71: error: implicit declaration of function 'pci_request_region' arch/x86/kernel/olpc-xo1.c:80: error: implicit declaration of function 'pci_release_region' Signed-off-by: Randy Dunlap Acked-by: Daniel Drake Cc: Stephen Rothwell LKML-Reference: <20101014101313.adf7eb2a.randy.dunlap@oracle.com> Signed-off-by: Ingo Molnar commit 0fdf13606b67f830559abdaad15980c7f4f05ec4 Merge: d9d572a cf4db25 Author: Ingo Molnar Date: Fri Oct 15 06:12:28 2010 +0200 Merge branch 'tip/perf/recordmcount-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit cf4db2597ae93b60efc0a7a4ec08690b75d629b1 Author: Steven Rostedt Date: Thu Oct 14 23:32:44 2010 -0400 ftrace: Rename config option HAVE_C_MCOUNT_RECORD to HAVE_C_RECORDMCOUNT The config option used by archs to let the build system know that the C version of the recordmcount works for said arch is currently called HAVE_C_MCOUNT_RECORD which enables BUILD_C_RECORDMCOUNT. To be more consistent with the name that all archs may use, it has been renamed to HAVE_C_RECORDMCOUNT. This will be less confusing since we are building a C recordmcount and not a mcount_record. Suggested-by: Ingo Molnar Cc: Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Cc: John Reiser Signed-off-by: Steven Rostedt commit d9d572a9c0195486e3baf0d8d6a710196a707335 Merge: 3cba11d ebc8827 Author: Ingo Molnar Date: Fri Oct 15 05:12:45 2010 +0200 Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core commit 6a1c9dfe4186f18fed38421b35b40fb9260cbfe1 Merge: e0dc09f 2989b72 Author: Benjamin Herrenschmidt Date: Fri Oct 15 10:45:03 2010 +1100 Merge remote branch 'jwb/next' into next commit c28d5077f8d79bfce1e3f88db2e261cf2b6473dc Author: Steven Rostedt Date: Wed Oct 13 19:06:14 2010 -0400 ftrace: Remove duplicate code for 64 and 32 bit in recordmcount.c The elf reader for recordmcount.c had duplicate functions for both 32 bit and 64 bit elf handling. This was due to the need of using the 32 and 64 bit elf structures. This patch consolidates the two by using macros to define the 32 and 64 bit names in a recordmcount.h file, and then by just defining a RECORD_MCOUNT_64 macro and including recordmcount.h twice we create the funtions for both the 32 bit version as well as the 64 bit version using one code source. Cc: John Reiser Signed-off-by: Steven Rostedt commit 72441cb1fd77d092f09ddfac748955703884c9a7 Author: Steven Rostedt Date: Wed Oct 13 17:12:30 2010 -0400 ftrace/x86: Add support for C version of recordmcount This patch adds the support for the C version of recordmcount and compile times show ~ 12% improvement. After verifying this works, other archs can add: HAVE_C_MCOUNT_RECORD in its Kconfig and it will use the C version of recordmcount instead of the perl version. Cc: Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Cc: John Reiser Signed-off-by: Steven Rostedt commit 81d3858d3131a589cade0d8b57f95cc1fc699b89 Author: John Reiser Date: Wed Oct 13 15:12:54 2010 -0400 ftrace: Add C version of recordmcount compile time code Currently, the mcount callers are found with a perl script that does an objdump on every file in the kernel. This is a C version of that same code which should increase the performance time of compiling the kernel with dynamic ftrace enabled. Signed-off-by: John Reiser [ Updated the code to include .text.unlikely section as well as changing the format to follow Linux coding style. ] Signed-off-by: Steven Rostedt commit ebc8827f75954fe315492883eee5cb3f355d547d Author: Frederic Weisbecker Date: Mon Sep 27 18:50:51 2010 +0200 x86: Barf when vmalloc and kmemcheck faults happen in NMI In x86, faults exit by executing the iret instruction, which then reenables NMIs if we faulted in NMI context. Then if a fault happens in NMI, another NMI can nest after the fault exits. But we don't yet support nested NMIs because we have only one NMI stack. To prevent from that, check that vmalloc and kmemcheck faults don't happen in this context. Most of the other kernel faults in NMIs can be more easily spotted by finding explicit copy_from,to_user() calls on review. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Thomas Gleixner Cc: H. Peter Anvin Cc: Mathieu Desnoyers Cc: Peter Zijlstra commit 5d0d28824c76409f0d1a645bf0ae81318c8ffa42 Author: Shirish Pargaonkar Date: Wed Oct 13 18:15:00 2010 -0500 NTLM authentication and signing - Calculate auth response per smb session Start calculation auth response within a session. Move/Add pertinet data structures like session key, server challenge and ntlmv2_hash in a session structure. We should do the calculations within a session before copying session key and response over to server data structures because a session setup can fail. Only after a very first smb session succeeds, it copies/makes its session key, session key of smb connection. This key stays with the smb connection throughout its life. Signed-off-by: Shirish Pargaonkar Reviewed-by: Jeff Layton Signed-off-by: Steve French commit cd2638a86c7b90e77ce623c09de2a26177f2a5c1 Author: Carolyn Wyborny Date: Tue Oct 12 22:27:02 2010 +0000 igb: add check for fiber/serdes devices to igb_set_spd_dplx; Signed-off-by: Carolyn Wyborny Tested-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 5d5b7c39cfdc459c079ed75b65a537f40ffb82da Author: Emil Tantilov Date: Tue Oct 12 22:20:59 2010 +0000 ixgbe: declare functions as static Following patch fixes warnings reported by `make namespacecheck` Reported by Stephen Hemminger CC: Stephen Hemminger Signed-off-by: Emil Tantilov Tested-by: Stephen Ko Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit f32f837b75233588cd4f8542214a30915ab7847b Author: Emil Tantilov Date: Tue Oct 12 22:20:34 2010 +0000 ixgbe: remove unused functions Remove functions that are declared, but not used in the driver. This patch fixes warnings reported by `make namespacecheck` Reported by Stephen Hemminger CC: Stephen Hemminger Signed-off-by: Emil Tantilov Tested-by: Stephen Ko Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit ee87a82a28cddbb9267a294172ecb3d3d3bdaa6c Author: Michael Chan Date: Wed Oct 13 14:06:51 2010 +0000 cnic: Add support for 57712 device Add new interrupt ack functions and other hardware interface logic to support the new device. Update version to 2.2.6. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit a3ceeeb8f11d74f26e3dfca40ded911a82402db5 Author: Michael Chan Date: Wed Oct 13 14:06:50 2010 +0000 cnic: Decouple uio close from cnic shutdown During cnic shutdown, the original driver code requires userspace to close the uio device within a few seconds. This doesn't always happen as the userapp may be hung or otherwise take a long time to close. The system may crash when this happens. We fix the problem by decoupling the uio structures from the cnic structures during cnic shutdown. We do not unregister the uio device until the cnic driver is unloaded. This eliminates the unreliable wait loop for uio to close. All uio structures are kept in a linked list. If the device is shutdown and later brought back up again, the uio strcture will be found in the linked list and coupled back to the cnic structures. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit cd801536c236e287f1d3eeee428abf9ffd523ede Author: Michael Chan Date: Wed Oct 13 14:06:49 2010 +0000 cnic: Add cnic_uio_dev struct and put all uio related structures and ring buffers in it. This allows uio operations to be done independent of the cnic device structures. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit c06c0462250a5dbc9e58d00caab4cd7e6675128c Author: Michael Chan Date: Wed Oct 13 14:06:48 2010 +0000 cnic: Add cnic_free_uio() to free all UIO related structures. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit fdf24086f4752aee5dfb40143c736250df017820 Author: Michael Chan Date: Wed Oct 13 14:06:47 2010 +0000 cnic: Defer iscsi connection cleanup The bnx2x devices require a 2 second quiet time before sending the last RAMROD command to destroy a connection. This sleep wait adds up to a long delay when iscsid is serially destroying maultiple connections. Create a workqueue to perform the final connection cleanup in the background to speed up the process. This significantly speeds up the process as the wait time can be done in parallel for multiple connections. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit a2c9e769dbb92336ddacba01d399ad0f509e7094 Author: Michael Chan Date: Wed Oct 13 14:06:46 2010 +0000 cnic: Add cnic_bnx2x_destroy_ramrod() Refactoring code for the next patch to defer connection clean up. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 6e0dda0c467d6c66d64c146170ea35399ec34c15 Author: Michael Chan Date: Wed Oct 13 14:06:45 2010 +0000 cnic: Convert ctx_flags to bit fields so that we can additional bit definitions without requiring a spinlock. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 6e0dc64384298b29ac17de7362b7d6d2ef588304 Author: Michael Chan Date: Wed Oct 13 14:06:44 2010 +0000 cnic: Add common cnic_request_irq() to reduce some duplicate code. Also, use tasklet_kill() in cnic_free_irq() to wait for the cnic_irq_task to complete. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 2265769531afe267f864111c103b04b4427720b6 Author: Dan Carpenter Date: Thu Aug 12 00:38:45 2010 +0200 drbd: cleanup: change "<= 0" to "== 0" dt is unsigned so it's never less than zero. We are calculating the elapsed time, and that's never less than zero (unless there is a bug or we invent time travel). The comparison here is just to guard against divide by zero bugs. Signed-off-by: Dan Carpenter Signed-off-by: Philipp Reisner commit ca0e6098aad127a555ba29d12e0503dbb1577aac Author: Lars Ellenberg Date: Thu Oct 14 15:01:21 2010 +0200 drbd: relax the grace period of the md_sync timer again Consolidate the ifdef's for the debug level, accidentally the used both DEBUG and DRBD_DEBUG_MD_SYNC. Default to off. For production, we can safely reduce the grace period for this timer again the the value we used to have. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 856c50c7b616d50e1a3ccd4ce35f7814650fa594 Author: Lars Ellenberg Date: Thu Oct 14 13:37:40 2010 +0200 drbd: add some more explicit drbd_md_sync It sometimes may take a while for the after state change work to be scheduled, which does drbd_md_sync. At convenient places, we should do explicit drbd_md_sync to have the new state information on disk as soon as possible. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 9d282875d85ebc2b49362310677fc0dcd91b9db9 Author: Lars Ellenberg Date: Thu Oct 14 13:57:07 2010 +0200 drbd: drop wrong debug asserts, fix recently introduced race commit 2372c38caadeaebc68a5ee190782c2a0df01edc3 drbd: fix for possible deadlock on IO error during resync introduced a new ASSERT, which turns out to be wrong. Drop it. Also serialize the state change to D_DISKLESS with the after state change work of the -> D_FAILED transition, don't open a new race. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 3be63ff0ae196b371728ba8fc8aca12eafcae218 Author: Wey-Yi Guy Date: Fri Oct 8 16:05:19 2010 -0700 iwlwifi: move agn only eeprom functions to separate file Some of the functions in iwl-eeprom.c file are for agn devices only, Those functions do not have to be part of iwlcore.ko, so move those to iwl-agn-eeprom.c file. Signed-off-by: Wey-Yi Guy commit 40bbfd4c1b336b8841bef9933b6e09252ace56b8 Author: Johannes Berg Date: Thu Oct 7 04:00:33 2010 -0700 iwlagn: check beacon frame size When the beacon_skb is NULL, we might still attempt to use it in this code path (if we ever get here) -- make the code a bit more defensive and check the return value of iwl_fill_beacon_frame() against zero. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 657e11a47dede79cae1d2f72084f6f7303aec725 Author: Johannes Berg Date: Thu Oct 7 03:52:35 2010 -0700 iwlwifi: blink LED in IBSS mode We recently found that contrary to expectations, the LED is not blinking in IBSS mode. Fix this. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit dacefedb34e538e9934556ffe5eaad177e7a9718 Author: Johannes Berg Date: Thu Oct 7 04:02:03 2010 -0700 iwlwifi: rewrite RXON checks The RXON checking is a bit magical, and prints out too much information if something goes wrong. Make it less magical and print out only the items that were actually wrong. Also remove the comment about removing it -- the driver is constantly changing so these checks are useful. Signed-off-by: Johannes Berg commit 34f5a70c08530bb0b4724991a712a0ef6bbec39a Author: Wey-Yi Guy Date: Wed Oct 6 13:46:11 2010 -0700 iwlagn: 6050 ops should be used; For 6050 series of devices, 6050 ops should be used; One of the 6050 config still use 6000 ops, fix it. Signed-off-by: Wey-Yi Guy commit 77834543a5278b55df6c2784cd5ed59970be3c44 Author: Johannes Berg Date: Mon Oct 4 05:50:36 2010 -0700 iwlwifi: clean up some beacon handling There's no need to check for NULL before calling dev_kfree_skb() since it is valid to call it on NULL -- it becomes a no-op. There's also no need to initialise the beacon_skb variable to NULL just after the memory it is in has been kzalloc'ed. Some minor whitespace cleanups, and a lock assertion in a function that needs the mutex (to access the beacon_skb var) complete the patch. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 12e934dc602fafba946b33587c38077ebceb3698 Author: Johannes Berg Date: Mon Oct 4 05:50:06 2010 -0700 iwlwifi: rename ibss_beacon variable Since we're also going to support AP (GO) mode, the variable isn't used for just IBSS beacons any more -- rename it to not mislead readers. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 085fbca29d7b4574c4e42189ee5789004e4beff7 Author: Johannes Berg Date: Mon Oct 4 05:47:23 2010 -0700 iwlwifi: allow probe-after-rx on 2.4 GHz There are two passive 2.4 GHz channels: 12 and 13. If you have a hidden SSID on those, you will not be able to connect to it because we don't send out probe requests there. We can allow this by using the firmware's probe-after-rx functionality on those channels as well. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=16462 Reported-by: Daniel J Blueman Tested-by: Daniel J Blueman Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit de05ead8f8649788603afc470eb1c2ea2b8b1655 Author: Wey-Yi Guy Date: Thu Sep 23 15:24:22 2010 -0700 iwlgn: need longer tx queue stuck timer for coex devices For BT/WiFi combo devices, need longer tx stuck queue timer, so those devices won't reload firmware too often. Signed-off-by: Wey-Yi Guy commit 0f8488e1608b6e30e705460f8110888c645f7f9f Author: Lars Ellenberg Date: Wed Oct 13 18:19:23 2010 +0200 drbd: cleanup useless leftover warn/error printk's Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 13d42685bec1f012dcbc5d187490eb1d15ec8219 Author: Lars Ellenberg Date: Wed Oct 13 17:37:54 2010 +0200 drbd: add explicit drbd_md_sync to drbd_resync_finished As we usually update the generation UUIDs here, we should explicitly sync them to disk. So far this has been done only implicitly by related code paths. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit b18b37befb37810ce50e1a9b0a6206dfe363d827 Author: Philipp Reisner Date: Wed Oct 13 15:32:44 2010 +0200 drbd: Do not log an ASSERT for P_OV_REQUEST packets while C_CONNECTED This might happen if on the VERIFY_S node the disk gets dropped. Although this is an cluster wide state transition, the VERIFY_T node, updates it connection state first. Then the ack packet for the cluster wide state transition travels back, and the VERIFY_S node stops to produce the P_OV_REQUEST packets. There is absolutely nothing wrong with that. Further, do not log "Can not satisfy peer's..." on the VERIFY_S node in this case, but pretend that they had equal checksum. [Bugz 327] Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit e9e6f3ec535d7b7c9e2ca64ad691e743e7d3c2f0 Author: Lars Ellenberg Date: Tue Sep 14 20:26:27 2010 +0200 drbd: fix for possible deadlock on IO error during resync Scenario: Something (say, flush-147:0) is in drbd_al_begin_io, holding a local_cnt, waiting for the resync to make progress. Disk fails, worker in after_state_ch does drbd_rs_cancel_all, then waits for local_cnt to drop to zero. flush-147:0 is woken by drbd_rs_cancel_all, needs to write an AL transaction, and queues that on the worker. Deadlock. Fix: do not wait in the worker, have put_ldev() trigger the state change D_FAILED -> D_DISKLESS when necessary. put_ldev() cannot do the state change directly, as it may or may not already hold various spinlocks. We queue a short work instead. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 22cc37a943832c948808884604ec6f5ff2594c1d Author: Lars Ellenberg Date: Tue Sep 14 20:40:41 2010 +0200 drbd: fix unlikely access after free and list corruption Various cleanup paths have been incomplete, for the very unlikely case that we cannot allocate enough bios from process context when submitting on behalf of the peer or resync process. Never observed. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit af85e8e83d160f72a10e4467852646ac08614260 Author: Lars Ellenberg Date: Thu Oct 7 16:07:55 2010 +0200 drbd: fix for spurious fullsync (uuids rotated too fast) If it was an "empty" resync, the SyncSource may have already "finished" the resync and rotated the UUIDs, before noticing the connection loss (and generating a new uuid, if Primary, rotating again), while the SyncTarget did not change its uuids at all, or only got to the previous sync-uuid. This would then again lead to a full sync on next handshake (see also Bug #251). Fix: Use explicit resync finished notification even for empty resyncs, do not finish an empty resync implicitly on the SyncSource. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit e9ef7bb6f9696471ddddf0065afac8b435e5d051 Author: Lars Ellenberg Date: Thu Oct 7 15:55:39 2010 +0200 drbd: allow for explicit resync-finished notifications Preparation patch so more drbd_send_state() usage on the peer will not confuse drbd in receive_state(). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 4ac4aadacb5badc45679cd94cd362132daafe8c4 Author: Lars Ellenberg Date: Thu Jul 22 17:39:26 2010 +0200 drbd: preparation commit, using full state in receive_state() no functional change, just using full state instead of just the .conn part of it for comparisons. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 2b2bf2148fd46874ee72a877c951e5c6675d1caa Author: Lars Ellenberg Date: Wed Oct 6 11:46:55 2010 +0200 drbd: drbd_send_ack_dp must not rely on header information drbd commit 17c854fea474a5eb3cfa12e4fb019e46debbc4ec drbd: receiving of big packets, for payloads between 64kByte and 4GByte introduced a new on-the-wire packet header format. We must no longer assume either format, but use the result of whatever drbd_recv_header has decoded. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 004352fa60345e499379af310de73a2df1a5762a Author: Lars Ellenberg Date: Tue Oct 5 20:13:58 2010 +0200 drbd: Fix regression in recv_bm_rle_bits (compressed bitmap) We used to be16_to_cpu the length field in our received packet header. drbd commit 17c854fea474a5eb3cfa12e4fb019e46debbc4ec drbd: receiving of big packets, for payloads between 64kByte and 4GByte changed this, but forgot to adjust a few places where we relied on h->length being in native byte order. This broke the receiving side of the RLE compressed bitmap exchange. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit f10f262349762c96ab247b6108af3a30b52b6f5a Author: Philipp Reisner Date: Tue Oct 5 16:50:17 2010 +0200 drbd: Fixed a stupid copy and paste error This caused rs_planed to be not in sync with the content of the fifo. That in turn could cause that the resync comes to a complete halt. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 00b425377d60e67e86721d4ce6d7cbf131a5d0fd Author: Philipp Reisner Date: Tue Oct 5 11:19:39 2010 +0200 drbd: Allow larger values for c-fill-target. Connections through a compressing proxy might have more bits on the fly. 500MByte instead of 50MByte Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit f65363cfa05fe60874030461a0eeb84b7e60cba4 Author: Lars Ellenberg Date: Tue Sep 14 20:14:09 2010 +0200 drbd: fix possible access after free If we release the page pointed to by md_io_tmpp, we need to zero out the pointer, too, as that may be used later to decide whether we need to allocate a new page again. Impact: a previously freed page may be used and clobbered. Depending on what that particular page is being used for meanwhile, this may result in silent data corruption of completely unrelated things. Only of concern on devices with logical_block_size != 512 byte, if you re-attach after becoming diskless once. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 8979d9c9e0bc8e54cf5bd7a89abb2145f087b5e1 Author: Lars Ellenberg Date: Tue Sep 14 15:56:29 2010 +0200 drbd: protocol compatibility for maximum packet sizes Two missing corner cases to the "maximum packet size" handshake. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit fb22c402ffdf61dd121795b5809de587185d5240 Author: Philipp Reisner Date: Wed Sep 8 23:20:21 2010 +0200 drbd: Track the reasons to suspend IO in dedicated state bits There are three ways to get IO suspended: * Loss of any access to data * Fence-peer-handler running * User requested to suspend IO Track those in different bits, so that one condition clearing its state bit does not interfere with the other two conditions. Only when the user resumes IO he overrules all three bits. The fact is hidden from the user, he sees only a single suspend bit. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 78db89287ce0f146a1f2a019a0b243ea4557caac Author: Lars Ellenberg Date: Mon Sep 13 13:27:10 2010 +0200 drbd: DIV_ROUND_UP not needed here Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 5a75cc7cfbb98e896232902214432dae30653dfe Author: Philipp Reisner Date: Thu Sep 9 14:22:21 2010 +0200 drbd: Fixed compatibility with protocol versions smaller than 95 Forgot to consider the max size for the resync requests. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit f2906e183f5460df9d9e774f5952f5ff670b3913 Author: Lars Ellenberg Date: Wed Jul 21 17:04:32 2010 +0200 drbd: fix for spurious full sync (becoming sync target looked like invalidate) If a synctarget lost connection while being WFSyncUUID, due to "state sanitizing", the attempted state change to SyncTarget looked like an "invalidate" to after_state_ch() later, thus caused a full sync on next handshake (Bug #318). drbd0: PingAck did not arrive in time. drbd0: peer( Primary -> Unknown ) conn( WFSyncUUID -> NetworkFailure ) pdsk( UpToDate -> DUnknown ) from : { cs:NetworkFailure ro:Secondary/Unknown ds:UpToDate/DUnknown r--- } to : { cs:SyncTarget ro:Secondary/Unknown ds:Inconsistent/DUnknown r--- } after sanizising, resulted in state: { cs:NetworkFailure ro:Secondary/Unknown ds:Inconsistent/DUnknown r--- } drbd0: disk( UpToDate -> Inconsistent ) Fix: don't mask state transition errors in "sanitizing", so the requested state change to SyncTarget fails, instead of being implicitly "remaped" to invalidate. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 02bc7174ae83617b4364dc179d95d848d9fd6db5 Author: Lars Ellenberg Date: Mon Sep 6 12:13:20 2010 +0200 drbd: cosmetic, don't report resync for online-verify Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit a821cc4a9a8d9e67356f9a5cfc1206aa3cfd30f7 Author: Lars Ellenberg Date: Mon Sep 6 12:31:37 2010 +0200 drbd: fix spurious protocol error If we cannot satisfy a request (because our disk just broke), we still need to drain the payload. Or we'll get a protocol error when interpreting the payload as DRBD packet header. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 1d53f09e170e477de67babd7a10e277479260d51 Author: Lars Ellenberg Date: Sun Sep 5 01:13:24 2010 +0200 drbd: fix potential kernel BUG (NULL deref) BUG trace would look like: lc_find drbd_rs_complete_io got_OVResult drbd_asender Could be triggered by explicit, or IO-error policy based, detach during online-verify. We may only dereference mdev->resync, if we first get_ldev(), as the disk may break any time, causing mdev->resync to disappear once all ldev references have been returned. Already in flight online-verify requests or replies may still come in, which we then need to ignore. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 435f07402b3165b90592073bc0f8c6f8fa160ff9 Author: Lars Ellenberg Date: Mon Sep 6 12:30:25 2010 +0200 drbd: don't count sendpage()d pages only referenced by tcp as in use Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 76d2e7eca8e7675c6d7a6592f9e747b121cc8a87 Author: Philipp Reisner Date: Wed Aug 25 11:58:05 2010 +0200 drbd: Adding support for BIO/Request flags: REQ_FUA, REQ_FLUSH and REQ_DISCARD Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 1090c056c5eb6d5335cceb381683e77ac24c71ab Author: Lars Ellenberg Date: Mon Jul 19 17:41:04 2010 +0200 drbd: drbd_md_sync before calling user space helpers Just in case we have some pending meta data changes to sync, do it before we call our userland helper, as that may take some time, or even cause a hard reboot. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit ee15b038164fcf19b798021762dee3cf5cbc6433 Author: Lars Ellenberg Date: Fri Sep 3 10:00:09 2010 +0200 drbd: fix race on meta-data update, addendum addendum to baa33ae4eaa4477b60af7c434c0ddd1d182c1ae7 The race: drbd_md_sync() if (!test_and_clear_bit(MD_DIRTY, &mdev->flags)) return; ==> RACE with drbd_md_mark_dirty() rearming the timer. del_timer(&mdev->md_sync_timer); Fixed by moving the del_timer before the test_and_clear_bit. Additionally only rearm the timer in drbd_md_mark_dirty, if MD_DIRTY was not already set, reduce the grace period from five to one second, and add an ifdef'ed debuging aid to find code paths missing an explicit drbd_md_sync, if any, as those are the only relevant ones for this race. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 63106d3c6c769b6219bd04edde513b12abae3f61 Author: Philipp Reisner Date: Wed Sep 1 15:47:15 2010 +0200 drbd: Removed a race that could cause unexpected execution of w_make_resync_request() The actual race happened int the drbd_start_resync() function. Where drbd_resync_finished() -> __drbd_set_state() set STOP_SYNC_TIMER and armed the timer. If the timer fired before execution reaches the mod_timer statement at the end of drbd_start_resync() the latter would cause an unexpected call to w_make_resync_request(). Removed the STOP_SYNC_TIMER bit, and base it on the connection state. The STOP_SYNC_TIMER bit probably originates probably the time before the state engine. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit ef50a3e34f93a067ada541346be3175e924331a2 Author: Lars Ellenberg Date: Wed Sep 1 14:39:30 2010 +0200 drbd: implicitly create unconfigured devices on sync-after dependencies If pacemaker (for example) decided to initialize minor devices not in the exact sync-after dependency order, the configuration partially failed with an error "The sync-after minor number is invalid". (Bugz. #322) We can avoid that by implicitly creating unconfigured minor devices, if others depend on them. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 3f3a9b849d2b703934c07fa17f5eac2dc37c1f6b Author: Lars Ellenberg Date: Wed Sep 1 15:12:12 2010 +0200 drbd: fix race on meta-data update The race: drbd_md_mark_dirty() drbd_md_sync() if (!test_and_clear_bit(MD_DIRTY, &mdev->flags)) return; drbd_md_sync_page_io(mdev, mdev->ldev, sector, WRITE) ==> RACE clear_bit(MD_DIRTY, &mdev->flags); <== spurious Fixed by removing the spurious clear_bit. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit c518d04fdec3d8b9d6f8b2228040934de9ee6708 Author: Lars Ellenberg Date: Wed Sep 1 09:50:23 2010 +0200 drbd: fix race between deconfiguring and reconfiguring network If a drbd_nl_net_conf hits the small window between the state change to C_STANDALONE and the corresponding cleanup in after_state_ch, that cleanup would throw away stuff we now need again, and later trigger BUG_ON()s. Fixed by properly serializing the new config request with any pending cleanup. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 0778286a133d2d3f81861a4e5db308e359583006 Author: Philipp Reisner Date: Tue Aug 31 12:00:50 2010 +0200 drbd: Disable activity log updates when the whole device is out of sync When the complete device is marked as out of sync, we can disable updates of the on disk AL. Currently AL updates are only disabled if one uses the "invalidate-remote" command on an unconnected, primary device, or when at attach time all bits in the bitmap are set. As of now, AL updated do not get disabled when a all bits becomes set due to application writes to an unconnected DRBD device. While this is a missing feature, it is not considered important, and might get added later. BTW, after initializing a "one legged" DRBD device drbdadm create-md resX drbdadm -- --force primary resX AL updates also get disabled, until the first connect. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit d53733893dc43f4ebb5be510863c5debf0f8990b Author: Philipp Reisner Date: Mon Aug 23 15:18:33 2010 +0200 drbd: Actually allow BIOs up to 128k (was 32k). Now we have multiple BIOs per ee, packets with a 32 bit length field, it gets time to use these goodies. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 02918be2273a6b086292e0d85b740336eda46e36 Author: Philipp Reisner Date: Fri Aug 20 14:35:10 2010 +0200 drbd: receiving of big packets, for payloads between 64kByte and 4GByte Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 0b70a13dac014ec9274640b9e945bde493ba365e Author: Philipp Reisner Date: Fri Aug 20 13:36:10 2010 +0200 drbd: Sending of big packets, for payloads from 64KByte to 4GByte Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 204bba9965c4cc175bf5bc65ddd19889e9085c72 Author: Philipp Reisner Date: Mon Aug 23 16:17:13 2010 +0200 drbd: Bugfix for regression introduced with f9bc8913c06022e If we intent to use the block_id member of an epoch entry, we may not use the digest member. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 48acf8689847c061bd82c808c379f1bd79dfe407 Author: Philipp Reisner Date: Mon Aug 23 15:51:56 2010 +0200 drbd: Microfix: Assigning sector once is sufficient Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 0f0601f4ea2f53cfd8bcae060fb03d9bbde070ec Author: Lars Ellenberg Date: Wed Aug 11 23:40:24 2010 +0200 drbd: new configuration parameter c-min-rate We now track the data rate of locally submitted resync related requests, and can thus detect non-resync activity on the lower level device. If the current sync rate is above c-min-rate, and the lower level device appears to be busy, we throttle the resyncer. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 80a40e439e5a3f30b0a6210a1add6d7c33392e54 Author: Lars Ellenberg Date: Wed Aug 11 23:28:00 2010 +0200 drbd: reduce code duplication when receiving data requests also canonicalize the return values of read_for_csum and drbd_rs_begin_io to return -ESOMETHING, or 0 for success. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 1d7734a0df02ff5068ff8baa1447c7baee601db1 Author: Lars Ellenberg Date: Wed Aug 11 21:21:50 2010 +0200 drbd: use rolling marks for resync speed calculation The current resync speed as displayed in /proc/drbd fluctuates a lot. Using an array of rolling marks makes this calculation much more stable. We used to have this (a long time ago with 0.7), but it got lost somehow. If "stalled", do not discard the rest of the information, just add a " (stalled)" tag to the progress line. This patch also shortens a spinlock critical section somewhat, and reduces the number of atomic operations in put_ldev. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 0bb70bf601579b0d4c56acbb54b8eb0688541e19 Author: Lars Ellenberg Date: Wed Aug 11 20:53:21 2010 +0200 drbd: remove outdated comment and dead code Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit c36c3ced692b38d0cf90a5e6f875be2f9ebbc037 Author: Lars Ellenberg Date: Wed Aug 11 20:42:55 2010 +0200 drbd: let drbd_free_ee implicitly free any digest Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 85719573dd716bc2ac3e098b44adfed884250bab Author: Philipp Reisner Date: Wed Jul 21 10:20:17 2010 +0200 drbd: Replaced some casts by an union. Improved comments Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit d207450cf2731c6a2afa8c78fb31c7206cd35eba Author: Philipp Reisner Date: Thu Jul 22 15:27:27 2010 +0200 drbd: Bugfix: rs_in_flight could become wrong if read_for_csum() requested reschedule later Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 778f271dfe7a7173c0bae2d6cde8d9bd1533e668 Author: Philipp Reisner Date: Tue Jul 6 11:14:00 2010 +0200 drbd: The new, smarter resync speed controller Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 8e26f9ccb9be00fdb33551a34c8f6029e89ab79f Author: Philipp Reisner Date: Tue Jul 6 17:25:54 2010 +0200 drbd: New sync_param packet, that includes the parameters of the new controller Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 9a31d7164d409ca59cfadb7957ac7b0acf4545b8 Author: Philipp Reisner Date: Mon Jul 5 13:42:03 2010 +0200 drbd: New sync parameters for the smart resync rate controller Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit d28fd092a55b504a0d699b65802a995086d70647 Author: Lars Ellenberg Date: Fri Jul 9 23:28:10 2010 +0200 drbd: fix list corruption (recent regression) The commit 288f422ec13667de40b278535d2a5fb5c77352c4 drbd: Track all IO requests on the TL, not writes only moved a list_add_tail(req, ) into a region where req may have just been freed due to conflict detection. Fix this by adding a proper cleanup section for that code path. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 3e0f686e6bf347eea4a41d7d415f003c2f42b1a0 Author: Randy Dunlap Date: Wed Oct 13 18:07:16 2010 -0700 ibft: fix kconfig dependencies Fix kconfig dependency warning to satisfy dependencies: warning: (BE2ISCSI && SCSI_LOWLEVEL && PCI && SCSI && NET || ISCSI_IBFT && ISCSI_IBFT_FIND && SCSI) selects ISCSI_BOOT_SYSFS which has unmet direct dependencies (SCSI_LOWLEVEL && SCSI) Signed-off-by: Randy Dunlap Signed-off-by: Peter Jones Signed-off-by: Konrad Rzeszutek Wilk commit ef6510babf047d394aa6eb8c93baa0dd6b838c28 Author: Kumar Gala Date: Thu Oct 14 08:55:47 2010 -0500 spi/fsl_spi: Fix compile errors when building on ppc64 We get the following when building on ppc64 due to lack of include of : In file included from drivers/spi/spi_fsl_espi.c:25:0: drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_write_reg': drivers/spi/spi_fsl_lib.h:88:2: error: implicit declaration of function 'out_be32' drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_read_reg': drivers/spi/spi_fsl_lib.h:93:2: error: implicit declaration of function 'in_be32' drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_remove': drivers/spi/spi_fsl_espi.c:571:2: error: implicit declaration of function 'iounmap' drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_probe': drivers/spi/spi_fsl_espi.c:602:2: error: implicit declaration of function 'ioremap' drivers/spi/spi_fsl_espi.c:602:24: warning: assignment makes pointer from integer without a cast Signed-off-by: Kumar Gala Signed-off-by: Grant Likely commit 32e39e19ccb0f25c9c1b7ff246e17e795366bbbd Author: Christoph Hellwig Date: Thu Oct 14 09:54:43 2010 -0400 hfsplus: remove the unused hfsplus_kmap/hfsplus_kunmap helpers Signed-off-by: Christoph Hellwig commit 90e616905a423126805186cb5754e10a704b30c8 Author: Christoph Hellwig Date: Thu Oct 14 09:54:39 2010 -0400 hfsplus: create correct initial catalog entries for device files Make sure the initial insertation of the catalog entry already contains the device number by calling init_special_inode early and setting writing out the dev field of the on-disk permission structure. The latter is facilitated by sharing the almost identical hfsplus_set_perms helpers between initial catalog entry creating and ->write_inode. Unless we crashed just after mknod this bug was harmless as the inode is marked dirty at the end of hfsplus_mknod, and hfsplus_write_inode will update the catalog entry to contain the correct value. Signed-off-by: Christoph Hellwig commit 722c55d13e7296cc62ed8a38f926a915ff32e4ea Author: Christoph Hellwig Date: Thu Oct 14 09:54:33 2010 -0400 hfsplus: remove superflous rootflags field in hfsplus_inode_info The rootflags field in hfsplus_inode_info only caches the immutable and append-only flags in the VFS inode, so we can easily get rid of it. Signed-off-by: Christoph Hellwig commit f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b Author: Christoph Hellwig Date: Thu Oct 14 09:54:28 2010 -0400 hfsplus: fix link corruption HFS implements hardlink by using indirect catalog entries that refer to a hidden directly. The link target is cached in the dev field in the HFS+ specific inode, which is also used for the device number for device files, and inside for passing the nlink value of the indirect node from hfsplus_cat_write_inode to a helper function. Now if we happen to write out the indirect node while hfsplus_link is creating the catalog entry we'll get a link pointing to the linkid of the current nlink value. This can easily be reproduced by a large enough loop of local git-clone operations. Stop abusing the dev field in the HFS+ inode for short term storage by refactoring the way the permission structure in the catalog entry is set up, and rename the dev field to linkid to avoid any confusion. While we're at it also prevent creating hard links to special files, as the HFS+ dev and linkid share the same space in the on-disk structure. Signed-off-by: Christoph Hellwig commit 13571a6977f821fab7d9c3cc5f75da52b7732e40 Author: Christoph Hellwig Date: Thu Oct 14 09:54:23 2010 -0400 hfsplus: validate btree flags Signed-off-by: Christoph Hellwig commit 9250f925972d03ccc0c0a4dd4e9b794d2ef6d52b Author: Eric Sandeen Date: Thu Oct 14 09:53:48 2010 -0400 hfsplus: handle more on-disk corruptions without oopsing hfs seems prone to bad things when it encounters on disk corruption. Many values are read from disk, and used as lengths to memcpy, as an example. This patch fixes up several of these problematic cases. o sanity check the on-disk maximum key lengths on mount (these are set to a defined value at mkfs time and shouldn't differ) o check on-disk node keylens against the maximum key length for each tree o fix hfs_btree_open so that going out via free_tree: doesn't wind up in hfs_releasepage, which wants to follow the very pointer we were trying to set up: HFS_SB(sb)->cat_tree = hfs_btree_open() . failure gets to hfs_releasepage and tries to follow HFS_SB(sb)->cat_tree Tested with the fsfuzzer; it survives more than it used to. [hch: ported of commit cf0594625083111ae522496dc1c256f7476939c2 from hfs] [hch: added the fixes from 5581d018ed3493d226e7a4d645d9c8a5af6c36b] Signed-off-by: Eric Sandeen Signed-off-by: Christoph Hellwig commit b6b41424f0ec28e9a167fa29b003327860b4b71b Author: Al Viro Date: Thu Oct 14 09:53:42 2010 -0400 hfsplus: hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage oops and fs corruption; the latter can happen even on valid fs in case of oom. [hch: port of commit 3d10a15d6919488204bdb264050d156ced20d9aa from hfs] Signed-off-by: Al Viro Signed-off-by: Christoph Hellwig commit ee52716245877b821f5ddbb3ace85b73084fb450 Author: Jeff Mahoney Date: Thu Oct 14 09:53:37 2010 -0400 hfsplus: fix oops on mount with corrupted btree extent records A particular fsfuzzer run caused an hfs file system to crash on mount. This is due to a corrupted MDB extent record causing a miscalculation of HFSPLUS_I(inode)->first_blocks for the extent tree. If the extent records are zereod out, then it won't trigger the first_blocks special case and instead falls through to the extent code, which we're in the middle of initializing. This patch catches the 0 size extent records, reports the corruption, and fails the mount. [hch: ported of commit 47f365eb575735c6b2edf5d08e0d16d26a9c23bd from hfs] Reported-by: Ramon de Carvalho Valle Signed-off-by: Jeff Mahoney Signed-off-by: Christoph Hellwig commit e756414f7daa93b862f1670dd0a6aaa676ea71e3 Author: Philipp Reisner Date: Tue Jun 29 17:35:34 2010 +0200 drbd: Initialize all members of sync_conf to their defaults [Bugz 315] Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 6709893059105d7859ae772af70c7db5bbab7de0 Author: Philipp Reisner Date: Thu Jun 24 16:24:25 2010 +0200 drbd: Make sure tl_restart(, resend) can not get called multiple times for a new connection Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit f70b3511599c49a3dc20ae349d6cdc5af47659df Author: Philipp Reisner Date: Thu Jun 24 14:34:40 2010 +0200 drbd: Do not try to free tl_hash in drbd_disconnect() when IO is suspended We may not free tl_hash when IO is suspended, since we can not wait until ap_bio_cnt reaches zero. We can do this after susp reched 0, since then tl_clear was called Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 8f488156c0635dcc9c668737d05386113a745ef9 Author: Philipp Reisner Date: Thu Jun 24 12:05:53 2010 +0200 drbd: Allow attach while IO is suspended Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit cfa03415a14dd0055f2ff8c3d348d4c1452acba6 Author: Philipp Reisner Date: Wed Jun 23 17:18:51 2010 +0200 drbd: Allow tl_restart() to do IO completion while IO is suspended Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 84dfb9f564208a0331131d1ab922382c7d61a553 Author: Philipp Reisner Date: Wed Jun 23 11:20:05 2010 +0200 drbd: Fixed a deadlock, probably only affected UP machines After disconnect (most likely mdev->net_cnt == 0) and we are still in an unstable state (!drbd_state_is_stable()). When we get an IO request in drbd_get_max_buffers() (called from __inc_ap_bio_cond(), called from inc_ap_bio()) we wake up misc_wait. Misc_wait is also used in inc_ap_bio() to sleep until the outcome of __inc_ap_bio_cond() changes. => Busy loop! Solution: Have a dedicated wait queue for get_net_conf() and put_net_conf(). Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 65d922c33ebd359db25d5846929b2eafc4238fcc Author: Philipp Reisner Date: Wed Jun 16 16:18:09 2010 +0200 drbd: Do not do a hard state change when establishing a connection [bugz 304] Make sure the state engine can deny two primaries to connect Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 481c6f503213ab14f69ce88fff7b1ece325522f2 Author: Philipp Reisner Date: Tue Jun 22 14:03:27 2010 +0200 drbd: Ensure that the peer was not rebootet in the meantime before resending TL Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 43a5182cccae5850f7590f78dd9651bd407be440 Author: Philipp Reisner Date: Fri Jun 11 11:26:34 2010 +0200 drbd: Delayed creation of current-UUID When a fencing policy of "resource-and-stonith" is configured, and DRBD looses connection to it's peer, we can delay the creation of a new current-UUID until IO gets thawed. That allows one to deploy fence-peer handlers that actually commit suicide on the machine they get started. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 87f7be4cf88e93069f4cc63baf2ce70fdfc59c63 Author: Philipp Reisner Date: Fri Jun 11 13:56:33 2010 +0200 drbd: Run the fence-peer helper asynchronously Since we can not thaw the transfer log, the next logical step is to allow reconnects while the fence-peer handler runs. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 1616a25493cce727d582886f162c5bb0abd87e6a Author: Philipp Reisner Date: Thu Jun 10 16:55:15 2010 +0200 drbd: Reduce the verbosity of some state transitions State transitions in the space of non-allowed states used to be very noisy. Reduce that, since that has little value for the majority of the user base. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 999122bc188a4d0a4847bdf1915d357bd6ab53dc Author: Philipp Reisner Date: Thu Jun 10 16:46:54 2010 +0200 drbd: Removing a by now obsolete clause in the state sanitizing Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 18a50fa213d46d5592f6542c91ab4c4760cf346c Author: Philipp Reisner Date: Mon Jun 21 14:14:15 2010 +0200 drbd: Now we need to handle the ed_uuid of an diskless, unconnected primary correctly Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 894c6a946199cf91e52bc1864c3dc6529cceb3db Author: Philipp Reisner Date: Fri Jun 18 16:03:20 2010 +0200 drbd: Disabled the crashed_primary detection for re-attach of last data while IO is frozen Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 47ff2d0a8e7ce87fed180729e8341f650bf585c8 Author: Philipp Reisner Date: Fri Jun 18 13:56:57 2010 +0200 drbd: Do not allow a fencing-policy of resource-and-stonith with protocol A Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 265be2d09853d425ad14a61cda0ca63345613d0c Author: Philipp Reisner Date: Mon May 31 10:14:17 2010 +0200 drbd: Finished the "on-no-data-accessible suspend-io;" functionality When no data is accessible (no connection to the peer, nor a local disk) allow the user to select to freeze all IO operations instead of getting IO errors. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 905cd7d8ac9b18e1f122b90dbebe1246b1c364fd Author: Philipp Reisner Date: Mon May 10 16:03:10 2010 +0200 drbd: Removed redundant error checks in the request code path Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 5ba82308ea766b33404cb130a88fe4113d9c20a3 Author: Philipp Reisner Date: Thu Jun 10 13:30:36 2010 +0200 drbd: factored drbd_req_make_private_bio() out of drbd_req_new() Preparing tl_thaw_dio() Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit b9b98716f83856b928f1c985ab55520c67663dd2 Author: Philipp Reisner Date: Tue Jun 22 11:26:48 2010 +0200 drbd: Do not send two barriers without any writes between them Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 11b58e73a3a3d1bbb582370d59f9b2c4d0136b42 Author: Philipp Reisner Date: Wed May 12 17:08:26 2010 +0200 drbd: factored tl_restart() out of tl_clear(). If IO was frozen for a temporal network outage, resend the content of the transfer-log into the newly established connection. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 2a80699f807885d501f08a7006f6a56c1c937a6e Author: Philipp Reisner Date: Wed Jun 9 14:07:43 2010 +0200 drbd: mod_req has now a return value Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 288f422ec13667de40b278535d2a5fb5c77352c4 Author: Philipp Reisner Date: Thu May 27 15:07:43 2010 +0200 drbd: Track all IO requests on the TL, not writes only With that the drbd_fail_pending_reads() function becomes obsolete. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 7e602c0aaf3e686c36cc742119f0f53f42e9befe Author: Philipp Reisner Date: Thu May 27 14:49:27 2010 +0200 drbd: renamed drbd_tl_epoch.n_req to drbd_tl_epoch.n_writes Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg commit 2989b722c9c4694cf6c5aa378f9c8a14e106d320 Author: Josh Boyer Date: Tue Sep 28 09:03:49 2010 -0400 powerpc/44x: Update ppc44x_defconfig Make sure the new bluestone board is selected for the multiplatform defconfig. Also build logfs and squashfs as modules. Signed-off-by: Josh Boyer commit 3c7d2b765df974ae29a9f1d5a62e15b243a36763 Author: Maciej Ć»enczykowski Date: Wed Oct 13 21:47:14 2010 -0700 pcmcia: fix unused function compile warning pcmcia_socket_dev_resume() is only referenced from macro SET_SYSTEM_SLEEP_PM_OPS(NULL, pcmcia_socket_dev_resume) which based on CONFIG_PM_SLEEP may or may not actually use its second parameter. Signed-off-by: Maciej Ć»enczykowski Signed-off-by: Dominik Brodowski commit 864616ee6785d9fac7a2cd80c01a2da89579f2e4 Author: Takuya Yoshikawa Date: Thu Oct 14 16:09:13 2010 +0900 sched: Comment updates: fix default latency and granularity numbers Targeted preemption latency and minimal preemption granularity for CPU-bound tasks have been changed. This patch updates the comments about these values. Signed-off-by: Takuya Yoshikawa Cc: Peter Zijlstra Cc: Mike Galbraith LKML-Reference: <20101014160913.eb24fef4.yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Ingo Molnar commit ed859ed3b0f9893c6bce3708e8928341c15699b9 Merge: a802707 53eeb64 Author: Ingo Molnar Date: Thu Oct 14 09:11:43 2010 +0200 Merge branch 'linus' into sched/core Merge reason: update from -rc5 to -almost-final Signed-off-by: Ingo Molnar commit 67e87f0a1c5cbc750f81ebf6a128e8ff6f4376cc Author: Jeremy Fitzhardinge Date: Wed Oct 13 16:34:15 2010 -0700 x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S head_64.S maps up to 512 MiB, but that is not necessarity true for other entry paths, such as Xen. Thus, co-locate the setting of max_pfn_mapped with the code to actually set up the page tables in head_64.S. The 32-bit code is already so co-located. (The Xen code already sets max_pfn_mapped correctly for its own use case.) -v2: Yinghai fixed the following bug in this patch: | | max_pfn_mapped is in .bss section, so we need to set that | after bss get cleared. Without that we crash on bootup. | | That is safe because Xen does not call x86_64_start_kernel(). | Signed-off-by: Jeremy Fitzhardinge Fixed-by: Yinghai Lu Signed-off-by: H. Peter Anvin LKML-Reference: <4CB6AB24.9020504@kernel.org> Signed-off-by: Ingo Molnar commit fb62db2ba943b1683f1d7181bb2988fce4c60870 Author: Randy Dunlap Date: Wed Oct 13 11:02:34 2010 -0700 futex: Fix kernel-doc notation & typos Convert futex_requeue() function parameters to use @name kernel-doc notation and add @fshared & @cmpval to prevent kernel-doc warnings. Add @list to struct futex_q. Fix a few typos. Signed-off-by: Randy Dunlap Acked-by: Rusty Russell LKML-Reference: <20101013110234.89b06043.randy.dunlap@oracle.com> Signed-off-by: Ingo Molnar commit 3cba11d32bb4b24c3ba257043595772df4b9c7b5 Author: Masami Hiramatsu Date: Thu Oct 14 12:10:42 2010 +0900 kconfig/x86: Add HAVE_TEXT_POKE_SMP config for stop_machine dependency Since the text_poke_smp() definately depends on actual stop_machine() on smp, add that dependency to Kconfig. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Mathieu Desnoyers LKML-Reference: <20101014031042.4100.90877.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 3caa37519ccbb200c7fbbf6ff4fb306a30f29425 Author: Masami Hiramatsu Date: Thu Oct 14 12:10:36 2010 +0900 x86: Use __stop_machine() in text_poke_smp() Use __stop_machine() in text_poke_smp() because the caller must get online_cpus before calling text_poke_smp(), but stop_machine() do it again. We don't need it. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Mathieu Desnoyers LKML-Reference: <20101014031036.4100.83989.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 087a4eb55971dfcc8df18312faf9393d0a479f3a Author: Masami Hiramatsu Date: Thu Oct 14 12:10:30 2010 +0900 stopmachine: Define __stop_machine when CONFIG_STOP_MACHINE=n Define dummy __stop_machine() function even when CONFIG_STOP_MACHINE=n. This getcpu-required version of stop_machine() will be used from poke_text_smp(). Signed-off-by: Masami Hiramatsu Acked-by: Tejun Heo Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Peter Zijlstra LKML-Reference: <20101014031030.4100.34156.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit fd02e6f7ae085840d43d780149fcf95a614eca5e Author: Masami Hiramatsu Date: Thu Oct 14 12:10:24 2010 +0900 kprobes: Fix selftest to clear flags field for reusing probes Fix selftest to clear flags field for reusing probes because the flags field can be modified by Kprobes. This also set NULL to kprobe.addr instead of 0. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp LKML-Reference: <20101014031024.4100.50107.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 0f55a2f3d496133dd22f1e4e49fb7301da87c7bb Author: Masami Hiramatsu Date: Thu Oct 14 12:10:18 2010 +0900 kprobes: Update document about irq disabled state in kprobe handler Update kprobes.txt about interrupts disabled state inside kprobes handlers, because optimized probe/boosted kretprobe run without disabling interrrupts on x86. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp LKML-Reference: <20101014031018.4100.64883.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 1efeb08d7dd32c0fbd4b784ea9303b53d345bfd0 Author: Ingo Molnar Date: Thu Oct 14 08:09:42 2010 +0200 perf, ARM: Fix sysfs bits removal build failure Fix this linux-next build failure that Stephen reported: arch/arm/kernel/perf_event.c: In function 'armpmu_event_init': arch/arm/kernel/perf_event.c:543: error: request for member 'num_events' in something not a structure or union Reported-by: Stephen Rothwell Cc: Peter Zijlstra Cc: paulus LKML-Reference: <20101014164925.4fa16b75.sfr@canb.auug.org.au> Signed-off-by: Ingo Molnar commit e0dc09ff9a28f37441c5e92a14de6abda8db49d6 Author: Timur Tabi Date: Wed Oct 13 14:19:36 2010 -0500 powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option The PowerPC Book-E watchdog driver (booke_wdt.c) defines a default timeout value in the code based on whether it's a Freescale Book-E part of not. Instead of having hard-coded values in the driver, make it a Kconfig option. As newer chips gets faster, the current default values become less appropriate, since the timeout sometimes occurs before the kernel finishes booting. Making the value a Kconfig option allows BSPs to configure a new value without requiring the wdt_period command-line parameter to be set. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit abd12fe4d1249f6c2c4b34d5ced82f179e6b5d30 Author: Shaohui Xie Date: Thu Oct 14 10:04:02 2010 +0800 fsl_rio: Add comments for sRIO registers. Add some comments to make sRIO registers map better readable. Signed-off-by: Shaohui Xie Signed-off-by: Kumar Gala commit 6249a26a4cfe945c0840f222e3669deb9bd41425 Author: Kumar Gala Date: Thu Jun 3 03:23:21 2010 -0500 powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig The p5020 SoC from Freescale is the first 64-bit Book-E processor and utilizes the two e5500 cores. Adding a defconfig that enables basic kernel for e5500 based processors. Also added the p5020 / e5500 support to the ppc64e defconfig. Signed-off-by: Kumar Gala commit 95400415c7b3f3dd43034c6c860897ac397ebe1b Author: Kumar Gala Date: Thu Oct 7 14:05:47 2010 -0500 powerpc/fsl-booke: Add p5020 DS board support The P5020DS is in the same family of boards as the P4080 DS and thus shares the corenet_ds code. Signed-off-by: Kumar Gala commit 55fd766b5fad8240b7a6e994b5779a46d28f73d4 Author: Kumar Gala Date: Fri Oct 16 18:48:40 2009 -0500 powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips On Freescale parts typically have TLB array for large mappings that we can bolt the linear mapping into. We utilize the code that already exists on PPC32 on the 64-bit side to setup the linear mapping to be cover by bolted TLB entries. We utilize a quarter of the variable size TLB array for this purpose. Additionally, we limit the amount of memory to what we can cover via bolted entries so we don't get secondary faults in the TLB miss handlers. We should fix this limitation in the future. Signed-off-by: Kumar Gala commit 988cf86d4f0da4150e808300c145ba87c0aad02f Author: Kumar Gala Date: Fri Oct 8 02:13:25 2010 -0500 powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes Update setup_page_sizes() to support for a MMU v1.0 FSL style MMU implementation. In such a processor, we don't have TLB0PS or EPTCFG registers (and access to these registers may cause exceptions). We need to parse the older format of TLBnCFG for page size support. Additionaly, assume since we are an FSL implementation that we have 2 TLB arrays and the second array contains the variable size pages. Signed-off-by: Kumar Gala commit 4490c06b581ad7d6392bb398960ef86dfd203a91 Author: Kumar Gala Date: Fri Oct 8 08:32:11 2010 -0500 powerpc/fsl-booke: Add support for FSL 64-bit e5500 core The new e5500 core is similar to the e500mc core but adds 64-bit support. We support running it in 32-bit mode as it is identical to the e500mc. Signed-off-by: Kumar Gala commit 6db92cc9d07db9f713da8554b4bcdfc8e54ad386 Author: Harninder Rai Date: Wed Oct 13 17:30:56 2010 +0530 powerpc/85xx: add cache-sram support It adds cache-sram support in P1/P2 QorIQ platforms as under: * A small abstraction over powerpc's remote heap allocator * Exports mpc85xx_cache_sram_alloc()/free() APIs * Supports only one contiguous SRAM window * Drivers can do the following in Kconfig to use these APIs "select FSL_85XX_CACHE_SRAM if MPC85xx" * Required SRAM size and the offset where SRAM should be mapped must be provided at kernel command line as : cache-sram-size= cache-sram-offset= Signed-off-by: Harninder Rai Signed-off-by: Vivek Mahajan Signed-off-by: Kumar Gala commit 6341efe4b9bd1e1f9c0d0d6ec57fa77949c88bb1 Author: Timur Tabi Date: Thu Oct 7 14:36:42 2010 -0500 powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board The device tree for Freescale's P1022DS reference board is missing the node for the ngPIXIS FPGA. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 3c4b76449b4efc1a1cbd0cade09486bbc8b56401 Author: Kumar Gala Date: Thu Oct 7 17:05:08 2010 -0500 powerpc: Fix compile error with paca code on ppc64e arch/powerpc/kernel/paca.c: In function 'allocate_lppacas': arch/powerpc/kernel/paca.c:111:1: error: parameter name omitted arch/powerpc/kernel/paca.c:111:1: error: parameter name omitted Signed-off-by: Kumar Gala commit b6f9e595d27371c4f2157a294da3caa7aed5fe53 Author: Kumar Gala Date: Thu Oct 7 14:47:10 2010 -0500 powerpc/fsl-booke: Add p3041 DS board support The P3041DS is in the same family of boards as the P4080DS and thus shares the corenet_ds code. Signed-off-by: Kumar Gala commit 4267ea72bb09dc58f006df26c8d3e897489fabca Author: Scott Wood Date: Wed May 19 15:32:21 2010 -0500 oprofile/fsl emb: Don't set MSR[PMM] until after clearing the interrupt. On an arch 2.06 hypervisor, a pending perfmon interrupt will be delivered to the hypervisor at any point the guest is running, regardless of MSR[EE]. In order to reflect this interrupt, the hypervisor has to mask the interrupt in PMGC0 -- and set MSRP[PMMP] to intercept futher guest accesses to the PMRs to detect when to unmask (and prevent the guest from unmasking early, or seeing inconsistent state). This has the side effect of ignoring any changes the guest makes to MSR[PMM], so wait until after the interrupt is clear, and thus the hypervisor should have cleared MSRP[PMMP], before setting MSR[PMM]. The counters wil not actually run until PMGC0[FAC] is cleared in pmc_start_ctrs(), so this will not reduce the effectiveness of PMM. Signed-off-by: Scott Wood Signed-off-by: Kumar Gala commit 4f0e332239e2b5f79757cb8f8f3db16c66f5d220 Author: Kumar Gala Date: Fri Sep 24 13:34:42 2010 -0500 powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips Signed-off-by: Kumar Gala commit da3ed89e7ce272ebcc918487e2a28736ca0dd6bb Author: Kumar Gala Date: Tue May 18 07:52:36 2010 -0500 powerpc/mpc8xxx_gpio: Add support for 'qoriq-gpio' controllers Add 'fsl,qoriq-gpio' compatiable to the list we search for to bind against for mpc8xxx_gpio. This compatiable will be used on P1-P5xxx QorIQ devices like P4080. Signed-off-by: Kumar Gala commit 2ed38b23597284cc96a97e295cb145a6202dfcd4 Author: Matthew McClintock Date: Tue Aug 31 18:24:45 2010 -0500 powerpc/fsl_booke: Add support to boot from core other than 0 First we check to see if we are the first core booting up. This is accomplished by comparing the boot_cpuid with -1, if it is we assume this is the first core coming up. Secondly, we need to update the initial thread info structure to reflect the actual cpu we are running on otherwise smp_processor_id() and related functions will return the default initialization value of the struct or 0. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit f7a07fd9617140c6111de82400ba1bad3162fb85 Author: Timur Tabi Date: Thu Aug 19 16:28:12 2010 -0500 powerpc/p1022: Add probing for individual DMA channels Like the MPC8610 HPCD, the P1022DS ASoC DMA driver probes on individual DMA channel nodes, so the DMA controller nodes' compatible string must be listed in p1022_ds_ids[] to work. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 4ea7c88bec9221031fa57fc7c290fdb5d279748c Author: Matthew McClintock Date: Tue Aug 31 17:44:51 2010 -0500 powerpc/fsl_soc: Search all global-utilities nodes for rstccr The first global-utilities node might not contain the rstcr property, so we should search all the nodes Signed-off-by: Matthew McClintock Acked-by: Timur Tabi Signed-off-by: Kumar Gala commit 92437d41374bf59b1914b53bd10ca69d31b1b581 Author: Paul Gortmaker Date: Fri Sep 24 12:44:52 2010 -0400 powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT There exists a four line chunk of code, which when configured for 64 bit address space, can incorrectly set certain page flags during the TLB creation. It turns out that this is code which isn't used, but might still serve a purpose. Since it isn't obvious why it exists or why it causes problems, the below description covers both in detail. For powerpc bootstrap, the physical memory (at most 768M), is mapped into the kernel space via the following path: MMU_init() | + adjust_total_lowmem() | + map_mem_in_cams() | + settlbcam(i, virt, phys, cam_sz, PAGE_KERNEL_X, 0); On settlbcam(), the kernel will create TLB entries according to the flag, PAGE_KERNEL_X. settlbcam() { ... TLBCAM[index].MAS1 = MAS1_VALID | MAS1_IPROT | MAS1_TSIZE(tsize) | MAS1_TID(pid); ^ These entries cannot be invalidated by the kernel since MAS1_IPROT is set on TLB property. ... if (flags & _PAGE_USER) { TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); } For classic BookE (flags & _PAGE_USER) is 'zero' so it's fine. But on boards like the the Freescale P4080, we want to support 36-bit physical address on it. So the following options may be set: CONFIG_FSL_BOOKE=y CONFIG_PTE_64BIT=y CONFIG_PHYS_64BIT=y As a result, boards like the P4080 will introduce PTE format as Book3E. As per the file: arch/powerpc/include/asm/pgtable-ppc32.h * #elif defined(CONFIG_FSL_BOOKE) && defined(CONFIG_PTE_64BIT) * #include So PAGE_KERNEL_X is __pgprot(_PAGE_BASE | _PAGE_KERNEL_RWX) and the book3E version of _PAGE_KERNEL_RWX is defined with: (_PAGE_BAP_SW | _PAGE_BAP_SR | _PAGE_DIRTY | _PAGE_BAP_SX) Note the _PAGE_BAP_SR, which is also defined in the book3E _PAGE_USER: #define _PAGE_USER (_PAGE_BAP_UR | _PAGE_BAP_SR) /* Can be read */ So the possibility exists to wrongly assign the user MAS3_U bits to kernel (PAGE_KERNEL_X) address space via the following code fragment: if (flags & _PAGE_USER) { TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); } Here is a dump of the TLB info from Simics with the above code present: ------ L2 TLB1 GT SSS UUU V I Row Logical Physical SS TLPID TID WIMGE XWR XWR F P V ----- ----------------- ------------------- -- ----- ----- ----- --- --- - - - 0 c0000000-cfffffff 000000000-00fffffff 00 0 0 M XWR XWR 0 1 1 1 d0000000-dfffffff 010000000-01fffffff 00 0 0 M XWR XWR 0 1 1 2 e0000000-efffffff 020000000-02fffffff 00 0 0 M XWR XWR 0 1 1 Actually this conditional code was used for two legacy functions: 1: support KGDB to set break point. KGDB already dropped this; now uses its core write to set break point. 2: io_block_mapping() to create TLB in segmentation size (not PAGE_SIZE) for device IO space. This use case is also removed from the latest PowerPC kernel. However, there may still be a use case for it in the future, like large user pages, so we can't remove it entirely. As an alternative, we match on all bits of _PAGE_USER instead of just any bits, so the case where just _PAGE_BAP_SR is set can't sneak through. With this done, the TLB appears without U having XWR as below: ------- L2 TLB1 GT SSS UUU V I Row Logical Physical SS TLPID TID WIMGE XWR XWR F P V ----- ----------------- ------------------- -- ----- ----- ----- --- --- - - - 0 c0000000-cfffffff 000000000-00fffffff 00 0 0 M XWR 0 1 1 1 d0000000-dfffffff 010000000-01fffffff 00 0 0 M XWR 0 1 1 2 e0000000-efffffff 020000000-02fffffff 00 0 0 M XWR 0 1 1 Signed-off-by: Tiejun Chen Signed-off-by: Paul Gortmaker Signed-off-by: Kumar Gala commit cd2bd44ea8a2e8be8fff583fa5759e8f3758e67a Author: Ilya Yanok Date: Thu Sep 9 01:55:16 2010 +0200 powerpc/mpc83xx: Support for MPC8308 P1M board This patch adds support for MPC8308 P1M board. Supported devices: DUART Dual Ethernet NOR flash Both I2C controllers USB in peripheral mode PCI Express Signed-off-by: Ilya Yanok Signed-off-by: Kumar Gala commit 677de425583b43bf1af3aea0fa8d433120f0f13c Author: Matthew McClintock Date: Thu Sep 16 17:58:26 2010 -0500 powerpc/85xx: flush dcache before resetting cores When we do an mpic_reset_core we need to make sure the dcache is flushed. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit 5d692961633d4ecd1ca07313b75ddf35520a4c28 Author: Matthew McClintock Date: Thu Sep 16 17:58:25 2010 -0500 powerpc/85xx: Minor fixups for kexec on 85xx Make kexec_down_cpus atmoic since it will be incremented by all cores as they are coming down. Remove duplicate calls to mpc85xx_smp_kexec_down, now it's called by the crash and normal kexec pathway only once. Increase the timeout to wait for other cores to shutdown. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit edb85800101c354a395ecc5ed3b52a9499bd4cfc Author: Matthew McClintock Date: Thu Sep 16 17:58:24 2010 -0500 powerpc/85xx: Remove call to mpic_teardown_this_cpu in kexec We no longer need to call this explicitly as a generic version is called by default. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit c71635d288ffd3bcdfb30308f681f9af34f0fc81 Author: Matthew McClintock Date: Thu Sep 16 17:58:23 2010 -0500 powerpc/kexec: make masking/disabling interrupts generic Right now just the kexec crash pathway turns turns off the interrupts. Pull that out and make a generic version for use elsewhere Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit fbdd7144ceadd578bc2a875af1dabd67e80ba0d0 Author: Timur Tabi Date: Mon Sep 20 11:23:42 2010 -0500 powerpc/watchdog: Allow the Book-E driver to be compiled as a module Register the __init and __exit functions in the PowerPC Book-E Watchdog driver as module entry/exit functions, and modify the Kconfig entry. Add a .release method for the PowerPC Book-E Watchdog driver, so that the watchdog is disabled when the driver is closed. Loosely based on original code from Jiang Yutang . Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 55ec2fca3e99f83b5c674e9aba713d848392f6cc Author: Timur Tabi Date: Mon Sep 20 11:23:41 2010 -0500 powerpc: export ppc_proc_freq and ppc_tb_freq as GPL symbols Export the global variable 'ppc_tb_freq', so that modules (like the Book-E watchdog driver) can use it. To maintain consistency, ppc_proc_freq is changed to a GPL-only export. This is okay, because any module that needs this symbol should be an actual Linux driver, which must be GPL-licensed. Signed-off-by: Timur Tabi Acked-by: Josh Boyer Signed-off-by: Kumar Gala commit b8f44ec2c05f9cfe1647173ac60c0cccb1118c91 Author: Kumar Gala Date: Thu Aug 5 02:45:08 2010 -0500 powerpc/fsl-pci: Fix MSI support on 83xx platforms The following commit broke 83xx because it assumed the 83xx platforms exposed the "IMMR" address in BAR0 like the 85xx/86xx/QoriQ devices do: commit 3da34aae03d498ee62f75aa7467de93cce3030fd Author: Kumar Gala Date: Tue May 12 15:51:56 2009 -0500 powerpc/fsl: Support unique MSI addresses per PCIe Root Complex However that is not true, so we have to search through the inbound window settings on 83xx to find which one matches the IMMR address to determine its PCI address. Reported-by: Ilya Yanok Signed-off-by: Kumar Gala commit b9d228f9e896df1af787b2f3467889ab0832370a Author: Matthias Brugger Date: Wed Oct 13 17:51:02 2010 +0200 spi/atmel: let transfers through if not changing bits_per_word bits_per_word option in spi_transfer are allowed if it does not change the csr register. This is necessary for the driver in drivers/staging/iio/adis16260_core.c, as it uses this option. Signed-off-by: Matthias Brugger Signed-off-by: Grant Likely commit 8e41b527ff2c1d7d8c9a9e8b9f53877af2892cef Author: Grant Likely Date: Wed Oct 13 23:03:15 2010 -0600 spi/topcliff: Fix uninitialized variable defect This patch fixes the following build error introduced by commit 65308c46, "spi/topcliff: cleanup for style and conciseness". drivers/spi/spi_topcliff_pch.c: In function 'pch_spi_process_messages': drivers/spi/spi_topcliff_pch.c:752: warning: 'data' is used uninitialized in +this function Signed-off-by: Grant Likely commit fef5ba797991f9335bcfc295942b684f9bf613a1 Author: Jeremy Fitzhardinge Date: Wed Oct 13 16:02:24 2010 -0700 xen: Cope with unmapped pages when initializing kernel pagetable Xen requires that all pages containing pagetable entries to be mapped read-only. If pages used for the initial pagetable are already mapped then we can change the mapping to RO. However, if they are initially unmapped, we need to make sure that when they are later mapped, they are also mapped RO. We do this by knowing that the kernel pagetable memory is pre-allocated in the range e820_table_start - e820_table_end, so any pfn within this range should be mapped read-only. However, the pagetable setup code early_ioremaps the pages to write their entries, so we must make sure that mappings created in the early_ioremap fixmap area are mapped RW. (Those mappings are removed before the pages are presented to Xen as pagetable pages.) Signed-off-by: Jeremy Fitzhardinge LKML-Reference: <4CB63A80.8060702@goop.org> Cc: Yinghai Lu Signed-off-by: H. Peter Anvin commit d7acb92fea932ad2e7846480aeacddc2c03c8485 Author: H. Peter Anvin Date: Wed Oct 13 16:00:29 2010 -0700 x86-64, asm: If the assembler supports fxsave64, use it Kbuild allows for us to probe for the existence of specific constructs in the assembler, use them to find out if we can use fxsave64 and permit the compiler to generate better code. Signed-off-by: H. Peter Anvin commit f20ce779bb31a90985b0daea2bf0aaf009d21b81 Author: Kumar Sanghvi Date: Tue Oct 12 20:17:25 2010 +0000 Documentation: Update Phonet doc for Pipe controller changes Updates to Phonet doc for Pipe controller 'connect' socket implementation and changes related to socket options. Signed-off-by: Kumar Sanghvi Signed-off-by: David S. Miller commit b3d6255388de0680a14f0907deb7b7f4fa0d25d5 Author: Kumar Sanghvi Date: Tue Oct 12 20:14:43 2010 +0000 Phonet: 'connect' socket implementation for Pipe controller Based on suggestion by RĂ©mi Denis-Courmont to implement 'connect' for Pipe controller logic, this patch implements 'connect' socket call for the Pipe controller logic. The patch does following:- - Removes setsockopts for PNPIPE_CREATE and PNPIPE_DESTROY - Adds setsockopt for setting the Pipe handle value - Implements connect socket call - Updates the Pipe controller logic User-space should now follow below sequence with Pipe controller:- -socket -bind -setsockopt for PNPIPE_PIPE_HANDLE -connect -setsockopt for PNPIPE_ENCAP_IP -setsockopt for PNPIPE_ENABLE GPRS/3G data has been tested working fine with this. Signed-off-by: Kumar Sanghvi Acked-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 7368ddf144afd79456fd853fa25f33e31da003a9 Author: Paul Gortmaker Date: Tue Oct 12 14:25:58 2010 +0000 tipc: clean out all instances of #if 0'd unused code Remove all instances of legacy, or as yet to be implemented code that is currently living within an #if 0 ... #endif block. In the rare instance that some of it be needed in the future, it can still be dragged out of history, but there is no need for it to sit in mainline. Signed-off-by: Paul Gortmaker Acked-by: Neil Horman Signed-off-by: David S. Miller commit c23cc81a5e5c1d4486b662cedd0afcdf9145f154 Author: Ben Greear Date: Wed Oct 13 12:01:23 2010 -0700 ath9k: Fix potential use-after-free. The ath_debug_stat_tx references bf->bf_mpdu, which is the skb consumed by ath_tx_complete. So, call the ath_debug_stat_tx method first. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit e4b55957eb695b43055b6badec026628b24fe80a Author: Johannes Berg Date: Wed Oct 13 19:23:21 2010 +0200 mac80211: fix SMPS request It looks like I submitted a different patch than I tested, because clearly the code in mac80211 is missing actually propagating the requested SMPS mode. Fix that! Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 9c1d8e4affe6748d884a677cf5db19ae0c20ef07 Author: Jouni Malinen Date: Wed Oct 13 17:29:31 2010 +0300 ath9k: Set RX filter for Probe Request based on filter flag This allows mac80211 to enable receiving of Probe Request frames in station mode which is needed for P2P. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 7be5086d4cb7cceb71d724a9524d5e927785d04f Author: Johannes Berg Date: Wed Oct 13 12:06:24 2010 +0200 mac80211: add probe request filter flag Using the frame registration notification, we can see when probe requests are requested and notify the low-level driver via filtering. The flag is also set in AP and IBSS modes. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 271733cf844a2f5f186ef3b40c26d6397b71039a Author: Johannes Berg Date: Wed Oct 13 12:06:23 2010 +0200 cfg80211: notify drivers about frame registrations Drivers may need to adjust their filters according to frame registrations, so notify them about them. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7a8266524af7ec70d1b3d10f964ce911d922d466 Author: Mohammed Shafi Shajakhan Date: Wed Oct 13 11:47:09 2010 +0530 ath9k: Fix documentation in rate control This fix updates the documenation in Rate Control Table structure Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: John W. Linville commit d84a35d1323bc62f9b26a707072767a60da75015 Author: Ben Greear Date: Tue Oct 12 10:55:38 2010 -0700 ath5k: Move debugfs under ieee80211/[wiphy-name] This automatically keeps things proper when wiphy is renamed. Based on patch by Johannes Berg Signed-off-by: Ben Greear Acked-by: Bruno Randolf Signed-off-by: John W. Linville commit 10d8dad8453f8648a448960d7a2d3d983dfe0ed3 Author: Gerrit Renker Date: Tue Oct 12 07:07:42 2010 +0200 wext: fix alignment problem in serializing 'struct iw_point' wext: fix alignment problem in serializing 'struct iw_point' This fixes a typo in the definition of the serialized length of struct iw_point: a) wireless.h is exported to userspace, the typo causes IW_EV_POINT_PK_LEN to be 12 on 64-bit, and 8 on 32-bit systems (causing misalignment); b) in compat-64 mode iwe_stream_add_point() memcpys overlap (see below). The second case in in compat-64 mode looks like (variable names are as in include/net/iw_handler.h:iwe_stream_add_point()): point_len = IW_EV_COMPAT_POINT_LEN = 8 lcp_len = IW_EV_COMPAT_LCP_LEN = 4 2nd memcpy: IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN = 12 - 4 = 8 IW_EV_LCP_PK_LEN <--------------> *---> 'extra' data area +-------+-------+-------+-------+---------------+------- ...-+ | len | cmd |length | flags | (empty) -> extra ... | +-------+-------+-------+-------+---------------+------- ...-+ 2 2 2 2 4 lcp_len <--------------> <-!! OVERLAP !!> <--1st memcpy--><------- 2nd memcpy -----------> <---- 3rd memcpy ------- ... > <--------- point_len ----------> This case could cause overrun whenever iw_point.length < 4. The other two cases are - * 32-bit systems: IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN = 8 - 4 = 4, the second memcpy copies exactly the 4 required bytes; * 64-bit systems: IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN = 12 - 4 = 8, the second memcpy copies a superfluous (but non overlapping) 4 bytes. The patch changes IW_EV_POINT_PK_LEN to be 8, so that in all 3 cases always only the requested iw_point.{length,flags} (both __u16) are copied, avoiding overrrun (compat-64) and superfluous copy (64-bit). In addition, the userspace header is sanitized (in agreement with version 30 of the wireless tools). Many thanks to Johannes Berg for help and review with this patch. Signed-off-by: Gerrit Renker Signed-off-by: John W. Linville commit a91fd267e327ca7599654b4e9ed7b62c5adaccee Author: Simon Horman Date: Wed Oct 13 21:22:35 2010 +0200 IPVS: ip_vs_dbg_callid() is only needed for debugging ip_vs_dbg_callid() and IP_VS_DEBUG_CALLID() are only needed it CONFIG_IP_VS_DEBUG is defined. This resolves the following build warning when CONFIG_IP_VS_DEBUG is not defined. net/netfilter/ipvs/ip_vs_pe_sip.c:11: warning: 'ip_vs_dbg_callid' defined but not used Reported-by: Patrick McHardy Signed-off-by: Simon Horman Signed-off-by: Patrick McHardy commit 892b6f90db81cccb723d5d92f4fddc2d68b206e1 Author: Martin K. Petersen Date: Wed Oct 13 21:18:03 2010 +0200 block: Ensure physical block size is unsigned int Physical block size was declared unsigned int to accomodate the maximum size reported by READ CAPACITY(16). Make sure we use the right type in the related functions. Signed-off-by: Martin K. Petersen Acked-by: Mike Snitzer Cc: stable@kernel.org Signed-off-by: Jens Axboe commit 447b1d43ded08c11f4f3d344b4e07e6dcddbef95 Author: Daniel Drake Date: Wed Oct 13 19:10:42 2010 +0100 x86, olpc: Register XO-1 platform devices The upcoming XO-1 rfkill driver (for drivers/platform/x86) will register itself with the name "xo1-rfkill", and the already-merged XO-1 poweroff code uses name "olpc-xo1" Add the necessary mechanics so that these devices are properly initialized on XO-1 laptops. Signed-off-by: Daniel Drake LKML-Reference: <20101013181042.90C8F9D401B@zog.reactivated.net> Cc: Matthew Garrett Signed-off-by: H. Peter Anvin commit 9fbb711ee1a70826440502133903d4df025c0b78 Author: David S. Miller Date: Wed Oct 13 09:11:26 2010 -0700 s390: ctcm_mpc: Fix build after netdev refcount changes. Reported-by: Sachin Sant Signed-off-by: David S. Miller commit 9ecdafd883db3c43296797382fc0b2c868144070 Author: Jan Engelhardt Date: Wed Oct 13 16:42:02 2010 +0200 netfilter: xtables: remove unused defines Signed-off-by: Jan Engelhardt commit 75f0a0fd787bfa3ea1a916ca632a5b9e0007cbb7 Author: Jan Engelhardt Date: Wed Oct 13 16:37:45 2010 +0200 netfilter: xtables: unify {ip,ip6,arp}t_error_target Unification of struct *_error_target was forgotten in v2.6.16-1689-g1e30a01. Signed-off-by: Jan Engelhardt commit 243bf6e29eef642de0ff62f1ebf58bc2396d6d6e Author: Jan Engelhardt Date: Wed Oct 13 16:28:00 2010 +0200 netfilter: xtables: resolve indirect macros 3/3 commit 87a2e70db62fec7348c6e5545eb7b7650c33d81b Author: Jan Engelhardt Date: Wed Oct 13 16:11:22 2010 +0200 netfilter: xtables: resolve indirect macros 2/3 Signed-off-by: Jan Engelhardt commit 12b00c2c025b8af697d9a022ea2e928cad889ef1 Author: Jan Engelhardt Date: Wed Oct 13 15:56:56 2010 +0200 netfilter: xtables: resolve indirect macros 1/3 Many of the used macros are just there for userspace compatibility. Substitute the in-kernel code to directly use the terminal macro and stuff the defines into #ifndef __KERNEL__ sections. Signed-off-by: Jan Engelhardt commit 14cae9bd2faf6d0d75702c2e107e75207bcdfec1 Author: Borislav Petkov Date: Wed Sep 29 10:08:23 2010 +0200 tracing: Fix function-graph build warning on 32-bit Fix kernel/trace/trace_functions_graph.c: In function ‘trace_print_graph_duration’: kernel/trace/trace_functions_graph.c:652: warning: comparison of distinct pointer types lacks a cast when building 36-rc6 on a 32-bit due to the strict type check failing in the min() macro. Signed-off-by: Borislav Petkov Cc: Chase Douglas Cc: Steven Rostedt Cc: Ingo Molnar LKML-Reference: <20100929080823.GA13595@liondog.tnic> Signed-off-by: Frederic Weisbecker commit 3d8a1a6a8af910cc2da566080d111e062a124ba6 Merge: 1b13fe6 5d0d715 Author: Ingo Molnar Date: Wed Oct 13 15:44:24 2010 +0200 Merge branch 'amd-iommu/2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into core/iommu commit 6edc323db720c65b9e6a770b4bed98f251dd49f0 Author: Tirumala Marri Date: Mon Sep 13 13:26:11 2010 +0000 powerpc/44x: Add support for the AMCC APM821xx SoC This patch adds CPU, device tree, defconfig and bluestone board support for APM821xx SoC. Signed-off-by: Tirumala R Marri Signed-off-by: Josh Boyer commit 5d0d71569e671239ae0d905ced9b65cd843f99ee Author: Joerg Roedel Date: Wed Oct 13 11:13:21 2010 +0200 x86/amd-iommu: Update copyright headers This patch updates the copyright headers in all source files of the AMD IOMMU driver. Signed-off-by: Joerg Roedel commit 5bcd757f93cc713cf61bbeefceda7539d9afca55 Author: Matthew Garrett Date: Mon Oct 4 14:59:31 2010 -0400 x86/amd-iommu: Reenable AMD IOMMU if it's mysteriously vanished over suspend AMD's reference BIOS code had a bug that could result in the firmware failing to reenable the iommu on resume. It transpires that this causes certain less than desirable behaviour when it comes to PCI accesses, to whit them ending up somewhere near Bristol when the more desirable outcome was Edinburgh. Sadness ensues, perhaps along with filesystem corruption. Let's make sure that it gets turned back on, and that we restore its configuration so decisions it makes bear some resemblance to those made by reasonable people rather than crack-addled lemurs who spent all your DMA on Thunderbird. Signed-off-by: Matthew Garrett Signed-off-by: Joerg Roedel commit 4108d9ba9091c55cfb968d42dd7dcae9a098b876 Author: matt mooney Date: Wed Sep 22 20:51:09 2010 +0000 powerpc/Makefiles: Change to new flag variables Replace EXTRA_CFLAGS with ccflags-y and EXTRA_AFLAGS with asflags-y. Signed-off-by: matt mooney Signed-off-by: Benjamin Herrenschmidt commit fc15351d9d63a35fd00c15850fa93a27940f16a0 Author: Arnd Bergmann Date: Tue Sep 14 10:22:33 2010 +0000 powerpc/spufs: Use llseek in all file operations The default for llseek is changing, so we need explicit operations everywhere. Signed-off-by: Arnd Bergmann Cc: Jeremy Kerr Cc: linuxppc-dev@ozlabs.org Signed-off-by: Benjamin Herrenschmidt commit f56029b5eafda6175be4e5c91ca69c04ccda3661 Author: Nishanth Aravamudan Date: Fri Oct 1 11:26:18 2010 +0000 powerpc/pseries/xics: Use cpu_possible_mask rather than cpu_all_mask Current firmware only allows us to send IRQs to the first processor or all processors. We currently check to see if the passed in mask is equal to the all_mask, but the firmware is only considering whether the request is for the equivalent of the possible_mask. Thus, we think the request is for some subset of CPUs and only assign IRQs to the first CPU (on systems without irqbalance running) as evidenced by /proc/interrupts. By using possible_mask instead, we account for this and proper interleaving of interrupts occurs. Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit bc0df9ec4c014dac85c0358f56be4223bf0f3334 Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:50 2010 +0000 powerpc/pci: Cleanup device dma setup code Use set_dma_ops and remove unused oddly-named temp pointer sd. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Grant Likely Signed-off-by: Benjamin Herrenschmidt commit e72ed6b509a62605fe9aca195c6037abdda6c1ac Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:49 2010 +0000 powerpc/pseries: Use kmemdup While looking at some code paths I came across this code that zeros memory then copies over the entire length. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit 45848e0fc1fce399651b3f480bdeb82cc6d3d15a Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:48 2010 +0000 powerpc/viobus: Free TCE table on device release Release the TCE table as the XXX suggests, except on FW_FEATURE_ISERIES, where the tables are allocated globally and reused. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit edea8f6f48416d9a6fd1babb76c19cf05c802325 Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:47 2010 +0000 powerpc/vio: Use put_device() on device_register failure The kernel doc for device_register (and device_initialize) very clearly state to call put_device not kfree after calling, even on error. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Grant Likely Signed-off-by: Benjamin Herrenschmidt commit ffa56e555a6e4c205e879636e6cd6104ce03421f Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:46 2010 +0000 powerpc/dma: Fix check for direct DMA support The current check is wrong because it does not take the DMA offset intot account, and in the case of a driver which doesn't actually support 64bits would falsely report that device as working. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit 1cb8e85a9d9da4192acfb5f70a80b0c5ce8c3e8f Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:45 2010 +0000 powerpc/dma: Fix dma_iommu_dma_supported compare The table offset is in entries, each of which imply a dma address of an IOMMU page. Also, we should check the device can reach the whole IOMMU table. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit dda804ad4023cc202466c46fcfcc163131953838 Author: Nishanth Aravamudan Date: Wed Sep 15 08:13:19 2010 +0000 powerpc/pci: Fix return type of BUID_{HI,LO} macros BUID_HI and BUID_LO are used to pass data to call_rtas, which expects ints or u32s. But the macro doesn't cast the return, so the result is still u64. Use the upper_32_bits and lower_32_bits macros that have been added to kernel.h. Found by getting printf format errors trying to debug print the args, no actual code change for 64 bit kernels where the macros are actually used. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Linas Vepstas Signed-off-by: Benjamin Herrenschmidt commit 8032214346c0c892e859cf6eee6c8ba305cbfe78 Author: Julia Lawall Date: Sun Sep 5 09:00:22 2010 +0000 i2c/i2c-pasemi.c: Fix unsigned return type The function has an unsigned return type, but returns a negative constant to indicate an error condition. The result of calling the function is always stored in a variable of type (signed) int, and thus unsigned can be dropped from the return type. A sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @exists@ identifier f; constant C; @@ unsigned f(...) { <+... * return -C; ...+> } // Signed-off-by: Julia Lawall Acked-by: Olof Johansson Signed-off-by: Benjamin Herrenschmidt commit a655237fa2f9e4afe9949abe2c511432ab9537dd Author: Julia Lawall Date: Sat Sep 4 00:12:44 2010 +0000 powerpc/irq.c: Add of_node_put to avoid memory leak In this case, a device_node structure is stored in another structure that is then freed without first decrementing the reference count of the device_node structure. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ expression x; identifier f; position p1,p2; @@ x@p1->f = \(of_find_node_by_path\|of_find_node_by_name\|of_find_node_by_phandle\|of_get_parent\|of_get_next_parent\|of_get_next_child\|of_find_compatible_node\|of_match_node\|of_find_node_by_type\|of_find_node_with_property\|of_find_matching_node\|of_parse_phandle\|of_node_get\)(...); ... when != of_node_put(x) kfree@p2(x) @script:python@ p1 << r.p1; p2 << r.p2; @@ cocci.print_main("call",p1) cocci.print_secs("free",p2) // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 689fd14ae9b2af5c6862ddc11d4791ec9a938cb3 Author: Joe Perches Date: Sat Sep 11 19:10:53 2010 +0000 powerpc: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Signed-off-by: Benjamin Herrenschmidt commit 4e74fd7d0a6eda70f9356c113450182a844abcf1 Author: Joe Perches Date: Mon Sep 13 09:47:40 2010 +0000 powerpc: Use static const char arrays Signed-off-by: Joe Perches Reviewed-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit 410bccf978819394669dede571de878f4576fd3e Author: Nathan Fontenot Date: Fri Sep 10 09:42:36 2010 +0000 powerpc/pseries: Partition migration in the kernel Enable partition migration in the kernel. To do this a new sysfs file, /sys/kernel/mobility/migration, is created. In order to initiate a migration the stream id (generated by the HMC managing the system) is written to this file. After a migration occurs, and what is the majority of this code, the device tree needs to be updated for the new system the partition is running on. This is done via the ibm,update-nodes and ibm,update-properties rtas calls which return information regarding which nodes and properties of the device tree are to be added/removed/updated. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit d8862be1229534aac1768b8ac663e8fb2bb6ddf6 Author: Nathan Fontenot Date: Fri Sep 10 09:41:35 2010 +0000 powerpc/pseries: Export rtas_ibm_suspend_me() Export the rtas_ibm_suspend_me() routine. This is needed to perform partition migration in the kernel. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit 206489748b64510d655e5c99193426667463dd15 Author: Nathan Fontenot Date: Fri Sep 10 09:40:32 2010 +0000 powerpc/pseries: Export device tree updating routines Export routines associated with adding and removing device tree nodes on pseries needed for device tree updating. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit 4783f393de3077211c14675a0e57c8a02e9190b0 Merge: 9f5f9ff 5b8544c Author: Benjamin Herrenschmidt Date: Wed Oct 13 16:18:36 2010 +1100 Merge remote branch 'kumar/merge' into next commit f3016fa591c788d6d545ef7907e24c8b5d788759 Author: Mingkai Hu Date: Tue Oct 12 18:18:33 2010 +0800 powerpc/of: add eSPI controller dts bindings and DTS modification Also modifiy the document of cell-index in SPI controller. Add the SPI flash(s25fl128p01) support on p4080ds and mpc8536ds board. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 8b60d6c25b2a2d3525d5322de856c3ca408e5783 Author: Mingkai Hu Date: Tue Oct 12 18:18:32 2010 +0800 spi/fsl_spi: add eSPI controller support Add eSPI controller support based on the library code spi_fsl_lib.c. The eSPI controller is newer controller 85xx/Pxxx devices supported. There're some differences comparing to the SPI controller: 1. Has different register map and different bit definition So leave the code operated the register to the driver code, not the common code. 2. Support 4 dedicated chip selects The software can't controll the chip selects directly, The SPCOM[CS] field is used to select which chip selects is used, and the SPCOM[TRANLEN] field is set to tell the controller how long the CS signal need to be asserted. So the driver doesn't need the chipselect related function when transfering data, just set corresponding register fields to controll the chipseclect. 3. Different Transmit/Receive FIFO access register behavior For SPI controller, the Tx/Rx FIFO access register can hold only one character regardless of the character length, but for eSPI controller, the register can hold 4 or 2 characters according to the character lengths. Access the Tx/Rx FIFO access register of the eSPI controller will shift out/in 4/2 characters one time. For SPI subsystem, the command and data are put into different transfers, so we need to combine all the transfers to one transfer in order to pass the transfer to eSPI controller. 4. The max transaction length limitation The max transaction length one time is limitted by the SPCOM[TRANSLEN] field which is 0xFFFF. When used mkfs.ext2 command to create ext2 filesystem on the flash, the read length will exceed the max value of the SPCOM[TRANSLEN] field. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit b36ece832512c1a0afa54ff0a56d63492a1caf08 Author: Mingkai Hu Date: Tue Oct 12 18:18:31 2010 +0800 spi/mpc8xxx: refactor the common code for SPI/eSPI controller Refactor the common code in file spi_fsl_spi.c to spi_fsl_lib.c used by SPI/eSPI controller driver as a library, and leave the QE/CPM SPI controller code in the SPI controller driver spi_fsl_spi.c. Because the register map of the SPI controller and eSPI controller is so different, also leave the code operated the register to the driver code, not the common code. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 3272029fb33a88873b9b02224ebeb23bf3a4668e Author: Mingkai Hu Date: Tue Oct 12 18:18:30 2010 +0800 spi/mpc8xxx: rename spi_mpc8xxx.c to spi_fsl_spi.c This will pave the way to refactor out the common code which can be used by the eSPI controller driver, and rename the SPI controller dirver to the file spi_fsl_spi.c. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 492c032beccd53f807811b6c14909630d409dd8c Merge: f9d629c cb655d0 Author: Grant Likely Date: Tue Oct 12 21:38:02 2010 -0600 Merge commit 'v2.6.36-rc7' into spi/next commit f9d629c737cb6687216a0c540b5466a4bd8b070a Author: Linus Walleij Date: Fri Oct 1 13:33:13 2010 +0200 spi/pl022: fix dubious allocation staticize platform data This removes some dubious allocation of a local chipinfo struct in favor of a constant preset, tagging that one const revealed further problems with platform data being modified so fixed up these too. Reported-by: Virupax Sadashivpetimath Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit 5a1c98be1de165c8ad1bd5343a5d779230669489 Author: Linus Walleij Date: Fri Oct 1 11:47:32 2010 +0200 spi/pl022: get rid of chipinfo dev pointer What is the dev pointer doing inside the platform data anyway. We have another pointer to the actual device at hand, use that. Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit bde435a9ca376d0b7809768ca803dbf14416b9c1 Author: Kevin Wells Date: Thu Sep 16 06:18:50 2010 -0700 spi/pl022: Add spi->mode support to AMBA SPI driver This patch adds spi->mode support for the AMBA pl022 driver and allows spidev to correctly alter SPI modes. Unused fields used in the pl022 header file for the pl022_config_chip have been removed. The ab8500 client driver selects the data transfer size instead of the platform data. For platforms that use the amba pl022 driver, the unused fields in the controller data structure have been removed and the .mode field in the SPI board info structure is used instead. Signed-off-by: Kevin Wells Tested-by: Linus Walleij Acked-by: Linus Walleij Signed-off-by: Grant Likely commit fadcf49b9bd7ec5fb69befbf477e747d5b6a0328 Author: matt mooney Date: Fri Sep 24 12:17:32 2010 -0700 spi: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Signed-off-by: Grant Likely commit b1b6b9aa6fd32db97469e65d301ebc32dcd67992 Author: Linus Walleij Date: Wed Sep 29 17:31:35 2010 +0900 spi/pl022: add PrimeCell generic DMA support This extends the PL022 SSP/SPI driver with generic DMA engine support using the PrimeCell DMA engine interface. Also fix up the test code for the U300 platform. Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit cdbc8f042f4f2568bb58ba8bd50d0692f3059417 Author: Grant Likely Date: Fri Oct 8 12:56:13 2010 -0600 spi/topcliff: Tidy up Kconfig help text The original didn't specify Topcliff in the config prompt text. Signed-off-by: Grant Likely commit 65308c46b760bb2ccb043b47bb5f053dbb8d11b5 Author: Grant Likely Date: Wed Sep 29 17:31:34 2010 +0900 spi/topcliff: cleanups for style and conciseness This patch makes multiple cleanups to the new topcliff pch spi driver including, but not limited to, - removing superfluous brackets around variables - open coding functions that are only used once - removing unnecessary line breaks - removing unused functions - simplifying the interrupt enable/disable code - remove unnecessary (void *) casts. - remove b_mem_fail from pch_spi_set_tx to code it more cleanly - shorten dev_dbg() messages for conciseness and readability More cleanups are still needed in this driver. In particular, - the driver filename should be changed to spi_topcliff_pch.c - many of the dev_dbg() lines should be trimmed (particularly the ones on unconditional code paths). - I suspect that the locking model not correct. I'd like to know what drivers' critical regions are, and how they are protected. - get_resources and release_resources probably should be open coded in .probe and .release respectively. Signed-off-by: Grant Likely commit bf1ebf007911d70a89de9a4a1b36d403e8eb064b Author: Daniel Drake Date: Sun Oct 10 10:40:32 2010 +0100 x86, olpc: Add XO-1 poweroff support Add a pm_power_off handler for the OLPC XO-1 laptop. The driver can be built modular and follows the behaviour of the APM driver, setting pm_power_off to NULL on unload. However, the ability to unload the module will probably be removed (with a simple __module_get(THIS_MODULE)) if/when XO-1 suspend/resume support is added to this file at a later date. Signed-off-by: Daniel Drake LKML-Reference: <20101010094032.9AE669D401B@zog.reactivated.net> Signed-off-by: H. Peter Anvin commit c7fc2de0c83dbd2eaf759c5cd0e2b9cf1eb4df3a Author: Yinghai Lu Date: Tue Oct 12 14:07:09 2010 -0700 memblock, bootmem: Round pfn properly for memory and reserved regions We need to round memory regions correctly -- specifically, we need to round reserved region in the more expansive direction (lower limit down, upper limit up) whereas usable memory regions need to be rounded in the more restrictive direction (lower limit up, upper limit down). This introduces two set of inlines: memblock_region_memory_base_pfn() memblock_region_memory_end_pfn() memblock_region_reserved_base_pfn() memblock_region_reserved_end_pfn() Although they are antisymmetric (and therefore are technically duplicates) the use of the different inlines explicitly documents the programmer's intention. The lack of proper rounding caused a bug on ARM, which was then found to also affect other architectures. Reported-by: Russell King Signed-off-by: Yinghai Lu LKML-Reference: <4CB4CDFD.4020105@kernel.org> Cc: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit c0f37d2ac34520e992b57115b81294734688b58d Merge: 5d4bff9 c75f2aa e33621a 9f081ce 04a3440 48a4b30 85718fa Author: Tony Luck Date: Tue Oct 12 15:06:59 2010 -0700 Merge branches 'release', 'drop_do_IRQ', 'fix_early_irq', 'misc-2.6.37', 'next-fixes', 'optimize-unwind', 'remove-compat-h' and 'stack_trace' into release commit 908ebfb95d16bdf7f5f37ad911ccd9b7350ba780 Author: Joe Perches Date: Tue Oct 12 11:07:44 2010 -0700 ath5k: fix build break from "ath5k: Print out opmode in debugfs" Also improve ath_opmode_to_string usage by having it return UNKNOWN rather than NULL in the event of failure to map the opmode value to a representative string. Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit cfd8e12f42746df396ecbdf7a1d8e92e8e4dbb97 Author: Ben Greear Date: Mon Oct 11 10:28:59 2010 -0700 wireless: Print wiphy name in sysfs. The index cannot be used to reliably reconstruct a phy name, so explicitly add the phy name to sysfs so that scripts can figure out the parent phy device for a particular wireless interface. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit c0a19ebc018222ffd1dd93af5b53d9efd779c19b Author: Thomas Gleixner Date: Tue Oct 12 21:58:27 2010 +0200 genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED=y build This option can be set to verify the full conversion to the new chip functions. Fix the fallout of the patch rework, so the core code compiles and works with it. Signed-off-by: Thomas Gleixner commit 5807bae7eda2d6da673c9f9f52460c3fbcea556c Merge: a13c8f3 fd74d06 Author: John W. Linville Date: Tue Oct 12 15:52:25 2010 -0400 Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 commit 29b4433d991c88d86ca48a4c1cc33c671475be4b Author: Eric Dumazet Date: Mon Oct 11 10:22:12 2010 +0000 net: percpu net_device refcount We tried very hard to remove all possible dev_hold()/dev_put() pairs in network stack, using RCU conversions. There is still an unavoidable device refcount change for every dst we create/destroy, and this can slow down some workloads (routers or some app servers, mmap af_packet) We can switch to a percpu refcount implementation, now dynamic per_cpu infrastructure is mature. On a 64 cpus machine, this consumes 256 bytes per device. On x86, dev_hold(dev) code : before lock incl 0x280(%ebx) after: movl 0x260(%ebx),%eax incl fs:(%eax) Stress bench : (Sending 160.000.000 UDP frames, IP route cache disabled, dual E5540 @2.53GHz, 32bit kernel, FIB_TRIE) Before: real 1m1.662s user 0m14.373s sys 12m55.960s After: real 0m51.179s user 0m15.329s sys 10m15.942s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit f0b9f4725180ea58c8da78b3de0b4e0ad180fc2c Author: Dmitry Kravkov Date: Tue Oct 12 09:02:21 2010 +0000 bnx2x: Fixing a typo: added a missing RSS enablement Reported-by: Eric Dumazet Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Tested-by: Eric Dumazet Signed-off-by: David S. Miller commit 4af8f24d99d119ed68b27d1b0bd6f2ab2b23ed1b Merge: c9ee46a af9a2d0 Author: Russell King Date: Tue Oct 12 20:11:18 2010 +0100 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion into devel-stable commit 8fa6e3d4549271a5b4094893f059bb95f99a8fde Merge: c239f27 2f34b32 Author: David S. Miller Date: Tue Oct 12 11:43:42 2010 -0700 Merge branch 'dccp' of git://eden-feed.erg.abdn.ac.uk/net-next-2.6 commit d7c86ff8cd00abc730fe5d031f43dc9138b6324e Author: Jeff Layton Date: Mon Oct 11 15:07:19 2010 -0400 cifs: don't use vfsmount to pin superblock for oplock breaks Filesystems aren't really supposed to do anything with a vfsmount. It's considered a layering violation since vfsmounts are entirely managed at the VFS layer. CIFS currently keeps an active reference to a vfsmount in order to prevent the superblock vanishing before an oplock break has completed. What we really want to do instead is to keep sb->s_active high until the oplock break has completed. This patch borrows the scheme that NFS uses for handling sillyrenames. An atomic_t is added to the cifs_sb_info. When it transitions from 0 to 1, an extra reference to the superblock is taken (by bumping the s_active value). When it transitions from 1 to 0, that reference is dropped and a the superblock teardown may proceed if there are no more references to it. Also, the vfsmount pointer is removed from cifsFileInfo and from cifs_new_fileinfo, and some bogus forward declarations are removed from cifsfs.h. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit a5e18bc36e9e05ce0338d370a2ce4290910e43ea Author: Jeff Layton Date: Mon Oct 11 15:07:18 2010 -0400 cifs: keep dentry reference in cifsFileInfo instead of inode reference cifsFileInfo is a bit problematic. It contains a reference back to the struct file itself. This makes it difficult for a cifsFileInfo to exist without a corresponding struct file. It would be better instead of the cifsFileInfo just held info pertaining to the open file on the server instead without any back refrences to the struct file. This would allow it to exist after the filp to which it was originally attached was closed. Much of the use of the file pointer in this struct is to get at the dentry. Begin divorcing the cifsFileInfo from the struct file by keeping a reference to the dentry. Since the dentry will have a reference to the inode, we can eliminate the "pInode" field too and convert the igrab/iput to dget/dput. Signed-off-by: Jeff Layton Reviewed-by: Suresh Jayaraman Acked-by: Dave Kleikamp Signed-off-by: Steve French commit b3c0598952e02f1f1f6d003574549d940ecbf31a Author: Gustavo F. Padovan Date: Fri Oct 8 09:13:28 2010 -0300 Bluetooth: update MAINTAINERS for Bluetooth subsys Add myself to MAINTAINERS and update the git trees. Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 7f8f2729ce6380a2735ddf45c04d5bb09eaca8a5 Author: Karl Beldan Date: Thu Oct 7 21:57:10 2010 +0200 Bluetooth: hci_uart: Fix typo in stats for sco tx s/stat.cmd_tx++/stat.sco_tx++ for HCI_SCODATA_PKT Signed-off-by: Karl Beldan Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 534c92fde74c8d2143fc15b5f1d957f42cb43570 Author: Andrei Emeltchenko Date: Fri Oct 1 12:05:11 2010 +0300 Bluetooth: clean up rfcomm code Remove dead code and unused rfcomm thread events Signed-off-by: Andrei Emeltchenko Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit ab3e571564a5d8fa4923e2e858e574c931a014c7 Author: Haijun Liu Date: Thu Sep 30 16:52:40 2010 +0800 Bluetooth: Update conf_state before send config_req out Update conf_state with L2CAP_CONF_REQ_SENT before send config_req out in l2cap_config_req(). Signed-off-by: Haijun Liu Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 0175d629e096a5a59dde6cc91b32ac3160a44b9e Author: Gustavo F. Padovan Date: Fri Sep 24 20:30:57 2010 -0300 Bluetooth: Use the proper error value from bt_skb_send_alloc() &err points to the proper error set by bt_skb_send_alloc() when it fails. Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit d6b2eb2f893547d7488d31a7088d78dd77ab5995 Author: Gustavo F. Padovan Date: Fri Sep 3 18:29:46 2010 -0300 Bluetooth: make batostr() print in the right order The Bluetooth core uses the the BD_ADDR in the opposite order from the human readable order. So we are changing batostr() to print in the correct order and then removing some baswap(), as they are not needed anymore. Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit cb810a189da312d4074cb3fc8b0267b7115e7be1 Author: Gustavo F. Padovan Date: Fri Sep 3 17:51:57 2010 -0300 Bluetooth: remove unused variable from cmtp A value was attributed to 'src', but no one was using. Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit aae7fe22a875a84e328469e228cba033ebbf20cb Author: Andrei Emeltchenko Date: Wed Sep 15 14:28:43 2010 +0300 Bluetooth: check for l2cap header in start fragment BLUETOOTH SPECIFICATION Version 4.0 [Vol 3] page 36 mentioned "Note: Start Fragments always begin with the Basic L2CAP header of a PDU." Signed-off-by: Andrei Emeltchenko Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 8979481328dc2e14cea9f99b3562ffcf8655998e Author: Andrei Emeltchenko Date: Wed Sep 15 14:28:44 2010 +0300 Bluetooth: check L2CAP length in first ACL fragment Current Bluetooth code assembles fragments of big L2CAP packets in l2cap_recv_acldata and then checks allowed L2CAP size in assemled L2CAP packet (pi->imtu < skb->len). The patch moves allowed L2CAP size check to the early stage when we receive the first fragment of L2CAP packet. We do not need to reserve and keep L2CAP fragments for bad packets. Updated version after comments from Mat Martineau and Gustavo Padovan . Trace below is received when using stress tools sending big fragmented L2CAP packets. ... [ 1712.798492] swapper: page allocation failure. order:4, mode:0x4020 [ 1712.804809] [] (unwind_backtrace+0x0/0xdc) from [] (__alloc_pages_nodemask+0x4) [ 1712.814666] [] (__alloc_pages_nodemask+0x47c/0x4d4) from [] (__get_free_pages+) [ 1712.824645] [] (__get_free_pages+0x10/0x3c) from [] (__alloc_skb+0x4c/0xfc) [ 1712.833465] [] (__alloc_skb+0x4c/0xfc) from [] (l2cap_recv_acldata+0xf0/0x1f8 ) [ 1712.843322] [] (l2cap_recv_acldata+0xf0/0x1f8 [l2cap]) from [] (hci_rx_task+0x) ... Signed-off-by: Andrei Emeltchenko Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 3cd01976e702ccaffb907727caff4f8789353599 Author: Nobuhiro Iwamatsu Date: Fri Aug 20 16:24:07 2010 +0900 Bluetooth: Add support Bluetooth controller of MacbookPro 7,1 Bluetooth controller of MacbookPro 7,1 does not work. Because Device Class of these controllers was set 255 (Vendor Sepecific Class). T: Bus=04 Lev=02 Prnt=04 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=05ac ProdID=8213 Rev=01.86 S: Manufacturer=Apple Inc. S: Product=Bluetooth USB Host Controller S: SerialNumber=5C5948C81B99 C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none) Signed-off-by: Nobuhiro Iwamatsu Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 9c047157a20521cd525527947b13b950d168d2e6 Author: Nobuhiro Iwamatsu Date: Fri Aug 20 16:24:06 2010 +0900 Bluetooth: Add support Bluetooth controller of MacbookPro 6,2 Bluetooth controller of MacbookPro 6,2 does not work. Because Device Class of these controllers was set 255 (Vendor Sepecific Class). T: Bus=01 Lev=03 Prnt=03 Port=02 Cnt=03 Dev#= 8 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=05ac ProdID=8218 Rev=00.22 S: Manufacturer=Apple Inc. S: Product=Bluetooth USB Host Controller C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none) I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none) Signed-off-by: Nobuhiro Iwamatsu Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 80e2c88803c72747cb19febe2ad708bf0ad557bf Author: Johan Hedberg Date: Thu Sep 9 10:32:39 2010 +0300 Bluetooth: Don't clear the blacklist when closing the HCI device Clearing the blacklist in hci_dev_do_close() would mean that user space needs to do extra work to re-block devices after a DEVDOWN-DEVUP cycle. This patch removes the clearing of the blacklist in this case and thereby saves user space from the extra work. Signed-off-by: Johan Hedberg Acked-by: Ville Tervo Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 5017d8dde13313cab1e607379536a7930ed682b0 Author: Andrei Emeltchenko Date: Wed Sep 8 16:26:53 2010 +0300 Bluetooth: remove extra newline from debug output Signed-off-by: Andrei Emeltchenko Acked-by: Ville Tervo Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 6fdf482bb3298267816be59d9a3dce29632382d3 Author: Mat Martineau Date: Wed Sep 8 10:05:29 2010 -0700 Bluetooth: Use a stream-oriented recvmsg with SOCK_STREAM L2CAP sockets. L2CAP ERTM sockets can be opened with the SOCK_STREAM socket type, which is a mandatory request for ERTM mode. However, these sockets still have SOCK_SEQPACKET read semantics when bt_sock_recvmsg() is used to pull data from the receive queue. If the application is only reading part of a frame, then the unread portion of the frame is discarded. If the application requests more bytes than are in the current frame, only the current frame's data is returned. This patch utilizes common code derived from RFCOMM's recvmsg() function to make L2CAP SOCK_STREAM reads behave like RFCOMM reads (and other SOCK_STREAM sockets in general). The application may read one byte at a time from the input stream and not lose any data, and may also read across L2CAP frame boundaries. Signed-off-by: Mat Martineau Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 3d7d01dffec4a6757ed1e3182f01c7ef5caa2539 Author: Mat Martineau Date: Wed Sep 8 10:05:28 2010 -0700 Bluetooth: Use common SOCK_STREAM receive code in RFCOMM To reduce code duplication, have rfcomm_sock_recvmsg() call bt_sock_stream_recvmsg(). The common bt_sock_stream_recvmsg() code is nearly identical, with the RFCOMM-specific functionality for deferred setup and connection unthrottling left in rfcomm_sock_recvmsg(). Signed-off-by: Mat Martineau Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 796c86eec84ddfd02281c5071838ed1fefda6b90 Author: Mat Martineau Date: Wed Sep 8 10:05:27 2010 -0700 Bluetooth: Add common code for stream-oriented recvmsg() This commit adds a bt_sock_stream_recvmsg() function for use by any Bluetooth code that uses SOCK_STREAM sockets. This code is copied from rfcomm_sock_recvmsg() with minimal modifications to remove RFCOMM-specific functionality and improve readability. L2CAP (with the SOCK_STREAM socket type) and RFCOMM have common needs when it comes to reading data. Proper stream read semantics require that applications can read from a stream one byte at a time and not lose any data. The RFCOMM code already operated on and pulled data from the underlying L2CAP socket, so very few changes were required to make the code more generic for use with non-RFCOMM data over L2CAP. Applications that need more awareness of L2CAP frame boundaries are still free to use SOCK_SEQPACKET sockets, and may verify that they connection did not fall back to basic mode by calling getsockopt(). Signed-off-by: Mat Martineau Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 0fba2558cbb3fae3a09147b7d6e18a6204204e0e Author: Mat Martineau Date: Wed Sep 8 10:05:26 2010 -0700 Bluetooth: Validate PSM values in calls to connect() and bind() Valid L2CAP PSMs are odd numbers, and the least significant bit of the most significant byte must be 0. Signed-off-by: Mat Martineau Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 08601469a5aac8b3453d8aca0b8f9bd8dfdae12c Author: Yuri Kululin Date: Fri Jul 23 13:57:12 2010 +0400 Bluetooth: Fix RFCOMM RPN negotiation According to the ETSI 3GPP TS 07.10 the default bit rate value for RFCOMM is 9600 bit/s. Return this bit rate in case of RPN request and accept other sane bit rates proposed by the sender in RPM command. Signed-off-by: Yuri Kululin Signed-off-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit fb3d8eb47ce377d6d7a8fc58b8046ea9eb376a28 Author: David Vrabel Date: Mon Aug 9 17:42:21 2010 -0400 Bluetooth: Support SDIO devices that are AMP controllers Signed-off-by: David Vrabel Signed-off-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 8f1e1742233cd1c3444dfc6c945a2efb2814e157 Author: David Vrabel Date: Mon Aug 9 17:38:10 2010 -0400 Bluetooth: HCI devices are either BR/EDR or AMP radios HCI transport drivers may not know what type of radio an AMP device has so only say whether they're BR/EDR or AMP devices. Signed-off-by: David Vrabel Signed-off-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 1c456013e96f10915578dc61095d19b4906f64ac Author: Jeff Layton Date: Tue Oct 12 11:32:42 2010 -0400 cifs: on multiuser mount, set ownership to current_fsuid/current_fsgid (try #7) commit 3aa1c8c2900065a51268430ab48a1b42fdfe5b45 made cifs_getattr set the ownership of files to current_fsuid/current_fsgid when multiuser mounts were in use and when mnt_uid/mnt_gid were non-zero. It should have instead based that decision on the CIFS_MOUNT_OVERR_UID/GID flags. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 756b0322e50aebc4b9afb4488a2d3f6c802b4e64 Author: Thomas Gleixner Date: Tue Sep 7 14:33:11 2010 +0000 affs: Use sema_init instead of init_MUTEX Get rid of init_MUTE() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Al Viro LKML-Reference: <20100907125056.511395595@linutronix.de> commit 4a9410355406c31695eab9daeba694d7d9714e9b Author: Thomas Gleixner Date: Tue Sep 7 14:33:08 2010 +0000 hfs: Convert tree_lock to mutex tree_lock is used as mutex so make it a mutex. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Acked-by: Christoph Hellwig Cc: Al Viro LKML-Reference: <20100907125056.416332114@linutronix.de> commit 5356d94872502e77317f82e8fcae2a0b162af07c Author: Thomas Gleixner Date: Tue Sep 7 14:33:52 2010 +0000 arm: Bcmring: semaphore cleanup Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Leo Chen LKML-Reference: <20100907125057.371771121@linutronix.de> commit 5b8c4f23c54edda640a4850bc9b81dee70acb525 Author: Thomas Gleixner Date: Tue Sep 7 14:33:43 2010 +0000 printk: Make console_sem a semaphore not a pseudo mutex It needs to be investigated whether it can be replaced by a real mutex, but that needs more thought. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig LKML-Reference: <20100907125057.179587334@linutronix.de> commit 8192b1f6b1a46b33213b993471356495a93ffc70 Author: Thomas Gleixner Date: Tue Sep 7 14:33:40 2010 +0000 drivers/macintosh/adb: Do not claim that the semaphore is a mutex User DEFINE_SEMAPHORE() instead of DECLARE_MUTEX() Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Benjamin Herrenschmidt LKML-Reference: <20100907125057.086367802@linutronix.de> commit a529f1505b6facfd0078dcb18a444976c1985962 Author: Thomas Gleixner Date: Tue Sep 7 14:32:34 2010 +0000 parport: Semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Alan Cox Cc: Christoph Hellwig LKML-Reference: <20100907125055.743613774@linutronix.de> commit db7f859ec53c0bfaf3520afe2feafd18a27e48fb Author: Thomas Gleixner Date: Tue Sep 7 14:32:30 2010 +0000 irda: Semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: "David S. Miller" LKML-Reference: <20100907125055.651362456@linutronix.de> commit d1985508320ad40a68375bdbafa8a5d6c56d2114 Author: Thomas Gleixner Date: Tue Sep 7 14:32:25 2010 +0000 net: Wan/cosa.c: Convert "mutex" to semaphore Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: "David S. Miller" LKML-Reference: <20100907125055.557578360@linutronix.de> commit 0bce198b7688911e072bd65032ab9278b577ee93 Author: Thomas Gleixner Date: Tue Sep 7 14:32:22 2010 +0000 net: Ppp_async: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.460765783@linutronix.de> commit 495e64bddeb9349395ed346177057fff7d52857e Author: Thomas Gleixner Date: Tue Sep 7 14:32:18 2010 +0000 hamradio: Mkiss: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.368389976@linutronix.de> commit 89d9f10d0b21268d3dba33db984ab03092861700 Author: Thomas Gleixner Date: Tue Sep 7 14:32:14 2010 +0000 hamradio: 6pack: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.269142443@linutronix.de> commit 50948ee8124c2125d833e8889002aa12a948b4e9 Author: Thomas Gleixner Date: Tue Sep 7 14:32:10 2010 +0000 net: 3c527: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.175750769@linutronix.de> commit 4a4a506f81eebe63fb1b8e9e99f4bcd1fd9aac66 Author: Thomas Gleixner Date: Tue Sep 7 14:32:06 2010 +0000 input: Serio/hp_sdc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125055.079737758@linutronix.de> commit 45e8492f594dcb17e8cbb26edb2dd3018a68dada Author: Thomas Gleixner Date: Tue Sep 7 14:32:01 2010 +0000 input: Serio/hil_mlc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125054.985090435@linutronix.de> commit 10d0ff83078d5ef99aaf94a2aaceb740f5ced923 Author: Thomas Gleixner Date: Tue Sep 7 14:31:58 2010 +0000 input: Misc/hp_sdc_rtc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125054.888438853@linutronix.de> commit fd74d065f43f88eedc7492886d84f0accb683653 Author: Johannes Berg Date: Tue Oct 12 02:26:13 2010 -0700 iwl3945: fix queue allocation commit 6f98613258b966ffe0e6def18129b386514d10e0 Author: Jay Sternberg Date: Sat Sep 18 09:07:04 2010 -0700 iwlagn: reduce redundant parameter definitions broke 3945 because Jay accidentally removed the num_of_queues parameter for 3945, so that we now attempt to allocate a zero-sized queue array, which leads to SLUB returning ZERO_SIZE_PTR (0x10) which we then try to dereference thus crashing the system. Restore the necessary num_of_queues param. This fixes http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2254 Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit bc795df1d225415c2ec6ff2a81c07a753681d945 Author: Wey-Yi Guy Date: Mon Oct 11 14:24:05 2010 -0700 iwlagn: prio_tbl need to download before calibration For WiFi/BT combo devices, priority table always need to download before perform any calibration operation. Signed-off-by: Wey-Yi Guy commit a5901cbb5783b25fa71536503bfa4617d8ee41bd Author: Wey-Yi Guy Date: Thu Sep 23 09:56:51 2010 -0700 iiwlagn: always download priority table For advance BT/WiFi co-exist, always download bt priority table before sending bt_config command Signed-off-by: Wey-Yi Guy commit 37eca0d64a2dbeece25969ec0698e1ff72bdcf39 Merge: 277b199 3c06806 Author: Thomas Gleixner Date: Tue Oct 12 17:27:20 2010 +0200 Merge branch 'linus' into core/locking Reason: Pull in the semaphore related changes Signed-off-by: Thomas Gleixner commit 7df01d96b295e400167e78061b81d4c91630b12d Author: Robert Richter Date: Mon Oct 4 21:09:36 2010 +0200 oprofile: disable write access to oprofilefs while profiler is running Oprofile counters are setup when profiling is disabled. Thus, writing to oprofilefs has no immediate effect. Changes are updated only after oprofile is reenabled. To keep userland and kernel states synchronized, we now allow configuration of oprofile only if profiling is disabled. In this case it checks if the profiler is running and then disables write access to oprofilefs by returning -EBUSY. The change should be backward compatible with current oprofile userland daemon. Acked-by: Maynard Johnson Cc: William Cohen Cc: Suravee Suthikulpanit Signed-off-by: Robert Richter commit 9daa42e22030f0c5c357a5e1f8af658411beda6b Author: Shirish Pargaonkar Date: Sun Oct 10 13:21:05 2010 -0500 CIFS ntlm authentication and signing - Build a proper av/ti pair blob for ntlmv2 without extended security authentication Build an av pair blob as part of ntlmv2 (without extended security) auth request. Include netbios and dns names for domain and server and a timestamp in the blob. Signed-off-by: Shirish Pargaonkar Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 2ee39065988d632b403f8470942b0b5edee3632b Author: Thomas Gleixner Date: Wed Oct 6 16:28:51 2010 +0200 x86: Switch sparse_irq allocations to GFP_KERNEL No callers from atomic context (except boot) anymore. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit baa0d233afe765daa6dc01ff233aea8c5944f534 Author: Thomas Gleixner Date: Tue Oct 5 15:14:35 2010 +0200 genirq: Switch sparse_irq allocator to GFP_KERNEL The allocator functions are now called outside of preempt disabled regions. Switch to GFP_KERNEL. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit a05a900a51c7622ebd8ddb41f14f8bf9db599d8d Author: Thomas Gleixner Date: Fri Oct 8 12:47:53 2010 +0200 genirq: Make sparse_lock a mutex No callers from atomic regions. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit c2f31c37b7303150ffcce53f6c6ed4ac62952b34 Author: Thomas Gleixner Date: Thu Sep 30 12:19:03 2010 +0200 x86: lguest: Use new irq allocator Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Rusty Russell commit 78f90d91f395cd0dc1ef3f21e0c5cd6fd50d202c Author: Thomas Gleixner Date: Wed Sep 29 17:18:47 2010 +0200 genirq: Remove the now unused sparse irq leftovers The move_irq_desc() function was only used due to the problem that the allocator did not free the old descriptors. So the descriptors had to be moved in create_irq_nr(). That's history. The code would have never been able to move active interrupt descriptors on affinity settings. That can be done in a completely different way w/o all this horror. Remove all of it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit b7b29338dc7111ed8bd4d6555d84afae13ebe752 Author: Thomas Gleixner Date: Wed Sep 29 18:46:55 2010 +0200 genirq: Sanitize dynamic irq handling Use the cleanup functions of the dynamic allocator. No need to have separate implementations. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit b7d0d8258a9f71949b810e0f82a3d75088f4d364 Author: Thomas Gleixner Date: Wed Sep 29 18:44:23 2010 +0200 genirq: Remove arch_init_chip_data() This function should have not been there in the first place. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 77dff1c755c3218691e95e7e38ee14323b35dbdb Author: Thomas Gleixner Date: Wed Sep 29 17:37:10 2010 +0200 x86: xen: Sanitise sparse_irq handling There seems to be more cleanups possible, but that's left to the xen experts :) Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jeremy Fitzhardinge commit ad9f43340f48c5f7a0a5ef7656986e23d06bf996 Author: Thomas Gleixner Date: Thu Sep 30 11:26:43 2010 +0200 x86: Use sane enumeration Instead of looping through all interrupts, use the bitmap lookup to find the next. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 48b2650196364e4ef124efb841b63c2326e4ccb2 Author: Thomas Gleixner Date: Thu Sep 30 11:43:08 2010 +0200 x86: uv: Clean up the direct access to irq_desc Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1a8ce7ff68d777195da2d340561bda610e533a64 Author: Thomas Gleixner Date: Mon Oct 4 21:08:56 2010 +0200 x86: Make io_apic.c local functions static No users outside of io_apic.c Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 10ba1e0eeef6a3c9453d96364e28cb4d911e1ac3 Author: Thomas Gleixner Date: Mon Oct 11 12:21:18 2010 +0200 genirq: Remove irq_2_iommu irq_2_iommu is now in the x86 code where it belongs. Remove all leftovers. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 1a0730d6649113c820217387a011a17dd4aff3ad Author: Thomas Gleixner Date: Mon Oct 11 11:55:37 2010 +0200 x86: Speed up the irq_remapped check in hot pathes irq_2_iommu is in struct irq_cfg, so we can do the irq_remapped check based on irq_cfg instead of going through a lookup function. That's especially interesting in the eoi_ioapic_irq() hotpath. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit d585d060b42bd36f6f0b23ff327d3b91f80c7139 Author: Thomas Gleixner Date: Sun Oct 10 12:34:27 2010 +0200 intr_remap: Simplify the code further Having irq_2_iommu in struct irq_cfg allows further simplifications. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 349d67673c08cbc299a69086b0f5447cf1094e9b Author: Thomas Gleixner Date: Sun Oct 10 12:29:27 2010 +0200 intr_remap: Use irq_2_iommu in struct irq_cfg Switch the intr_remapping code to use the irq_2_iommu struct in irg_cfg. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 423f085952fd7253407cb92984cc2d495a564481 Author: Thomas Gleixner Date: Sun Oct 10 11:39:09 2010 +0200 x86: Embedd irq_2_iommu into irq_cfg That interrupt remapping code is x86 specific and tied to the io_apic code. No need for separate allocator functions in the interrupt remapping code. This allows to simplify the code and irq_2_iommu is small (13 bytes on 64bit) so it's not a real problem even if interrupt remapping is runtime disabled. If it's compile time disabled the impact is zero. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit d0ad63927c6d4d511e172c78ba4a623539ef6901 Author: Thomas Gleixner Date: Mon Oct 4 18:41:37 2010 +0200 pci: intr_remap: Remove unused functions No users. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit a8ef54aeb4308d3730ff31807c495390b98de16a Author: Thomas Gleixner Date: Mon Oct 4 16:51:27 2010 +0200 pci: intr_remap: Use irq_data No need to dereference irq_desc. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 0e1e367aab873becf3e21d9b0cf46d11154ebc3f Author: Thomas Gleixner Date: Mon Oct 4 16:20:16 2010 +0200 pci: intr-remap: Free irte memory if SPARSE_IRQ=y With SPARSE_IRQ=y the irte descriptors are dynamically allocated, but not freed in free_irte(). That was ok as long as the sparse irq core was not freeing irq descriptors on destroy_irq(). Now we leak the irte descriptor. Free it in free_irte(). Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit bc5fdf9f3aad37406b3c8d635a7940cd65de0c12 Author: Thomas Gleixner Date: Fri Oct 8 10:40:53 2010 +0200 x86: io_apic: Remove the now unused sparse_irq arch_* functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fbc6bff04a095e049be290ff6f6ac68839166bd6 Author: Thomas Gleixner Date: Tue Sep 28 20:34:53 2010 +0200 x86: ioapic: Cleanup sparse irq code Switch over to the new allocator and remove all the magic which was caused by the unability to destroy irq descriptors. Get rid of the create_irq_nr() loop for sparse and non sparse irq. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe6dab4e79e82ec35879bfe1a8968b7d15ac0d91 Author: Yinghai Lu Date: Fri Oct 8 22:44:02 2010 -0700 x86: Don't setup ioapic irq for sci twice The sparseirq rework triggered a warning in the iommu code, which was caused by setting up ioapic for ACPI irq 9 twice. This function is solely to handle interrupts which are on a secondary ioapic and outside the legacy irq range. Replace the sparse irq_to_desc check with a non ifdeffed version. [ tglx: Moved it before the ioapic sparse conversion and simplified the inverse logic ] Signed-off-by: Yinghai Lu LKML-Reference: <4CB00122.3030301@kernel.org> Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f981a3dc1941035a108da1276c448de6b10ddac9 Author: Thomas Gleixner Date: Fri Oct 8 10:44:21 2010 +0200 x86: io_apic: Prepare alloc/free_irq_cfg() Rename the grossly misnamed get_one_free_irq_cfg() to alloc_irq_cfg(). Add a (not yet used) irq number argument to free_irq_cfg() Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 08c33db6d044d9dc74ddf8d9ee3cb1fa3eca262b Author: Thomas Gleixner Date: Wed Oct 6 22:14:21 2010 +0200 x86: Implement new allocator functions Implement new allocator functions which make use of the core changes. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 6e2fff50a5bd72a3f9e6f3ef6e9137efddb2d580 Author: Thomas Gleixner Date: Wed Oct 6 22:07:03 2010 +0200 x86: ioapic: Cleanup get_one_free_irq_cfg() Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 7e495529b62cf462eb2d8875fe15ca446b8e1f94 Author: Thomas Gleixner Date: Tue Sep 28 23:31:50 2010 +0200 x86: ioapic: Cleanup some more Cleanup after the irq_chip conversion a bit. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit be5b7bf73802a9391158d9fcc0bc6b07670c73a5 Author: Thomas Gleixner Date: Fri Oct 8 22:31:46 2010 +0200 x86: Convert ht set_affinity to new chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit 0e09ddf2d71aeff92ff8055ac7600b85c255ee85 Author: Thomas Gleixner Date: Fri Oct 8 22:21:26 2010 +0200 x86: Cleanup hpet affinity setting Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe52b2d25919eaa01c51651a664f4f2ba6bd2a11 Author: Thomas Gleixner Date: Fri Oct 8 22:19:29 2010 +0200 x86: Convert dmar affinity setting to new chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: David Woodhouse commit b5d1c465794f521c352d9c1a33159750c9c3fa84 Author: Thomas Gleixner Date: Fri Oct 8 22:15:49 2010 +0200 x86: Convert remapped msi to new chip.irq_set_affinity function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Suresh Siddha Cc: Jesse Barnes commit f19f5ecc920215decfea54f26e3eb14064506675 Author: Thomas Gleixner Date: Fri Oct 8 21:50:22 2010 +0200 x86: Convert remapped ioapic affinity setting to new irq chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Suresh Siddha commit 5346b2a78fa3b900da672928978475acdd4632dc Author: Thomas Gleixner Date: Fri Oct 8 21:49:03 2010 +0200 x86: Convert msi affinity setting to new chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit f7e909eae444ff733ecc5628af76d89c363ab480 Author: Thomas Gleixner Date: Fri Oct 8 21:40:23 2010 +0200 x86: Prepare the affinity common functions for taking struct irq_data * While at it rename it to sensible function names and fix the return value from unsigned to int for __ioapic_set_affinity (set_desc_affinity). Returning -1 in a function returning unsigned int is somewhat strange. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 60c69948e5b6357ac0d5ef2a2d0ce31c173c3c64 Author: Thomas Gleixner Date: Tue Sep 28 17:28:38 2010 +0200 x86: ioapic: Clean up the direct access to irq_desc Most of it is useless pseudo optimization. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit e9f7ac664bfc36685a8eb3315ec21c067d0cee36 Author: Thomas Gleixner Date: Tue Sep 28 17:22:09 2010 +0200 ht: Convert to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit 5c2837fbaa609e615ef9a1c58a4cd26ce90be35b Author: Thomas Gleixner Date: Tue Sep 28 17:15:11 2010 +0200 dmar: Convert to new irq chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: David Woodhouse commit d0fbca8f9304d1760fdc906b35b06e89fbdbb51f Author: Thomas Gleixner Date: Tue Sep 28 16:18:39 2010 +0200 x86: ioapic/hpet: Convert to new chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 90297c5fe71d32a2a0ead38bd8f6b1112a2e5ac0 Author: Thomas Gleixner Date: Tue Sep 28 16:03:54 2010 +0200 x86: ioapic: Convert mask to new irq_chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 61a38ce3f59cdb4654e9444329195bd57c3baf74 Author: Thomas Gleixner Date: Tue Sep 28 16:00:34 2010 +0200 x86: io_apic: Convert startup to new irq_chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit dd5f15e5cf104c9170b76ae3274f35b42a3e4161 Author: Thomas Gleixner Date: Tue Sep 28 15:18:35 2010 +0200 x86: Cleanup io_apic Sanitize functions. Remove irq_desc pointer magic. Preparatory patch for further cleanups. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit d4eba29770244e7cc5e60c0977d73d84148a3d6d Author: Thomas Gleixner Date: Fri Sep 24 12:26:18 2010 +0200 x86: Cleanup access to irq_data Fixup the open coded access to irq_desc->[handler_data|chip_data|msi-desc] Use the macros and inline functions for it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 4305df947ca1fd52867c8d56837a4e6b1e33167c Author: Thomas Gleixner Date: Tue Sep 28 15:01:33 2010 +0200 x86: i8259: Convert to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 020dd984d7c0792e8234f2e4b4fb0534fe750f9d Author: Thomas Gleixner Date: Tue Sep 28 14:59:58 2010 +0200 x86: Cleanup visws interrupt handling Remove the open coded access to irq_desc and convert to the new irq chip functions. Change the mask function of piix4_virtual_irq_type so we can use the generic irq handling function for the virtual interrupt instead of open coding it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe25c7fc2e036e1569faac8715a8aa5496cda78d Author: Thomas Gleixner Date: Tue Sep 28 14:57:24 2010 +0200 x86: lguest: Convert to new irq chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Rusty Russell commit a5ef2e70405c8a9ee380b5ff33a008c75454791f Author: Thomas Gleixner Date: Tue Sep 28 11:11:10 2010 +0200 x86: Sanitize apb timer interrupt handling Disable the interrupt in CPU_DEAD where it belongs. Remove the open coded irq_desc manipulation. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jacob Pan commit a3c08e5d80c54e32423efbba113b02942c91f726 Author: Thomas Gleixner Date: Fri Oct 8 20:24:58 2010 +0200 x86: Convert irq_chip access to new functions Before moving the irq chips to the new functions, fixup direct callers. The cpu offline irq fixup code needs to become generic and archs need to honour the "force" flag as an indicator, but that's for later. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 011d578fdadb64bcc1deedbb02216bfee6a9b4dc Author: Thomas Gleixner Date: Tue Sep 28 00:15:31 2010 +0200 x86: Remove useless reinitialization of irq descriptors The descriptors are already initialized in exactly this way. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 39431acb1a4c464e62471cb3058b8ffffb9244db Author: Thomas Gleixner Date: Tue Sep 28 19:09:51 2010 +0200 pci: Cleanup the irq_desc mess in msi Handing down irq_desc to msi just so that msi can access irq_desc.irq_data.msi_desc is a pretty stupid idea. The calling code can hand down a pointer to msi_desc so msi code does not need to know about the irq descriptor at all. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Jesse Barnes commit 1c9db52534a2c0e9776788cd34ccc193289fc18c Author: Thomas Gleixner Date: Tue Sep 28 16:46:51 2010 +0200 pci: Convert msi to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Jesse Barnes Cc: Benjamin Herrenschmidt Cc: "David S. Miller" Cc: Tony Luck Cc: Russell King commit 7c5f13519a67aa7ba3a99155f128d4bdef87d087 Merge: 5e62fea 0219896 Author: Thomas Gleixner Date: Tue Oct 12 16:41:22 2010 +0200 Merge branch 'x86/urgent' of into irq/sparseirq Reason: Pull in the latest io_apic bugfixes Signed-off-by: Thomas Gleixner commit 5e62feabcc3e4127a084701ec54ffe891985b7e8 Merge: 8ffcfa4 234bb54 Author: Thomas Gleixner Date: Tue Oct 12 16:40:34 2010 +0200 Merge branch 'x86/cleanups' into irq/sparseirq Reason: Avoid conflicts with removal of boot_cpu_id Signed-off-by: Thomas Gleixner commit 8ffcfa4e2d96342180e02dfe1230b97778c52d72 Merge: b683de2 fa47f7e Author: Thomas Gleixner Date: Tue Oct 12 16:39:44 2010 +0200 Merge branch 'x86/x2apic' into irq/sparseirq Reason: Avoid conflicts with the x2apic modifications Signed-off-by: Thomas Gleixner commit b683de2b3cb17bb10fa6fd4af614dc75b5749fe0 Author: Thomas Gleixner Date: Mon Sep 27 20:55:03 2010 +0200 genirq: Query arch for number of early descriptors sparse irq sets up NR_IRQS_LEGACY irq descriptors and archs then go ahead and allocate more. Use the unused return value of arch_probe_nr_irqs() to let the architecture return the number of early allocations. Fix up all users. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit aa99ec0f3f26bf2bcd0fa5176de93598427f1e5e Author: Thomas Gleixner Date: Mon Sep 27 20:02:56 2010 +0200 genirq: Use sane sparse allocator Make irq_to_desc_alloc_node() a wrapper around the new allocator. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 25ade601a0f97453c6f511ebfae9339e06a28d75 Author: Thomas Gleixner Date: Thu Sep 30 20:33:11 2010 +0200 genirq-update-kerneldoc.patch Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 06f6c3399e9f9ff6eafc200e80f9226c3cee0eaf Author: Thomas Gleixner Date: Tue Oct 12 12:31:46 2010 +0200 genirq: Implement irq reservation Mark a range of interrupts as allocated. In the SPARSE_IRQ=n case we need this to update the bitmap for the legacy irqs so the enumerator via irq_get_next_irq() works. Signed-off-by: Thomas Gleixner commit a98d24b71b6e229965f18dc00d28dc71cb8fe324 Author: Thomas Gleixner Date: Thu Sep 30 10:45:07 2010 +0200 genirq: Implement sane enumeration Use the allocator bitmap to lookup active interrupts. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 13bfe99e09123ef5edb6acb81ba337d2db600b53 Author: Thomas Gleixner Date: Thu Sep 30 02:46:07 2010 +0200 genirq: Prepare proc for real sparse irq support /proc/irq never removes any entries, but when irq descriptors can be freed for real this is necessary. Otherwise we'd reference a freed descriptor in /proc/irq/N Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1f5a5b87f78fade3ae48dfd55e8765d1d622ea4e Author: Thomas Gleixner Date: Mon Sep 27 17:48:26 2010 +0200 genirq: Implement a sane sparse_irq allocator The current sparse_irq allocator has several short comings due to failures in the design or the lack of it: - Requires iteration over the number of active irqs to find a free slot (Some architectures have grown their own workarounds for this) - Removal of entries is not possible - Racy between create_irq_nr and destroy_irq (plugged by horrible callbacks) - Migration of active irq descriptors is not possible - No bulk allocation of irq ranges - Sprinkeled irq_desc references all over the place outside of kernel/irq/ (The previous chip functions series is addressing this issue) Implement a sane allocator which fixes the above short comings (though migration of active descriptors needs a full tree wide cleanup of the direct and mostly unlocked access to irq_desc). The new allocator still uses a radix_tree, but uses a bitmap for keeping track of allocated irq numbers. That allows: - Fast lookup of a free slot - Allows the removal of descriptors - Prevents the create/destroy race - Bulk allocation of consecutive irq ranges - Basic design is ready for migration of life descriptors after further cleanups The bitmap is also used in the SPARSE_IRQ=n case for lookup and raceless (de)allocation of irq numbers. So it removes the requirement for looping through the descriptor array to find slots. Right now it uses sparse_irq_lock to protect the bitmap and the radix tree, but after cleaning up all users we should be able convert that to a mutex and to switch the radix_tree and decriptor allocations to GFP_KERNEL. [ Folded in a bugfix from Yinghai Lu ] Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1318a481fc37c503a901b96ae06b692ca2b21af5 Author: Thomas Gleixner Date: Mon Sep 27 21:01:37 2010 +0200 genirq: Provide default irq init flags Arch code sets it's own irq_desc.status flags right after boot and for dynamically allocated interrupts. That might involve iterating over a huge array. Allow ARCH_IRQ_INIT_FLAGS to set separate flags aside of IRQ_DISABLED which is the default. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit d895f51ebb54cefe367bda135fcf2cd734d51d03 Author: Thomas Gleixner Date: Mon Sep 27 17:45:49 2010 +0200 genirq: Remove export of kstat_irqs_cpu The statistics accessor is only used by proc/stats and show_interrupts(). Both are compiled in. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 40f08a724fcc21285cf3a75aec957aef908605c6 Author: Thomas Gleixner Date: Wed Sep 29 22:16:36 2010 +0200 isdn: hisax: Replace the bogus access to irq stats Abusing irq stats in a driver for counting interrupts is a horrible idea and not safe with shared interrupts. Replace it by a local interrupt counter. Noticed by the attempt to remove the irq stats export. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 154cd387cdf0e5566ce523cbddf92dd2a062dfd6 Author: Thomas Gleixner Date: Wed Sep 22 15:58:45 2010 +0200 genirq: Remove early_init_irq_lock_class() early_init_irq_lock_class() is called way before anything touches the irq descriptors. In case of SPARSE_IRQ=y this is a NOP operation because the radix tree is empty at this point. For the SPARSE_IRQ=n case it's sufficient to set the lock class in early_init_irq(). Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 3795de236d67a05994a1a12759db9d4dd9ffc42c Author: Thomas Gleixner Date: Wed Sep 22 17:09:43 2010 +0200 genirq: Distangle kernel/irq/handle.c kernel/irq/handle.c has become a dumpground for random code in random order. Split out the irq descriptor management and the dummy irq_chip implementation into separate files. Cleanup the include maze while at it. No code change. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f303a6dd127b5ec6de90d1cd79ed19820c7e9658 Author: Thomas Gleixner Date: Tue Sep 28 17:34:01 2010 +0200 genirq: Sanitize irq_data accessors Get the data structure from the core and provide inline wrappers to access the irq_data members. Provide accessor inlines for irq_data as well. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 442471848f5abb55b99cba1229301655f67492b4 Author: Thomas Gleixner Date: Tue Sep 28 10:40:18 2010 +0200 genirq: Provide status modifier Provide a irq_desc.status modifier function to cleanup the direct access to irq_desc in arch and driver code. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 3a3856d00c74560a7b8d9f8a13c1ca94ee786b78 Author: Thomas Gleixner Date: Mon Oct 4 13:47:12 2010 +0200 genirq: Remove unsused inline move_irq() has no users. Remove it and simplify the ifdef forrest while at it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit e144710b302525de5b90b9c3ba43562458d8957f Author: Thomas Gleixner Date: Fri Oct 1 16:03:45 2010 +0200 genirq: Distangle irq.h Move irq_desc and internal functions out of irq.h Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 6d97e55f7172303082850c1de085d06fc1e57d17 Author: Dan Carpenter Date: Mon Oct 11 19:24:19 2010 +0200 vhost: fix return code for log_access_ok() access_ok() returns 1 if it's OK otherwise it should return 0. Signed-off-by: Dan Carpenter Signed-off-by: Michael S. Tsirkin commit 2f34b32977ade4249601f35f7eb0cdd56b4e0f89 Author: Gerrit Renker Date: Mon Oct 11 20:44:42 2010 +0200 dccp: cosmetics - warning format This omits the redundant "DCCP:" in warning messages, since DCCP_WARN() already echoes the function name, avoiding messages like kernel: [10988.766503] dccp_close: DCCP: ABORT -- 209 bytes unread Signed-off-by: Gerrit Renker commit ecdfbdabbe4e0cf0443cbbea2df1bf51bf67f3f3 Author: Gerrit Renker Date: Mon Oct 11 20:41:13 2010 +0200 dccp: schedule an Ack when receiving timestamps This schedules an Ack when receiving a timestamp, exploiting the existing inet_csk_schedule_ack() function, saving one case in the `dccp_ack_pending()' function. Signed-off-by: Gerrit Renker commit d196c9a5d4e150cdff675662214c80c69b906958 Author: Ivo Calado Date: Mon Oct 11 20:40:04 2010 +0200 dccp: generalise data-loss condition This patch generalises the task of determining data loss from RFC 4340, 7.7.1. Let S_A, S_B be sequence numbers such that S_B is "after" S_A, and let N_B be the NDP count of packet S_B. Then, using modulo-2^48 arithmetic, D = S_B - S_A - 1 is an upper bound of the number of lost data packets, D - N_B is an approximation of the number of lost data packets (there are cases where this is not exact). The patch implements this as dccp_loss_count(S_A, S_B, N_B) := max(S_B - S_A - 1 - N_B, 0) Signed-off-by: Ivo Calado Signed-off-by: Erivaldo Xavier Signed-off-by: Leandro Sales Signed-off-by: Gerrit Renker commit baf9e782e1dc4991edecfa3b8700cf8739c40259 Author: Gerrit Renker Date: Mon Oct 11 20:37:38 2010 +0200 dccp: remove unused argument in CCID tx function This removes the argument `more' from ccid_hc_tx_packet_sent, since it was nowhere used in the entire code. (Btw, this argument was not even used in the original KAME code where the function initially came from; compare the variable moreToSend in the freebsd61-dccp-kame-28.08.2006.patch kept by Emmanuel Lochin.) Signed-off-by: Gerrit Renker commit 93344af44c0f649582bf1e3b5ecc45b3d19e98c2 Author: Gerrit Renker Date: Mon Oct 11 20:36:33 2010 +0200 dccp: merge now-reduced connect_init() function After moving the assignment of GAR/ISS from dccp_connect_init() to dccp_transmit_skb(), the former function becomes very small, so that a merger with dccp_connect() suggests itself. Signed-off-by: Gerrit Renker commit 0b53d4604ac2b4f2faa9a62a04ea9b383ad2efe0 Author: Gerrit Renker Date: Mon Oct 11 20:35:40 2010 +0200 dccp: fix the adjustments to AWL and SWL This fixes a problem and a potential loophole with regard to seqno/ackno validity: currently the initial adjustments to AWL/SWL are only performed once at the begin of the connection, during the handshake. Since the Sequence Window feature is always greater than Wmin=32 (7.5.2), it is however necessary to perform these adjustments at least for the first W/W' (variables as per 7.5.1) packets in the lifetime of a connection. This requirement is complicated by the fact that W/W' can change at any time during the lifetime of a connection. Therefore it is better to perform that safety check each time SWL/AWL are updated, as implemented by the patch. A second problem solved by this patch is that the remote/local Sequence Window feature values (which set the bounds for AWL/SWL/SWH) are undefined until the feature negotiation has completed. During the initial handshake we have more stringent sequence number protection; the changes added by this patch effect that {A,S}W{L,H} are within the correct bounds at the instant that feature negotiation completes (since the SeqWin feature activation handlers call dccp_update_gsr/gss()). Signed-off-by: Gerrit Renker commit 8e4029ee3517084ae00fbfbcb51cc365d8857061 Merge: cd79481 73cf624 Author: H. Peter Anvin Date: Mon Oct 11 17:05:11 2010 -0700 Merge branch 'x86/urgent' into core/memblock Reason for merge: Forward-port urgent change to arch/x86/mm/srat_64.c to the memblock tree. Resolved Conflicts: arch/x86/mm/srat_64.c Originally-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 50f2d7f682f9c0ed58191d0982fe77888d59d162 Author: Nikanth Karthikesan Date: Thu Sep 30 17:34:10 2010 +0530 x86, numa: Assign CPUs to nodes in round-robin manner on fake NUMA commit d9c2d5ac6af87b4491bff107113aaf16f6c2b2d9 "x86, numa: Use near(er) online node instead of roundrobin for NUMA" changed NUMA initialization on Intel to choose the nearest online node or first node. Fake NUMA would be better of with round-robin initialization, instead of the all CPUS on first node. Change the choice of first node, back to round-robin. For testing NUMA kernel behaviour without cpusets and NUMA aware applications, it would be better to have cpus in different nodes, rather than all in a single node. With cpusets migration of tasks scenarios cannot not be tested. I guess having it round-robin shouldn't affect the use cases for all cpus on the first node. The code comments in arch/x86/mm/numa_64.c:759 indicate that this used to be the case, which was changed by commit d9c2d5ac6. It changed from roundrobin to nearer or first node. And I couldn't find any reason for this change in its changelog. Signed-off-by: Nikanth Karthikesan Cc: David Rientjes Signed-off-by: Andrew Morton commit c239f279e571a272c1b32a1e84b8fa037b68f49c Author: Michael Chan Date: Mon Oct 11 16:12:28 2010 -0700 bnx2: Enable AER on PCIE devices only To prevent unnecessary error message. pci_save_state() is also moved to the end of ->probe() so that all PCI config, including AER state, will be saved. Update version to 2.0.18. Signed-off-by: Michael Chan Reviewed-by: Benjamin Li Signed-off-by: David S. Miller commit 22fa159d37efbfe781bbb99279efe83f58b87d29 Author: Michael Chan Date: Mon Oct 11 16:12:00 2010 -0700 bnx2: Update firmware to 6.0.x. - Improved flow control and simplified interface - Use hardware RSS indirection table instead of the slower firmware- based table - Lower latency interrupt on 5709 Signed-off-by: Michael Chan Reviewed-by: Benjamin Li Signed-off-by: David S. Miller commit e37ef961e50d74f55e9edb48e54dd2e7963aad39 Author: Eric Dumazet Date: Mon Oct 11 12:20:54 2010 +0000 neigh: reorder struct neighbour fields Le mardi 12 octobre 2010 Ă  00:02 +0200, Eric Dumazet a Ă©crit : > Here is the followup patch. > > Thanks ! > Oops, this was an old version, the up2date ones also took care of "used" field. I guess its time for a sleep, sorry again. [PATCH net-next V2] neigh: reorder struct neighbour fields (refcnt) and (ha_lock, ha, used, dev, output, ops, primary_key) should be placed on a separate cache lines. refcnt can be often written, while other fields are mostly read. This gave me good result on stress test : before: real 0m45.570s user 0m15.525s sys 9m56.669s After: real 0m41.841s user 0m15.261s sys 8m45.949s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit cd79481d27b9f90aad80c9b972292c42c25bbf8e Author: Yinghai Lu Date: Mon Oct 11 12:34:09 2010 -0700 memblock: Annotate memblock functions with __init_memblock Stephen found WARNING: mm/built-in.o(.text+0x25ab8): Section mismatch in reference from the function memblock_find_base() to the function .init.text:memblock_find_region() The function memblock_find_base() references the function __init memblock_find_region(). This is often because memblock_find_base lacks a __init annotation or the annotation of memblock_find_region is wrong. So let memblock_find_region() to use __init_memblock instead of __init directly. Also fix one function that did not have __init* to be __init_memblock. Reported-by: Stephen Rothwell Signed-off-by: Yinghai Lu LKML-Reference: <4CB366B1.40405@kernel.org> Signed-off-by: H. Peter Anvin commit 236260b90dd94516982ad67aa6f5449c4c37db7b Author: Jeremy Fitzhardinge Date: Wed Oct 6 15:52:29 2010 -0700 memblock: Allow memblock_init to be called early The Xen setup code needs to call memblock_x86_reserve_range() very early, so allow it to initialize the memblock subsystem before doing so. The second memblock_init() is ignored. Signed-off-by: Jeremy Fitzhardinge Cc: Yinghai Lu Cc: Benjamin Herrenschmidt LKML-Reference: <4CACFDAD.3090900@goop.org> Signed-off-by: H. Peter Anvin commit 58ff4bd042adf8013c8f70fd03c2c0f8d022e387 Author: Jayamohan Kallickal Date: Wed Oct 6 23:46:47 2010 +0530 [SCSI] be2iscsi: SGE Len == 64K Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit af4c609c0d645f196b570c58dd4ee878ff3afd24 Author: Jayamohan Kallickal Date: Wed Oct 6 23:46:03 2010 +0530 [SCSI] be2iscsi: Remove premature free of cid Remove unnecessary beiscsi_put_cid that was freeing up the cid while in use Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 91446f060b9ae27875d38b00dc3c6394b8321bff Author: Jayamohan Kallickal Date: Wed Oct 6 23:45:21 2010 +0530 [SCSI] be2iscsi: More time for FW This patch provides more time for the FW to respond. This became necessary in boot situations Signed-off-by: Jayamohan Kallickal Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 2bc72c91ea7e104b0e40151543d135b933a12e93 Author: Jack Wang Date: Wed Oct 6 16:05:35 2010 +0800 [SCSI] libsas: fix bug for vacant phy This patch fix bug reported by Chuck. And this new version incorporate comments from Hannes. Please consider to include it into mainline. Signed-off-by: Jack Wang Signed-off-by: Lindar Liu Tested-by: Chuck Tuffli Signed-off-by: James Bottomley commit 526f7c7950bbf1271e59177d70d74438c2ef96de Author: Martin K. Petersen Date: Tue Sep 28 14:48:47 2010 -0400 [SCSI] sd: Fix overflow with big physical blocks The hw_sector_size variable could overflow if a device reported huge physical blocks. Switch to the more accurate physical_block_size terminology and make sure we use an unsigned int to match the range permitted by READ CAPACITY(16). Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit 88b522771079d7ab5f2334c8271bc13e1d309a5c Author: Niranjana Vishwanathapura Date: Wed Oct 6 13:52:11 2010 -0700 msm: smd: enable smd on qsd8x50 target Add msm_smd device in the qsd8x50 board file. Signed-off-by: Niranjana Vishwanathapura Signed-off-by: Daniel Walker commit a8855e9c093fdb35b40a707d580c75d523fed16e Author: Niranjana Vishwanathapura Date: Wed Oct 6 13:52:10 2010 -0700 msm: smd: enable smd on msm7x30 target Add msm_smd device in the msm7x30 board file. Signed-off-by: Niranjana Vishwanathapura Signed-off-by: Daniel Walker commit 29e29f27486ed7074df259b3eda8656bb014e9b5 Author: Linus Walleij Date: Fri Oct 1 09:15:41 2010 +0100 ARM: 6421/1: amba-pl011: add missing ST specific registers The ST Micro derivates have several extra interesting registers that we may soon use for something interesting so may just as well define them in the header. Signed-off-by: Jonas Aaberg Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 8b1f5d91e23300ea2f65007047d26799157dc4b8 Author: Jassi Brar Date: Tue Sep 7 04:02:16 2010 +0100 ARM: 6367/1: PL330: Accept different revision The driver can handle different revisions of the core which vary only minorly. Signed-off-by: Jassi Brar Signed-off-by: Russell King commit 725343fa748fc9b7c883d198e9cec391425aa478 Author: Linus Walleij Date: Sat Oct 9 13:43:21 2010 +0100 ARM: 6437/2: mmci: add some register defines for ST Micro variants This adds a few registers to the MMCI/PL180 derivates that is used for some odd control stuff like SDIO. Signed-off-by: Marcin Mielczarczyk Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 7bdb0d18bfd381cc5491eb95973ec5604b356c7e Author: Tristan Ye Date: Mon Oct 11 16:46:39 2010 +0800 ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. Currently, the default behavior of O_DIRECT writes was allowing concurrent writing among nodes to the same file, with no cluster coherency guaranteed (no EX lock held). This can leave stale data in the cache for buffered reads on other nodes. The new mount option introduce a chance to choose two different behaviors for O_DIRECT writes: * coherency=full, as the default value, will disallow concurrent O_DIRECT writes by taking EX locks. * coherency=buffered, allow concurrent O_DIRECT writes without EX lock among nodes, which gains high performance at risk of getting stale data on other nodes. Signed-off-by: Tristan Ye Signed-off-by: Joel Becker commit e79f86b2ef9c0a8c47225217c1018b7d3d90101c Author: Yinghai Lu Date: Mon Oct 11 10:40:25 2010 -0700 swiotlb: Use page alignment for early buffer allocation We could call free_bootmem_late() if swiotlb is not used, and it will shrink to page alignment. So alloc them with page alignment at first, to avoid lose two pages before patch: [ 0.000000] memblock_x86_reserve_range: [00d3600000, 00d7600000] swiotlb buffer [ 0.000000] memblock_x86_reserve_range: [00d7e7ef40, 00d7e9ef40] swiotlb list [ 0.000000] memblock_x86_reserve_range: [00d7e3ef40, 00d7e7ef40] swiotlb orig_ad [ 0.000000] memblock_x86_reserve_range: [000008a000, 0000092000] swiotlb overflo after patch will get [ 0.000000] memblock_x86_reserve_range: [00d3600000, 00d7600000] swiotlb buffer [ 0.000000] memblock_x86_reserve_range: [00d7e7e000, 00d7e9e000] swiotlb list [ 0.000000] memblock_x86_reserve_range: [00d7e3e000, 00d7e7e000] swiotlb orig_ad [ 0.000000] memblock_x86_reserve_range: [000008a000, 0000092000] swiotlb overflo Signed-off-by: Yinghai Lu Acked-by: FUJITA Tomonori Cc: Becky Bruce Signed-off-by: Konrad Rzeszutek Wilk commit 75d9bbc73804285020aa4d99bd2a9600edea8945 Author: Goldwyn Rodrigues Date: Mon Oct 11 12:57:09 2010 -0500 Initialize max_slots early Functions such as ocfs2_recovery_init() make use of osb->max_slots. Initialize osb->max_slots early so the functions may use the correct value. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit f30d44f3e54a94e037da7a71d714b585dab28d9e Author: Poyo VL Date: Mon Oct 11 13:45:52 2010 -0700 When I tried to compile I got the following warning: fs/ocfs2/slot_map.c: In function ‘ocfs2_init_slot_info’: fs/ocfs2/slot_map.c:360: warning: ‘bytes’ may be used uninitialized in this function fs/ocfs2/slot_map.c:360: note: ‘bytes’ was declared here Compiler: gcc version 4.4.3 (GCC) on Mandriva I'm not sure why this warning occurs, I think compiler don't know that variable "bytes" is initialized when it is sent by reference to ocfs2_slot_map_physical_size and it throws that ugly warning. However, a simple initialization of "bytes" variable with 0 will fix it. Signed-off-by: Ionut Gabriel Popescu Signed-off-by: Joel Becker commit 9b5cd10e4c14a1a642076ace6a73be3d33c91fb6 Author: Srinivas Eeda Date: Tue Oct 5 15:53:06 2010 -0700 ocfs2: validate bg_free_bits_count after update This patch adds a safe check to ensure bg_free_bits_count doesn't exceed bg_bits in a group descriptor. This is to avoid on disk corruption that was seen recently. debugfs: group <52803072> Group Chain: 179 Parent Inode: 11 Generation: 2959379682 CRC32: 00000000 ECC: 0000 ## Block# Total Used Free Contig Size 0 52803072 32256 4294965350 34202 18207 4032 ...... Signed-off-by: Srinivas Eeda Signed-off-by: Joel Becker commit fc66f95c68b6d4535a0ea2ea15d5cf626e310956 Author: Eric Dumazet Date: Fri Oct 8 06:37:34 2010 +0000 net dst: use a percpu_counter to track entries struct dst_ops tracks number of allocated dst in an atomic_t field, subject to high cache line contention in stress workload. Switch to a percpu_counter, to reduce number of time we need to dirty a central location. Place it on a separate cache line to avoid dirtying read only fields. Stress test : (Sending 160.000.000 UDP frames, IP route cache disabled, dual E5540 @2.53GHz, 32bit kernel, FIB_TRIE, SLUB/NUMA) Before: real 0m51.179s user 0m15.329s sys 10m15.942s After: real 0m45.570s user 0m15.525s sys 9m56.669s With a small reordering of struct neighbour fields, subject of a following patch, (to separate refcnt from other read mostly fields) real 0m41.841s user 0m15.261s sys 8m45.949s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 0ed8ddf4045fcfcac36bad753dc4046118c603ec Author: Eric Dumazet Date: Thu Oct 7 10:44:07 2010 +0000 neigh: Protect neigh->ha[] with a seqlock Add a seqlock in struct neighbour to protect neigh->ha[], and avoid dirtying neighbour in stress situation (many different flows / dsts) Dirtying takes place because of read_lock(&n->lock) and n->used writes. Switching to a seqlock, and writing n->used only on jiffies changes permits less dirtying. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit d122179a3c0fdc71b88cb9e3605f372b1651a9ff Merge: 419c204 b00916b Author: David S. Miller Date: Mon Oct 11 12:30:34 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/core/ethtool.c commit a13c8f3133b250e732c383b1c390d625e755db03 Author: Ivo van Doorn Date: Mon Oct 11 15:39:48 2010 +0200 rt2x00: Fix URB error handling kill_urb guarentees that when the function returns, the URB has been fully killed. This means we don't need the extra sleeping after the call to kill_urb. kill_urb can however also guarentee the submit_urb to fail, as a result, we must catch the return value from submit_urb an correctly mark the entry as owned by the driver, and the status as broken. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 1a397696536e896e7d763c0c38f3ae3e588b5d52 Author: Ivo van Doorn Date: Mon Oct 11 15:39:04 2010 +0200 rt2x00: Don't perform watchdog checks on empty queue The currently used watchdog functions cannot be applied to empty queues. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit a1d1eabc8c42ddf5fd3ea4184094561b3edd127b Author: Ivo van Doorn Date: Mon Oct 11 15:38:45 2010 +0200 rt2x00: Make queue_entry flags access atomic All access to the queue_entry->flags can be done concurrently, so all flags must use the atomic operators. On most locations this was already done, so just fix the last few non-atomic versions. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 1550c8ef835af17df322045e92541561afa0f017 Author: Ivo van Doorn Date: Mon Oct 11 15:38:26 2010 +0200 rt2x00: Fix dead queue when skb allocation failed When the RX skb allocation failed, we should recycle the previously allocated skbuffer. By calling return we would kill the RX queue completely since the entry would be invalidated. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 3590eea41815679e268c90d30795a13a732b8413 Author: Ivo van Doorn Date: Mon Oct 11 15:38:07 2010 +0200 rt2x00: Validate MCS on RX path Similar to the PLCP signal and bitrates values, we should validate the MCS value from the RX descriptor before sending it to mac80211. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit cdfd2c5cffac2e744c855f9998212867387bb2de Author: Ivo van Doorn Date: Mon Oct 11 15:37:47 2010 +0200 rt2x00: Move watchdog work to kernel work_queue The watchdog function must run on a work_queue which is independent of any other work inside rt2x00. The main reasons, being that a broken work on the mac80211 work_queue can otherwise prevent the watchdog to run (while in fact the watchdog could fix the issue). And on the other hand because the watchdog relies on the completion of the completion handlers for RX/TX which for the USB case, occur on the mac80211 workqueue. This fixes some "Queue %d failed to flush" errors, which were caused by the watchdog function waiting on the completion handler which was scheduled to run right after the watchdog. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit fa69560f317d961c56e29dea788b346d2b34fb87 Author: Ivo van Doorn Date: Mon Oct 11 15:37:25 2010 +0200 rt2x00: Simplify Queue function arguments A lot of functions accept a struct rt2x00_dev combined with either a struct queue_entry or struct data_queue argument. This can be simplified by only passing on the queue/entry argument. In cases where rt2x00_dev and a sk_buff are send together, we can send the queue_entry instead. rt2x00usb_alloc_urb and rt2x00usb_free_urb have a bit of vague naming. Instead they allocate all the data which belongs to a rt2x00 data queue entry. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit a9325199edb093a5c7311a25d15da20ee984e80b Author: Jiri Slaby Date: Mon Oct 11 11:27:32 2010 +0200 WIRELESS: at76c50x, remove unneeded NULL check Stanse found that urb cannot be NULL in at76_rx_tasklet because it is dereferenced earlier, so remove the unneeded check. Signed-off-by: Jiri Slaby Signed-off-by: John W. Linville commit f2a6d6a08cf13f621661dd57f32bf0a5100ba26b Author: RafaƂ MiƂecki Date: Mon Oct 11 03:19:22 2010 +0200 b43: N-PHY: prepare for rev3+ channel tables Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 087de74ae512fe31894c1556d5f8d5a126322de7 Author: RafaƂ MiƂecki Date: Mon Oct 11 03:11:03 2010 +0200 b43: N-PHY: fix logic in band switching Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit e5c407f970ea2977600eb54cf4cc8a67a44fefeb Author: RafaƂ MiƂecki Date: Mon Oct 11 03:11:02 2010 +0200 b43: N-PHY: store info about current channel's type Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit a656b6a9665dce09a8f273091f1b4aa3d5cec721 Author: RafaƂ MiƂecki Date: Mon Oct 11 03:11:01 2010 +0200 b43: N-PHY: grab more info about new channel Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit a8909cfb1832ac623142898df2a9374722cfe68f Author: Björn Smedman Date: Sun Oct 10 22:51:54 2010 +0200 ath9k: built-in rate control A-MPDU fix This patch attempts to ensure that ath9k's built-in rate control algorithm does not rely on the value of the ampdu_len and ampdu_ack_len tx status fields unless the IEEE80211_TX_STAT_AMPDU flag is set. This patch has not been tested. Cc: Signed-off-by: Björn Smedman Acked-by: Felix Fietkau Signed-off-by: John W. Linville commit ebd022873aa61937603d2c4dfea19ce63ea1a3c8 Author: Björn Smedman Date: Sun Oct 10 22:44:39 2010 +0200 ath9k: A-MPDU rate control info fix This patch fixes the following problems with the rate control feedback generated by ath9k for A-MPDU frames: 1. Rate control feedback is carried on the first frame of an aggregate that is either ACKed, or has execeeded the software retry count and is considered failed. However, ath9k would incorrectly assume the aggregate had the length 1 if one of these conditions did not apply to the first frame of the aggregate, but instead a later frame. This fix therefor copies the bf_nframes field of the buffer in the same manner as the rates field of the tx status. 2. Sometimes the ampdu_len and ampdu_ack_len fields of the tx status was left uninitialized eventhough the IEEE80211_TX_STAT_AMPDU flag was set. This is now avoid by setting flag and fields in the same place. 3. Even if a frame has been selected for aggregation by mac80211 and marked with the IEEE80211_TX_CTL_AMPDU flag it can sometimes happen that ath9k transmits the frame without aggregation. In these cases the ampdu_ack_len field could be incorrectly computed because the nbad parameter to ath_tx_rc_status was incorrect. Cc: Signed-off-by: Björn Smedman Acked-by: Felix Fietkau Signed-off-by: John W. Linville commit 15d46f38df87f89242e470f5797120fa384c1fc3 Author: Björn Smedman Date: Sun Oct 10 22:14:25 2010 +0200 mac80211: minstrel_ht A-MPDU fix This patch fixes two problems with the minstrel_ht rate control algorithms handling of A-MPDU frames: 1. The ampdu_len field of the tx status is not always initialized for non-HT frames (and it would probably be unreasonable to require all drivers to do so). This could cause rate control statistics to be corrupted. We now trust the ampdu_len and ampdu_ack_len fields only when the frame is marked with the IEEE80211_TX_STAT_AMPDU flag. 2. Successful transmission attempts where only recognized when the A-MPDU subframe carrying the rate control status information was marked with the IEEE80211_TX_STAT_ACK flag. If this information happed to be carried on a frame that failed to be ACKed then the other subframes (which may have succeeded) where not correctly registered. We now update rate control statistics regardless of whether the subframe carrying the information was ACKed or not. Cc: Signed-off-by: Björn Smedman Acked-by: Felix Fietkau Signed-off-by: John W. Linville commit 730bd83b036e72b0134352ca27e76ea08475fbf1 Author: Johannes Berg Date: Sun Oct 10 18:52:10 2010 +0200 mac80211: don't kmalloc 16 bytes Since this small buffer isn't used for DMA, we can simply allocate it on the stack, it just needs to be 16 bytes of which only 8 will be used for WEP40 keys. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit cc2858c987f41286e059ee777c3bc09f7b7c19f6 Author: Kalle Valo Date: Sun Oct 10 11:28:33 2010 +0300 wl1251: update the new location to the maintainers file wl1251 is grown up now and can have its own room^H^H^H^Hdirectory. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 9bc6772e15d25f58c1be638031280e04514287d4 Author: Kalle Valo Date: Sun Oct 10 11:28:32 2010 +0300 wl1251: move to it's own directory wl1271 driver is under heavy development but on the other hand the older wl1251 driver is currently considered more as a legacy driver. To make it easier to develop wl1271 features move wl1251 to it's own directory, drivers/net/wireless/wl1251. There are no functional changes, only moving of files. One regression is that Kconfig won't be updated automatically and user needs to enable wl1251 manually with an older config file. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit f03ee1ec73d8cad07b0ef5ba6106a9fc4d179ecb Author: Kalle Valo Date: Sun Oct 10 11:28:31 2010 +0300 wl1251: create a copy of wl12xx_80211.h for wl1251 In preparation of moving wl1251 out from drivers/net/wireless/wl12xx create a separate copy of wl12xx_80211.h. This file should not even exist, we should instead use generic ieee80211 definitions. This will be fixed in the future so that the file can be removed. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit 8f236d1bef659ca69c912536a69b3031e5ba3269 Author: Christian Lamparter Date: Sun Oct 10 01:15:07 2010 +0200 carl9170: A-MPDU frame type filter In the past, carl9170 has been plagued by mysterious ghosts. e.g.: wlan4: deauthenticated from 02:04:d8:3c:ac:c1 (Reason: 0) Apparently, the AP sent us a bogus deauthentication notification. But upon closer inspection the "management frame" turned out to be a corrupted scrap of an unsuccessful A-MPDU. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9f59f3c694c184c69e0be7d0fd0829bcb61b0429 Author: Christian Lamparter Date: Sat Oct 9 22:23:37 2010 +0200 carl9170: remove stale rx error path The total/fatal error bit was erroneously prefixed with AR9170_RX_ERROR instead of AR9170_RX_STATUS. Luckily, the hardware specification confirmed that the 0x80 flag will never be set for mac->error. So, it was always just a dead branch. This patch also imports the latest version of shared wlan.h header from the firmware git. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit c8a16c68ef4eb7817e41759c7105678ebc155377 Author: Christian Lamparter Date: Sat Oct 9 21:37:11 2010 +0200 carl9170: common error path for bad frames This patch replaces several identical frame drop paths with a single shared rx frame error handler. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 12eec2cc0d5eacd8287646585dc88ab558d4866d Author: Helmut Schaa Date: Sat Oct 9 13:35:48 2010 +0200 rt2x00: Fix tx status handling in rt2800pci The patches "rt2x00: Improve TX status entry validation" and "rt2x00: rework tx status handling in rt2800pci" together were causing problems with tx status processing in rt2800pci: phy1 -> rt2800pci_txdone: Warning - Got TX status for an empty queue 3, dropping phy1 -> rt2800pci_txdone: Warning - Got TX status for an unavailable queue 7, dropping Fix this by using the correct field definition for getting the QID out of the tx status report. Reported-by: Luis Correia Signed-off-by: Helmut Schaa Tested-by: Luis Correia Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 74374725cdf466629fd401a81b3a04e4cdb0815f Author: Helmut Schaa Date: Sat Oct 9 13:35:13 2010 +0200 rt2x00: Remove superfluous initialization of qidx There is no need to initialize qidx to zero as it will ever be overwritten by the correct value. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit c6084d5fa2e70a436ab944066146de01819f5493 Author: Helmut Schaa Date: Sat Oct 9 13:34:43 2010 +0200 rt2x00: Use unlikely for error case in rt2x00queue_write_tx_frame This is an error condition that is not supposed to happen. Hence, it is safe to add unlikely to this check. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit ff6133becae9ae1657fcff339a160a21448fa11c Author: Helmut Schaa Date: Sat Oct 9 13:34:11 2010 +0200 rt2x00: Use proper type for rxwi_w2 in rt2800_agc_to_rssi Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 546adf294e85ca0dcd9c052294ef35b83a6ab2f4 Author: Helmut Schaa Date: Sat Oct 9 13:33:43 2010 +0200 rt2x00: Optimize unmapping of skbs Since no skb will be mapped for RX and TX at the same time we can simply shortcut the check for SKBDESC_DMA_MAPPED_TX. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit a23c22080345f1748a933f32736986ff11f44d60 Author: Helmut Schaa Date: Sat Oct 9 13:33:16 2010 +0200 rt2x00: Shortcut link state updates when not operating as STA Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit cfdfa4d3a0c7aa1287c61326a7714f262466157a Author: Steve deRosier Date: Sat Oct 9 17:23:28 2010 -0700 mac80211: Update mesh constants to approved IEEE ANA values This patch updates IEEE802.11 mesh constants to be consistent with newly approved values. It modifies some values, as well as adds many new constants in preparation for updating mesh code to the current 802.11s drafts. ANA numbers were taken from: https://mentor.ieee.org/802.11/dcn/09/11-09-0031-12-0000-ana-database-assigned-number-authority.xls A few notes are in order: 1. This will break backwards compatibility with existing Linux kernels as over-the-air constants have changed. 2. Some old and obsolete constants have been retained for now as the mesh code itself hasn't been updated yet to the new 802.11s draft. This was desired to keep the existing mesh scheme working until it can be updated. Adding the approved values is the first step in updating the mesh code. 3. Obsolete constants have been clearly marked. 4. All ANA approved 802.11s constants have been added. Signed-off-by: Steve deRosier Signed-off-by: John W. Linville commit 3430098ae463e31ab16926ac3eb295368a3ca5d9 Author: Felix Fietkau Date: Sun Oct 10 18:21:52 2010 +0200 ath9k: implement channel utilization stats for survey Results for the active channel are updated whenever a new survey dump is requested, the old data is kept to allow multiple processes to make their own channel utilization averages. All other channels only contain the data for the last time that the hardware was on the channel, i.e. the last scan result or other off-channel activity. Running a background scan does not clear the data for the active channel. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit cac4220b2e93e6344f987581d52d5bd71ff2cc0e Author: Felix Fietkau Date: Sat Oct 9 02:39:30 2010 +0200 ath9k: add compile time checking for the size of the channel list This prevents random memory corruption if the number of channels ever gets changed without an update to the internal channel array size. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 8610c29a2c9f273886b1c31ae4d92c69d4326262 Author: Felix Fietkau Date: Sat Oct 9 02:39:29 2010 +0200 cfg80211: add channel utilization stats to the survey command Using these, user space can calculate a relative channel utilization with arbitrary intervals by regularly taking snapshots of the survey results. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 15943a72c7d2031c9150917ca9161a9f891d455a Author: Christian Lamparter Date: Fri Oct 8 22:35:09 2010 +0200 mac80211: temporarily disable reorder release timer Several serve threading problems in the current release reorder timer implementation have been discovered. A lengthy discussion - which lists some of the pitfalls and possible solutions - can be found at: http://marc.info/?t=128635927000001 But due to the complicated nature of the subject and the imminent advent of a new -rc cycle, it was decided to disable the feature for the time being. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit d12c74528e3065c90df70fbc06ec6ffd6e804738 Author: Christian Lamparter Date: Fri Oct 8 22:27:07 2010 +0200 mac80211: fix possible null-pointer de-reference This patch not only fixes a null-pointer de-reference that would be triggered by a PLINK_OPEN frame with mis- matching/incompatible mesh configuration, but also responds correctly to non-compatible PLINK_OPEN frames by generating a PLINK_CLOSE with the right reason code. The original bug was detected by smatch. ( http://repo.or.cz/w/smatch.git ) net/mac80211/mesh_plink.c +574 mesh_rx_plink_frame(168) error: we previously assumed 'sta' could be null. Cc: Reviewed-and-Tested-by: Steve deRosier Reviewed-and-Tested-by: Javier Cardona Acked-by: Johannes Berg Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 7109ca5c80a0bb94378ebd7f8bb6d00edb5e6fba Author: Felix Fietkau Date: Fri Oct 8 22:13:54 2010 +0200 ath5k: use the common cycle counter / listen time implementation Signed-off-by: Felix Fietkau Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit b5bfc5683db44a121ad47ec0a9f4efd4aac040e0 Author: Felix Fietkau Date: Fri Oct 8 22:13:53 2010 +0200 ath9k_hw: move the cycle counter tracking to ath Instead of keeping track of wraparound, clear the counters on every access and keep separate deltas for ANI and later survey use. Also moves the function for calculating the 'listen time' for ANI Signed-off-by: Felix Fietkau Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 9d119f3ebd074bde0b801f476a44ca60d222efb2 Author: Felix Fietkau Date: Fri Oct 8 22:13:52 2010 +0200 ath5k: store the clock rate in common data on channel changes Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit dfdac8ac033c9ad048a5c68563bd41bda6c5e60b Author: Felix Fietkau Date: Fri Oct 8 22:13:51 2010 +0200 ath9k_hw: store the clock rate in common data on channel changes Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 62c58fb4316905cd9c1dbf01967935ed5610b45d Author: Ben Greear Date: Fri Oct 8 12:01:15 2010 -0700 ath5k: Adjust opmode when interfaces are removed. Otherwise, if there is an AP and a STATION, and AP is removed, the NIC will not revert back to STATION mode. Reported-by: Eliad Peller Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit 92c68a66a8f73c51f062ae8cae958c86a21fea78 Author: Ben Greear Date: Fri Oct 8 09:43:29 2010 -0700 ath5k: Print out opmode in debugfs. Helps debug multi-VIF scenarios. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit 5a5c731aa59cc2c44ca20f45b1a577cd4f5435e2 Author: Ben Greear Date: Thu Oct 7 16:39:20 2010 -0700 wireless: Set some stats used by /proc/net/wireless (wext) Some stats for /proc/net/wireless (and wext in general) are not being set. This patch addresses a few of those with values easily obtained from mac80211 core. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit b38afa87698375179026224522c2e48dcbf17e65 Author: Ben Greear Date: Thu Oct 7 16:12:06 2010 -0700 mac80211: Improve mlme probe response log messages. Old messages didn't mention the device in question. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit 03620b2d7545fee29ecd3bb270f206b9cff75e58 Author: FUJITA Tomonori Date: Mon Aug 2 23:48:06 2010 +0900 swiotlb: make io_tlb_overflow static We don't need to export io_tlb_overflow_buffer. I'll remove io_tlb_overflow_buffer completely in the long term though. Signed-off-by: FUJITA Tomonori Signed-off-by: Konrad Rzeszutek Wilk commit 7623225f905263424c7254dc6a07bff083a498dd Author: Johannes Berg Date: Mon Oct 11 14:46:52 2010 -0400 Revert "wireless: Use first phyX name available when registering phy devices." This reverts commit 5a254ffe3ffdfa84fe076009bd8e88da412180d2. The commit failed to take into account that allocated wireless devices (wiphys) are not added into the device list upon allocation, but only when they are registered. Therefore, it opened up a race between allocating and registering a name, so that if two processes allocate and register concurrently ("alloc, alloc, register, register" rather than "alloc, register, alloc, register") the code will attempt to use the same name twice. Signed-off-by: Johannes Berg commit d86a4f2dd4ec554cf3346f4cab763925761c4095 Merge: bf53f93 674f305 Author: John W. Linville Date: Mon Oct 11 14:43:46 2010 -0400 Merge branch 'wireless-next' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx commit 419c20465d6319274e7286f0966e2390540e6e0a Author: Jiri Slaby Date: Sun Oct 10 23:26:56 2010 +0000 NET: pch, fix use after free Stanse found that pch_gbe_xmit_frame uses skb after it is freed. Fix that. Signed-off-by: Jiri Slaby Cc: Masayuki Ohtake Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 0361e02342f60b64a7075755d5851ed4e6f98c7d Merge: 4fdaa7b e9677b3 Author: Robert Richter Date: Mon Oct 11 19:38:39 2010 +0200 Merge branch 'oprofile/perf' into oprofile/core Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit e9677b3ce207a07fad5746b6f7ddc70cae79de0a Author: Robert Richter Date: Wed Sep 29 15:42:30 2010 +0200 oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure There is duplicate cleanup code in the init and exit functions. Now, oprofile_arch_exit() is also used if oprofile_arch_init() fails. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 2bcb2b641a8f1524f7a9801eb9e52a00b8f18c6e Author: Robert Richter Date: Wed Sep 29 14:43:29 2010 +0200 oprofile, ARM: Rework op_create_counter() This patch simplifies op_create_counter(). Removing if/else if paths and return code variable by direct returning from function. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 9c91283a19c2d998a83f50f113f8585709c15caf Author: Robert Richter Date: Fri Aug 27 14:32:41 2010 +0200 oprofile, ARM: Remove some goto statements This patch removes some unnecessary goto statements. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 652953b72eea8b9d1bd6b9f67b796c6722bada3a Merge: 8177197 5140434 Author: Robert Richter Date: Mon Oct 11 19:33:42 2010 +0200 Merge branch 'oprofile/core' (early part) into oprofile/perf Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit 81771974ae49bf79aab60c42eac7a6d730a9ef2b Author: Robert Richter Date: Wed Sep 29 16:52:25 2010 +0200 oprofile, ARM: Release resources on failure This patch fixes a resource leak on failure, where the oprofilefs and some counters may not released properly. Signed-off-by: Robert Richter Acked-by: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: # .35.x LKML-Reference: <20100929145225.GJ13563@erda.amd.com> Signed-off-by: Ingo Molnar commit ad0f7cfaa85fc033523a09ab1f3dd6b8ded3dff5 Merge: 86c8c04 c7a27aa Author: Robert Richter Date: Mon Oct 11 19:26:50 2010 +0200 Merge branch 'oprofile/urgent' (early part) into oprofile/perf commit c9ee46a910f6edb40ddb7fb9aeac0030057c6fdb Merge: 4fa0466 81490fc Author: Russell King Date: Mon Oct 11 17:30:44 2010 +0100 Merge branch 'for-rmk-next' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable commit 34d101dd6204bd100fc2e6f7b5f9a10f959ce2c9 Author: Eric Dumazet Date: Mon Oct 11 09:16:57 2010 -0700 neigh: speedup neigh_hh_init() When a new dst is used to send a frame, neigh_resolve_output() tries to associate an struct hh_cache to this dst, calling neigh_hh_init() with the neigh rwlock write locked. Most of the time, hh_cache is already known and linked into neighbour, so we find it and increment its refcount. This patch changes the logic so that we call neigh_hh_init() with neighbour lock read locked only, so that fast path can be run in parallel by concurrent cpus. This brings part of the speedup we got with commit c7d4426a98a5f (introduce DST_NOCACHE flag) for non cached dsts, even for cached ones, removing one of the contention point that routers hit on multiqueue enabled machines. Further improvements would need to use a seqlock instead of an rwlock to protect neigh->ha[], to not dirty neigh too often and remove two atomic ops. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 86c8c04792f152c5469023885510140dd34817bc Author: Matt Fleming Date: Fri Sep 10 20:36:23 2010 +0100 sh: oprofile: Use perf-events oprofile backend Now that we've got a generic perf-events based oprofile backend we might as well make use of it seeing as SH doesn't do anything special with its oprofile backend. Also introduce a new CONFIG_HW_PERF_EVENTS symbol so that we can fallback to using the timer interrupt for oprofile if the CPU doesn't support perf events. Also, to avoid a section mismatch warning we need to annotate oprofile_arch_exit() with an __exit marker. Signed-off-by: Matt Fleming Acked-by: Paul Mundt Signed-off-by: Robert Richter commit 3d90a00763b51e1db344a7430c966be723b67a29 Author: Matt Fleming Date: Mon Sep 27 20:45:08 2010 +0100 oprofile: Abstract the perf-events backend Move the perf-events backend from arch/arm/oprofile into drivers/oprofile so that the code can be shared between architectures. This allows each architecture to maintain only a single copy of the PMU accessor functions instead of one for both perf and OProfile. It also becomes possible for other architectures to delete much of their OProfile code in favour of the common code now available in drivers/oprofile/oprofile_perf.c. Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 58850e210cd207399cf6461326e322541b2ec81c Author: Matt Fleming Date: Mon Sep 27 20:35:29 2010 +0100 ARM: oprofile: Move non-ARM code into separate init/exit In preparation for moving the majority of this oprofile code into an architecture-neutral place separate the architecture-independent code into oprofile_perf_init() and oprofile_perf_exit(). Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 80e96b11f6cd261e1e569f3931604d656388af33 Author: Matt Fleming Date: Mon Sep 27 20:29:58 2010 +0100 ARM: oprofile: Rename op_arm to oprofile_perf In preparation for moving the generic functions out of this file, give the functions more general names (e.g. remove "arm" from the names). Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 56946331b28d53232115a155ba662ab3dc598952 Author: Matt Fleming Date: Fri Oct 8 21:42:17 2010 +0100 oprofile: Make op_name_from_perf_id() global Make op_name_from_perf_id() global so that we have a way for each architecture to construct an oprofile name for op->cpu_type. We need to remove the argument from the function prototype so that we can hide all implementation details inside the function. Signed-off-by: Matt Fleming Signed-off-by: Robert Richter commit 84c7991059c9c4530cc911137c5bf508a41ed129 Author: Matt Fleming Date: Sun Oct 3 21:41:13 2010 +0100 perf: New helper function for pmu name Introduce perf_pmu_name() helper function that returns the name of the pmu. This gives us a generic way to get the name of a pmu regardless of how an architecture identifies it internally. Signed-off-by: Matt Fleming Acked-by: Peter Zijlstra Acked-by: Paul Mundt Signed-off-by: Robert Richter commit 81490fcdf406f42fff9d9f57d541788f90242885 Author: Amit Kucheria Date: Thu Oct 7 03:58:25 2010 +0300 mx51: efikamx: add otg support Ethernet hangs off OTG Signed-off-by: Amit Kucheria Signed-off-by: Sascha Hauer commit 088d01b00e335230bc51be6ae396babb9767e9ea Author: Amit Kucheria Date: Thu Oct 7 03:58:12 2010 +0300 mx51: add support for genesi efikamx nettop Get serial port working for now Signed-off-by: Amit Kucheria Signed-off-by: Sascha Hauer commit 6ff554e06869e970e6ef2c4d44ea43315917d22c Author: David Jander Date: Fri Oct 8 11:24:01 2010 +0200 spi/imx: Support different fifo sizes The i.MX51 ECSPI has a fifo size of 64 entries instead of 8 entries as found on the other cspi bus devices. Cc: Jason Wang Signed-off-by: David Jander Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Acked-by: Grant Likely Signed-off-by: Sascha Hauer commit 4b5ee7a7689e3551f304b9154ecadbb0c3ae292f Author: Sascha Hauer Date: Sat Oct 9 23:09:45 2010 +0200 ARM: iomux-mx51: Add AUD5 pinmux definitions Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0d0e9cbf815a78d62889554826f7d06b323c2d06 Author: Wolfram Sang Date: Mon Oct 11 15:04:53 2010 +0200 mx25/clocks: match esdhc-clocks to platform device So the correct clock will be taken for each of the two independent controllers. Signed-off-by: Wolfram Sang Cc: Eric BĂ©nard Signed-off-by: Sascha Hauer commit 886ab3dae2ba26bde5bab096c931365db9f49830 Author: Peter Korsgaard Date: Mon Oct 11 15:02:06 2010 +0200 mxc/gpio: make _set_value work with values != 0/1 Documentation/gpio.txt specifies that the value argument to gpio_set_value() should be handled as a boolean (E.G. != 0 is high), so use the same logic as in _set_direction(). Signed-off-by: Peter Korsgaard Signed-off-by: Sascha Hauer commit 9524705c867dc8d5b558f4793b7464eab967a530 Author: Juergen Beisert Date: Wed Sep 22 09:42:15 2010 +0200 MX35: Fix bogus L2 cache settings i.MX35 CPUs marked with "MCIMX357CJQ5C M99V CTHA0943B" are coming with bogus L2 cache settings. If these settings are kept unmodified prior enabling the L2 cache the CPU runs amok immediately when its enabled. This fix should not hurt already working CPUs, as they are using the written register value already. Its currently unknown if its possible to detect the production lot from the software to fix only affected CPUs. While at it, make sure that mxc_init_l2x0 is only executed on i.MX31/35 Signed-off-by: Juergen Beisert Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer commit 55fd2ef6d9e9f40f30d891e01f2f565552e688fa Author: Uwe Kleine-König Date: Wed Oct 6 12:00:19 2010 +0200 ARM: mx3/cpuimx35: mark otg_pdata and usbh1_pdata as maybe unused This fixes arch/arm/mach-mx3/mach-cpuimx35.c:143: warning: 'otg_pdata' defined but not used arch/arm/mach-mx3/mach-cpuimx35.c:148: warning: 'usbh1_pdata' defined but not used when USB_ULPI is not selected. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6bd96f3c332d422c0dda302f1b32c8e21dd75ee3 Author: Uwe Kleine-König Date: Wed Oct 6 12:00:18 2010 +0200 ARM: imx: dynamically register fec devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8a8d20600dce01553c8505b7c576f8d4307e4ba8 Author: Uwe Kleine-König Date: Fri Oct 8 16:00:11 2010 +0200 ARM: imx: fix/define clocks and create devices for imx dma Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 67520f3a896acb1635894fd25626f7fa7c91e61c Author: Eric BĂ©nard Date: Fri Oct 8 16:00:10 2010 +0200 ARM: mx35: Add mx35_revision function to query the silicon revision Based on work done earlier by Sascha Hauer Signed-off-by: Sascha Hauer Signed-off-by: Eric BĂ©nard [ukl: actually squash the two approaches together] Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit fdb03870a9714ba2695daa0c2b3e6b6be4318e9d Author: Sascha Hauer Date: Fri Oct 8 16:00:09 2010 +0200 ARM: mx3: use MX3x_ prefixed version of CHIP_REV_x Also, remove the deprecated symbols from arch/arm/mach-mx3/cpu.c Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6f8460eb823c37f6ba236cd261a6edceea4805e5 Author: Eric BĂ©nard Date: Sat Oct 2 17:15:29 2010 +0200 eukrea_mbimxsd for cpuimx25: add CAN & SDCard support Signed-off-by: Eric BĂ©nard Signed-off-by: Sascha Hauer commit f5e40c28b63939ee63f1f9d865eece0a28444fd0 Author: Eric BĂ©nard Date: Sat Oct 2 17:15:28 2010 +0200 i.mx25: add esdhc support Signed-off-by: Eric BĂ©nard Signed-off-by: Sascha Hauer commit 438a4d66a561fe3d6dceeb9c7f30d23f52cb371b Author: Eric BĂ©nard Date: Sat Oct 2 17:15:27 2010 +0200 eukrea_mbimxsd for cpuimx35: add CAN & SDCard support Signed-off-by: Eric BĂ©nard Signed-off-by: Sascha Hauer commit 9a545943a378ec1b3a9819de4b189ce5e822a6af Author: Wolfram Sang Date: Mon Oct 11 12:55:23 2010 +0200 arm: pcm043: add esdhc-device to boardconfig Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 774305d0ee105f75d44699e2c94ef3bf9c5e2d90 Author: Wolfram Sang Date: Mon Oct 11 12:55:22 2010 +0200 arm: imx35: add esdhc-device to MX35-platform Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 203a0734709779fa40552cd9bb7c4dd325b5131f Author: Wolfram Sang Date: Mon Oct 11 12:55:21 2010 +0200 arm: imx: add generic esdhc device Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 6370a6ad3b53df90b4700977f7718118a2cd524a Author: Tejun Heo Date: Mon Oct 11 15:12:27 2010 +0200 workqueue: add and use WQ_MEM_RECLAIM flag Add WQ_MEM_RECLAIM flag which currently maps to WQ_RESCUER, mark WQ_RESCUER as internal and replace all external WQ_RESCUER usages to WQ_MEM_RECLAIM. This makes the API users express the intent of the workqueue instead of indicating the internal mechanism used to guarantee forward progress. This is also to make it cleaner to add more semantics to WQ_MEM_RECLAIM. For example, if deemed necessary, memory reclaim workqueues can be made highpri. This patch doesn't introduce any functional change. Signed-off-by: Tejun Heo Cc: Jeff Garzik Cc: Dave Chinner Cc: Steven Whitehouse commit 30310045dd20a286cf3800f063f79b468e132fb1 Author: Tejun Heo Date: Mon Oct 11 11:51:57 2010 +0200 workqueue: fix HIGHPRI handling in keep_working() The policy function keep_working() didn't check GCWQ_HIGHPRI_PENDING and could return %false with highpri work pending. This could lead to late execution of a highpri work which was delayed due to @max_active throttling if other works are actively consuming CPU cycles. For example, the following could happen. 1. Work W0 which burns CPU cycles. 2. Two works W1 and W2 are queued to a highpri wq w/ @max_active of 1. 3. W1 starts executing and W2 is put to delayed queue. W0 and W1 are both runnable. 4. W1 finishes which puts W2 to pending queue but keep_working() incorrectly returns %false and the worker goes to sleep. 5. W0 finishes and W2 starts execution. With this patch applied, W2 starts execution as soon as W1 finishes. Signed-off-by: Tejun Heo commit 3bf101ba42a1c89b5afbc7492e7647dae5e18735 Author: Matt Fleming Date: Mon Sep 27 20:22:24 2010 +0100 perf: Add helper function to return number of counters The number of counters for the registered pmu is needed in a few places so provide a helper function that returns this number. Signed-off-by: Matt Fleming Tested-by: Will Deacon Acked-by: Paul Mundt Acked-by: Peter Zijlstra Signed-off-by: Robert Richter commit 37f9fc452d138dfc4da2ee1ce5ae85094efc3606 Author: Samuel Ortiz Date: Wed Oct 6 01:03:12 2010 +0200 irda: Fix heap memory corruption in iriap.c While parsing the GetValuebyClass command frame, we could potentially write passed the skb->data pointer. Cc: stable@kernel.org Reported-by: Ilja Van Sprundel Signed-off-by: Samuel Ortiz commit efc463eb508798da4243625b08c7396462cabf9f Author: Samuel Ortiz Date: Mon Oct 11 01:17:56 2010 +0200 irda: Fix parameter extraction stack overflow Cc: stable@kernel.org Reported-by: Ilja Van Sprundel Signed-off-by: Samuel Ortiz commit 3b06dbbeadb6488cd00999b61b080bb6f0218503 Author: Roel Kluin Date: Tue Oct 5 01:30:02 2010 +0200 irda: Test index before read in stir421x_patch_device() Test whether index exceeds fw->size before reading the element Signed-off-by: Roel Kluin Signed-off-by: Samuel Ortiz commit f8cba16cad68c9b9ee7fecae48a1b91708e8e482 Author: Samuel Ortiz Date: Tue Oct 5 01:24:20 2010 +0200 irda: Remove BKL instances from irnet The code intends to lock the irnet_socket, so adding a mutex to it allows for a complet BKL removal. Signed-off-by: Samuel Ortiz commit 5b40964eadea40509d353318d2c82e8b7bf5e8a5 Author: Samuel Ortiz Date: Mon Oct 11 00:46:51 2010 +0200 irda: Remove BKL instances from af_irda.c Most of the times, lock_kernel() was pointless or could simply be replaced by lock_sock(). Signed-off-by: Samuel Ortiz commit d852a6afd91fc928128f59ebff381838c365e358 Author: Akinobu Mita Date: Wed Sep 29 18:08:51 2010 +0900 bitops: remove duplicated extern declarations If CONFIG_GENERIC_FIND_NEXT_BIT is enabled, find_next_bit() and find_next_zero_bit() are doubly declared in asm-generic/bitops/find.h and linux/bitops.h. asm/bitops.h includes asm-generic/bitops/find.h if and only if the architecture enables CONFIG_GENERIC_FIND_NEXT_BIT. And asm/bitops.h is included by linux/bitops.h So we can just remove the extern declarations of find_next_bit() and find_next_zero_bit() in linux/bitops.h. Also we can remove unneeded #ifndef CONFIG_GENERIC_FIND_NEXT_BIT in asm-generic/bitops/find.h. Signed-off-by: Akinobu Mita Signed-off-by: Arnd Bergmann commit 708ff2a0097b02d32d375b66996661f36cd4d6d1 Author: Akinobu Mita Date: Wed Sep 29 18:08:50 2010 +0900 bitops: make asm-generic/bitops/find.h more generic asm-generic/bitops/find.h has the extern declarations of find_next_bit() and find_next_zero_bit() and the macro definitions of find_first_bit() and find_first_zero_bit(). It is only usable by the architectures which enables CONFIG_GENERIC_FIND_NEXT_BIT and disables CONFIG_GENERIC_FIND_FIRST_BIT. x86 and tile enable both CONFIG_GENERIC_FIND_NEXT_BIT and CONFIG_GENERIC_FIND_FIRST_BIT. These architectures cannot include asm-generic/bitops/find.h in their asm/bitops.h. So ifdefed extern declarations of find_first_bit and find_first_zero_bit() are put in linux/bitops.h. This makes asm-generic/bitops/find.h usable by these architectures and use it. Also this change is needed for the forthcoming duplicated extern declarations cleanup. Signed-off-by: Akinobu Mita Signed-off-by: Arnd Bergmann Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Cc: Chris Metcalf commit c24cef0b68a719324c344c1563ef3d750ac6bf0e Author: Andrea Gelmini Date: Sat Feb 27 17:51:35 2010 +0100 asm-generic: kdebug.h: Checkpatch cleanup include/asm-generic/kdebug.h:6: ERROR: spaces required around that '=' (ctx:VxV) Signed-off-by: Andrea Gelmini Signed-off-by: Arnd Bergmann commit 269b8fd5d058f2c0da01a42b20315ffc2640d99b Author: Lucian Adrian Grijincu Date: Wed Oct 6 15:03:47 2010 -0700 asm-generic: fcntl: make exported headers use strict posix types All 'pid_t' were changed to '__kernel_pid_t' in a previous commit: make exported headers use strict posix types A number of standard posix types are used in exported headers, which is not allowed if __STRICT_KERNEL_NAMES is defined. In order to get rid of the non-__STRICT_KERNEL_NAMES part and to make sane headers the default, we have to change them all to safe types. but a later change introduced 'pid_t' again: fcntl: add F_[SG]ETOWN_EX This makes asm-generic/fcntl.h d use strict posix types again. Signed-off-by: Lucian Adrian Grijincu Signed-off-by: Andrew Morton Signed-off-by: Arnd Bergmann commit c6691126636769bd22bfd7b55829f0373a93c1ce Author: Mathieu Lacage Date: Tue Jun 22 10:30:15 2010 +0200 asm-generic: cmpxchg does not handle non-long arguments The version of cmpxchg defined in asm-generic/system.h does not handle correctly non-long arguments. Use the version defined in cmpxchg.h instead. Signed-off-by: Mathieu Lacage Signed-off-by: Arnd Bergmann commit 8b9d40691e8f5e7e0c8fb839c2bad29c5e0888ce Author: Mathieu Lacage Date: Sun Jun 27 12:26:06 2010 +0200 asm-generic: make atomic_add_unless a function atomic_add_unless is a macro so, bad things happen if the caller defines a local variable named c, just like like the local variable c defined by the macro. Thus, convert atomic_add_unless to a function. (bug triggered by net/ipv4/netfilter/ipt_CLUSTERIP.c: clusterip_config_find_get calls atomic_inc_not_zero) Signed-off-by: Mathieu Lacage Signed-off-by: Arnd Bergmann commit 4d94aa1b1d437f9513ddc89974d8bd214b8304f6 Author: Sunil Mushran Date: Sat Oct 9 10:27:04 2010 -0700 ocfs2/cluster: Bump up dlm protocol to version 1.1 dlm protocol 1.1. activates messages DLM_QUERY_REGION and DLM_QUERY_NODEINFO that are a must for global heartbeat. It also activates o2hb_global_heartbeat_active(). Signed-off-by: Sunil Mushran commit 7b738b55b2ec0e95a5030037c45b3c312e385789 Author: Eric Dumazet Date: Sat Oct 9 02:17:01 2010 +0000 sundance: get_stats proper locking sundance get_stats() should not be run concurrently, add a lock to avoid potential losses. Note: Remove unused rx_lock field Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 2259dca36a2f0226596ea37132a46338fcff6722 Author: Nicolas Kaiser Date: Thu Oct 7 23:29:27 2010 +0000 net/tg3: simplify conditional Simplify: ((a && !b) || (!a && b)) => (a != b) Signed-off-by: Nicolas Kaiser Signed-off-by: David S. Miller commit aa3bc6c68e3c1064969f5f2962be84491ffb69a0 Author: Nicolas Kaiser Date: Thu Oct 7 13:14:50 2010 +0000 ehea: simplify conditional Simplify: ((a && b) || (!a && !b)) => (a == b) Signed-off-by: Nicolas Kaiser Acked-by: Breno Leitao Signed-off-by: David S. Miller commit e18434c45765cfc4a74b5c61da9e9fbc6ddd3d5f Author: Changli Gao Date: Thu Sep 30 06:17:44 2010 +0000 net_sched: use __TCA_HTB_MAX and TCA_HTB_MAX Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit b476ef059ec9e49d4f2a4280b862b446ef3866e8 Author: Marek Vasut Date: Mon Aug 9 06:23:28 2010 +0200 ARM: pxa/balloon3: Disperse MFP config Move pin config to appropriate places and use it only if needed. Signed-off-by: Marek Vasut Acked-By: Jonathan McDowell Signed-off-by: Eric Miao commit f090c74b23de6d8f362684e4a8c4b2bf8a32b6eb Author: Haojian Zhuang Date: Tue Sep 21 16:43:57 2010 +0800 ARM: mmp: update cpuid of pxa168 and pxa910 Correct the cpuid of pxa168 and pxa910. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 799929d7048b3ec0086ed525ed7ccf6f2b8ecda6 Author: Haojian Zhuang Date: Sun Sep 19 20:10:13 2010 -0400 ARM: pxa: reduce the scope of get_memclk_frequency_10khz() Up to now, only pxa2xx pcmcia driver is using the API. No other device driver is using this API in PXA3xx or any other PXA silicons. Restrict the scope only on pxa2xx and remove the implementation of pxa3xx. So we can avoid oo much checking on cpuid after more pxa chips supported. Signed-off-by: Haojian Zhuang Cc: Eric Miao Signed-off-by: Eric Miao commit ecf89b8a9189462480086f72791eb41f8aa09bfd Author: Haojian Zhuang Date: Sun Sep 19 20:09:10 2010 -0400 ARM: pxa: reduce the scope of get_clk_frequency_khz() get_clk_frequency_khz() is used in private cpufreq driver. In order to meet the change of different pxa silicons, checking cpuid is introduced in get_clk_frequency_khz(). While more pxa silicons are supported, the workload of checking cpuid is higher. So restrict the scope of get_clk_frequency_khz() on pxa2xx. Different pxa silcions use different private cpufreq driver to avoid too much checking on cpuid. Signed-off-by: Haojian Zhuang Cc: Eric Miao Signed-off-by: Eric Miao commit 759305c62f294d4f5fb1d8dde5ece98d2f71cfcb Author: Mark F. Brown Date: Sun Sep 12 23:51:36 2010 -0400 ARM: pxa168/teton bga: add board support for i2c and rtc-ds1337 Defined I2C/ALARM pin definitions DS1337 RTC alarm support is tied to RTC_INT_GPIO Signed-off-by: Mark F. Brown Acked-by: Haojian Zhuang Acked-by: Marek Vasut Signed-off-by: Eric Miao commit d2ce697309ba5215cc5b2d5a11c8599d9eb1c75c Author: Mark F. Brown Date: Sun Sep 12 23:51:35 2010 -0400 ARM: pxa168/teton bga: added keypad support Support for Matrix keypad ESC, ENTER, LEFT, and RIGHT Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 1bbd7089f2effc40c35ffbbc62ad54aefd741633 Author: Mark F. Brown Date: Sun Sep 12 23:51:34 2010 -0400 ARM: pxa168: added support for Teton BGA platform Added board defintion, header, and debug UART support. Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 0bd8696119904b5868c7315b644128b16ab06f59 Author: Haojian Zhuang Date: Wed Sep 8 09:42:42 2010 -0400 ARM: mmp: support sparse irq Add sparse IRQ support in ARCH_MMP. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 20266df55db7dcb70b3f527a55f4eb5a4d7092e2 Author: Haojian Zhuang Date: Wed Sep 8 09:42:40 2010 -0400 ARM: pxa: append tavorevb3 support Bringup tavorevb3 development platform. UART and PMIC are enabled. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit ba1aa3248e484e5cc39a74ae418232bd5c877a90 Author: Haojian Zhuang Date: Sun Aug 29 20:32:16 2010 -0400 ARM: pxa168fb: add .remove function The pxa168fb driver is missing .remove function so the framebuffer isn't correctly shut down when the module is removed. Signed-off-by: Marek Vasut Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 6aafc5f394fce437bf005b59034d7e5917778a99 Author: Mark F. Brown Date: Fri Sep 3 18:28:11 2010 -0400 ARM: pxa168/aspenite: add board support for keypad Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit ab5739a17953b22480dc7caf6603380d563c53fc Author: Mark F. Brown Date: Fri Sep 3 18:28:10 2010 -0400 ARM: pxa168: added keypad wake clear event support for platform Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 3587c258078479824342f33dc513ca7c66d729bc Author: Mark F. Brown Date: Fri Sep 3 18:28:09 2010 -0400 ARM: pxa27x_keypad: added wakeup event handler for keypad interrupts mach-mmp needs to clear wake event in order to clear the keypad interrupt Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 2ce4389068129fb4a8756b5ba126da1260f5dbef Author: Mark F. Brown Date: Fri Sep 3 18:28:08 2010 -0400 ARM: pxa168: added wake clear register support for APMU Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 6d109465fb751fe4376c080e5fb10838d3414c28 Author: Mark F. Brown Date: Fri Sep 3 18:28:07 2010 -0400 ARM: pxa168: added keypad support Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 4a2490eac897e3648c4800b1068b56b7e1ad91b3 Author: Mark F. Brown Date: Fri Sep 3 18:28:06 2010 -0400 ARM: pxa: moved pxa27x_keypad.h to platform pxa directory mach-mmp utilizes pxa27x_keypad code so we need to move header to platform pxa directory. Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 3e51d3c924aea8a1f1372e6c615b0a37b528121d Author: Kai Makisara Date: Sat Oct 9 00:17:56 2010 +0300 [SCSI] st: add MTWEOFI to write filemarks without flushing drive buffer This patch adds a new MTIOCTOP operation MTWEOFI that writes filemarks with immediate bit set. This means that the drive does not flush its buffer and the next file can be started immediately. This speeds up writing in applications that have to write multiple small files. Signed-off-by: Kai Makisara Signed-off-by: James Bottomley commit d9c8279b326e18bcb25ee9d12fe7513d24f8bbb1 Author: Stepan Moskovchenko Date: Tue Aug 24 19:51:15 2010 -0700 msm: Platform data for msm8x60 IOMMUs Add the platform data for the IOMMUs found on the Qualcomm msm8x60 SoC. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit c6a5951ee53db0f275dd85a702325c981c8d8c4c Author: Stepan Moskovchenko Date: Tue Aug 24 18:32:38 2010 -0700 msm: Platform initialization for the IOMMU driver Register a driver for the MSM IOMMU devices and a driver for the translation context devices. Set up the global IOMMU registers and initialize the context banks. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit 0720d1f052dc1576396a39b327da6e60082c4efa Author: Stepan Moskovchenko Date: Tue Aug 24 18:31:10 2010 -0700 msm: Add MSM IOMMU support Add support for the IOMMUs found on the upcoming Qualcomm MSM8x60 chips. These IOMMUs allow virtualization of the address space used by most of the multimedia cores on these chips. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit 69b7f6ff855e32ec353475ce7b7246d293816078 Author: Gregory Bean Date: Sun Apr 4 22:29:02 2010 -0700 msm: add MSM8x60 FFA support The MSM8X60 FFA contains different components than the MSM8X60 SURF, and therefore requires a different ARCH type and machine ID. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 57bbf1cc8c265f9d4c6831d9e3f07a72cf16ee27 Author: Steve Muckle Date: Thu Jan 7 12:51:10 2010 -0800 msm: MSM8X60 simulator board support Board configuration for MSM8X60 simulation. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 49b76f718d634599693e18efe169adfa2d5b75e8 Author: Steve Muckle Date: Fri Mar 19 17:00:08 2010 -0700 msm: add msm8x60_surf machine Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 998ba079fee7d9639003d77521d2117db17b4a04 Author: Jeff Ohlstein Date: Thu May 6 14:18:06 2010 -0700 msm: physical offset for MSM8X60 The MSM8x60 has a different physical memory offset than other targets. Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit e4fbb68f4594388367e4e4595abf9330d9875704 Author: Abhijeet Dharmapurikar Date: Mon Feb 1 12:30:28 2010 -0800 msm: 8x60: setup correct handlers for private interrupts Private Peripheral interrupts could be edge triggered or level triggered depending on the platform. Initialize handlers for these in board file. Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Daniel Walker commit 569fb6e3e60eef77941c319562271daf759e634d Author: Jeff Ohlstein Date: Thu Aug 12 13:02:56 2010 -0700 msm: add build support for msm8x60 target Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 46fe5f29e3062f681cc3cf07a604d82396faea89 Author: Daniel Walker Date: Wed Aug 18 11:00:25 2010 -0700 msm: allow uart to be conditionally disabled Some MSM targets don't select the debug UART in this way. For those we need to disable this selection mechanism. Signed-off-by: Daniel Walker Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 4ca06de368ddfaee47983d3d1f9eec9e2a6c23d4 Author: Daniel Walker Date: Wed Aug 18 10:53:05 2010 -0700 msm: dma: add stub functions for dma features not yet present on 8x60 Signed-off-by: Daniel Walker Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 871c94a8612f6b13193752c765617cfe68a038d3 Author: Jeff Ohlstein Date: Tue Aug 17 20:04:19 2010 -0700 msm: clock: add dummy clock driver Need to add this until real clock support for 8x60 goes in, or else some drivers won't compile. Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 9161d303af547653c66dab4e235b6fd0c3ac6148 Author: Steve Muckle Date: Thu Feb 11 11:50:40 2010 -0800 msm: 8x60: gic initialization fixup for RUMI On RUMI platform STIs are not enabled by default, contrary to the GIC spec. The bits for STIs in the enable/enable clear registers are also RW instead of RO. STIs need to be enabled at initialization time. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit f880c5649ec7a831a45cd254e9ecf9bd25b17dba Author: Steve Muckle Date: Wed Dec 9 14:03:13 2009 -0800 msm: irq: rename existing entry-macro to entry-macro-vic The existing MSM irq entry macro is specific to a VIC implementation. Renaming this makes room for irq support based on other interrupt controllers. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit a55df6edcfc42354ae5f828c31d9236b8a7bbea7 Author: Steve Muckle Date: Thu Jan 7 12:43:24 2010 -0800 msm: MSM8X60 RUMI3 board support Board configuration for MSM8X60 emulation on RUMI3. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 672039f0351f324bb498c5ff5d468103d321d56c Author: Jeff Ohlstein Date: Tue Oct 5 15:23:57 2010 -0700 msm: timer: support 8x60 timers Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 01eb4f5c77f3717d8f295610f0dbb705950beadc Author: Abhijeet Dharmapurikar Date: Thu Jan 21 18:10:29 2010 -0800 msm: irqs-8x60: interrupt map Define the interrupt map in irq-8x60.h Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Daniel Walker commit ed1f31b4b742647e2ec18c885e65fbef484eaf58 Author: Steve Muckle Date: Sat Nov 28 13:00:13 2009 -0800 msm: initial irq definitions for MSM8X60 IRQ assignments are different for MSM8X60 than other existing MSMs. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 6cf6dfefe1f07f309998df8734fdc0961dbae38c Author: Steve Muckle Date: Wed Jan 6 14:55:24 2010 -0800 msm: io: MSM8X60 io support MSM8X60 has different IO mappings than previous MSMs. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit c8aabaeb52ef6a0aeb6e8e209431b9bb01dcd287 Author: Steve Muckle Date: Wed Apr 21 16:20:27 2010 -0700 msm: create config option for proc-comm Some builds may not support the proc-comm interface with the baseband processor. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 4315d834c1496ddca977e9e22002b77c85bfec2c Author: Tom Herbert Date: Thu Oct 7 10:09:10 2010 +0000 net: Fix rxq ref counting The rx->count reference is used to track reference counts to the number of rx-queue kobjects created for the device. This patch eliminates initialization of the counter in netif_alloc_rx_queues and instead increments the counter each time a kobject is created. This is now symmetric with the decrement that is done when an object is released. Signed-off-by: Tom Herbert Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit a131d82266e77b8eb8a2dab930a94ed0de9e91b0 Author: RĂ©mi Denis-Courmont Date: Fri Oct 8 04:02:03 2010 +0000 Phonet: mark the pipe controller as EXPERIMENTAL There are a bunch of issues that need to be fixed, including: - GFP_KERNEL allocations from atomic context (and GFP_ATOMIC in process context), - abuse of the setsockopt() call convention, - unprotected/unlocked static variables... IMHO, we will need to alter the userspace ABI when we fix it. So mark the configuration option as EXPERIMENTAL for the time being (or should it be BROKEN instead?). Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 03789f26722a15ccfe6f191e9fb3d356f2f18a1e Author: RĂ©mi Denis-Courmont Date: Fri Oct 8 04:02:02 2010 +0000 Phonet: cleanup pipe enable socket option The current code works like this: int garbage, status; socklen_t len = sizeof(status); /* enable pipe */ setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &garbage, sizeof(garbage)); /* disable pipe */ setsockopt(fd, SOL_PNPIPE, PNPIPE_DISABLE, &garbage, sizeof(garbage)); /* get status */ getsockopt(fd, SOL_PNPIPE, PNPIPE_INQ, &status, &len); ...which does not follow the usual socket option pattern. This patch merges all three "options" into a single gettable&settable option, before Linux 2.6.37 gets out: int status; socklen_t len = sizeof(status); /* enable pipe */ status = 1; setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, sizeof(status)); /* disable pipe */ status = 0; setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, sizeof(status)); /* get status */ getsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, &len); This also fixes the error code from EFAULT to ENOTCONN. Signed-off-by: RĂ©mi Denis-Courmont Cc: Kumar Sanghvi Signed-off-by: David S. Miller commit 6d8e74ed377dd4cbad7ccc69300f734090e15c05 Author: RĂ©mi Denis-Courmont Date: Fri Oct 8 04:02:01 2010 +0000 Phonet: advise against enabling the pipe controller As it currently is, the new code path is not compatible with existing Nokia modems. This would break existing userspace for Nokia modem, such as the existing oFono ISI driver. Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 838e7a03a31b890ee82c74039b84c05fa237bd46 Author: RĂ©mi Denis-Courmont Date: Fri Oct 8 04:02:00 2010 +0000 Phonet: add to MAINTAINERS and add myself Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 56dd2c0691a5a387b7b05835fe547dc6fade9407 Author: Darrick J. Wong Date: Fri Oct 1 13:55:47 2010 -0700 [SCSI] libsas: Don't issue commands to devices that have been hot-removed sd will get hung up issuing commands to flush write cache if a SAS device behind the expander is unplugged without warning. Change libsas to reject commands to domain devices that have already gone away. [maciej.trela@intel.com: removed setting ->gone in sas_deform_port() to permit sync cache commands at module removal] Signed-off-by: Darrick J. Wong Tested-by: Haipao Fan Signed-off-by: Maciej Trela Signed-off-by: Dan Williams Signed-off-by: James Bottomley commit b1091fea295825d99c3f7c69a58c057e7d972389 Author: Amit Kumar Salecha Date: Thu Oct 7 23:46:11 2010 +0000 qlcnic: update driver version 5.0.11 Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit ff1b1bf867ebb7eb5e3ff0eab21c26b830d5e890 Author: Sritej Velaga Date: Thu Oct 7 23:46:10 2010 +0000 qlcnic: change all P3 references to P3P This patch just rename all P3 #define to P3P. Signed-off-by: Sritej Velaga Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit ee07c1a70117fe93cf71686d481791c2498f80d2 Author: Rajesh Borundia Date: Thu Oct 7 23:46:09 2010 +0000 qlcnic: fix promiscous mode for VF o Allow promiscous mode setting for VF's depending upon the configuration. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 6336acd5522b150e7695cb3b42221999b352baa5 Author: Sritej Velaga Date: Thu Oct 7 23:46:08 2010 +0000 qlcnic: fix board description Remove "Flex-10" from board description. Signed-off-by: Sritej Velaga Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit a2152d096e0cd8593e883f72e875195ea0e89bb7 Author: Amit Kumar Salecha Date: Thu Oct 7 23:46:07 2010 +0000 qlcnic: remove private LRO flag LRO was not getting enable after interface down/up. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit b8c17620458b82fd868f4813e1ff18368a832b7c Author: Amit Kumar Salecha Date: Thu Oct 7 23:46:06 2010 +0000 qlcnic: support quiescent mode Put device in quiescent mode during internal loopback test. Before running test, set state to NEED_QUISCENT. After getting ack from all function, change state to QUISCENT and perform test. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit f7ec804a3edd2f7cf98a42bcad741d89d547c117 Author: Amit Kumar Salecha Date: Thu Oct 7 23:46:05 2010 +0000 qlcnic: driver private workqueue Currently fw recovery usage global workqueue. As same workqueue used by kernel for ethtool and etc., supporting quiescent mode is not possible, without driver private workqueue. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 9cf8d1a3b8cb19fa49494c1b8f0f9e3a37f2c218 Merge: 8391d07 e9a6870 Author: David S. Miller Date: Fri Oct 8 13:51:11 2010 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 6e9636693373d938aa3b13427be3d212f172ac06 Author: Konrad Rzeszutek Wilk Date: Fri Oct 8 14:53:48 2010 -0400 x86, iommu: Update header comments with appropriate naming The header comments diverged a bit from the implementation. Lets re-sync them. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1286564028-2352-3-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit fc6a2f37d084173de57fe75f73cbe4bb296b9e8a Author: Konrad Rzeszutek Wilk Date: Fri Oct 8 14:53:47 2010 -0400 ia64, iommu: Add a dummy iommu_table.h file in IA64. We don't need a complex IOMMU dependency list on IA64 so we just define the IOMMU_* macro which is used the DMAR driver, as a dummy. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1286564028-2352-2-git-send-email-konrad.wilk@oracle.com> Reported-by: Tony Luck Tested-by: Tony Luck Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: H. Peter Anvin commit e9a68707d736f4f73d7e209885d7b4c5c452b1dc Merge: dd53df2 15a6321 Author: John W. Linville Date: Fri Oct 8 15:39:28 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: Documentation/feature-removal-schedule.txt drivers/net/wireless/ipw2x00/ipw2200.c commit e8b17b5b3f30252b5470dbbf54bc251ddc7fac17 Author: Masayuki Ohtake Date: Fri Oct 8 12:44:49 2010 -0600 spi/topcliff: Add topcliff platform controller hub (PCH) spi bus driver Topcliff PCH is the platform controller hub that is going to be used in Intel's upcoming general embedded platform. All IO peripherals in Topcliff PCH are actually devices sitting on AMBA bus. This patch adds a driver for the SPI bus integrated into the Topcliff device. Signed-off-by: Masayuki Ohtake Signed-off-by: Grant Likely commit 8391d07b80e8da957cd888870e23f8e218438622 Author: Dimitris Michailidis Date: Thu Oct 7 14:48:38 2010 +0000 ipv4: Remove leftover rcu_read_unlock calls from __mkroute_output() Commit "fib: RCU conversion of fib_lookup()" removed rcu_read_lock() from __mkroute_output but left a couple of calls to rcu_read_unlock() in there. This causes lockdep to complain that the rcu_read_unlock() call in __ip_route_output_key causes a lock inbalance and quickly crashes the kernel. The below fixes this for me. Signed-off-by: Dimitris Michailidis Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 993284dfff3ba4643f08b592427d0ac758d30156 Author: Ben Hutchings Date: Fri Oct 8 10:36:10 2010 -0700 sfc: Don't try to set filters with search depths we know won't work The filter engine will time-out and ignore filters beyond 200-something hops. We also need to avoid infinite loops in efx_filter_search() when the table is full. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 4e7f79511e7332ae4056eda9156a0299511ea41e Author: Ben Hutchings Date: Fri Oct 8 10:33:39 2010 -0700 net: Update kernel-doc for netif_set_real_num_rx_queues() Synchronise the comment with the preceding implementation change. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 0dd12c21951e085357046b68c3a108273062d2aa Author: Jeff Layton Date: Fri Oct 8 12:20:12 2010 -0400 cifs: initialize tlink_tree_lock and tlink_tree Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 5b8544c38e6fde6968645afd46ff681492192b86 Author: Kumar Gala Date: Fri Oct 8 10:37:31 2010 -0500 powerpc/ppc64e: Fix link problem when building ppc64e_defconfig arch/powerpc/platforms/built-in.o:(.toc1+0x18): undefined reference to `__early_start' This is due to the 85xx/smp.c not handling the 64-bit side properly. We need to set the entry point for secondary cores on ppc64e to generic_secondary_smp_init instead of __early_start that we due on ppc32. Signed-off-by: Kumar Gala commit fe21221386e46b8e0f2cbd83559a29680c28473b Author: Thomas Gleixner Date: Fri Oct 8 15:33:01 2010 +0200 mfd: twl4030: Fix dummy irq chip usage The twl irqchip uses the dummy irq chip ack functions, which is NULL now. Switch it over to use irq_ack. Reported-and-tested-by: Grazvydas Ignotas Signed-off-by: Thomas Gleixner commit 674f3058c806ae2591b98f59194fa85b650aa667 Author: Ohad Ben-Cohen Date: Fri Oct 8 16:16:27 2010 +0300 wl1271: sdio: add suspend/resume support Add required suspend/resume support to prevent the SDIO core from removing our card completely during system suspend. Signed-off-by: Ohad Ben-Cohen Tested-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 00cbb3c5317d418c349c60876fe12fba7624f3e7 Author: Ohad Ben-Cohen Date: Fri Oct 8 16:16:16 2010 +0300 wl1271: sdio: enable runtime PM Enable runtime PM for the wl1271 SDIO device. We request power whenever the WLAN interface is brought up, and release it after the WLAN interface is taken down. As a result, power is released immediately after probe returns, since at that point power has not been explicitly requested yet (i.e. the WLAN interface is still down). Signed-off-by: Ohad Ben-Cohen Acked-by: Luciano Coelho Tested-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 865a4fae7793b80e2b8bca76e279d6dfecbeac17 Author: Russell King Date: Mon Oct 4 18:02:59 2010 +0100 ARM: add register documentation for __enable_mmu Add some additional documentation on register usage in __enable_mmu to help complete the overall picture. Signed-off-by: Russell King commit 00945010c063b95e813b966f44bf58ffa1955a38 Author: Russell King Date: Mon Oct 4 17:56:13 2010 +0100 ARM: hotplug cpu: move secondary_startup, __enable_mmu to cpuinit Move these two functions, both of which are required for secondary CPU booting, into the cpuinit section. Ensure bad processors call __error_p for better diagnostics, rather than just __error. Signed-off-by: Russell King commit 786f1b73f7d5cad5c88dc75a96d53a74160aa7d7 Author: Russell King Date: Mon Oct 4 17:51:54 2010 +0100 ARM: hotplug cpu: ensure that __enable_mmu is identity mapped __enable_mmu is required to be executed in an identity mapped region to ensure that variances in CPUs do not cause a crash. We currently achieve this by assuming that it will be co-located with __create_page_tables. With hotplug CPU support, this assumption becomes invalid. Implement a better solution which ensures that it will be appropriately mapped no matter where it is placed. Signed-off-by: Russell King commit 80924ac595f3ca32ec0a80cc1217c7019d3519ff Author: Russell King Date: Mon Oct 4 17:45:25 2010 +0100 ARM: cleanup lookup_machine_type data and ensure these are placed in __HEAD Signed-off-by: Russell King commit c083c6609b290a650894f846270a9233401adc22 Author: Russell King Date: Mon Oct 4 17:39:20 2010 +0100 ARM: hotplug cpu: move __error and __error_p to cpuinit section __error and __error_p may be used by secondary CPUs, so these need to be in the cpuinit section. Signed-off-by: Russell King commit 17bb5e2c1706c7296eec96e97be0d760e59f282c Author: Russell King Date: Mon Oct 4 16:29:35 2010 +0100 ARM: move __mmap_switched, C-API functions to init section Move these functions, which are only ever used during boot CPU initialization, to the init section. Signed-off-by: Russell King commit a4ae41341fd39af6e25ec9861a6a4dc0c5c58b16 Author: Russell King Date: Mon Oct 4 16:22:34 2010 +0100 ARM: cleanup boot cpu calling __mmap_switched This allows us to relocate __mmap_switched and associated data away from the head section. Signed-off-by: Russell King commit 5085f3ff458521045f7e43da62b8c30ea7df2e82 Author: Russell King Date: Fri Oct 1 15:37:05 2010 +0100 ARM: hotplug cpu: Keep processor information, startup code & __lookup_processor_type When hotplug CPU is enabled, we need to keep the list of supported CPUs, their setup functions, and __lookup_processor_type in place so that we can find and initialize secondary CPUs. Move these into the __CPUINIT section. Signed-off-by: Russell King commit 37b05b63754e995b8cb76f4fbe7ed7219b3ca896 Author: Russell King Date: Fri Oct 1 15:38:24 2010 +0100 ARM: hotplug cpu: setup 1:1 map for entire kernel image for secondary CPUs Make the entire kernel image available for secondary CPUs rather than just the first MB of memory. This allows the startup code to appear in the cpuinit sections. Signed-off-by: Russell King commit f131a0800e286a13839784e554383c0ddfa78bce Author: Russell King Date: Fri Oct 1 15:42:02 2010 +0100 ARM: no need for nommu to jump through the hoops that mmu does nommu can jump directly to __mmap_switched without the absolute address branching which the mmuful kernel does. Acked-by: Greg Ungerer Signed-off-by: Russell King commit 4fa046655b80e9bb361a95da5c86ce778f5018b9 Merge: 552dc34 846afbd1 Author: Russell King Date: Fri Oct 8 10:06:58 2010 +0100 Merge branch 'for-russell' of git://codeaurora.org/quic/kernel/dwalker/linux-msm into devel-stable commit e4eab08d6050ad04d960738f589724204fd1064c Author: Nicolas Pitre Date: Fri Aug 20 21:14:46 2010 +0100 ARM: 6342/1: fix ASLR of PIE executables Since commits 990cb8acf2 and cc92c28b2d, it is possible to have full address space layout randomization (ASLR) on ARM. Except that one small change was missing for ASLR of PIE executables. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 01723a9566f9e9ce4c75e5c4c9f6dc20600871a7 Author: Linus Walleij Date: Tue Sep 7 22:43:19 2010 +0100 ARM: 6368/1: move the PrimeCell IDs to use macros This make four macros for the PrimeCell ID register available to drivers that use them witout using the PrimeCell/AMBA bus abstraction and struct amba_device. It also moves the magic PrimeCell CID "B105F00D" to the bus.h header file. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 2da6d64a638eb982bebf34e2999f0b67cfb90f33 Author: Linus Walleij Date: Sat Sep 11 12:47:25 2010 +0100 ARM: 6369/1: Update RealView SMP defconfig This patches the condensed RealView SMP defconfig activating the same 2.6.36 features mentioned in the vanilla RealView defconfig patch submitted earlier. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 6a7d520fc141ad8f72efab3a5a2a73b3655fee24 Author: Linus Walleij Date: Mon Sep 6 09:16:04 2010 +0100 ARM: 6365/1: Update RealView defconfig This patches the condensed RealView defconfig activating some stuff that has been missing from this config for some time and some stuff that was merged in the 2.6.36 merge window: - The new character LCD driver is enabled - The Versatile I2C is enabled - The PL022 SPI driver is enabled - gpiolib is enabled (and makes MMC detection work properly) - The new LEDs code is enabled with a heartbeat trigger - The RTC class is enabled, and the PL031 RTC (onchip) and the offchip DS1307 on I2C is enabled Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 74b0ec0708e7c8c530079b737f32c55597d062cc Author: Russell King Date: Fri Oct 1 14:26:56 2010 +0100 ARM: vmlinux.lds: Move unwind tables into _stext.._etext Signed-off-by: Russell King commit 842eab40b6920819fff5caeefdb709f07d3f8e23 Author: Russell King Date: Fri Oct 1 14:12:22 2010 +0100 ARM: vmlinux.lds: Refer to start of .data using _sdata rather than _data Use _sdata as the start of the data section, rather than _data. Signed-off-by: Russell King commit c7b0aff44a0740eedd31b759fd08d9e25672fa76 Author: Kevin Hilman Date: Fri Oct 1 22:13:47 2010 +0100 ARM: 6428/1: add cpu_idle_wait() to support CPUidle on SMP systems. In order for CPUidle to work on SMP systems, an implementation of cpu_idle_wait() is needed. This patch duplicates the x86 implementation of cpu_idle_wait() for ARM. Tested-by: Colin Cross Signed-off-by: Kevin Hilman Signed-off-by: Russell King commit 7511db9d25080d53e5427bf4b8849278c07019bc Author: Tony Lindgren Date: Tue Oct 5 16:40:13 2010 +0100 ARM: 6429/1: Check for is_smp for tlb_ops and cache_ops broadcast Broadcast should not be needed when running SMP kernel on UP systems. Also, this fixes an undefined instruction for SMP_ON_UP on earlier ARM cores without the extended CPUID_EXT_MMFR3 register. Signed-off-by: Tony Lindgren Signed-off-by: Russell King commit 5fb31a96e1e0078f1e82736ccd72a61ecabe6a4f Author: Linus Walleij Date: Wed Oct 6 11:07:28 2010 +0100 ARM: 6431/1: fix isb regression on CPU < v7 The kernel does not compile for my ARM926EJ-S system U300 due to the isb instruction inserted in generic assember statement from commit 8925ec4c530094b878e7e28a1fd78e7122afd973, "ARM: 6385/1: setup: detect aliasing I-cache when D-cache is non-aliasing" hey the isb is only available when assembling for v7 so let's use the generic isb() macro from setup.h instead. Acked-by: Will Deacon Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 552dc340bce3b28f4af33c9134adafa5efacf1c9 Merge: a9fda02 ee621dd Author: Russell King Date: Fri Oct 8 09:58:55 2010 +0100 Merge branch 'for_rmk' of git://github.com/at91linux/linux-2.6-at91 into devel-stable commit 7cd2541cf2395962daf98ec32a141aba3398a9b2 Merge: c62f981 cb655d0 Author: Ingo Molnar Date: Fri Oct 8 10:46:27 2010 +0200 Merge commit 'v2.6.36-rc7' into perf/core Conflicts: arch/x86/kernel/module.c Merge reason: Resolve the conflict, pick up fixes. Signed-off-by: Ingo Molnar commit a754aea25e804d0635d1871558bee5024605ff92 Author: Marek Vasut Date: Fri Sep 3 22:35:46 2010 +0200 ARM: pxa: fix pxa3xx-u2d crash when ULPI not used In case the pxa3xx-u2d driver isn't used, probing of ohci-pxa27x will cause an ugly kernel crash (NULL pointer dereference in pxa3xx_u2d_start_hc(), because struct u2d is NULL and clk_enable() call will crash the kernel, trying to access it). Signed-off-by: Marek Vasut Signed-off-by: Eric Miao commit 884646a5721e547d302390d8a483e9b75a31b017 Author: Mark F. Brown Date: Wed Aug 25 23:51:55 2010 -0400 ARM: pxa168/aspenite: added initial support for TPO TD043MTEA1 LCD Signed-off-by: Mark F. Brown Cc: Haojian Zhuang Cc: Marek Vasut Signed-off-by: Eric Miao commit 58cf68b88ce3fc48e345e756c07770e1d6e4cbe9 Author: Mark F. Brown Date: Wed Aug 25 23:51:54 2010 -0400 ARM: pxa168: added framebuffer support code Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 6ac6b817f3f4c23c5febd960d8deb343e13af5f3 Author: Haojian Zhuang Date: Fri Aug 20 15:23:59 2010 +0800 ARM: pxa: encode IRQ number into .nr_irqs Signed-off-by: Haojian Zhuang Acked-by: Antonio Ospite Signed-off-by: Eric Miao commit 1b43d8eda71bc953c9005afd63952e0666169553 Author: Igor Grinberg Date: Tue Jul 27 15:07:00 2010 +0300 ARM: pxa/cm-x300: enable USB host port2 Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 6dc3ae845c56157098f8af2d793aaefac2b31840 Author: Igor Grinberg Date: Tue Jul 27 15:06:59 2010 +0300 ARM: ohci-pxa27x: enable OHCI over U2DC for pxa3xx U2D Controller of pxa3xx is able to work in host mode. Make pxa specific ohci implementation aware of it. Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 69f22be7b10684ade3808de22db87c536ed135f3 Author: Igor Grinberg Date: Tue Jul 27 15:06:58 2010 +0300 ARM: pxa: add U2D controller and ULPI driver for pxa3xx USB2.0 Device Controller (U2DC) which is found in Marvell PXA3xx. U2DC supports both High and Full speed modes. PXA320 and PXA300 U2DC supports only UTMI interface. PXA310 U2DC supports only ULPI interface and has the OTG capability. U2D Controller ULPI driver introduced in this patch supports only the PXA310 USB Host via the ULPI. Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 286e5b97eb22baab9d9a41ca76c6b933a484252c Author: Paul Fox Date: Fri Oct 1 18:17:19 2010 +0100 x86, olpc: Don't retry EC commands forever Avoids a potential infinite loop. It was observed once, during an EC hacking/debugging session - not in regular operation. Signed-off-by: Daniel Drake Cc: dilinger@queued.net Cc: Signed-off-by: Ingo Molnar commit 4d033556f1bfaa7604b951bfadd17aaf1b74e4c5 Author: Feng Tang Date: Mon Sep 13 15:08:56 2010 +0800 x86, earlyprintk: Add hsu early console for Intel Medfield platform Intel Medfield platform has a high speed UART device, which could act as a early console. To enable early printk of HSU console, simply add "earlyprintk=hsu" in kernel command line. Currently we put the code in the early_printk_mrst.c as it is also for Intel MID platforms like the mrst early console Signed-off-by: Feng Tang Acked-by: Alan Cox Cc: greg@kroah.com LKML-Reference: <1284361736-23011-5-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit c20b5c3318fe45e4f33f01a91ccead645dfdf619 Author: Feng Tang Date: Mon Sep 13 15:08:55 2010 +0800 x86, earlyprintk: Add earlyprintk for Intel Moorestown platform Intel Moorestown platform has a spi-uart device(Maxim3110), which connects to a Designware spi core controller. This patch will add early console function based on it. As it will be used long before Linux spi subsystem get initialised, we simply directly manipulate the spi controller's register to acheive the early console func. This is safe as it will be disabled when devices subsytem get initialised. To use it, user need enable CONFIG_X86_MRST_EARLY_PRINTK in kenrel config and add "earlyprintk=mrst" in kernel command line. Signed-off-by: Feng Tang Acked-by: Alan Cox Cc: greg@kroah.com LKML-Reference: <1284361736-23011-4-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit 5a47c7dae861c3ca3edf178546641909851bf715 Author: Feng Tang Date: Mon Sep 13 15:08:54 2010 +0800 x86: Add two helper macros for fixed address mapping Sometimes fixmap will be used to map an physical address which is not PAGE align, so to use it we need first map it and then add the address offset to the mapped fixed address. These 2 new helpers are suggested by Ingo Molnar to make the process simpler. For a physicall address like "phys", a directly usable virtual address can be get by virt = (void *)set_fixmap_offset(fixed_idx, phys); or virt = (void *)set_fixmap_offset_nocache(fixed_idx, phys); (depends on whether the physical address is cachable or not). Signed-off-by: Feng Tang Cc: alan@linux.intel.com Cc: greg@kroah.com Cc: x86@kernel.org LKML-Reference: <1284361736-23011-3-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit 153db80f8cf74e8700cac96305b6c0b92918f17c Merge: 5fd03dd cb655d0 Author: Ingo Molnar Date: Fri Oct 8 09:14:51 2010 +0200 Merge commit 'v2.6.36-rc7' into core/memblock Merge reason: Update from -rc3 to -rc7. Signed-off-by: Ingo Molnar commit 5fd03ddab7fdbc44bfb2d183a4531c26a8dbca5a Author: Yinghai Lu Date: Tue Oct 5 21:28:10 2010 -0700 memblock/arm: Fix memblock_region_is_memory() typo Fix typo in commit dbe3039 ("memblock/arm: Use memblock_region_is_memory() for omap fb") - it should be memblock_is_region_memory(). Reported-by: Tomi Valkeinen Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Cc: Felipe Balbi Cc: Kevin Hilman Cc: ext Grazvydas Ignotas LKML-Reference: <4CABFADA.9020305@kernel.org> Signed-off-by: Ingo Molnar commit 68f4d5a00adaab33b136fce2c72d5c377b39b0b0 Author: Zhao Yakui Date: Fri Oct 8 09:47:33 2010 +0800 x86, setup: Use string copy operation to optimze copy in kernel compression The kernel decompression code parses the ELF header and then copies the segment to the corresponding destination. Currently it uses slow byte-copy code. This patch makes it use the string copy operations instead. In the test the copy performance can be improved very significantly after using the string copy operation mechanism. 1. The copy time can be reduced from 150ms to 20ms on one Atom machine 2. The copy time can be reduced about 80% on another machine The time is reduced from 7ms to 1.5ms when using 32-bit kernel. The time is reduced from 10ms to 2ms when using 64-bit kernel. Signed-off-by: Zhao Yakui LKML-Reference: <1286502453-7043-1-git-send-email-yakui.zhao@intel.com> Signed-off-by: H. Peter Anvin commit 6ea75952d7c671ea8b0d7b66f82afcafbb5d20c2 Merge: 6b0cd00 d244555 Author: Steve French Date: Fri Oct 8 03:42:03 2010 +0000 Merge branch 'for-next' commit d2445556137c38ae15d3191174bfd235630ed7cd Author: Steve French Date: Fri Oct 8 03:38:46 2010 +0000 [CIFS] Remove build warning Signed-off-by: Steve French commit ccc46a7402200a3b28a8fa1605ea5405a9ef66f7 Author: Jeff Layton Date: Wed Oct 6 19:51:12 2010 -0400 cifs: fix module refcount leak in find_domain_name find_domain_name() uses load_nls_default which takes a module reference on the appropriate NLS module, but doesn't put it. Signed-off-by: Jeff Layton Cc: Shirish Pargaonkar Signed-off-by: Steve French commit 2de970ff69bbcc5a4b7440df669a595b2b1acd73 Author: Jeff Layton Date: Wed Oct 6 19:51:12 2010 -0400 cifs: implement recurring workqueue job to prune old tcons Create a workqueue job that cleans out unused tlinks. For now, it uses a hardcoded expire time of 10 minutes. When it's done, the work rearms itself. On umount, the work is cancelled before tearing down the tlink tree. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 3aa1c8c2900065a51268430ab48a1b42fdfe5b45 Author: Jeff Layton Date: Thu Oct 7 14:46:28 2010 -0400 cifs: on multiuser mount, set ownership to current_fsuid/current_fsgid (try #5) ...when unix extensions aren't enabled. This makes everything on the mount appear to be owned by the current user. This version of the patch differs from previous versions however in that the admin can still force the ownership of all files to appear as a single user via the uid=/gid= options. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 55572b293b3a5929e8c54bc91d14ae6264186bf6 Author: H. Peter Anvin Date: Thu Oct 7 16:42:54 2010 -0700 x86, mrst: A function in a header file needs to be marked "inline" A function in a header file needs to be explicitly marked "inline", or gcc will complain if it is not used. Signed-off-by: H. Peter Anvin Cc: Jacob Pan Cc: v2.6.36 LKML-Reference: <1274295685-6774-3-git-send-email-jacob.jun.pan@linux.intel.com> commit a416e9e1dde0fbcf20cda59df284cc0dcf2aadc4 Author: Namhyung Kim Date: Wed Sep 29 23:29:48 2010 +0900 x86-32: Fix sparse warning for the __PHYSICAL_MASK calculation On 32-bit non-PAE system, cast to 'phys_addr_t' truncates value before subtraction. Subtracting before cast produce same result but remove following warnings from sparse: arch/x86/include/asm/pgtable_types.h:255:38: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable_types.h:270:38: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:127:32: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:132:32: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:344:31: warning: cast truncates bits from constant value (100000000 becomes 0) 64-bit or PAE machines will not be affected by this change. Signed-off-by: Namhyung Kim LKML-Reference: <1285770588-14065-1-git-send-email-namhyung@gmail.com> Signed-off-by: H. Peter Anvin commit c75f2aa13f5b268aba369b5dc566088b5194377c Author: Tony Luck Date: Thu Oct 7 16:23:34 2010 -0700 [IA64] Cannot use register_percpu_irq() from ia64_mca_init() This is called before early_irq_init() which will clobber any registrations made too early. Move the calls to ia64_mca_late_init(). Signed-off-by: Tony Luck commit bf53f939e02c0e818df93ab130fedc0e4ba95796 Author: Shanyu Zhao Date: Tue Sep 21 16:54:01 2010 -0700 iwlagn: add temperature offset calib for 6000g2 6000g2 devices need to have temperature offset calibration. The runtime uCode needs to receive the calibration results just like BB and LO calibration. To do this, driver reads the offset value from NVM and send it to uCode after runtime uCode is alive. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit 642454cc0774e0774bc1ccb4292d6dc0abd06d20 Author: Shanyu Zhao Date: Tue Sep 21 12:06:18 2010 -0700 iwlagn: fix default calibration table size iwlagn driver uses the IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE as the chain noise reset calibration index and IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE+1 as the chain noise gain calibration index, if not specified by the TLV value in the new firmware format. However, this is broken if we need to add more calibrations like the temperature offset calibration because we increased IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE by 1. To fix this issue, define IWL_DEFAULT_STANDARD_PHY_CALIBRATE_TBL_SIZE and use it as the calibration index instead. We still keep the IWL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE as a sanity check for the TLV value given by ucode. Signed-off-by: Shanyu Zhao Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 65cccfb03d0dc99fd213d57be5f60f8ca6a60824 Author: Wey-Yi Guy Date: Tue Sep 21 16:15:58 2010 -0700 iwlagn: no version check for experimental uCode For experimental uCode, it should work with the driver if driver has experimental uCode support option enabled; remove the API version checking. Signed-off-by: Wey-Yi Guy commit 1cf263736092b3712103a5290a93dd0fff376f26 Author: Johannes Berg Date: Wed Sep 22 07:32:13 2010 -0700 iwlwifi: fix dual-mode scanning The recent scanning code shuffle accidentally moved the SCAN_HW bit setting _after_ the PAN parameters are modified, which means that they don't take the scan into account -- fix that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit a313f3839eeeebb3cbbcf1fbd2aee92bde389032 Author: Johannes Berg Date: Wed Sep 22 18:02:12 2010 +0200 iwlwifi: remove iwl_check_bits The function is used exactly once, and the caller doesn't even need the special check, it can be simplified to a simple bit check. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 0de76736552cff02cc6ee4bae41e5502d7673f8e Author: Johannes Berg Date: Wed Sep 22 18:02:11 2010 +0200 iwlwifi: clean up declarations A number of declarations in iwl-core.h should be in agn specific files, and also rename the iwl-calib.h file to iwl-agn-calib.h to better reflect that it belongs to agn. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 14e8e4afeb7e90f1f2d3f2d3b54da57c27f59f38 Author: Johannes Berg Date: Wed Sep 22 18:02:10 2010 +0200 iwlwifi: remove apm_ops.stop Since all devices share the same operation here, there's no need to call it indirectly. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 9597ebac91e5a88f558d236a51d776508d42a237 Author: Johannes Berg Date: Wed Sep 22 18:02:09 2010 +0200 iwlwifi: remove set_pwr_src operation The set_pwr_src operation is only ever used from within the same sub-driver that it is declared in, so it can just be called directly instead of being an operation. Also, it is never called to set the power source to V_aux, so change the two functions accordingly (but keep the V_aux code for documentation purposes in a comment). Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 0453674c90be7b39c8925ba5e1d746447905f8ee Author: Johannes Berg Date: Wed Sep 22 18:02:08 2010 +0200 iwlwifi: remove set_ct_kill operation This operation is only ever called from set_hw_params, which is also already based on the config/ops, so that there's no need to have a separate set_ct_kill op and we can just call the right ct_threshold function. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 84fac3d9604147db37bd8c68897f79442d7ed714 Author: Johannes Berg Date: Wed Sep 22 18:02:07 2010 +0200 iwlwifi: move iwl_dump_fh to agn The iwl_dump_fh function is only used by the agn module, so it can be there instead of being exported by the core. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit fed732920bf9d96a95804a499ca586ff745540cd Author: Johannes Berg Date: Wed Sep 22 18:02:06 2010 +0200 iwlwifi: move iwl_dump_csr to agn The iwl_dump_csr function is only used within the agn module, so it can be moved there instead of being exported by the core. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit facd982e8246ed25a049d270a71513fb11b901ec Author: Johannes Berg Date: Wed Sep 22 18:02:05 2010 +0200 iwlwifi: move iwl_toggle_rx_ant to agn The iwl_toggle_tx_ant function is only used by agn code, so it can be moved into the agn module instead of being exported from the core. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 635b85b42796a6ab4e6a31cde78f1d9660c9c4a0 Author: Johannes Berg Date: Wed Sep 22 18:02:04 2010 +0200 iwlwifi: remove agn rates info there Code and data related to agn bitrates can be part of the agn module rather than being in the core module. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 57934dc1fb7ef65a8a0f5d7a1578536b36043c0a Author: Johannes Berg Date: Wed Sep 22 18:02:03 2010 +0200 iwlwifi: remove spurious exports A number of exports, especially related to thermal throttling, are unnecessary because the code lives in the same module that it is used in, so remove them. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 69fdb710b29d096bc50123f7c97891e31ffe45f9 Author: Johannes Berg Date: Wed Sep 22 18:02:02 2010 +0200 iwlwifi: move tx fail code to agn The code to print out TX failure reasons is AGN specific, so it can be in the AGN module. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit a30e3112a8bcb5bc1caa48547e597de3992e1b21 Author: Johannes Berg Date: Wed Sep 22 18:02:01 2010 +0200 iwlwifi: move agn specific station code there By duplicating a little bit of code between 3945 and agn, we can move a lot of code into an agn specific station management file and thus reduce the amount of code in core that is dead to 3945. before: text data bss dec hex filename 212886 3872 96 216854 34f16 iwlcore.ko 620542 10448 304 631294 9a1fe iwlagn.ko 314013 3264 196 317473 4d821 iwl3945.ko after: text data bss dec hex filename 202857 3872 92 206821 327e5 iwlcore.ko 629102 10448 308 639858 9c372 iwlagn.ko 314240 3264 196 317700 4d904 iwl3945.ko delta: -10029 iwlcore.ko 8560 iwlagn.ko 227 iwl3945.ko so it's a net win even if you have both loaded, likely because a lot of EXPORT_SYMBOLs go away. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit d3f5ba958d6c425a87535c6fa2a69ca90eb6e930 Author: Johannes Berg Date: Wed Sep 22 18:02:00 2010 +0200 iwlwifi: remove verify_signature eeprom operation All drivers share the same implementation, so there's no need to call this via a function pointer nor to export it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 575ccfd0f47e5d791246cb03c07d636190322fa1 Author: Johannes Berg Date: Wed Sep 22 18:01:59 2010 +0200 iwlwifi: rename iwl_mac_beacon_update Rename iwl_mac_beacon_update to iwlcore_beacon_update and make the calling convention a bit different. The old name with _mac_ indicated that it was a mac80211 callback, but that's no longer true. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 5de33068a2f841536ca8632534e3e193d5b2607f Author: Johannes Berg Date: Wed Sep 22 18:01:58 2010 +0200 iwlwifi: move chain settings to agn The core module doesn't need to carry around the code for chain settings that is used for HT drivers (agn) only. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 8289e07b8a4b588e167bc84f93419458fd6efa3e Author: Johannes Berg Date: Wed Sep 22 18:01:57 2010 +0200 iwl3945: use iwl3945_commit_rxon There's no need to go via the indirect function call from within the 3945 subdriver. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit a77029ee3fc03a37238b73892e55b789273991aa Author: Johannes Berg Date: Wed Sep 22 18:01:56 2010 +0200 iwlwifi: introduce post_scan hook The different drivers need to do different things after a scan, so create a post_scan hook to allow them to do this. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 7314c2b377afaf367f2966bd9ea67bf83350e29b Author: Johannes Berg Date: Wed Sep 22 18:01:55 2010 +0200 iwlagn: rename iwl_commit_rxon iwl_commit_rxon really should be named iwlagn_commit_rxon, so rename it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 39a985547cbfcbb0b23667b69b8ae82a6cf312ac Author: bo yang Date: Wed Sep 22 22:36:29 2010 -0400 [SCSI] megaraid_sas: Add Online Controller Reset to MegaRAID SAS drive To add the Online controller reset support, driver need to do: a). reset the controller chips -- Xscale and Gen2 which will change the function calls and add the reset function related to this two chips. b). during the reset, driver will store the pending cmds which not returned by FW to driver's pending queue. Driver will re-issue those pending cmds again to FW after the OCR finished. c). In driver's timeout routine, driver will report to OS as reset. Also driver's queue routine will block the cmds until the OCR finished. d). in Driver's ISR routine, if driver get the FW state as state change, FW in Failure status and FW support online controller reset (OCR), driver will start to do the controller reset. e). In driver's IOCTL routine, the application cmds will wait for the OCR to finish, then issue the cmds to FW. Signed-off-by Bo Yang Signed-off-by: James Bottomley commit 969c9165581fbb55cab0f500f555a69279cecb57 Author: James Smart Date: Wed Sep 29 11:19:22 2010 -0400 [SCSI] lpfc 8.3.17: Update lpfc driver version to 8.3.17 Update lpfc driver version to 8.3.17 Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit 3677a3a76e190f801af0778df3b8efa1fe161a6e Author: James Smart Date: Wed Sep 29 11:19:14 2010 -0400 [SCSI] lpfc 8.3.17: Replace function reset methodology Replace graceful teardown steps with the singular function reset command. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit eee8877ee5e8a879f78034001b5e7c04db005ab2 Author: James Smart Date: Wed Sep 29 11:19:08 2010 -0400 [SCSI] lpfc 8.3.17: SCSI fixes - Fail I/Os with incomplete data that complete with SCSI Check condition. - Complete aborted I/Os with host_scribble equal to NULL with success. - Initialize context1 field of iocbq in the new_scsi_buf routines. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit 515e0aa21ec399ddcf783140a596312e83d20a80 Author: James Smart Date: Wed Sep 29 11:19:00 2010 -0400 [SCSI] lpfc 8.3.17: BSG fixes - Add support for bsg MBX_SLI4_CONFIG. - Multiply linkup timeout in loopback test code by 100. - Set iocb_stat to 0 in the lpfcdiag_loop_get_xri function. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit dcf2a4e0792e837d6133506444a033a95cbc9616 Author: James Smart Date: Wed Sep 29 11:18:53 2010 -0400 [SCSI] lpfc 8.3.17: SLI Additions and Fixes - Added driver support for management application to pass down two security specific mailbox commands (MBX_SECURITY_MGMT and MBX_AUTH_PORT) - Added driver support for handling FIPS zeroization trap of host ERATT ER8, performing selective reset and bringing the device up. - Added code to detect INIT_LINK mailbox command completion returning status MBXERR_SEC_NO_PERMISSION. - Increased the wait timeout on host status register HS_FFRDY and HS_MBRDY being set. - Remove the port offline code from the Heartbeat TMO handler. Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit d439d286f573afab8c164dbc953ce1d214585a40 Author: James Smart Date: Wed Sep 29 11:18:45 2010 -0400 [SCSI] lpfc 8.3.17: Code Cleanup and Locking fixes - Move Unload flag earlier in vport deletei to stop ELS traffic - Replaced some unnecessary spin_lock_irqsave with spin_lock_irq - Fixed circular spinlock dependency between low-level driver and SCSI midlayer - Remove duplicate code from lpfc_els_retry routine - Make all error values negative Signed-off-by: Alex Iannicelli Signed-off-by: James Smart Signed-off-by: James Bottomley commit bf5eefb007e7c5498a41af2dd65d957ae9793a63 Author: Christof Schmitt Date: Tue Sep 28 10:11:06 2010 +0200 [SCSI] zfcp: Remove scsi_cmnd->serial_number from debug traces With the change that drivers have to explicitly request the serial number for SCSI commands, this field should not be part of the zfcp traces. It is not worth the effort to request the serial number only for tracing purposes, so simply remove this field from the debug traces. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 7262026f0eded76b935a12b9b15af05516a8610a Author: Wayne Boyer Date: Mon Sep 27 10:45:28 2010 -0700 [SCSI] ipr: fix array error logging The structure definitions for reporting array errors did not have the correct size for the Array WWID field. This patch fixes those definitions. It also fixes part of the output formatting that did not have newlines and fixes size calculations. Signed-off-by: Wayne Boyer Acked-by: Brian King Signed-off-by: James Bottomley commit 4ebcfb929b6be63bacdba34f6aae0f5b51432d2c Author: Jiri Slaby Date: Fri Sep 24 22:07:51 2010 +0200 [SCSI] aha152x: enable PCMCIA on 64bit It was disabled when x86_64 was introduced, but it is reported to be working on 64bit by two different people, so let's enable it back again. Signed-off-by: Jiri Slaby Cc: "Juergen E. Fischer" Signed-off-by: James Bottomley commit 69723d178da97b09ae8996f60fbf2f0cf68d6d61 Author: Hannes Reinecke Date: Fri Sep 24 15:57:04 2010 +0200 [SCSI] scsi_dh_alua: Handle all states correctly For ALUA we should be handling all states, independent of whether the mode is explicit or implicit. For 'Transitioning' we should retry for a certain amount of time; after that we're setting the port to 'Standby' and return SCSI_DH_RETRY to signal upper layers a retry is in order here. Signed-off-by: Hannes Reinecke Acked-by: Mike Snitzer Signed-off-by: James Bottomley commit e27d6169c79e3c75edc74a14424a7856e7ff487c Author: kxie@chelsio.com Date: Thu Sep 23 16:43:23 2010 -0700 [SCSI] cxgb4i: connection and ddp setting update Update cxgb4i connection setting and pagepod programming. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 0b3d8947972bfd2dd6d55c8009427ad2941ef038 Author: kxie@chelsio.com Date: Thu Sep 23 16:43:23 2010 -0700 [SCSI] cxgb3i: fixed connection over vlan Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit e3d2ad8cb2775e4201446489efd1cf26c5bbce5c Author: kxie@chelsio.com Date: Thu Sep 23 16:43:23 2010 -0700 [SCSI] libcxgbi: pdu read fixes Fixed the locking and releasing skb in the case of error in the pdu read path, and added define iscsi_task_cxgbi_data to access the private data inside the iscsi_task. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 24d3f95a5b6082ca4aba89071ca6259e15d3e564 Author: kxie@chelsio.com Date: Thu Sep 23 16:43:23 2010 -0700 [SCSI] cxgbi: rename alloc_cpl to alloc_wr Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit d24099df9e379b150c164da354b8c6fdafc73257 Author: Brian King Date: Tue Sep 21 10:17:11 2010 -0500 [SCSI] ibmvfc: Handle Virtual I/O Server reboot If a Virtual I/O server is rebooted, the client fibre channel sees a transport event on its CRQ, which causes it to attempt to reconnect to the CRQ. For a period of time during the VIOS reboot, the client's attempts to register the CRQ will return H_CLOSED, indicating the server side is not currently registered. The ibmvfc driver was not handling this well and was taking the virtual adapter offline. Fix this by re-enabling our interrupt and waiting for the event on our CRQ indicating the server is back, at which point we can reconnect. Signed-off-by: Brian King Signed-off-by: James Bottomley commit 1a03ae0f556a931aa3747b70e44b78308f5b0590 Author: Michael Reed Date: Mon Sep 20 11:20:22 2010 -0500 [SCSI] sd name space exhaustion causes system hang Following a site power outage which re-enabled all the ports on my FC switches, my system subsequently booted with far too many luns! I had let it run hoping it would make multi-user. It didn't. :( It hung solid after exhausting the last sd device, sdzzz, and attempting to create sdaaaa and beyond. I was unable to get a dump. Discovered using a 2.6.32.13 based system. correct this by detecting when the last index is utilized and failing the sd probe of the device. Patch applies to scsi-misc-2.6. Signed-off-by: Michael Reed Cc: Stable Tree Signed-off-by: James Bottomley commit 43ca910a9c90566308f39f51ac03a55f94a5f83c Author: Mike Christie Date: Wed Sep 15 16:52:32 2010 -0500 [SCSI] fc class: add fc host dev loss sysfs file This adds a fc host dev loss sysfs file. Instead of calling into the driver using the get_host_def_dev_loss_tmo callback, we allow drivers to init the dev loss like is done for other fc host params, and then the fc class will handle updating the value if the user writes to the new sysfs file. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 0af5d708aae3aef1f98a1c689007b92db2c10277 Author: Mike Christie Date: Wed Sep 15 16:52:31 2010 -0500 [SCSI] lpfc: prep for fc host dev loss tmo support This removes the driver's get_host_def_dev_loss_tmo callback and just has the driver set the dev loss using the fc class fc_host_dev_loss_tmo macro like is done for other fc params. It also adds compat support for the driver's existing dev loss and nodev sysfs and modparams. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d2b5f10e5b93633a40d9263383b914f06019f00b Author: Mike Christie Date: Wed Sep 15 16:52:30 2010 -0500 [SCSI] qla2xxx: prep for fc host dev loss tmo support This removes the driver's get_host_def_dev_loss_tmo callback and just has the driver set the dev loss using the fc class fc_host_dev_loss_tmo macro like is done for other fc params. Signed-off-by: Mike Christie Acked-by: Andrew Vasquez Signed-off-by: James Bottomley commit a5110f2983bdf931d9819f88505775b16de8b99e Author: Mike Christie Date: Wed Sep 15 16:52:29 2010 -0500 [SCSI] ibmvfc: prep for fc host dev loss tmo support This removes the driver's get_host_def_dev_loss_tmo callback and just has the driver set the dev loss using the fc class fc_host_dev_loss_tmo macro like is done for other fc params. This patch also removes the module dev loss param. To override the value the fc host sysfs value being added in the fc class patch can be used instead of the driver module param. Signed-off-by: Mike Christie Acked-by: Brian King Signed-off-by: James Bottomley commit 485868208ee833628d49f81b4609001749d92d56 Author: Mike Christie Date: Wed Sep 15 16:52:28 2010 -0500 [SCSI] fnic: prep for fc host dev loss tmo support This removes the driver's get_host_def_dev_loss_tmo callback and just has the driver set the dev loss using the fc class fc_host_dev_loss_tmo macro like is done for other fc params. This also adds a set rport dev loss function so the fc class host dev loss tmp sysfs support being added in the fc class patch can update rports. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit a6751ccb9ba85180c84135cc921eea11d83d5689 Author: Jiri Slaby Date: Tue Sep 14 14:12:54 2010 +0200 [SCSI] qla4xxx: fix build on PPC We use read/write[bslq] but do not include linux/io.h. This causes build failures on PPC. Include that file. Signed-off-by: Jiri Slaby Cc: Stable Tree Acked-by: Vikas Chaudhary Signed-off-by: James Bottomley commit f0ad30d3d2dc924decc0e10b1ff6dc32525a5d99 Author: David Milburn Date: Fri Sep 3 17:13:03 2010 -0500 [SCSI] libsas: fix NCQ mixing with non-NCQ Some cards (like mvsas) have issue troubles if non-NCQ commands are mixed with NCQ ones. Fix this by using the libata default NCQ check routine which waits until all NCQ commands are complete before issuing a non-NCQ one. The impact to cards (like aic94xx) which don't need this logic should be minimal Cc: Stable Tree Signed-off-by: James Bottomley commit 13cd4b7f7472eea7cbc1ab34e042842fbb902160 Author: Steve French Date: Thu Oct 7 18:46:32 2010 +0000 [CIFS] Various small checkpatch cleanups Signed-off-by: Steve French commit 15a6321d1c0f8db561932cd99e1b9897981da71f Author: Rajkumar Manoharan Date: Thu Oct 7 20:58:39 2010 +0530 ath9k_hw: Fix hw reset failure with HTC driver The following commit removed DISABLE_REGWRITE_BUFFER ops. The unnecessary REGWRITE_BUFFER_FLUSH was not removed properly which is causing failure on hw reset. Author: Felix Fietkau Date: Tue Oct 5 12:03:42 2010 +0200 ath9k_hw: clean up register write buffering Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 388ac775be95e510c2095ed6cd59422a5183a9fb Author: Johannes Berg Date: Thu Oct 7 13:11:09 2010 +0200 cfg80211: constify WDS address There's no need for the WDS peer address to not be const, so make it const. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 43b19952de54b0fccfcdc5968891ebe550367fe8 Author: Johannes Berg Date: Thu Oct 7 13:10:30 2010 +0200 nl80211: use new genl helpers for WDS Bill Jordan's patch to allow setting the WDS peer crossed with my patch removing all the boilerplate code in nl80211, and consequently he didn't make use of it yet. Fix that. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7b99a7c2dab7efe7c265b66fedbf3444958ebfe3 Author: Johannes Berg Date: Thu Oct 7 12:55:24 2010 +0200 mac80211: fix sw scan locking The recent scan overhaul broke locking because now we can jump to code that attempts to unlock, while we don't have the mutex held. Fix this by holding the mutex around all the relevant code. Reported-by: Ben Greear Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4b34d432b0fcff422304de4eb49d6da861fe335c Author: Juuso Oikarinen Date: Thu Oct 7 10:16:42 2010 +0300 wl1271: Support FEM autodetection In the NVS/INI-parameters for the driver/firmware there is the FEM (front end module) selection option, which may configure the hardware FEM via autodetection or manual selection. So far, there has been support for manual selection only. Add support for FEM autodetection. Signed-off-by: Juuso Oikarinen Signed-off-by: John W. Linville commit edbe4073a84713c1c01a3f37fb880f151d0a5b68 Merge: 7573eac cf9768d6 Author: John W. Linville Date: Thu Oct 7 14:40:26 2010 -0400 Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 commit 7573eac762af253e0b61b60cce34ab80f2dd45c7 Merge: a6d27d2 4efe7f5 Author: John W. Linville Date: Thu Oct 7 14:39:03 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 0eb8a132c449c755b7a3f18f33365b2040c47347 Author: Jeff Layton Date: Wed Oct 6 19:51:12 2010 -0400 cifs: add "multiuser" mount option This allows someone to declare a mount as a multiuser mount. Multiuser mounts also imply "noperm" since we want to allow the server to handle permission checking. It also (for now) requires Kerberos authentication. Eventually, we could expand this to other authtypes, but that requires a scheme to allow per-user credential stashing in some form. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 9d002df492b14c690425d9785530371b6c1ccbca Author: Jeff Layton Date: Wed Oct 6 19:51:11 2010 -0400 cifs: add routines to build sessions and tcons on the fly This patch is rather large, but it's a bit difficult to do piecemeal... For non-multiuser mounts, everything will basically work as it does today. A call to cifs_sb_tlink will return the "master" tcon link. Turn the tcon pointer in the cifs_sb into a radix tree that uses the fsuid of the process as a key. The value is a new "tcon_link" struct that contains info about a tcon that's under construction. When a new process needs a tcon, it'll call cifs_sb_tcon. That will then look up the tcon_link in the radix tree. If it exists and is valid, it's returned. If it doesn't exist, then we stuff a new tcon_link into the tree and mark it as pending and then go and try to build the session/tcon. If that works, the tcon pointer in the tcon_link is updated and the pending flag is cleared. If the construction fails, then we set the tcon pointer to an ERR_PTR and clear the pending flag. If the radix tree is searched and the tcon_link is marked pending then we go to sleep and wait for the pending flag to be cleared. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit af9a2d006611124eb1de9d7fee160b25b252ad98 Author: Simon Guinot Date: Thu Oct 7 16:38:50 2010 +0200 [ARM] Kirkwood: add LED support for netxbig_v2 boards Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 2446783250fc12ba9bc39771e04988692742ed90 Author: Simon Guinot Date: Thu Oct 7 16:38:49 2010 +0200 leds: add LED driver for Big Network series LEDs This patch add a LED class driver for LEDs found on the LaCie 2Big and 5Big Network v2 boards. The LEDs are wired to a CPLD and are controlled through a GPIO extension bus. Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit e5971bbc1caf0ccbab3fea74fe37abb649d1c7cf Author: Simon Guinot Date: Thu Oct 7 16:35:40 2010 +0200 leds: leds-ns2: fix private driver data storage dev_set_drvdata() can't be used to set the driver private data pointer. This would overwrite the led classdev object previously registered by led_classdev_register(). Note that despite this mistake, the driver work fine because led_dat and led_dat->cdev are at the same memory address. Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit ee621dd619b9a85eced150fc06e352fef54cfda0 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Sun Aug 8 06:21:33 2010 +0200 net: atmel_macb Kconfig: remove long dependency line Many Atmel SOC are embedding a MACB controller. This patch removes the long dependency line for this Atmel MACB ethernet driver configuration entry. The HAVE_NET_MACB configuration option is located in the net Kconfig file as it may be setup by ARM/AT91 and AVR32 chips. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Cc: David Miller Cc: Haavard Skinnemoen Acked-by: Nicolas Ferre Acked-by: Andrew Victor commit cb809b1a5ebffca8cf0314b788919989e8e4ab5f Author: Greg Ungerer Date: Tue Sep 21 20:39:40 2010 +1000 AT91: fix use of clock disable on idle for AT91x40 devices The simpler AT91x40 processors do not have the same power management controller as the new AT91 devices. They do have a simpler power controller module that we can use to disable the CPU clock at idle time. Add code to support that. Signed-off-by: Greg Ungerer Acked-by: Jean-Christophe PLAGNIOL-VILLARD Acked-by: Nicolas Ferre commit a6e016f19d393fbe4e040bee8155b03b840fa689 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Tue Sep 21 18:01:37 2010 +0200 AT91: at91sam9g20ek: merge 2mmc version in one board The board-sam9g20ek-2slot-mmc.c was a revision of the at91sam9g20ek since board revision C. It contains 2 sd/mmc slots. This merge keep the support of the old machine ID MACH_AT91SAM9G20EK_2MMC for backward compatibility. Now we use the ATAG to pass the hardware functionality to kernel with this board revision encoding bit 0: 0 => 1 sd/mmc slot 1 => 2 sd/mmc slots connectors (board from revision C) system_rev tested on Barebox commit d8f3ee103a9f4bd Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Nicolas Ferre commit 9a400da84ffe7205b9921c87ac24069217442c84 Author: Nicolas Ferre Date: Thu Jul 1 10:55:45 2010 +0200 AT91: Correct configuration define value The MTD nand driver for Atmel chips is atmel_nand and not at91_nand anymore. Change wrong configuration variables that were remaining. Reported-by: Christoph Egger Signed-off-by: Nicolas Ferre commit 67dd8995fd60bab890b9c3c4cd3e9f00d5811c25 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Wed Sep 22 07:55:59 2010 +0200 AT91: at91sam9m10g45ek: use the right machine id Today the board use 2 machines id AT91SAM9G45EKES and AT91SAM9M10G45EK now will use only AT91SAM9M10G45EK. The other boards revision will be specified via system_rev. for 9g45ekes, m10g45ekes and m10g45ek boards and revisions Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Cc: Patrice Vilchez Acked-by: Nicolas Ferre commit 6506cf6ce68d78a5470a8360c965dafe8e4b78e3 Author: Peter Zijlstra Date: Thu Sep 16 17:50:31 2010 +0200 sched: fix RCU lockdep splat from task_group() This addresses the following RCU lockdep splat: [0.051203] CPU0: AMD QEMU Virtual CPU version 0.12.4 stepping 03 [0.052999] lockdep: fixing up alternatives. [0.054105] [0.054106] =================================================== [0.054999] [ INFO: suspicious rcu_dereference_check() usage. ] [0.054999] --------------------------------------------------- [0.054999] kernel/sched.c:616 invoked rcu_dereference_check() without protection! [0.054999] [0.054999] other info that might help us debug this: [0.054999] [0.054999] [0.054999] rcu_scheduler_active = 1, debug_locks = 1 [0.054999] 3 locks held by swapper/1: [0.054999] #0: (cpu_add_remove_lock){+.+.+.}, at: [] cpu_up+0x42/0x6a [0.054999] #1: (cpu_hotplug.lock){+.+.+.}, at: [] cpu_hotplug_begin+0x2a/0x51 [0.054999] #2: (&rq->lock){-.-...}, at: [] init_idle+0x2f/0x113 [0.054999] [0.054999] stack backtrace: [0.054999] Pid: 1, comm: swapper Not tainted 2.6.35 #1 [0.054999] Call Trace: [0.054999] [] lockdep_rcu_dereference+0x9b/0xa3 [0.054999] [] task_group+0x7b/0x8a [0.054999] [] set_task_rq+0x13/0x40 [0.054999] [] init_idle+0xd2/0x113 [0.054999] [] fork_idle+0xb8/0xc7 [0.054999] [] ? mark_held_locks+0x4d/0x6b [0.054999] [] do_fork_idle+0x17/0x2b [0.054999] [] native_cpu_up+0x1c1/0x724 [0.054999] [] ? do_fork_idle+0x0/0x2b [0.054999] [] _cpu_up+0xac/0x127 [0.054999] [] cpu_up+0x55/0x6a [0.054999] [] kernel_init+0xe1/0x1ff [0.054999] [] kernel_thread_helper+0x4/0x10 [0.054999] [] ? restore_args+0x0/0x30 [0.054999] [] ? kernel_init+0x0/0x1ff [0.054999] [] ? kernel_thread_helper+0x0/0x10 [0.056074] Booting Node 0, Processors #1lockdep: fixing up alternatives. [0.130045] #2lockdep: fixing up alternatives. [0.203089] #3 Ok. [0.275286] Brought up 4 CPUs [0.276005] Total of 4 processors activated (16017.17 BogoMIPS). The cgroup_subsys_state structures referenced by idle tasks are never freed, because the idle tasks should be part of the root cgroup, which is not removable. The problem is that while we do in-fact hold rq->lock, the newly spawned idle thread's cpu is not yet set to the correct cpu so the lockdep check in task_group(): lockdep_is_held(&task_rq(p)->lock) will fail. But this is a chicken and egg problem. Setting the CPU's runqueue requires that the CPU's runqueue already be set. ;-) So insert an RCU read-side critical section to avoid the complaint. Signed-off-by: Peter Zijlstra Signed-off-by: Paul E. McKenney commit 4ee0a603926cad973e4d384f48c5e279a0fd4118 Author: Dongdong Deng Date: Tue Sep 28 16:32:43 2010 +0800 rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value Using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value due to the caller didn't hold the root_rcu/rnp node's lock. Although use without ACCESS_ONCE() is safe due to the value loaded being used but once, the ACCESS_ONCE() is a good documentation aid -- the variables are being loaded without the services of a lock. Signed-off-by: Dongdong Deng CC: Dipankar Sarma CC: Paul E. McKenney Signed-off-by: Paul E. McKenney commit b0a0f667a349247bd7f05f806b662a25653822bc Author: Paul E. McKenney Date: Wed Oct 6 17:32:51 2010 -0700 sched: suppress RCU lockdep splat in task_fork_fair > =================================================== > [ INFO: suspicious rcu_dereference_check() usage. ] > --------------------------------------------------- > /home/greearb/git/linux.wireless-testing/kernel/sched.c:618 invoked rcu_dereference_check() without protection! > > other info that might help us debug this: > > rcu_scheduler_active = 1, debug_locks = 1 > 1 lock held by ifup/23517: > #0: (&rq->lock){-.-.-.}, at: [] task_fork_fair+0x3b/0x108 > > stack backtrace: > Pid: 23517, comm: ifup Not tainted 2.6.36-rc6-wl+ #5 > Call Trace: > [] ? printk+0xf/0x16 > [] lockdep_rcu_dereference+0x74/0x7d > [] task_group+0x6d/0x79 > [] set_task_rq+0xe/0x57 > [] task_fork_fair+0x57/0x108 > [] sched_fork+0x82/0xf9 > [] copy_process+0x569/0xe8e > [] do_fork+0x118/0x262 > [] ? do_page_fault+0x16a/0x2cf > [] ? up_read+0x16/0x2a > [] sys_clone+0x1b/0x20 > [] ptregs_clone+0x15/0x30 > [] ? sysenter_do_call+0x12/0x38 Here a newly created task is having its runqueue assigned. The new task is not yet on the tasklist, so cannot go away. This is therefore a false positive, suppress with an RCU read-side critical section. Reported-by: Ben Greear Tested-by: Ben Greear Date: Wed Oct 6 17:15:35 2010 -0700 net: suppress RCU lockdep false positive in sock_update_classid > =================================================== > [ INFO: suspicious rcu_dereference_check() usage. ] > --------------------------------------------------- > include/linux/cgroup.h:542 invoked rcu_dereference_check() without protection! > > other info that might help us debug this: > > > rcu_scheduler_active = 1, debug_locks = 0 > 1 lock held by swapper/1: > #0: (net_mutex){+.+.+.}, at: [] > register_pernet_subsys+0x1f/0x47 > > stack backtrace: > Pid: 1, comm: swapper Not tainted 2.6.35.4-28.fc14.x86_64 #1 > Call Trace: > [] lockdep_rcu_dereference+0xaa/0xb3 > [] sock_update_classid+0x7c/0xa2 > [] sk_alloc+0x6b/0x77 > [] __netlink_create+0x37/0xab > [] ? rtnetlink_rcv+0x0/0x2d > [] netlink_kernel_create+0x74/0x19d > [] ? __mutex_lock_common+0x339/0x35b > [] rtnetlink_net_init+0x2e/0x48 > [] ops_init+0xe9/0xff > [] register_pernet_operations+0xab/0x130 > [] register_pernet_subsys+0x2e/0x47 > [] rtnetlink_init+0x53/0x102 > [] netlink_proto_init+0x126/0x143 > [] ? netlink_proto_init+0x0/0x143 > [] do_one_initcall+0x72/0x186 > [] kernel_init+0x23b/0x2c9 > [] kernel_thread_helper+0x4/0x10 > [] ? restore_args+0x0/0x30 > [] ? kernel_init+0x0/0x2c9 > [] ? kernel_thread_helper+0x0/0x10 The sock_update_classid() function calls task_cls_classid(current), but the calling task cannot go away, so there is no danger of the associated structures disappearing. Insert an RCU read-side critical section to suppress the false positive. Reported-by: Subrata Modak Signed-off-by: Paul E. McKenney commit a6d27d2ac89359f84c1a559b5530967ff671d269 Author: John W. Linville Date: Thu Oct 7 11:31:56 2010 -0400 Revert "rtl8180: use NAPI for bottom-half processing" This reverts commit 030725d2c7c1fafec7ede618647bf30ed79601f0. This commit relies on commit 5ed3bc7288487bd4f891f420a07319e0b538b4fe ("mac80211: use netif_receive_skb in ieee80211_tx_status callpath") Unfortunately not all drivers are calling ieee80211_tx_status from a compatible context, so that commit needs to be reverted in 2.6.36. Signed-off-by: John W. Linville commit df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101 Author: David Howells Date: Thu Oct 7 14:08:55 2010 +0100 Fix IRQ flag handling naming Fix the IRQ flag handling naming. In linux/irqflags.h under one configuration, it maps: local_irq_enable() -> raw_local_irq_enable() local_irq_disable() -> raw_local_irq_disable() local_irq_save() -> raw_local_irq_save() ... and under the other configuration, it maps: raw_local_irq_enable() -> local_irq_enable() raw_local_irq_disable() -> local_irq_disable() raw_local_irq_save() -> local_irq_save() ... This is quite confusing. There should be one set of names expected of the arch, and this should be wrapped to give another set of names that are expected by users of this facility. Change this to have the arch provide: flags = arch_local_save_flags() flags = arch_local_irq_save() arch_local_irq_restore(flags) arch_local_irq_disable() arch_local_irq_enable() arch_irqs_disabled_flags(flags) arch_irqs_disabled() arch_safe_halt() Then linux/irqflags.h wraps these to provide: raw_local_save_flags(flags) raw_local_irq_save(flags) raw_local_irq_restore(flags) raw_local_irq_disable() raw_local_irq_enable() raw_irqs_disabled_flags(flags) raw_irqs_disabled() raw_safe_halt() with type checking on the flags 'arguments', and then wraps those to provide: local_save_flags(flags) local_irq_save(flags) local_irq_restore(flags) local_irq_disable() local_irq_enable() irqs_disabled_flags(flags) irqs_disabled() safe_halt() with tracing included if enabled. The arch functions can now all be inline functions rather than some of them having to be macros. Signed-off-by: David Howells [X86, FRV, MN10300] Signed-off-by: Chris Metcalf [Tile] Signed-off-by: Michal Simek [Microblaze] Tested-by: Catalin Marinas [ARM] Acked-by: Thomas Gleixner Acked-by: Haavard Skinnemoen [AVR] Acked-by: Tony Luck [IA-64] Acked-by: Hirokazu Takata [M32R] Acked-by: Greg Ungerer [M68K/M68KNOMMU] Acked-by: Ralf Baechle [MIPS] Acked-by: Kyle McMartin [PA-RISC] Acked-by: Paul Mackerras [PowerPC] Acked-by: Martin Schwidefsky [S390] Acked-by: Chen Liqin [Score] Acked-by: Matt Fleming [SH] Acked-by: David S. Miller [Sparc] Acked-by: Chris Zankel [Xtensa] Reviewed-by: Richard Henderson [Alpha] Reviewed-by: Yoshinori Sato [H8300] Cc: starvik@axis.com [CRIS] Cc: jesper.nilsson@axis.com [CRIS] Cc: linux-cris-kernel@axis.com commit ca4d3e6746bdcfccb517349bce2d2c5b5614fb6f Author: David Howells Date: Thu Oct 7 14:08:54 2010 +0100 MIPS: Add missing #inclusions of Add missing #inclusions of to a whole bunch of files that should really include it. Note that this can replace #inclusions of . This is required for the patch to sort out irqflags handling function naming to compile on MIPS. The problem is that these files require access to things like setup_irq() - which isn't available by #including Signed-off-by: David Howells Acked-by: Ralf Baechle commit 476c32c47a84fcf8033b93c588761405fefb3980 Author: David Howells Date: Thu Oct 7 14:08:54 2010 +0100 smc91x: Add missing #inclusion of Add missing #inclusion of . Without it, the following error can occur with the irqflags fixup patches applied: drivers/net/smc91x.c: In function 'smc_probe': drivers/net/smc91x.c:1987:2: error: implicit declaration of function 'irq_canonicalize' Signed-off-by: David Howells Acked-by: Nicolas Pitre commit bcdb714c8856c76383ca455294f0074168705eab Author: David Howells Date: Thu Oct 7 14:08:53 2010 +0100 Drop a couple of unnecessary asm/system.h inclusions Drop inclusions of asm/system.h from linux/hardirq.h and linux/list.h as they're no longer required and prevent the M68K arch's IRQ flag handling macros from being made into inlined functions due to circular dependencies. Signed-off-by: David Howells Acked-by: Greg Ungerer Acked-by: Geert Uytterhoeven commit d8b5fc01683c66060edc202d6bb5635365822181 Author: David Howells Date: Thu Oct 7 14:08:52 2010 +0100 SH: Add missing consts to sys_execve() declaration Add missing consts to the sys_execve() declaration which result in the following error: arch/sh/kernel/process_32.c:303: error: conflicting types for 'sys_execve' /warthog/nfs/linux-2.6-fscache/arch/sh/include/asm/syscalls_32.h:24: error: previous declaration of 'sys_execve' was here Signed-off-by: David Howells commit 3b139cdb373282dfa72316aa56887371e97cafe8 Author: David Howells Date: Thu Oct 7 14:08:52 2010 +0100 Blackfin: Rename IRQ flags handling functions Rename h/w IRQ flags handling functions to be in line with what is expected for the irq renaming patch. This renames local_*_hw() to hard_local_*() using the following perl command: perl -pi -e 's/local_irq_(restore|enable|disable)_hw/hard_local_irq_\1/ or s/local_irq_save_hw([_a-z]*)[(]flags[)]/flags = hard_local_irq_save\1()/' `find arch/blackfin/ -name "*.[ch]"` and then fixing up asm/irqflags.h manually. Additionally, arch/hard_local_save_flags() and arch/hard_local_irq_save() both return the flags rather than passing it through the argument list. Signed-off-by: David Howells commit 5c74874bc9a838b185fe463153e63f7d895ebb77 Author: David Howells Date: Thu Oct 7 14:08:51 2010 +0100 Blackfin: Add missing dep to asm/irqflags.h Add a missing dependency (mach/blackfin.h) to asm/irqflags.h so that bfin_read_IMASK() can be used by inline functions. Signed-off-by: David Howells commit db36b906fefa5b95039bd418bc354ffc9b141020 Author: David Howells Date: Thu Oct 7 14:08:50 2010 +0100 Blackfin: Rename DES PC2() symbol to avoid collision Rename the PC2() symbol in the generic DES crypto module to be prefixed with DES_ to avoid collision with arch code (Blackfin in this case). Signed-off-by: David Howells Signed-off-by: Mike Frysinger commit f3441945da3a93ee4bef923628f280ad114cf49f Author: David Howells Date: Thu Oct 7 14:08:50 2010 +0100 Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header Split the BF532 machine type BFIN_*_FIO_FLAG() functions to their own header file to avoid circular #include problems as these functions require IRQ flag handling, which requires asm/blackfin.h, which otherwise requires the header file that defines these functions. For good measure, also get rid of the inclusion of asm/blackfin.h from mach/cdefBF532.h (which is circular) and defBF532.h (which is included by asm/blackfin.h before including this header). Signed-off-by: David Howells commit 3dcc1e7f9fd48f20beefd41a684cd471a96565c5 Author: David Howells Date: Thu Oct 7 14:08:49 2010 +0100 Blackfin: Split PLL code from mach-specific cdef headers Split the PLL control code from the Blackfin machine-specific cdef headers so that the irqflags functions can be renamed without incurring a header loop. Signed-off-by: David Howells commit 556ef63255f1a6f82910a637c4164dbf7d3d1af2 Merge: d4f8f21 cb655d0 Author: Ingo Molnar Date: Thu Oct 7 09:43:38 2010 +0200 Merge commit 'v2.6.36-rc7' into core/rcu Merge reason: Update from -rc3 to -rc7. Signed-off-by: Ingo Molnar commit d4f8f217b8a5d5bd02af979650418dca4caec472 Merge: 2dfbf4d 773e3f9 Author: Ingo Molnar Date: Thu Oct 7 09:43:11 2010 +0200 Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu commit b25ebfd21b03b3b59c1c7a7e0c597fd28286bb10 Author: Peter Waskiewicz Date: Tue Oct 5 01:27:49 2010 +0000 ixgbe: Use affinity_hint when Flow Director is enabled Use the new infrastructure to balance interrupts for flow alignment when ATR or Flow Director are enabled. Signed-off-by: Peter P Waskiewicz Jr Tested-by: Stephen Ko Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 9deec17f9fe260f1b6467748fe5e16feea8e98f0 Author: Martin Schwidefsky Date: Fri Oct 1 11:17:13 2010 +0000 drivers/net/stmmac/: add HAS_IOMEM dependency The stmmac driver does not compile on s390: drivers/net/stmmac/stmmac_main.c: In function 'stmmac_adjust_link': drivers/net/stmmac/stmmac_main.c:210: error: implicit declaration of function 'readl' drivers/net/stmmac/stmmac_main.c:263: error: implicit declaration of function 'writel' drivers/net/stmmac/stmmac_main.c: In function 'stmmac_dvr_probe': drivers/net/stmmac/stmmac_main.c:1674: error: implicit declaration of function 'ioremap' drivers/net/stmmac/stmmac_main.c:1674: warning: assignment makes pointer from integer without a cast drivers/net/stmmac/stmmac_main.c:1761: error: implicit declaration of function 'iounmap' make[3]: *** [drivers/net/stmmac/stmmac_main.o] Error 1 Signed-off-by: Martin Schwidefsky Cc: Giuseppe CAVALLARO Cc: David S. Miller Cc: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit 3d3211ef5cf7558d289d1a1efbef8c45595639aa Author: John Fastabend Date: Wed Oct 6 23:35:15 2010 -0700 net: netif_set_real_num_rx_queues may cap num_rx_queues at init time Do not set num_rx_queues in netif_set_real_num_rx_queues() some drivers will increase the real_num_rx_queues later due to a feature changes or available interrupts increasing. By setting num_rx_queues here this ends up creating a cap on the number of rx queues available. For example the ixgbe driver sets the max number of queues it intends to use ever then sets the current number in use with the netif_set_num_{rx|tx}_queues calls. With the current implementation the number of rx queues gets limited so when a feature such as DCB or FCoE is enabled the queues are no longer available. kobjects will only be allocated for real_num_rx_queues so the waste in memory is minimal. Signed-off-by: John Fastabend Signed-off-by: Jeff Kirsher Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit c2dddf941409635601e56c1990c5ab0bd395742c Author: Dan Carpenter Date: Mon Oct 4 09:24:59 2010 +0000 eicon: make buffer larger In diva_mnt_add_xdi_adapter() we do this: strcpy (clients[id].drvName, tmp); strcpy (clients[id].Dbg.drvName, tmp); The "clients[id].drvName" is a 128 character buffer and "clients[id].Dbg.drvName" was originally a 16 character buffer but I've changed it to 128 as well. We don't actually use 128 characters but we do use more than 16. I've also changed the size of "tmp" to 128 characters instead of 256. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 1f4f0f645cc1d7f1187fcdb0ac22c2e69bd68050 Author: stephen hemminger Date: Tue Oct 5 04:24:09 2010 +0000 dccp: Kill dead code and add static markers. Remove dead code and make some functions static. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 10e7e9c44d442275951d1cfc892c1c6606c85c94 Author: Denis Kirjanov Date: Wed Oct 6 03:59:56 2010 +0000 sundance: Drop legacy _COMPAT_WITH_OLD_KERNEL includes Drop legacy includes since 2.4.x Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 9c6d5e5537e3997c47b65925a235392c1968fb51 Author: John Heffner Date: Wed Oct 6 21:18:02 2010 -0700 TCP: Fix setting of snd_ssthresh in tcp_mtu_probe_success This looks like a simple typo that has gone unnoticed for some time. The impact is relatively low but it's clearly wrong. Signed-off-by: John Heffner Signed-off-by: David S. Miller commit 69259abb64d4da77273bf59accfc9fa79e7165f4 Merge: dd53df2 12e9447 Author: David S. Miller Date: Wed Oct 6 19:39:31 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/pcmcia/pcnet_cs.c net/caif/caif_socket.c commit dd53df265b1ee7a1fbbc76bb62c3bec2383bbd44 Author: Krzysztof Oledzki Date: Thu Sep 30 06:19:04 2010 +0000 bonding: add Speed/Duplex information to /proc/net/bonding/bond Effect: Slave Interface: eth5 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: XX:XX:XX:XX:XX:XX Slave queue ID: 0 Signed-off-by: Krzysztof Piotr Oledzki Signed-off-by: David S. Miller commit 767e97e1e0db0d0f3152cd2f3bd3403596aedbad Author: Eric Dumazet Date: Wed Oct 6 17:49:21 2010 -0700 neigh: RCU conversion of struct neighbour This is the second step for neighbour RCU conversion. (first was commit d6bf7817 : RCU conversion of neigh hash table) neigh_lookup() becomes lockless, but still take a reference on found neighbour. (no more read_lock()/read_unlock() on tbl->lock) struct neighbour gets an additional rcu_head field and is freed after an RCU grace period. Future work would need to eventually not take a reference on neighbour for temporary dst (DST_NOCACHE), but this would need dst->_neighbour to use a noref bit like we did for skb->_dst. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 43695d095dfaf266a8a940d9b07eed7f46076b49 Author: Sunil Mushran Date: Wed Oct 6 17:55:09 2010 -0700 ocfs2/cluster: Show per region heartbeat elapsed time This patch adds a per region debugfs file that shows the elapsed time since the time the o2hb timer was last armed. Signed-off-by: Sunil Mushran commit d6aa1c7c9e4b48081c2302e14b0f857017461efd Author: Sunil Mushran Date: Wed Oct 6 18:50:50 2010 -0700 ocfs2/cluster: Add mlogs for heartbeat up/down events This patch adds mlogs for o2hb up and down events. Signed-off-by: Sunil Mushran commit 1f28530537f106f83e5cf7ef0193075667b6d520 Author: Sunil Mushran Date: Wed Oct 6 17:55:12 2010 -0700 ocfs2/cluster: Create debugfs dir/files for each region This patch creates debugfs directory for each o2hb region and creates files to expose the region number and the per region live node bitmap. This information will be useful in debugging cluster issues. Signed-off-by: Sunil Mushran commit a6de013654b4839c8609e26241ebd9eb1ecc52e6 Author: Sunil Mushran Date: Wed Oct 6 17:55:13 2010 -0700 ocfs2/cluster: Create debugfs files for live, quorum and failed region bitmaps This patch prints the bitmaps of live, quorum and failed regions. This information will be useful in debugging cluster issues. Signed-off-by: Sunil Mushran commit b1c5ebfbe398b3360614a4788c02061cd153e60a Author: Sunil Mushran Date: Thu Oct 7 17:05:52 2010 -0700 ocfs2/cluster: Maintain bitmap of failed regions In global heartbeat mode, we track the bitmap of regions that have seen heartbeat timeouts. We fence if the number of such regions is greater than or equal to half the number of quorum regions. Signed-off-by: Sunil Mushran commit 43182d2a799865872041b6e4d8387131e9462f56 Author: Sunil Mushran Date: Wed Oct 6 17:55:16 2010 -0700 ocfs2/cluster: Maintain bitmap of quorum regions o2hb allows online adding of regions. However, a newly added region is not used in quorum calculations unless it has been added on all nodes. This patch tracks a bitmap of such quorum regions. Signed-off-by: Sunil Mushran commit e7d656baf6607a0775f4ca85464a4ead306741e5 Author: Sunil Mushran Date: Wed Oct 6 17:55:18 2010 -0700 ocfs2/cluster: Track bitmap of live heartbeat regions A heartbeat region becomes live (or active) after a fixed number of (steady) iterations. Signed-off-by: Sunil Mushran commit 536f0741f324f116d8b059295999945a2dac56bc Author: Sunil Mushran Date: Thu Oct 7 17:03:07 2010 -0700 ocfs2/cluster: Track number of global heartbeat regions In global heartbeat mode, we have a upper limit for the number of active regions. This patch adds the facility to track the number of active global heartbeat regions and fails to start heartbeat if the number exceeds the maximum. Signed-off-by: Sunil Mushran commit 823a637ae933fde8fdb280612dd3ff9912e301e3 Author: Sunil Mushran Date: Wed Oct 6 17:55:21 2010 -0700 ocfs2/cluster: Maintain live node bitmap per heartbeat region Currently we track a global livenode bitmap that keeps track of all nodes that are heartbeating in all regions. This patch adds the ability to track the livenode bitmap on a per region basis. We will use this facility in a later patch to allow us to withstand the loss of a minority number of regions. Signed-off-by: Sunil Mushran commit 8ca8b0bbd841b6bcd8ac05e51b0143aa61cfeff3 Author: Sunil Mushran Date: Thu Oct 7 17:01:27 2010 -0700 ocfs2/cluster: Reorganize o2hb debugfs init o2hb debugfs handling is reorganized to allow for easy expansion. Signed-off-by: Sunil Mushran commit 0e105d37c2adb19cb777aa6701a866f211764a30 Author: Sunil Mushran Date: Thu Oct 7 17:00:16 2010 -0700 ocfs2/cluster: Check slots for unconfigured live nodes o2hb currently checks slots for configured nodes only. This patch makes it check the slots for the live nodes too to take care of a race in which a node is removed from the configuration but not from the live map. Signed-off-by: Sunil Mushran commit 39a298563e0619b1b6e2e0974e58801de780621c Author: Sunil Mushran Date: Thu Oct 7 17:30:17 2010 -0700 ocfs2/cluster: Print messages when adding/removing nodes Prints messages when the user adds or removes nodes. Signed-off-by: Sunil Mushran commit 18c50cb0d3c293eabd6c2ef89c43f2a968e709ed Author: Sunil Mushran Date: Wed Oct 6 18:26:59 2010 -0700 ocfs2/cluster: Print messages when adding/removing heartbeat regions Prints messages when the user adds or removes heartbeat regions in global heartbeat mode. These messages are useful when debugging cluster related issues. Signed-off-by: Sunil Mushran commit 18cfdf1b1a8e83b09e4185c02396257ce7e7bee3 Author: Sunil Mushran Date: Thu Oct 7 16:47:03 2010 -0700 ocfs2/dlm: Add message DLM_QUERY_NODEINFO Adds new dlm message DLM_QUERY_NODEINFO that sends the attributes of all registered nodes. This message is sent if the negotiated dlm protocol is 1.1 or higher. If the information of the joining node does not match that of any existing nodes, the join domain request is rejected. Signed-off-by: Sunil Mushran commit 5f3c6d9c615770708df464c170316f83cf437242 Author: Sunil Mushran Date: Wed Oct 6 17:55:29 2010 -0700 ocfs2: Print message if user mounts without starting global heartbeat In global heartbeat mode, the heartbeat is started by the user. This patch prints an error if the user attempts to mount a volume without starting the heartbeat. Signed-off-by: Sunil Mushran commit ea2034416b54700e30371f2ad6517cbb94674083 Author: Sunil Mushran Date: Sat Oct 9 10:26:23 2010 -0700 ocfs2/dlm: Add message DLM_QUERY_REGION Adds new dlm message DLM_QUERY_REGION that sends the names of all active heartbeat regions. This message is only sent in the global heartbeat mode. If the regions in the joining node do not fully match the ones in the active nodes, the join domain request is rejected. Signed-off-by: Sunil Mushran commit b3c85c4cdf77154acc940dd0f14d1fb99cbbaf75 Author: Sunil Mushran Date: Thu Oct 7 14:31:06 2010 -0700 ocfs2/cluster: Get all heartbeat regions Export function in o2hb to get a list of heartbeat regions. It also adds an upper limit to the length of the heartbeat region name. o2hb_global_heartbeat_active() currently disables global heartbeat. It will be enabled in a later patch after all the code is added. Signed-off-by: Sunil Mushran commit b1365d0bd14b912cceb424cbeed9fe939a9038e3 Author: Sunil Mushran Date: Wed Oct 6 17:55:34 2010 -0700 ocfs2/dlm: Expose dlm_protocol in dlm_state Add dlm_protocol to the list of info shown by the debugfs file, dlm_state. Signed-off-by: Sunil Mushran commit 2c442719e90a44a6982c033d69df4aae4b167cfa Author: Sunil Mushran Date: Thu Oct 7 15:23:50 2010 -0700 ocfs2: Add support for heartbeat=global mount option Adds support for heartbeat=global mount option. It ensures that the heartbeat mode passed matches the one enabled on disk. Signed-off-by: Sunil Mushran commit 98f486f23bc5b6a6fa90e1a0707b7e9fe0e7f3e4 Author: Sunil Mushran Date: Sat Oct 9 10:24:46 2010 -0700 ocfs2: Add an incompat feature flag OCFS2_FEATURE_INCOMPAT_CLUSTERINFO OCFS2_FEATURE_INCOMPAT_CLUSTERINFO allows us to use sb->s_cluster_info for both userspace and o2cb cluster stacks. It also allows us to extend cluster info to include stack flags. This patch also adds stackflags to sb->s_clusterinfo. It also introduces a clusterinfo flag OCFS2_CLUSTER_O2CB_GLOBAL_HEARTBEAT to denote the enabled global heartbeat mode. This incompat flag can be set/cleared using tunefs.ocfs2 --fs-features. The clusterinfo flag is set/cleared using tunefs.ocfs2 --update-cluster-stack. Signed-off-by: Sunil Mushran commit 54b5187b5a1ad6573ade8b18e065dda92501fc52 Author: Sunil Mushran Date: Thu Oct 7 15:26:08 2010 -0700 ocfs2/cluster: Add heartbeat mode configfs parameter Add heartbeat mode parameter to the configfs tree. This will be used to set/show the heartbeat mode. The user is free to toggle the mode between local and global as long as there is no active heartbeat region. Signed-off-by: Sunil Mushran commit cf9768d6a3f901b00fc9d8ecdf8e506d7cbcae99 Author: Wey-Yi Guy Date: Wed Oct 6 16:39:18 2010 -0700 iwlagn: add define for MODULE_FIRMWARE Adding MODULE_FIRMWARE define for 130 series of devices Signed-off-by: Wey-Yi Guy commit d9d9a5194bb96d60fc846c94c602c874802e107d Author: Wey-Yi Guy Date: Wed Oct 6 16:39:17 2010 -0700 iwlagn: fix module firmware name for 130 series device 130 series device should use firmware name with 130 in it. Signed-off-by: Wey-Yi Guy commit 546add79468183f266c75c632c96e4b0029e0d96 Author: Krzysztof Piotr Oledzki Date: Wed Oct 6 14:28:22 2010 -0700 bonding: reread information about speed and duplex when interface goes up When an interface was enslaved when it was down, bonding thinks it has speed -1 even after it goes up. This leads into selecting a wrong active interface in active/backup mode on mixed 10G/1G or 1G/100M environment. before: bonding: bond0: link status definitely up for interface eth5, 100 Mbps full duplex. bonding: bond0: link status definitely up for interface eth0, 100 Mbps full duplex. after: bonding: bond0: link status definitely up for interface eth5, 10000 Mbps full duplex. bonding: bond0: link status definitely up for interface eth0, 1000 Mbps full duplex. Signed-off-by: Krzysztof Piotr Oledzki Signed-off-by: David S. Miller commit 700c2a779e6d5a60e2ef4716e75ea7f41546602f Author: Krzysztof Piotr Oledzki Date: Wed Oct 6 14:25:06 2010 -0700 bonding: print information about speed and duplex seen by the driver before: bonding: bond0: link status definitely up for interface eth5 bonding: bond0: link status definitely up for interface eth0 after: bonding: bond0: link status definitely up for interface eth5, 100 Mbps full duplex. bonding: bond0: link status definitely up for interface eth0, 100 Mbps full duplex. Signed-off-by: Krzysztof Piotr Oledzki Signed-off-by: David S. Miller commit 4f5157307652f1cbff2413b5e81ebcadd8e2524b Author: Dmitry Kravkov Date: Wed Oct 6 03:35:11 2010 +0000 bnx2x: update version to 1.60.00-1 Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 6fe8bce7b3b69835e8049106947db6b0f1f3a8d8 Author: Dmitry Kravkov Date: Wed Oct 6 03:35:03 2010 +0000 bnx2x: properly initialize FW stats Client statistics need to be initialized to -1 Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit f85582f8c48addd8166727ef692d88b0ff618c5e Author: Dmitry Kravkov Date: Wed Oct 6 03:34:21 2010 +0000 bnx2x: code beautify This patch does not include any functional changes. The changes are: empty lines, indentation and comments. Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit c2bff63fad94eeecf59e4ba8e4cb51688ccae1ec Author: Dmitry Kravkov Date: Wed Oct 6 03:33:18 2010 +0000 bnx2x, cnic: Fix SPQ return credit Return proper L2 and L5 SPQ (slow path queue) credits. Previously, all SPQ events were counted as L5 types. Signed-off-by: Dmitry Kravkov Signed-off-by: Michael Chan Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit d6214d7aaa9a82b206dac9e3b0665c49c522a271 Author: Dmitry Kravkov Date: Wed Oct 6 03:32:10 2010 +0000 bnx2x: move msix table initialization to probe() Decide which interrupt mode to use (MSI-X, MSI, INTa) only once in probe() and initialize appropriate structures. Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 217de5aaed833982c420fc37d82272d84eaefe64 Author: Dmitry Kravkov Date: Wed Oct 6 03:31:20 2010 +0000 bnx2x: use L1_CACHE_BYTES instead of magic number Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 4bca60f44b4adca3197f61294956edda5bf9acea Author: Dmitry Kravkov Date: Wed Oct 6 03:30:27 2010 +0000 bnx2x: use proper constants for dma_unmap* calls Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit c518cd1c7aca2e2a65edcf4fa5ce4160d59878c2 Author: Dmitry Kravkov Date: Wed Oct 6 03:29:41 2010 +0000 bnx2x: remove unused fields in main driver structure Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 749a85033ec7c5c0fa54a0023fd5d59eb5e57a20 Author: Dmitry Kravkov Date: Wed Oct 6 03:29:05 2010 +0000 bnx2x: remove unused parameter in reuse_rx_skb() Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit f2e0899f0f275cc3f5e9c9726178d7d0ac19b2db Author: Dmitry Kravkov Date: Wed Oct 6 03:28:26 2010 +0000 bnx2x: Add 57712 support 57712 HW supported with same set of features as for 57710/57711 Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 8fe23fbd94af5a4c117fd0eb2f1c3f492f79efe8 Author: Dmitry Kravkov Date: Wed Oct 6 03:27:41 2010 +0000 bnx2x: change type of spq_left to atomic The field is now accessed from different contexts. Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit fb3bff178e722fe88b5ab02319c9636da0980e25 Author: Dmitry Kravkov Date: Wed Oct 6 03:26:40 2010 +0000 bnx2x: rename MF related fields MF (multi-function) mode supported not only by 57711E (E1H) devices, but also by coming 57712E, then we use more generic names. Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 6f7aeeec7e142caf30e3b420c2411ad85f23b9f5 Author: Dmitry Kravkov Date: Wed Oct 6 15:25:08 2010 +0200 bnx2x: remove old FW files Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 523224a3b3cd407ce4e6731a087194e13a90db18 Author: Dmitry Kravkov Date: Wed Oct 6 03:23:26 2010 +0000 bnx2x, cnic, bnx2i: use new FW/HSI This is the new FW HSI blob and the relevant definitions without logic changes. It also included code adaptation for new HSI. New features are not enabled. New FW/HSI includes: - Support for 57712 HW - Future support for VF (not used) - Improvements in FW interrupts scheme - FW FCoE hooks (stubs for future usage) Signed-off-by: Dmitry Kravkov Signed-off-by: Michael Chan Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 0c5b77152e736d23a23eb2546eab323e27a37f52 Author: Dmitry Kravkov Date: Wed Oct 6 14:10:08 2010 -0700 bnx2x: add 6.0.34 fw files New firmware files for all bnx2x devices Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 560131f313ea9b9439742138289b6f68d61531ec Author: Dmitry Kravkov Date: Wed Oct 6 03:18:47 2010 +0000 bnx2x: create folder for bnx2x firmware files Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 541a78103f097cd5120e55aaba56d099a64f153c Author: Michael Chan Date: Wed Oct 6 03:17:22 2010 +0000 cnic: Fine-tune ring init code. Initialize the rings only during cnic_uio_open() and shut them down during cnic_uio_close(). Check for the new bit CNIC_LCL_FL_RINGS_INITED before checking for ring interrupt. Signed-off-by: Michael Chan Signed-off-by: Dmitry Kravkov Signed-off-by: David S. Miller commit 1420398db4d5e236583d3ab392637df255bd5c6b Author: Michael Chan Date: Wed Oct 6 03:16:06 2010 +0000 cnic: Use pfid for internal memory offsets. The pfid (physical function ID) is the same as PCI function on production devices. The pfid for future devices will be different and will be used for internal memory offsets. Signed-off-by: Michael Chan Signed-off-by: Dmitry Kravkov Signed-off-by: David S. Miller commit ceb7e1c7c5ab86ca686d523f99ca473a1f3a984d Author: Michael Chan Date: Wed Oct 6 03:14:54 2010 +0000 cnic: Pass cp pointer to BNX2X_HW_CID. Preparation work for upcoming firmware interface changes. Signed-off-by: Michael Chan Signed-off-by: Dmitry Kravkov Signed-off-by: David S. Miller commit 85407885d5d8e9eed9be8e4d33c519646b90d09f Author: Matt Carlson Date: Wed Oct 6 13:40:58 2010 -0700 [PATCH net-next] tg3: Set real_num_rx_queues for non-multiq devs Commit 2ddaad397c47de012dfb956b0c05540da1a0dde5 entitled "tg3: Use netif_set_real_num_{rx,tx}_queues()" added a new call to netif_set_real_num_rx_queues in tg3_enable_msix(). This call also needs to be added to the legacy path to correctly reflect the actual number of rx queues. Signed-off-by: Matt Carlson Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 494486f8fd0eec956c5df823581df5dcf5409a6f Author: John W. Linville Date: Wed Oct 6 16:40:40 2010 -0400 mac80211: avoid uninitialized var warning in ieee80211_scan_cancel net/mac80211/scan.c: In function ‘ieee80211_scan_cancel’: net/mac80211/scan.c:794: warning: ‘finish’ may be used uninitialized in this function Signed-off-by: John W. Linville commit 3207390a8b58bfc1335750f91cf6783c48ca19ca Author: Johannes Berg Date: Wed Oct 6 21:18:04 2010 +0200 cfg80211: fix BSS double-unlinking When multiple interfaces are actively trying to associate with the same BSS, they may both find that the BSS isn't there and then try to unlink it. This can cause errors since the unlinking code can't currently deal with items that have already been unlinked. Normally this doesn't happen as most people don't try to use multiple station interfaces that associate at the same time too. Fix this by using the list entry as a flag to see if the item is still on a list. Cc: stable@kernel.org Reported-by: Ben Greear Tested-by: Hun-Kyi Wynn Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b206b4ef062d83c0875a085672ed50e8c8b01521 Author: Bruno Randolf Date: Wed Oct 6 18:34:12 2010 +0900 nl80211/mac80211: Add retry and failed transmission count to station info This information is already available in mac80211, we just need to export it via cfg80211 and nl80211. Signed-off-by: Bruno Randolf Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 09be251e9005ebd67e5eabcaad904edb7ecacc55 Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:13 2010 +0200 Revert "iwlwifi: do not perferm force reset while doing scan" This reverts commit 7acc7c683a747689aaaaad4fce1683fc3f85e552. It was applied to avoid possible warning in ieee80211_restart_hw, however reason of the warning were races in mac80211, currently hopefully fixed. Not reseting device when performing scan is bad for two reasons. When forcing reset from iwl_check_stuck_queue(), in case of fail, reset will be repeated until scan finish. But since firmware is in bad shape, scan only finish after scan_check work (about 7s). So we will delay the reset, what is not good behaviour. When forcing reset from iwl_recover_from_statistics(), we will not repeat the reset, so we will not perform reset at all when needed. Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 3aed49ef17c7bc8397420529ac976fe058818e3d Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:12 2010 +0200 mac80211: compete scan to cfg80211 if deferred scan fail to start We nulify local->scan_req on failure in __ieee80211_start_scan, so __ieee80211_scan_completed will not call cfg80211_scan_done. Fix that. Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 6eb11a9a311a0f7e5b9b66c18f7498a26c9ec206 Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:11 2010 +0200 mac80211: do not requeue scan work when not needed When performing hw scan and not abort it, __ieee80211_scan_completed() is currently called from scan work, so does not need to reschedule work to call drv_hw_scan(). Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 4136c4224ccf1907d309e1cdfaefef9da97dbc5e Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:10 2010 +0200 mac80211: assure we also cancel deferred scan request This is partial revert and fix for commit 85f72bc839705294b32b6c16b491c0422f0a71b3 "mac80211: only cancel software-based scans on suspend" When cfg80211 request the scan and mac80211 perform some management work, we defer the scan request. We do not canceling such requests when calling ieee80211_scan_cancel(), because of SCAN_SW_SCANNING bit check just before the call. So fix that problem. Another problem, which commit 85f72bc839705294b32b6c16b491c0422f0a71b3 tries to solve, is we can not cancel HW scan. Hence patch make ieee80211_scan_cancel() ignore HW scan (see code comments). Keeping local->mtx lock assures that the deferred scan will not become "working" HW scan. Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit e229f844d7223b7063bea1e649203ac521a58fe1 Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:09 2010 +0200 mac80211: keep lock when calling __ieee80211_scan_completed() We are taking local->mtx inside __ieee80211_scan_completed(), but just before call to that function we drop the lock. Dropping/taking lock is not good, because can lead to hard to understand race conditions. Patch split scan_completed() code into two functions, first must be called with local->mtx taken and second without it. Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 259b62e35bf44a97983f275de569929a7d2bd5dd Author: Stanislaw Gruszka Date: Wed Oct 6 11:22:08 2010 +0200 mac80211: reduce number of __ieee80211_scan_completed calls Use goto instruction to call __ieee80211_scan_completed only ones in ieee80211_scan_work. This is prepare for the next patch. Signed-off-by: Stanislaw Gruszka Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 78159788e1d0909ffa6beb714dcca7f3aa4574a2 Author: RafaƂ MiƂecki Date: Wed Oct 6 07:50:08 2010 +0200 b43: N-PHY: don't duplicate setting channel in shared memory It's already set in PHY common code. Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 106cb09a145a5c6d8e206af41284c300b13c408c Author: RafaƂ MiƂecki Date: Wed Oct 6 07:50:07 2010 +0200 b43: define B43_SHM_SH_CHAN_40MHZ Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 5e7ee098ce2795e0c2628686dd97fc64bcc11594 Author: RafaƂ MiƂecki Date: Wed Oct 6 07:50:06 2010 +0200 b43: N-PHY: simplify channel switching Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit d537f5fdfcc9c57c1e3b9fb316a4bed2bf7597e7 Author: Johannes Berg Date: Tue Oct 5 21:34:11 2010 +0200 nl80211: fix error in generic netif_running check Yikes! The error return keeps a netdev reference and the rdev mutex locked, fix that! Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit e31b82136d1adc7a599b6e99d3321e5831841f5a Author: Johannes Berg Date: Tue Oct 5 19:39:30 2010 +0200 cfg80211/mac80211: allow per-station GTKs This adds API to allow adding per-station GTKs, updates mac80211 to support it, and also allows drivers to remove a key from hwaccel again when this may be necessary due to multiple GTKs. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d Author: Johannes Berg Date: Tue Oct 5 19:37:40 2010 +0200 mac80211: avoid transmitting delBA to old AP When roaming while we have active BA session, we can end up transmitting delBA frames to the old AP while we're already on the new AP's channel, which can cause warnings. Simply avoid sending those frames, but still tear down the internal session state, since they are not really necessary anyway as we will implicitly disassociate when sending the association to the new AP. Signed-off-by: Johannes Berg Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 845d708e62f08a45ff716fdb270c52585cad31d0 Author: Senthil Balasubramanian Date: Tue Oct 5 20:36:41 2010 +0530 ath9k: Introduce a wrapper for power save disable. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit fbab7390f954e3517c72d12cfd9a1502699aa368 Author: Senthil Balasubramanian Date: Tue Oct 5 20:36:40 2010 +0530 ath9k: remove unnecessary power save flags. drv_config callback is called only after the ack for the nullframe is received and so driver need not do anything special for this. So remove NULLFUNC_COMPLETED, PS_ENABLED flags and bf_isnullfunc flags from ath9k as mac80211 already handles them properly. Signed-off-by: Senthil Balasubramanian Signed-off-by: John W. Linville commit 95792178a58716a6afaeb5ab9654f1a0f17a5e8e Author: Felix Fietkau Date: Mon Oct 4 20:09:50 2010 +0200 ath9k_hw: merge ath9k_hw_ani_monitor_old and ath9k_hw_ani_monitor_new After the last rounds of cleanup, these functions are now functionally equivalent and can thus be merged. Also get rid of some excessive (and redundant) debug messages. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 8eb4980c33c35e97a0a226fdbc07e38da0f1f4aa Author: Felix Fietkau Date: Mon Oct 4 20:09:49 2010 +0200 ath9k_hw: remove function pointer abstraction for internal ANI ops The code gets more concise and readable when making the new ANI functions fall back to the old ones if ANI v2 is disabled. This also makes further code cleanup easier. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit bfc472bb736bf309158ea76897d255a283d0d31c Author: Felix Fietkau Date: Mon Oct 4 20:09:48 2010 +0200 ath9k_hw: remove code duplication in phy error counter handling Split out the PHY error counter update from ath9k_hw_ani_monitor_*, reuse it in ath9k_hw_proc_mib_event (merged from ath9k_hw_proc_mib_event_old and ath9k_hw_proc_mib_event_new). Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 093115b7fd641f03d89404252044c976928764cb Author: Felix Fietkau Date: Mon Oct 4 20:09:47 2010 +0200 ath9k_hw: clean up ANI state handling ANI state is kept per channel, so instead of keeping an array of ANI states with an arbitrary size of 255, move the ANI state into the channel struct. Move some config settings that are not per-channel out of the per-channel struct to save some memory. With those changes, ath9k_ani_restart_old and ath9k_ani_restart_new can be merged into a single function. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 71ea420992149294e74da3fa34ca8f111326bb6d Author: Felix Fietkau Date: Mon Oct 4 20:09:46 2010 +0200 ath9k_hw: add a helper function to check for the new ANI implementation Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 435c1610f46dc4d86a6633adb037b18109e6ffdc Author: Felix Fietkau Date: Tue Oct 5 12:03:42 2010 +0200 ath9k_hw: clean up register write buffering Throughout the code, DISABLE_REGWRITE_BUFFER is always called right after REGWRITE_BUFFER_FLUSH. Since that's unlikely to change any time soon, that makes keeping those ops separate rather pointless, as it only increases code size and line number counts. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 9dbebc7fd07ab66341dce8d001272db400c11e03 Author: Felix Fietkau Date: Sun Oct 3 19:07:17 2010 +0200 ath9k_hw: merge codepaths that access the cycle counter registers The cycle counters are used by ANI to determine the amount of time that the radio spent not receiving or transmitting. They're also used for debugging purposes if the baseband watchdog on AR9003 detects a lockup. In the future, we want to use these counters to determine the medium utilization and export this information via survey. For that, we need to make sure that the counter is only accessed from one place, which also ensures that wraparounds won't occur at inconvenient points in time. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 6497827f53eb90dcf30c5d6414c83238f722e8ae Author: Felix Fietkau Date: Sun Oct 3 19:07:16 2010 +0200 ath9k_hw: clean up calibration flags The calibration actual calibration flags are only used by the per chip family source files, so it makes more sense to define them in those files instead of globally. That way the code has to test for less flags. Also instead of using a separate callback for testing whether a particular calibration type is supported, simply adjust ah->supp_cals in the calibration init which is called right after the hardware reset, before any of the calibrations are run. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 373426cac0cbb7f762018127803dcd70838e2cdf Merge: 46bf695 4427148 Author: John W. Linville Date: Wed Oct 6 16:25:52 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 42560ca0616d26c15ff626590101806b99ac95bb Merge: b7ee31c e0e9b40 Author: David S. Miller Date: Wed Oct 6 13:07:22 2010 -0700 Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost commit c9928f7040a6e5f39e028bea500e0fde910d4a96 Author: Shirish Pargaonkar Date: Mon Oct 4 19:56:13 2010 -0500 ntlm authentication and signing - Correct response length for ntlmv2 authentication without extended security Fix incorrect calculation of case sensitive response length in the ntlmv2 (without extended security) response. Signed-off-by: Shirish Pargaonkar Signed-off-by: Steve French commit 29e07c82a9e8acebbb38ecc22b0b5005a0a5d839 Author: Jeff Layton Date: Wed Sep 29 19:51:12 2010 -0400 cifs: fix cifs_show_options to show "username=" or "multiuser" ...based on CIFS_MOUNT_MULTIUSER flag. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 6508d904e6fb66ce4c34617f72b38d6714c4b9f6 Author: Jeff Layton Date: Wed Sep 29 19:51:11 2010 -0400 cifs: have find_readable/writable_file filter by fsuid When we implement multiuser mounts, we'll need to filter filehandles by fsuid. Add a flag for multiuser mounts and code to filter by fsuid when it's set. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 13cfb7334eb6fd0fc06da5589aea1e947791f1d6 Author: Jeff Layton Date: Wed Sep 29 19:51:11 2010 -0400 cifs: have cifsFileInfo hold a reference to a tlink rather than tcon pointer cifsFileInfo needs a pointer to a tcon, but it doesn't currently hold a reference to it. Change it to keep a pointer to a tcon_link instead and hold a reference to it. That will keep the tcon from being freed until the file is closed. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 7ffec372458d163492e56e663a1b3a2d7be0a0a2 Author: Jeff Layton Date: Wed Sep 29 19:51:11 2010 -0400 cifs: add refcounted and timestamped container for holding tcons Eventually, we'll need to track the use of tcons on a per-sb basis, so that we know when it's ok to tear them down. Begin this conversion by adding a new "tcon_link" struct and accessors that get it. For now, the core data structures are untouched -- cifs_sb still just points to a single tcon and the pointers are just cast to deal with the accessor functions. A later patch will flesh this out. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 5d73c53b786665f991f70be01a51a23233aeb44f Author: Gregory Bean Date: Wed Sep 29 13:46:45 2010 -0700 msm: qsd8x50: enable ethernet. Configure the smc91x ethernet chip on the qsd8x50 SURF. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 26cc66607189ac544edad04927f506599d990f0f Author: Gregory Bean Date: Fri Sep 10 15:03:37 2010 -0700 msm: gpio: Add gpiomux calls to request and free. Add gpiomux get and put calls to msmgpio request and free, in order to allow gpio lines to be properly reference-counted and power-managed. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 2783cc265cc57c4bbf788b75fa8c3f06259dffd1 Author: Gregory Bean Date: Fri Sep 10 15:03:36 2010 -0700 msm: add gpio driver for single-core SoCs. Install a gpiolib driver supporting the on-chip gpios for single-core MSMs in the 7x00 family, including 7x00A, 7x25, 7x27, 7x30, 8x50, and 8x50a. As part of the ongoing effort to converge on a common code base, this driver is based on the Google-Android msmgpio driver, whose authors include Brian Swetland and Arve HjĂžnnevĂ„g. Cc: Arve HjĂžnnevĂ„g Cc: H Hartley Sweeten Cc: Ryan Mallon Cc: Ben Dooks Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit ab78cde589e89afa039a13bc75d23d249f1c1200 Author: Gregory Bean Date: Wed Sep 1 16:26:12 2010 -0700 msm: Featurize gpiomux. Featurize gpiomux so that systems like 7x00 which do not wish to use it do not have to be saddled with the configuration tables. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 10c4580e798838fd63eafec5ed304b7ace6db020 Author: Gregory Bean Date: Sat Aug 28 10:05:48 2010 -0700 msm: gpio: Remove tlmm routines obsoleted by gpiomux. Now that all supported gpio_tlmm_config-using boards are using gpiomux, remove the deprecated code. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 224f6de46ab05677f1fbfa7e384938639ff3f691 Author: Gregory Bean Date: Sat Aug 28 10:05:47 2010 -0700 msm: convert 7x30 to gpiomux. Change deprecated gpio_tlmm_config calls to gpiomux calls. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit dd22b8f703d7a9aa5e40a7741b7e84fb0bb025d6 Author: Gregory Bean Date: Sat Aug 28 10:05:46 2010 -0700 msm: convert 8x50 to gpiomux. Change the gpio-init code from deprecated gpio_tlmm_config to the new gpiomux api. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 70816e2ca526cfe21ce884ecae057a9c1725ad27 Author: Gregory Bean Date: Sat Aug 28 10:05:45 2010 -0700 msm: documentation: add gpiomux documentation. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 1963a2afc81afe6d85e7a12538b74a9919d958ae Author: Gregory Bean Date: Sat Aug 28 10:05:44 2010 -0700 msm: add gpiomux api for gpio multiplex & configuration. Add the 'gpiomux' api, which addresses the following shortcomings of existing tlmm api: - gpio power-collapse, which is managed by a peripheral processor on other targets, must be managed by the application processor on the 8x60. - The enable/disable flag of the legacy gpio_tlmm_config api is not applicable on the 8x60, and causes confusion. - The gpio 'direction' bits are meaningless for all func_sel configurations except for generic-gpio mode (func_sel 0), in which case the gpio_direction_* functions should be used. Having these bits in the tlmm api leads to confusion and misuse of the gpiolib api, and they have been removed in gpiomux. - The functional api of the legacy system ran contrary to the typical use-case, which is a single massive configuration at boot. Rather than forcing hundreds of 'config' function calls, the new api allows data to be configured with a single table. gpiomux_get and gpiomux_put are meant to be called automatically when gpio_request and gpio_free are called, giving automatic gpiomux/tlmm control to those drivers/lines with simple power profiles - in the simplest cases, an entry in the gpiomux table and the correct usage of gpiolib is all that is required to get proper gpio power control. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 846afbd1fe015e082c89d56dd42c484d896ef58e Author: Abhijeet Dharmapurikar Date: Tue Aug 24 21:57:33 2010 -0700 GIC: Dont disable INT in ack callback Masking in the ack callback fails to work with handle_percpu_irq and handle_edge_irq. The interrupt stays disabled after the first invocation since percpu and edge irq do not unmask an interrupt after handling it. For handle_level_irq masking in the ack is redundant because ack is always called after mask in the mask_ack function. Masking in the ack function is required only when __do_IRQ was used instead of flow handlers, but using __do_IRQ has been deprecated. Remove the masking of interrupt from the ack callback. Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 58a39090a13cf296afc17ed8fd793a55340b63db Author: Wey-Yi Guy Date: Wed Oct 6 08:14:21 2010 -0700 iwlagn: define 130 series of WiFi/BT combo devices add new structures and defines need to identify 130 devices. Signed-off-by: Wey-Yi Guy commit 898dade1162970fe7af45e47062f9d1d999c46e6 Author: Wey-Yi Guy Date: Mon Sep 20 09:12:33 2010 -0700 iwlagn: rename iwl5000_tx_resp iwl5000_tx_resp really should be iwlagn_tx_resp, rename it. Signed-off-by: Wey-Yi Guy commit a8029bb79ec6de4acab5a6d3b931990152e8d5c1 Author: Wey-Yi Guy Date: Mon Sep 20 09:12:32 2010 -0700 iwlwifi: remove uncorrect comments some structure belong to _agn devices, not just 5000. Fix it. Signed-off-by: Wey-Yi Guy commit ab63c68adaabb670f0513d5b63f3b233b16ea8b4 Author: Wey-Yi Guy Date: Mon Sep 20 09:12:31 2010 -0700 iwlagn: rename iwl5000_tx_power_dbm_cmd iwl5000_tx_power_dbm_cmd really should be iwlagn_tx_power_dbm_cmd, so rename it. Signed-off-by: Wey-Yi Guy commit 7cb1b0887fcc61918e3d64827fbef968bb67a57a Author: Wey-Yi Guy Date: Wed Oct 6 08:10:00 2010 -0700 iwlagn: reduce redundant parameter definitions move paramater definitions to a device paramater structure only leaving the device name, which antennas are used and what firmware file to use in the iwl_cfg structure. this will not completely remove the redundancies but greatly reduce them for devices that only vary by name or antennas. the parameters that are more likely to change within a given device family are left in iwl_cfg. also separate bt param structure added to help reduce more. Signed-off-by: Jay Sternberg Signed-off-by: Wey-Yi Guy commit 72645eff4b2ad6cf2b016b54f9d6817cca0a621d Author: Wey-Yi Guy Date: Wed Oct 6 07:42:43 2010 -0700 iwlwifi: schedule to deprecate software scan support Hardware scan is the prefer method for all iwlwifi devices; especially for dual-mode functions. Schedule to deprecate the software scan support in kernel 2.6.40 Signed-off-by: Wey-Yi Guy commit 134669854e3a680d8aad9a4047891c653715f4c0 Author: Steven Whitehouse Date: Wed Oct 6 09:58:44 2010 +0100 GFS2: Fix type mapping for demote_rq interface Mostly the glock operations follow the type of the glock. The one exception is the transaction glock, so we need to check for that directly. Reported-by: Dr. David Alan Gilbert Signed-off-by: Steven Whitehouse commit 161b0275e2311b8bd9609d5f32e2b703cf5d70a8 Author: Jeremy Fitzhardinge Date: Thu Sep 2 19:35:22 2010 -0700 x86, mm: Add RESERVE_BRK_ARRAY() helper This is useful when converting static arrays into boot-time brk allocated objects. Signed-off-by: Jeremy Fitzhardinge LKML-Reference: <4C805EEA.1080205@goop.org> Signed-off-by: H. Peter Anvin commit 16c36f743bf8481d0ba40a6de0af11736095d7cf Author: Yinghai Lu Date: Mon Oct 4 14:58:04 2010 -0700 x86, memblock: Remove __memblock_x86_find_in_range_size() Fold it into memblock_x86_find_in_range(), and change bad_addr_size() to check_reserve_memblock(). So whole memblock_x86_find_in_range_size() code is more readable. Signed-off-by: Yinghai Lu LKML-Reference: <4CAA4DEC.4000401@kernel.org> Signed-off-by: H. Peter Anvin commit f1af98c7629a1b76fd7336decbc776acdeed2120 Author: Yinghai Lu Date: Mon Oct 4 14:57:39 2010 -0700 memblock: Fix wraparound in find_region() When trying to find huge range for crashkernel, get [ 0.000000] ------------[ cut here ]------------ [ 0.000000] WARNING: at arch/x86/mm/memblock.c:248 memblock_x86_reserve_range+0x40/0x7a() [ 0.000000] Hardware name: Sun Fire x4800 [ 0.000000] memblock_x86_reserve_range: wrong range [0xffffffff37000000, 0x137000000) [ 0.000000] Modules linked in: [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.36-rc5-tip-yh-01876-g1cac214-dirty #59 [ 0.000000] Call Trace: [ 0.000000] [] ? memblock_x86_reserve_range+0x40/0x7a [ 0.000000] [] warn_slowpath_common+0x85/0x9e [ 0.000000] [] warn_slowpath_fmt+0x6e/0x70 [ 0.000000] [] ? memblock_find_region+0x40/0x78 [ 0.000000] [] ? memblock_find_base+0x9a/0xb9 [ 0.000000] [] memblock_x86_reserve_range+0x40/0x7a [ 0.000000] [] setup_arch+0x99d/0xb2a [ 0.000000] [] ? trace_hardirqs_off+0xd/0xf [ 0.000000] [] ? _raw_spin_unlock_irqrestore+0x3d/0x4c [ 0.000000] [] start_kernel+0xde/0x3f1 [ 0.000000] [] x86_64_start_reservations+0xa0/0xa4 [ 0.000000] [] x86_64_start_kernel+0x106/0x10d [ 0.000000] ---[ end trace a7919e7f17c0a725 ]--- [ 0.000000] Reserving 8192MB of memory at 17592186041200MB for crashkernel (System RAM: 526336MB) This is caused by a wraparound in the test due to size > end; explicitly check for this condition and fail. Signed-off-by: Yinghai Lu LKML-Reference: <4CAA4DD3.1080401@kernel.org> Signed-off-by: H. Peter Anvin commit 1d931264af0f10649b35afa8fbd2e169da51ac08 Author: Yinghai Lu Date: Tue Oct 5 16:15:15 2010 -0700 x86-32, memblock: Make add_highpages honor early reserved ranges Originally the only early reserved range that is overlapped with high pages is "KVA RAM", but we already do remove that from the active ranges. However, It turns out Xen could have that kind of overlapping to support memory ballooning.x So we need to make add_highpage_with_active_regions() to subtract memblock reserved just like low ram; this is the proper design anyway. In this patch, refactering get_freel_all_memory_range() to make it can be used by add_highpage_with_active_regions(). Also we don't need to remove "KVA RAM" from active ranges. Signed-off-by: Yinghai Lu LKML-Reference: <4CABB183.1040607@kernel.org> Signed-off-by: H. Peter Anvin commit 9f4c13964b58608fbce05540743281ea3146c0e8 Author: Yinghai Lu Date: Tue Oct 5 16:05:14 2010 -0700 x86, memblock: Fix crashkernel allocation Cai Qian found crashkernel is broken with the x86 memblock changes. 1. crashkernel=128M@32M always reported that range is used, even if the first kernel is small and does not usethat range 2. we always got following report when using "kexec -p" Could not find a free area of memory of a000 bytes... locate_hole failed The root cause is that generic memblock_find_in_range() will try to allocate from the top of the range, whereas the kexec code was written assuming that allocation was always near the bottom and that it could blindly extend memory upward. Unfortunately the kexec code doesn't have a system for requesting the range that it really needs, so this is subject to probabilistic failures. This patch hacks around the problem by limiting the target range heuristically to below the traditional bzImage max range. This number is arbitrary and not always correct, and a much better result would be obtained by having kexec communicate this number based on the kernel header information and any appropriate command line options. Reported-and-Bisected-by: CAI Qian Signed-off-by: Yinghai Lu LKML-Reference: <4CABAF2A.5090501@kernel.org> Cc: Vivek Goyal Signed-off-by: H. Peter Anvin commit b7ee31c5af7f04b67d8b8e4f3b2bcb8bcfced8a3 Author: Rasesh Mody Date: Tue Oct 5 15:46:05 2010 +0000 bna: scope and dead code cleanup As suggested by Stephen Hemminger: 1) Made functions and data structures static wherever possible. 2) Removed unused code. Signed-off-by: Debashis Dutt Signed-off-by: Rasesh Mody Signed-off-by: David S. Miller commit e2fa6f2ef6e48666b78d4b0f00914b06bb19d298 Author: Rasesh Mody Date: Tue Oct 5 15:46:04 2010 +0000 bna: fix interrupt handling This fix handles the case when IRQ handler is called (for shared IRQs) even before the driver is ready to handle interrupts. Signed-off-by: Debashis Dutt Signed-off-by: Rasesh Mody Signed-off-by: David S. Miller commit ebc0ffae5dfb4447e0a431ffe7fe1d467c48bbb9 Author: Eric Dumazet Date: Tue Oct 5 10:41:36 2010 +0000 fib: RCU conversion of fib_lookup() fib_lookup() converted to be called in RCU protected context, no reference taken and released on a contended cache line (fib_clntref) fib_table_lookup() and fib_semantic_match() get an additional parameter. struct fib_info gets an rcu_head field, and is freed after an rcu grace period. Stress test : (Sending 160.000.000 UDP frames on same neighbour, IP route cache disabled, dual E5540 @2.53GHz, 32bit kernel, FIB_HASH) (about same results for FIB_TRIE) Before patch : real 1m31.199s user 0m13.761s sys 23m24.780s After patch: real 1m5.375s user 0m14.997s sys 15m50.115s Before patch Profile : 13044.00 15.4% __ip_route_output_key vmlinux 8438.00 10.0% dst_destroy vmlinux 5983.00 7.1% fib_semantic_match vmlinux 5410.00 6.4% fib_rules_lookup vmlinux 4803.00 5.7% neigh_lookup vmlinux 4420.00 5.2% _raw_spin_lock vmlinux 3883.00 4.6% rt_set_nexthop vmlinux 3261.00 3.9% _raw_read_lock vmlinux 2794.00 3.3% fib_table_lookup vmlinux 2374.00 2.8% neigh_resolve_output vmlinux 2153.00 2.5% dst_alloc vmlinux 1502.00 1.8% _raw_read_lock_bh vmlinux 1484.00 1.8% kmem_cache_alloc vmlinux 1407.00 1.7% eth_header vmlinux 1406.00 1.7% ipv4_dst_destroy vmlinux 1298.00 1.5% __copy_from_user_ll vmlinux 1174.00 1.4% dev_queue_xmit vmlinux 1000.00 1.2% ip_output vmlinux After patch Profile : 13712.00 15.8% dst_destroy vmlinux 8548.00 9.9% __ip_route_output_key vmlinux 7017.00 8.1% neigh_lookup vmlinux 4554.00 5.3% fib_semantic_match vmlinux 4067.00 4.7% _raw_read_lock vmlinux 3491.00 4.0% dst_alloc vmlinux 3186.00 3.7% neigh_resolve_output vmlinux 3103.00 3.6% fib_table_lookup vmlinux 2098.00 2.4% _raw_read_lock_bh vmlinux 2081.00 2.4% kmem_cache_alloc vmlinux 2013.00 2.3% _raw_spin_lock vmlinux 1763.00 2.0% __copy_from_user_ll vmlinux 1763.00 2.0% ip_output vmlinux 1761.00 2.0% ipv4_dst_destroy vmlinux 1631.00 1.9% eth_header vmlinux 1440.00 1.7% _raw_read_unlock_bh vmlinux Reference results, if IP route cache is enabled : real 0m29.718s user 0m10.845s sys 7m37.341s 25213.00 29.5% __ip_route_output_key vmlinux 9011.00 10.5% dst_release vmlinux 4817.00 5.6% ip_push_pending_frames vmlinux 4232.00 5.0% ip_finish_output vmlinux 3940.00 4.6% udp_sendmsg vmlinux 3730.00 4.4% __copy_from_user_ll vmlinux 3716.00 4.4% ip_route_output_flow vmlinux 2451.00 2.9% __xfrm_lookup vmlinux 2221.00 2.6% ip_append_data vmlinux 1718.00 2.0% _raw_spin_lock_bh vmlinux 1655.00 1.9% __alloc_skb vmlinux 1572.00 1.8% sock_wfree vmlinux 1345.00 1.6% kfree vmlinux Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit c2952c314b4fe61820ba8fd6c949eed636140d52 Author: Flavio Leitner Date: Tue Oct 5 14:23:59 2010 +0000 bonding: add retransmit membership reports tunable Allow sysadmins to configure the number of multicast membership report sent on a link failure event. Signed-off-by: Flavio Leitner Signed-off-by: David S. Miller commit e12b453904c54bbdc515778ff664d87a7f9473af Author: Flavio Leitner Date: Tue Oct 5 14:23:58 2010 +0000 bonding: fix to rejoin multicast groups immediately The IGMP specs states that if the system receives a membership report, it shouldn't send another for the next minute. However, if a link failure happens right after that, the backup slave and the switch connected to this slave will not know about the multicast and the traffic will hang for about a minute. This patch fixes it to rejoin multicast groups immediately after a failover restoring the multicast traffic. Signed-off-by: Flavio Leitner Signed-off-by: David S. Miller commit 5a37e8ca8536c47871d46c82211f399adf06fd44 Author: Flavio Leitner Date: Tue Oct 5 14:23:57 2010 +0000 bonding: rejoin multicast groups on VLANs During a failover, the IGMP membership is sent to update the switch restoring the traffic, but it misses groups added to VLAN devices running on top of bonding devices. This patch changes it to iterate over all VLAN devices on top of it sending IGMP memberships too. Signed-off-by: Flavio Leitner Signed-off-by: David S. Miller commit a8bb69f78194dc483f6c4a4bf8860c1ede35fa25 Author: Breno Leitao Date: Tue Oct 5 13:16:23 2010 +0000 ehea: converting msleeps to waitqueue on check_sqs() function Removing the msleep() call in check_sqs() function, and replacing by a wait queue. Signed-off-by: Breno Leitao Signed-off-by: David S. Miller commit 5b27d42755fa6536a89f32b107fb2a53267696c2 Author: Breno Leitao Date: Tue Oct 5 13:16:22 2010 +0000 ehea: using wait queues instead of msleep on ehea_flush_sq This patch just remove a msleep loop and change to wait queue, making the code cleaner. Signed-off-by: Breno Leitao Acked-by: David Howells Signed-off-by: David S. Miller commit 9ed51657f6ea2a08582d6a9be5404b044972b7e0 Author: Emil Tantilov Date: Tue Oct 5 13:11:30 2010 +0000 ixgbevf: declare functions as static Following patch fixes warnings reported by `make namespacecheck` Reported by Stephen Hemminger CC: Stephen Hemminger Signed-off-by: Emil Tantilov Acked-by: Greg Rose Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 4de0a7594823d04361281e34e59f2c1108899f3e Author: Tony Luck Date: Tue Oct 5 15:41:25 2010 -0700 [IA64] Initialize interrupts later (from init_IRQ()) Thomas Gleixner is cleaning up the generic irq code, and ia64 ran into problems because it calls register_intr() before early_irq_init() is called. Move the call to acpi_boot_init() from setup_arch() to init_IRQ(). As a bonus - moving the call later means we no longer need the hacks in iosapic.c to switch between the bootmem and regular allocator - we can just used kzalloc() for allocation. Signed-off-by: Tony Luck commit 3f66116e89521ef71ab0d63dc07a639def88a577 Author: Alban Crequy Date: Mon Oct 4 08:48:28 2010 +0000 AF_UNIX: Implement SO_TIMESTAMP and SO_TIMETAMPNS on Unix sockets Userspace applications can already request to receive timestamps with: setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, ...) Although setsockopt() returns zero (success), timestamps are not added to the ancillary data. This patch fixes that on SOCK_DGRAM and SOCK_SEQPACKET Unix sockets. Signed-off-by: Alban Crequy Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit d6bf781712a1d25cc8987036b3a48535b331eb91 Author: Eric Dumazet Date: Mon Oct 4 06:15:44 2010 +0000 net neigh: RCU conversion of neigh hash table David This is the first step for RCU conversion of neigh code. Next patches will convert hash_buckets[] and "struct neighbour" to RCU protected objects. Thanks [PATCH net-next] net neigh: RCU conversion of neigh hash table Instead of storing hash_buckets, hash_mask and hash_rnd in "struct neigh_table", a new structure is defined : struct neigh_hash_table { struct neighbour **hash_buckets; unsigned int hash_mask; __u32 hash_rnd; struct rcu_head rcu; }; And "struct neigh_table" has an RCU protected pointer to such a neigh_hash_table. This means the signature of (*hash)() function changed: We need to add a third parameter with the actual hash_rnd value, since this is not anymore a neigh_table field. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 110b2499370c401cdcc7c63e481084467291d556 Author: Eric Dumazet Date: Mon Oct 4 04:27:36 2010 +0000 net neigh: neigh_delete() and neigh_add() changes neigh_delete() and neigh_add() dont need to touch device refcount, we hold RTNL when calling them, so device cannot disappear under us. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit caf586e5f23cebb2a68cbaf288d59dbbf2d74052 Author: Eric Dumazet Date: Thu Sep 30 21:06:55 2010 +0000 net: add a core netdev->rx_dropped counter In various situations, a device provides a packet to our stack and we drop it before it enters protocol stack : - softnet backlog full (accounted in /proc/net/softnet_stat) - bad vlan tag (not accounted) - unknown/unregistered protocol (not accounted) We can handle a per-device counter of such dropped frames at core level, and automatically adds it to the device provided stats (rx_dropped), so that standard tools can be used (ifconfig, ip link, cat /proc/net/dev) This is a generalization of commit 8990f468a (net: rx_dropped accounting), thus reverting it. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 773e3f93577ffb493fb7c39b1a6ecf39b5748e87 Author: Paul E. McKenney Date: Tue Oct 5 14:03:02 2010 -0700 rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held As suggested by Linus, push the irqs_disabled() down to the rcu_read_lock_bh_held() level so that all callers get the benefit of the correct check. Signed-off-by: Paul E. McKenney commit 46bf695802bb090d9d0d0fec6bb5b46c24b17d4e Merge: e7480bb 4b48e68 Author: John W. Linville Date: Tue Oct 5 13:50:27 2010 -0400 Merge branch 'wireless-next' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx commit e7480bbb926c5816e4fbfca70748096bbe0e4978 Author: Luis R. Rodriguez Date: Fri Oct 1 17:05:19 2010 -0400 mac80211: fix channel assumption for association done work Be consistent and use the wk->chan instead of the local->hw.conf.channel for the association done work. This prevents any possible races against channel changes while we run this work. In the case that the race did happen we would be initializing the bit rates for the new AP under the assumption of a wrong channel and in the worst case, wrong band. This could lead to trying to assuming we could use CCK frames on 5 GHz, for example. This patch has a fix for kernels >= v2.6.34 Cc: stable@kernel.org Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 691895e7e2204be9a717809fb78d6ff7c10b470a Author: Johannes Berg Date: Tue Oct 5 16:19:42 2010 +0200 nl80211: fix remain-on-channel documentation The documentation for NL80211_CMD_REMAIN_ON_CHANNEL isn't accurate, an interface index is required by the command. Update it accordingly. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 970bf9d40c03e48cc34ee2c1a70693a0e0fca3f6 Author: Gabor Juhos Date: Tue Oct 5 11:32:17 2010 +0200 ath9k: get correct tx gain type in ath9k_hw_4k_get_eeprom The base_eep_header_4k structure contains information that the device supports high power tx gain table or not. However the ath9k_hw_4k_get_eeprom function does not return that value when it is called with EEP_TXGAIN_TYPE. This leads to that the tx gain initialization will use the init values from the original tx gain table even if the device inidicates that the high power table should be used. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: Shu Hwa Shen Signed-off-by: John W. Linville commit 4198a8d036c998ca8cec1b08116ab9f6a3a9ffff Author: Bruno Randolf Date: Tue Oct 5 13:27:17 2010 +0900 ath5k: Don't wake internal queues We should only wake up queues which mac80211 knows about (queues 0-3). We have another internal queue ("CAB", queue number 6) which we use for power-saved frames. When transmitted frames are processed from this queue, we have to make sure we don't bother mac80211 with waking a queue it doesn't know about. this fixes: WARNING: at /home/br1/ath/wireless-testing/net/mac80211/util.c:275 __ieee80211_wake_queue+0xd6/0xe0 [mac80211]() Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 025e6be220e448c02045e8499c7db8ce4bc8eea2 Author: Johannes Berg Date: Tue Oct 5 10:41:47 2010 +0200 mac80211: fix deadlock with multiple interfaces The locking around ieee80211_recalc_smps is buggy -- it cannot acquire another interface's mutex while the iflist mutex is held because another code path could be holding the iface mutex and trying to acquire the iflist mutex. But the locking is also unnecessary, we only check "ifmgd->associated" as a bool, and don't use the pointer (in check_mgd_smps). Reported-by: Ben Greear Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 6774889314ba507483e63c014fcb81adfc127202 Author: Johannes Berg Date: Mon Oct 4 21:14:06 2010 +0200 nl80211: reduce dumping boilerplate Consolidate boilerplate code needed for .dumpit calls operating on netdevs. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 41265714810e20d91ddd7aaca30043b0f12190ad Author: Johannes Berg Date: Mon Oct 4 21:14:05 2010 +0200 nl80211: use generic check for netif_running Use a new flag that requires the netdev to be UP and use it to check instead of coding the check into all functions that require it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4c476991062a0a59523c2bf193f09087f469686a Author: Johannes Berg Date: Mon Oct 4 21:36:35 2010 +0200 nl80211: use the new genetlink pre/post_doit hooks This makes nl80211 use the new genetlink pre_doit/post_doit hooks for locking and checking the interface/wiphy index. This significantly reduces the code size and the likelihood of locking errors. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ff4c92d85c6f2777d2067f8552e7fefb4d1754ae Author: Johannes Berg Date: Mon Oct 4 21:14:03 2010 +0200 genetlink: introduce pre_doit/post_doit hooks Each family may have some amount of boilerplate locking code that applies to most, or even all, commands. This allows a family to handle such things in a more generic way, by allowing it to a) include private flags in each operation b) specify a pre_doit hook that is called, before an operation's doit() callback and may return an error directly, c) specify a post_doit hook that can undo locking or similar things done by pre_doit, and finally d) include two private pointers in each info struct passed between all these operations including doit(). (It's two because I'll need two in nl80211 -- can be extended.) Signed-off-by: Johannes Berg Acked-by: David S. Miller Signed-off-by: John W. Linville commit 2ee4e27cf25ab647137713ca16377d8d9e138ea2 Author: Dan Carpenter Date: Mon Oct 4 14:31:46 2010 +0200 ipw2200: check for allocation failures If kzalloc() fails then return should return with -ENOMEM. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit 9eba612549f575d7dccda672ce932e15e7392d83 Author: Bruno Randolf Date: Mon Oct 4 11:17:30 2010 +0900 mac80211: Add WME information element for IBSS Enable WME QoS in IBSS mode by adding a WME information element to beacons and probe respones and by checking for it and marking stations as WME capable if it is present. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit b34793ee27aa547fc9b4213f89036c9a0ecaad5d Author: Helmut Schaa Date: Sat Oct 2 11:34:56 2010 +0200 rt2x00: Work around hw aggregation oddity in rt2800 If a frame is not meant to be sent as AMPDU or part of it the hw might still decide to aggregate this frame if a previous frame started an AMPDU. However, this will limit the usefulness of the reported tx rate since the reported rate will be the one specified in the TXWI of the first frame and thus it is not possible to reliably caculate the number of retrys by substracting the reported tx rate from the tx rate in the TXWI. To fix this issue, only report the successful rate for frames that were not meant to be aggregated but ended up in an aggregate. Example: Frame A (MCS7, AMPDU=1) B (MCS7, AMPDU=1) C (MCS12, AMDPU=0, PROBE_RATE) Although frame C shoudn't be aggregated the hw might sill put it into an AMPDU together with A and B. If the transmission succeeds the tx status will contain MCS7 for all three frames. In that case we should only report MCS7 as success rate and avoid reporting MCS12-MCS8 as failed tx attempts as this will affect the future rate control decisions. This oddity might strike us in other scenarious as well but the most common "wrong" report happened for frames used to probe a different tx rate. This improves the rate control decisions notable. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 01e946f22ae4bafe370d263f2ef499b8b232aec1 Author: Helmut Schaa Date: Sat Oct 2 11:34:26 2010 +0200 rt2x00: Improve cooperation between rt2800pci and minstrel In order to lower the impact of probe rates don't send a frame as AMPDU if the rate control algorithm sets IEEE80211_TX_CTL_RATE_CTRL_PROBE. Otherwise a whole aggregate would be send with a probe rate which might lead to numerous retries. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 1f0280cb35ae252d6db3ce8f56b7a1dc174460e5 Author: Helmut Schaa Date: Sat Oct 2 11:34:05 2010 +0200 rt2x00: Fix oops caused by error path in rt2x00lib_start When rt2x00lib_enable_radio fails to enable the radio, rt2x00lib_start will call rt2x00queue_uninitialize to uninitialize the queues. Since, the queues are not initialized here but already in rt2x00lib_initialize we shouldn't uninitialize the queues here. Otherwise, a consecutive call to rt2x00lib_start will oops (see below) because it assumes the queues are already initialized. BUG: unable to handle kernel NULL pointer dereference at 00000010 IP: [] :rt2800pci:rt2800pci_clear_entry+0x1/0x40 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: ... rt2800pci ... Pid: 5995, comm: hostapd Not tainted (2.6.27.8 #1) EIP: 0060:[] EFLAGS: 00210246 CPU: 3 EIP is at rt2800pci_clear_entry+0x1/0x40 [rt2800pci] EAX: 00000000 EBX: f698863c ECX: 00200296 EDX: f8d2dee0 ESI: f6988600 EDI: f5b6f000 EBP: 00000000 ESP: f6d75e4c DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process hostapd (pid: 5995, ti=f6d74000 task=f6ce2300 task.ti=f6d74000) Stack: f698863c fa00eaec 00000000 f5b6f000 00000000 f7b67000 f5b6e280 fa00c629 f5b6f000 00000000 fa00ca3d f7b67480 00000001 fa177d4c 01b6e890 f7b67000 00000000 f7b67000 00000001 00001003 00001002 c066c366 f7b67000 c0668ad0 Call Trace: [] rt2x00queue_init_queues+0x5c/0x90 [rt2x00lib] [] rt2x00lib_enable_radio+0x29/0xa0 [rt2x00lib] [] rt2x00lib_start+0x5d/0xd0 [rt2x00lib] [] ieee80211_do_open+0x21c/0x510 [mac80211] [] dev_open+0x56/0xb0 [] dev_set_rx_mode+0x20/0x40 [] dev_change_flags+0x7f/0x190 [] devinet_ioctl+0x515/0x690 [] __dev_get_by_name+0x74/0x90 [] sock_ioctl+0xd0/0x240 [] sock_ioctl+0x0/0x240 [] vfs_ioctl+0x2b/0x90 [] do_vfs_ioctl+0x25b/0x2a0 [] sys_ioctl+0x56/0x70 [] syscall_call+0x7/0xb [] add_card+0xad0/0xba0 ======================= Code: 83 78 08 0e 74 14 8b 02 8b 48 04 85 c9 0f 99 c0 0f b6 c0 c3 8d b6 00 00 00 00 8b 02 8b 40 04 85 c0 0f 99 c0 0f b6 c0 c3 66 90 53 <8b> 48 10 8b 58 08 8b 40 04 83 78 08 0e 74 15 8b 11 83 c2 04 8b EIP: [] rt2800pci_clear_entry+0x1/0x40 [rt2800pci] SS:ESP 0068:f6d75e4c ---[ end trace cff9a5c094bb8837 ]--- Reported-by: Joshua Smith Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 74ee3802c0021c1387795af234b3e4dc511a9bb3 Author: Helmut Schaa Date: Sat Oct 2 11:33:42 2010 +0200 rt2x00: Update comment about the AMPDU flag in the TXWI During testing with AMPDUs it turned out that the rt2800 hw will aggregate consecutive frames with the same RA and TID when the first frame in a possible aggregate has set AMPDU=1 in the TXWI. If a following frame has set AMPDU=0 in its TXWI it might sill end up in the aggregate of the previous frame. Update the comment accordingly. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 58ed826e5fb6db429c688284623ca62cb45b9d5c Author: Helmut Schaa Date: Sat Oct 2 11:33:17 2010 +0200 rt2x00: Enable rx aggregation in rt2800 Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit bc8a979e2d85c2bdd507a8b6b09fdafc11ebd73a Author: Ivo van Doorn Date: Sat Oct 2 11:32:43 2010 +0200 rt2x00: Improve TX status entry validation The TX_STA_FIFO contains some information for identifying a outgoing frame, however matching by WCID and ACK status is not sufficient to 100% identify the macthing queue_entry structure (containing the SKB buffer) which belongs to the status report. Within TX_STA_FIFO we have a 4-bit field named PACKETID, which is currently used to encode the queue id. The queue ID is however limited to values from 0 to 3, which means 2 bits are sufficient to encode the value. With the remaining 2 bits we can encode a partial queue_entry index number. The value of PACKETID is not allowed to become 0, with the queue ID ranging from 0 to 3, at least one of the bits for the entry identification must be 1. That leaves us with 3 possible values we can still encode in the bits. Altough this doesn't allow 100% accurate matching of the TX_STA_FIFO queue to a queue_entry structure, it at least improves the accuracy. This allows us to better detect if we have missed the TX_STA_FIFO report, which in turn reduces the number of watchdog warnings regarding the TX status timeout. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit ba3b9e5e8c7a12d8ea46cb4a8217c2e9b0720e9c Author: Helmut Schaa Date: Sat Oct 2 11:32:16 2010 +0200 rt2x00: correctly set max_report_rates in rt61pci and rt2800 rt61pci and rt2800 devices can use up to 7 different rates per tx frame. However, the device uses a global fallback table. Hence, the rc algortihm cannot specify multiple rates to try but the device is able to report multiple rates (based on the retry table). Specify that behavior by correctly setting max_report_rates and max_rates. This makes rt2x00 and minstrel play nicer together. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 78be49ec2a0df34de9441930fdced20311fd709f Author: Helmut Schaa Date: Sat Oct 2 11:31:55 2010 +0200 mac80211: distinct between max rates and the number of rates the hw can report Some drivers cannot handle multiple retry rates specified by the rc algorithm but instead use their own retry table (for example rt2800). However, if such a device registers itself with a max_rates value of 1 the rc algorithm cannot make use of the extended information the device can provide about retried rates. On the other hand, if a device registers itself with a max_rates value > 1 the rc algorithm assumes that the device can handle multi rate retries. Fix this issue by introducing another hw parameter max_report_rates that can be set to a different value then max_rates to indicate if a device is capable of reporting more rates then specified in max_rates. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 5a5b6ed6ce46be128f2a5a9e56f47193c3ac3e32 Author: Helmut Schaa Date: Sat Oct 2 11:31:33 2010 +0200 rt2x00: Don't enable broad- and multicast buffering on USB devices Since rt2x00 USB devices have no chance to know when a beacon was sent out in AP mode currently all broad- and multicast traffic is buffered in mac80211 but never sent out at all. Unfortunately we have no chance in sending the traffic out after a DTIM beacon due to hw limitations. Hence, instead of never sending the buffered traffic out better send it out immediately. Signed-off-by: Helmut Schaa Reported-by: Lauri Hintsala Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit c4c18a9dc16095fc8ada423f1e6ff3830d56d37c Author: Helmut Schaa Date: Sat Oct 2 11:31:05 2010 +0200 rt2x00: add field definitions for the TBTT_SYNC_CFG register Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit d4ce3a5ea16f82d73922b7bfb8a177e371493ffb Author: Helmut Schaa Date: Sat Oct 2 11:30:42 2010 +0200 rt2x00: Add register definition for busy time on secondary channel Add the register definition CH_BUSY_STA_SEC for reading the busy time on the secondary channel in HT40 mode. Also update the comments about channel busy/idle time registers to express the used unit. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit b1ef7252f491b6dc09ffc4584da0f3cf564e05e5 Author: Ivo van Doorn Date: Sat Oct 2 11:30:19 2010 +0200 rt2x00: Add rt73usb device ID Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit cb753b7253548b950e84843a00b4db8d0c54f578 Author: Helmut Schaa Date: Sat Oct 2 11:29:59 2010 +0200 rt2x00: Allow tx duplication for legacy rates in HT40 mode Make use of the IEEE80211_TX_RC_DUP_DATA flag to duplicate a transmission with legacy rates to both 20Mhz channels if set. Also update the related comment in rt2800.h to describe the behavior of the BW_40 flag for legacy rates. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 95192339c2de1e1a61baf289af3e3332403371c9 Author: Helmut Schaa Date: Sat Oct 2 11:29:30 2010 +0200 rt2x00: Fix race between dma mapping and clearing rx entries in rt2800pci During rx, rt2x00lib calls rt2800pci_fill_rxdone to read the RX descriptor. At that time the skb is already dma unmapped but no new skb was dma mapped for this entry again. However, rt2800pci_fill_rxdone also moves the hw rx queue index, marking this entry to be available for reuse. Since no new skb was dma mapped and also the previous skb was unmapped this might lead to strange hw behavior. To fix this issue move the hw rx queue index increment to rt2800pci_clear_entry where a new skb was already dma mapped and can be safely used by the hw. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit d13a97f07d86f462096007dbf0f2e0338692abc0 Author: Helmut Schaa Date: Sat Oct 2 11:29:08 2010 +0200 rt2x00: Don't initialize MM40 HT protection to RTS/CTS on PCI devices Since HT protection is now configurable via mac80211 we don't need this special case for PCI devices anymore. The HT protection config will be overwritten as soon as mac80211 sends us a HT operation mode. Hence, bring the HT MM40 protection config in sync with the other HT protection registers and initialize it to no protection. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 87c1915d2c271a8998a79f16bcf5353e2c28db45 Author: Helmut Schaa Date: Sat Oct 2 11:28:34 2010 +0200 rt2x00: Implement HT protection for rt2800 Update the HT operation mode when mac80211 sends it to us and set the different HT protection modes and rates accordingly. For now only use CTS-to-self with OFDM 24M or CCK 11M when protection is required. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit a13ac9df0a2125507295da02444cd88bebf0df36 Author: Helmut Schaa Date: Sat Oct 2 11:28:02 2010 +0200 rt2x00: Fix SM PS check Fix a check for dynamic SM PS mode in the STAs HT caps. Since a value of 3 means "SM PS disabled" the previous check assumed in that case that "dynamic SM PS" was enabled and as such prefixed every MCS>7 frame with a unnecessary RTS/CTS exchange. Also, the bit shift was done in the wrong direction. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 96c3da7d7d7c37ee308ad6813947f48a71cca573 Author: Helmut Schaa Date: Sat Oct 2 11:27:35 2010 +0200 rt2x00: rework tx status handling in rt2800pci This patch changes the way tx status reports are handled by rt2800pci. Previously rt2800pci would sometimes lose tx status reports as the TX_STA_FIFO register is a fifo of 16 entries that can overflow in case we don't read it often/fast enough. Since interrupts are disabled in the device during the execution of the interrupt thread it happend sometimes under high network and CPU load that processing took too long and a few tx status reports were dropped by the hw. To fix this issue the TX_STA_FIFO register is read directly in the interrupt handler and stored in a kfifo which is large enough to hold all status reports of all used tx queues. To process the status reports a new tasklet txstatus_tasklet is used. Using the already used interrupt thread is not possible since we don't want to disable the TX_FIFO_STATUS interrupt while processing them and it is not possible to schedule the interrupt thread multiple times for execution. A tasklet instead can be scheduled multiple times which allows to leave the TX_FIFO_STATUS interrupt enabled while a previously scheduled tasklet is still executing. In short: All other interrupts are handled in the interrupt thread as before. Only the TX_FIFO_STATUS interrupt is partly handled in the interrupt handler and finished in the according tasklet. One drawback of this patch is that it duplicates some code from rt2800lib. However, that can be cleaned up in the future once the rt2800usb and rt2800pci tx status handling converge more. Using this patch on a Ralink RT3052 embedded board gives me a reliable wireless connection even under high CPU and network load. I've transferred several gigabytes without any queue lockups. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 144333313b156a9e99d80e39e034a3cba00adeaf Author: Helmut Schaa Date: Sat Oct 2 11:27:03 2010 +0200 rt2x00: Split out parts of the rt2800_txdone function for easier reuse Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 2a0cfeb826df6751933fd95a797ac18371992c3b Author: Helmut Schaa Date: Sat Oct 2 11:26:17 2010 +0200 rt2x00: Don't overwrite beacon buffers in pairwise key setup rt2800 devices use parts of the pariwise key table to store the beacon frames for beacon 6 and 7. To not overwrite the beacon frame buffers limit the number of entries we store in the pairwise key table to 222. Also add some descriptive comments about this shared memory usage. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 1a92795dac419128eb511dce30a6aad672064b88 Author: Christian Lamparter Date: Fri Oct 1 22:01:24 2010 +0200 p54usb: add five more USBIDs Source: http://www.wikidevi.com/wiki/Intersil/p54/usb/windows Cc: Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 99c15bf575b18e12c9373304a6a09a78f9c8a017 Author: Ben Greear Date: Fri Oct 1 12:26:30 2010 -0700 ath9k: Report total tx/rx bytes and packets in debugfs. Includes pkts/bytes that may have had errors, and includes wireless headers when counting bytes. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit b72acddbbe521d1372e7e9106e9d72e1cbab3010 Author: Ben Greear Date: Fri Oct 1 10:54:04 2010 -0700 ath5k: Print rx/tx bytes in debugfs This adds counters for tx and rx bytes, including any errored packets as well as all wireless headers. Signed-off-by: Ben Greear Acked-by: Bruno Randolf Signed-off-by: John W. Linville commit 1be7fe8de9f25e173282f8f989f83bc5b5decfe9 Author: Bill Jordan Date: Fri Oct 1 11:20:41 2010 -0400 mac80211: fix for WDS interfaces Initialize the rate table for WDS interfaces, and add cases to allow WDS packets to pass the xmit and receive tests. Signed-off-by: Bill Jordan Signed-off-by: John W. Linville commit e8347ebad2f1b15bddb6ed3ed5f767531eb52dc3 Author: Bill Jordan Date: Fri Oct 1 13:54:28 2010 -0400 cfg80211: patches to allow setting the WDS peer Added a nl interface to set the peer bssid of a WDS interface. Signed-off-by: Bill Jordan Signed-off-by: John W. Linville commit e51f3eff9a7e17ddd749799d4291f7e33e9883b9 Author: Bill Jordan Date: Fri Oct 1 11:20:39 2010 -0400 ath9k: add WDS interfaces to ath9k Enable WDS for the ath9k driver. Signed-off-by: Bill Jordan Signed-off-by: John W. Linville commit d8ec44335c974cc8bf67ce70c63071d4e0702509 Author: Juuso Oikarinen Date: Fri Oct 1 16:02:31 2010 +0300 mac80211: Add validity check for beacon_crc value On association to an AP, after receiving beacons, the beacon_crc value is set. The beacon_crc value is not reset in disassociation, but the BSS data may be expired at a later point. When associating again, it's possible that a beacon for the AP is not received, resulting in the beacon_ies to remain NULL. After association, further beacons will not update the beacon data, as the crc value of the beacon has not changed, and the beacon_crc still holds a value matching the beacon. The beacon_ies will remain forever null. One of the results of this is that WLAN power save cannot be entered, the STA will remain foreven in active mode. Fix this by adding a validation flag for the beacon_crc, which is cleared on association. Signed-off-by: Juuso Oikarinen Acked-by: Johannes Berg Signed-off-by: John W. Linville commit bc86863de63e6ae7ec6f9f524604631608c6cb02 Author: Stanislaw Gruszka Date: Fri Oct 1 14:05:27 2010 +0200 mac80211: perform scan cancel in hw reset work Move ieee80211_scan_cancel() and all other related code to ieee80211_restart_work() as ieee80211_restart_hw() is intended to be callable from any context. Fix a bug that RTNL lock is not taken during ieee80211_cancel_scan(). Take local->mtx before WARN(test_bit(SCAN_HW_SCANNING, &local->scanning) to prevent the race condition with __ieee80211_start_scan() described here: http://marc.info/?l=linux-wireless&m=128516716810537&w=2 Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 8e0167a4bdce4adcea64d2197378673d332cda28 Author: Mohammed Shafi Shajakhan Date: Fri Oct 1 15:25:05 2010 +0530 ath9k : Fix for displaying the channel number In the ath9k debugging feature 'wiphy' the current channel used by the station is incorrectly displayed.This is because the channels available are sequentially mapped from numbers 0 to 37.This mapping cannot be changed as the channel number is also used as an array index This fix solves the above problem by calculating the channel number from center frequency. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: John W. Linville commit 9094a086f24bfb1d1f244883020c4d9453ffc0b6 Author: Felix Fietkau Date: Fri Oct 1 01:46:13 2010 +0200 ath9k_hw: remove some useless calibration data The percal struct and bitmask for the initial DC calibration are not used anywhere, so they can be removed. Signed-off-by: Felix Fietkau commit f209f5298217cf54cd5a9163e18b08d093faf8d9 Author: Felix Fietkau Date: Fri Oct 1 01:06:53 2010 +0200 ath9k: fix channel flag / regd issues with multiple cards Since the regulatory code touches the channel array, it needs to be copied for each device instance. That way the original channel array can also be made const. Signed-off-by: Felix Fietkau Cc: stable@kernel.org [all] Signed-off-by: John W. Linville commit 2234362c427e2ef667595b9b81c0125003ac5607 Author: Johannes Berg Date: Thu Sep 30 22:17:43 2010 +0200 cfg80211: fix locking Add missing unlocking of the wiphy in set_channel, and don't try to unlock a non-existing wiphy in set_cqm. Cc: stable@kernel.org [2.6.35+] Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b1ae1edf9e9872d3aa657cc34ae40c9aadfbc72f Author: Ben Greear Date: Thu Sep 30 12:22:58 2010 -0700 ath5k: Allow ath5k to support virtual STA and AP interfaces. Support up to 4 virtual APs and as many virtual STA interfaces as desired. This patch is ported forward from a patch that Patrick McHardy did for me against 2.6.31. Signed-off-by: Ben Greear Acked-by: Bruno Randolf Signed-off-by: John W. Linville commit ea229e682633a18c1fa2c408400a6923cfc47910 Author: Johannes Berg Date: Thu Sep 30 21:21:25 2010 +0200 cfg80211: remove spurious __KERNEL__ ifdef The net/cfg80211.h header file isn't exported to userspace, so there's no need for any kind of __KERNEL__ protection in it. If it was exported, everything else in it would need protection as well, not just the logging stuff ... Cc:Joe Perches Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 663fcafd977f13e6483f7d4cf2ccdbc4fae81ed0 Author: Johannes Berg Date: Thu Sep 30 21:06:09 2010 +0200 cfg80211/mac80211: allow management frame TX in AP mode Enable management frame transmission and subscribing to management frames through nl80211 in both cfg80211 and mac80211. Also update a few places that I forgot to update for P2P-client mode previously, and fix a small bug with non-action frames in this API. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4bd530f3ab51c7d656bca29d927a50e5aa87175e Author: Stanislaw Gruszka Date: Thu Sep 30 16:27:35 2010 +0200 iwlwifi: change WARN_ON to IWL_WARN in iwl_mac_add_interface We can start restarting firmware or RF kill switch can be turned on during call to iwl_mac_add_interface(). That are normal working conditions, so do not print call trace, just print simple message instead. Signed-off-by: Stanislaw Gruszka Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit e32ee80b855914e48b1beb53e13203bc874288d8 Author: Ben Hutchings Date: Thu Sep 30 02:44:56 2010 +0100 ar9170: Remove MODULE_FIRMWARE references to two-stage firmware The combined firmware ar9170.fw is preferred and supports all devices. References to the older two-stage firmware are unnecessary. Signed-off-by: Ben Hutchings Signed-off-by: John W. Linville commit 39162dbe813a2c90b7b9018a74dc1befb9ff4205 Author: Felix Fietkau Date: Wed Sep 29 19:12:06 2010 +0200 ath9k: return survey data for all channels instead of just the current one Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 17e5a8082894a4b66cb69e7ec16074f0f01281e1 Author: Felix Fietkau Date: Wed Sep 29 17:15:30 2010 +0200 nl80211: allow drivers to indicate whether the survey data channel is in use Some user space applications only want to display survey data for the operating channel, however there is no API to get that yet. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 0bda652300dff8136c9d889f1133462c7c7d332c Author: Felix Fietkau Date: Wed Sep 29 17:15:29 2010 +0200 ath9k: remove the noise floor value in the ani struct common->ani.noise_floor is now only used for a similar redundant debug message similar to the one that was removed from ath9k_htc in an earlier patch. Remove it from ath9k as well now. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 4f1a5a4b62c5335aafd5830866320c8918103a3a Author: Felix Fietkau Date: Wed Sep 29 17:15:28 2010 +0200 ath9k: do not return default noise floor values via survey Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit d9891c7804f27c5b0ea9eb51f42bf473b24338a0 Author: Felix Fietkau Date: Wed Sep 29 17:15:27 2010 +0200 ath9k_hw: keep calibrated noise floor values per channel Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 35ecfe03d96b7cdaf6e50aba13af37e2c99deb57 Author: Felix Fietkau Date: Wed Sep 29 17:15:26 2010 +0200 ath9k_htc: remove use of common->ani.noise_floor It is unused aside from a single redundant debug message Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 5c895691944862e782c285a871f5d3466797b4ef Author: Christian Lamparter Date: Tue Sep 28 23:00:59 2010 +0200 carl9170: support firmware-based rx filter The hardware rx-filter was essentially disabled, because of a serve, yet unidentifiable problem with iwlagn. Due to these circumstances the driver and mac80211 were left with the job of filtering. This is very unfortunate and has proven to be expensive in terms of latency, memory and load. Therefore the new 1.8.8.3 firmware introduces a flexible filtering infrastructure which allows the driver to offload some of the checks (FCS & PLCP crc check, RA match, control frame filter, etc...) whenever possible. Note: This patch also includes all changes to the shared headers files since the inclusion. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 85416a4fa193754ef36e12b20bb02fe661cb7f17 Author: Christian Lamparter Date: Sat Oct 2 13:17:07 2010 +0200 mac80211: fix rx monitor filter refcounters This patch fixes an refcounting bug. Previously it was possible to corrupt the per-device recv. filter and monitor management counters when: iw dev wlanX set monitor [new flags] was issued on an active monitor interface. Acked-by: Johannes Berg Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 5a254ffe3ffdfa84fe076009bd8e88da412180d2 Author: Ben Greear Date: Mon Sep 27 09:07:26 2010 -0700 wireless: Use first phyX name available when registering phy devices. Choose first available phyX name when creating phy devices. This means that reloading a wifi driver will not cause a change in the name of it's phy device. Also, allow users to rename a phy to any un-used name, including phy%d. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit b1a9338d5eaa9c38c326e20ce339247f4d585b62 Merge: 1728943 62cb3c6 Author: John W. Linville Date: Tue Oct 5 11:14:58 2010 -0400 Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 commit 1ab488de544b7f94b4f8e5aed2b178cac685802f Author: Rahul Ruikar Date: Sun Sep 26 22:20:30 2010 +0530 pcmcia: vrc4173_cardu: Fix error path for pci_release_regions and pci_disable_device - pci_release_regions called during return error path. - pci_disable_device called for cases where earlier it was enabled. - code duplication avoided/reduced by adding resource release at goto statements. Signed-off-by: Rahul Ruikar Signed-off-by: Dominik Brodowski commit 4b48e6876b641e1138f37a0fc11fb6a4fc3e24e1 Author: ext Anand Gadiyar Date: Fri Oct 1 22:33:26 2010 +0200 omap: zoom2/3: fix build caused by wl1271 support Patch "omap: zoom: add mmc3/wl1271 device support" in the wireless tree still uses .wires in struct omap2_hsmmc_info. .wires has now been replaced with .caps in patch "omap: mmc: extended to pass host capabilities from board file" in the OMAP tree. This causes linux-next as of 20101001 build to break as below. Fix this. CC arch/arm/mach-omap2/board-zoom-peripherals.o arch/arm/mach-omap2/board-zoom-peripherals.c:217: error: unknown field 'wires' specified in initializer make[1]: *** [arch/arm/mach-omap2/board-zoom-peripherals.o] Error 1 make: *** [arch/arm/mach-omap2] Error 2 Signed-off-by: Anand Gadiyar Cc: Ohad Ben-Cohen Cc: Tony Lindgren Acked-by: Tony Lindgren Signed-off-by: Luciano Coelho commit 5082b823f3b0c781fdbc52910af579e940f6f18e Author: Luciano Coelho Date: Tue Oct 5 14:58:49 2010 +0300 wl1271: remove deprecated __attribute__ ((packed)) One __attribute__ ((packed)) has been accidentally introduced in commit be86cbea1e9c3a4dd8faedcfa327495d09fe3531. This patch changes it to __packed. Signed-off-by: Luciano Coelho commit 644a48607cd40954b6fb095b39a3ccaa0204191e Author: Juuso Oikarinen Date: Tue Oct 5 13:11:56 2010 +0200 wl1271: Add extended radio parameter initialization Currently a command to initialize extended radio parameter tables in the hardware is missing. Add the initialization Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit d25611da0c75c4b0f72c73d66887d0470aacef40 Author: Juuso Oikarinen Date: Thu Sep 30 10:43:27 2010 +0200 wl1271: Indicate disconnection on hardware failure In the event of a hardware failure, reconfiguring a live connection back with the wl1271 chip does not work as expected. The chip has management features which require setting up the association from scratch to work correctly. To ensure this is done every time, in managed mode, when associated, indicate connection loss to the mac80211 before asking to reconfigure the hardware. Signed-off-by: Juuso Oikarinen Tested-by: Tuomas Katila Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 117b38d0b9d3efb0adc3e636e73fc67bb53a13d1 Author: Juuso Oikarinen Date: Thu Sep 30 10:43:28 2010 +0200 wl1271: Move work-init calls to hw allocation Due to legacy reason, dating back to when the wl1251 and wl1271 still were a unified driver, some work-structures are initialized on hardware startup. The hardware recovery code creates a scenario in which it is possible for a workstruct to be re-initialized while the work-function itself is running, which causes a kernel WARNing and a subsequent reboot. To remedy this, move the work initialization calls to the hw allocation, which is the logically correct place for them anyway. Signed-off-by: Juuso Oikarinen Tested-by: Tuomas Katila Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit a19606b4333ff34e9b2863f37c20fe86b42be14c Author: Ido Yariv Date: Thu Sep 30 13:28:28 2010 +0200 wl1271: Support firmware TX packet aggregation Instead of sending one packet at a time to the firmware, try to send all available packets at once. This optimization decreases the number of transactions, which saves CPU cycles and increases network throughput. Signed-off-by: Ido Yariv Tested-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit 1f37cbc9363462c99794699442da39f36be0aaf7 Author: Ido Yariv Date: Thu Sep 30 13:28:27 2010 +0200 wl1271: Support firmware RX packet aggregation Instead of retrieving one packet at a time from the firmware, try to retrieve all available packets at once. This optimization decreases the number of transactions, which saves CPU cycles and increases network throughput. Signed-off-by: Ido Yariv Tested-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit 5c57a901dc96fc81d0041282269b43542f170d2a Author: Ido Yariv Date: Thu Sep 30 13:28:26 2010 +0200 wl1271: Handle large SPI transfers The HW supports up to 4095 bytes transfers via SPI. The SPI read & write operations do not handle larger transfers, causing the HW to stall in such cases. Fix this by fragmenting large transfers into smaller chunks, and transferring each one separately. Signed-off-by: Ido Yariv Tested-by: Juuso Oikarinen Signed-off-by: Luciano Coelho commit 2a48fc0ab24241755dc93bfd4f01d68efab47f5a Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 block: autoconvert trivial BKL users to private mutex The block device drivers have all gained new lock_kernel calls from a recent pushdown, and some of the drivers were already using the BKL before. This turns the BKL into a set of per-driver mutexes. Still need to check whether this is safe to do. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann commit 613655fa39ff6957754fa8ceb8559980920eb8ee Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 drivers: autoconvert trivial BKL users to private mutex All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. These drivers do not seem to be under active maintainance from my brief investigation. Apologies to those maintainers that I have missed. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann commit e0e9b406470b8dd75a115cf82c4791f41615c4c3 Author: Jason Wang Date: Tue Sep 14 23:53:05 2010 +0800 vhost: max s/g to match qemu Qemu supports up to UIO_MAXIOV s/g so we have to match that because guest drivers may rely on this. Allocate indirect and log arrays dynamically to avoid using too much contigious memory and make the length of hdr array to match the header length since each iovec entry has a least one byte. Test with copying large files w/ and w/o migration in both linux and windows guests. Signed-off-by: Jason Wang Signed-off-by: Michael S. Tsirkin commit 5a44a73b9015e89cfb280ba0534dfcbf1ef29d05 Author: Felipe Contreras Date: Fri Sep 24 15:22:23 2010 +0200 autofs4: Only declare function when CONFIG_COMPAT is defined The patch solves the following warnings message when CONFIG_COMPAT is not defined: fs/autofs4/root.c:31: warning: ‘autofs4_root_compat_ioctl’ declared ‘static’ but never defined Signed-off-by: Felipe Contreras Cc: Ian Kent Cc: "H. Peter Anvin" Cc: Arnd Bergmann Signed-off-by: Frederic Weisbecker Signed-off-by: Arnd Bergmann commit 26daad8067f976a6e3622b42b0d80de9a53e8ad9 Author: MĂĄrton NĂ©meth Date: Fri Sep 24 15:22:22 2010 +0200 autofs: Only declare function when CONFIG_COMPAT is defined The patch solves the following warnings message when CONFIG_COMPAT is not defined: fs/autofs/root.c:30: warning: ‘autofs_root_compat_ioctl’ declared ‘static’ but never defined Signed-off-by: MĂĄrton NĂ©meth Cc: "H. Peter Anvin" Cc: Arnd Bergmann Signed-off-by: Frederic Weisbecker Signed-off-by: Arnd Bergmann commit 2a4df5d33202e99c015928bf2a2dfd8ad03e53bc Author: Petr Vandrovec Date: Wed Sep 29 14:39:11 2010 +0200 ncpfs: Lock socket in ncpfs while setting its callbacks Otherwise partially updated pointers could be seen if pointer update is not atomic. Signed-off-by: Petr Vandrovec Signed-off-by: Arnd Bergmann commit b89f432133851a01c0d28822f11cbdcc15781a75 Author: Arnd Bergmann Date: Sat Sep 18 15:09:31 2010 +0200 fs/locks.c: prepare for BKL removal This prepares the removal of the big kernel lock from the file locking code. We still use the BKL as long as fs/lockd uses it and ceph might sleep, but we can flip the definition to a private spinlock as soon as that's done. All users outside of fs/lockd get converted to use lock_flocks() instead of lock_kernel() where appropriate. Based on an earlier patch to use a spinlock from Matthew Wilcox, who has attempted this a few times before, the earliest patch from over 10 years ago turned it into a semaphore, which ended up being slower than the BKL and was subsequently reverted. Someone should do some serious performance testing when this becomes a spinlock, since this has caused problems before. Using a spinlock should be at least as good as the BKL in theory, but who knows... Signed-off-by: Arnd Bergmann Acked-by: Matthew Wilcox Cc: Christoph Hellwig Cc: Trond Myklebust Cc: "J. Bruce Fields" Cc: Andrew Morton Cc: Miklos Szeredi Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: John Kacur Cc: Sage Weil Cc: linux-kernel@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org commit cdadf0097cdca06c497ffaeb5982e028c6e4ed38 Author: Tejun Heo Date: Tue Oct 5 10:49:55 2010 +0200 workqueue: add queue_work and activate_work trace points These two tracepoints allow tracking when and how a work is queued and activated. This patch is based on Frederic's patch to add queue_work trace point. Signed-off-by: Tejun Heo Cc: Frederic Weisbecker commit 97bd234701b2b39a0e749c1fe0e44f1d14c94292 Author: Tejun Heo Date: Tue Oct 5 10:41:14 2010 +0200 workqueue: prepare for more tracepoints Define workqueue_work event class and use it for workqueue_execute_end trace point. Also, move trace/events/workqueue.h include downwards such that all struct definitions are visible to it. This is to prepare for more tracepoints and doesn't cause any functional change. Signed-off-by: Tejun Heo Cc: Frederic Weisbecker commit a00eac0c459abecb539fb2a2abd3122dd7ca5d4a Author: David S. Miller Date: Tue Oct 5 01:36:52 2010 -0700 ppp: Use a real SKB control block in fragmentation engine. Do this instead of subverting fields in skb proper. The macros that could very easily match variable or function names were also just asking for trouble. Signed-off-by: David S. Miller commit c62f981f9309486ba5546edbb5925f71e441fa65 Author: Andi Kleen Date: Fri Oct 1 14:18:47 2010 -0700 perf, gcc-4.6: Fix set but unused variable Just dead code I believe. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Cc: andi@firstfloor.org Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit c61393ea83573ff422af505b6fd49ef9ec9b91ca Author: stephen hemminger Date: Mon Oct 4 20:17:53 2010 +0000 ipv6: make __ipv6_isatap_ifid static Another exported symbol only used in one file Signed-off-by: Stephen Hemminger Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 1df9916e46451533463f227e6be57cc2cfca4c5f Author: stephen hemminger Date: Mon Oct 4 20:14:17 2010 +0000 fib: fib_rules_cleanup can be static fib_rules_cleanup_ups is only defined and used in one place. Signed-off-by: Stephen Hemminger Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 6a31d2a97c04ffe9b161ec0177a2296366ff9249 Author: Eric Dumazet Date: Mon Oct 4 20:00:18 2010 +0000 fib: cleanups Code style cleanups before upcoming functional changes. C99 initializer for fib_props array. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit e3d32687a624845e97f9717d9d2027b44b8c49a2 Author: stephen hemminger Date: Mon Oct 4 19:59:59 2010 +0000 wimax: make functions local Make wimax variables and functions local if possible. Compile tested only. This also removes a couple of unused EXPORT_SYMBOL. If this breaks some out of tree code, please fix that by putting the code in the kernel tree. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit debf279a81c93d6942a50ec0fd3ba1f158b109fb Author: stephen hemminger Date: Mon Oct 4 15:44:30 2010 +0000 qlcnic: remove dead code This driver has several pieces of dead code (found by running make namespacecheck). This patch removes them. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ee624599d32bc698212d3c04faf908dc01a40457 Author: Nicolas Kaiser Date: Mon Oct 4 04:35:39 2010 +0000 caif: remove duplicated include Remove duplicated include. Signed-off-by: Nicolas Kaiser Acked-by: Sjur Braendeland Signed-off-by: David S. Miller commit 00e8976200665eec2fa9264d61885b4d1384d4f0 Merge: 540804b 0f940cb Author: Ingo Molnar Date: Tue Oct 5 09:47:14 2010 +0200 Merge branch 'perf/urgent' into perf/core Conflicts: tools/perf/util/ui/browsers/hists.c Merge reason: fix the conflict and merge in changes for dependent patch. Signed-off-by: Ingo Molnar commit 10ff4c682972bf714c03ea71e169472cdc329a1e Author: Uwe Kleine-König Date: Sun Oct 3 23:43:33 2010 +0000 don't let BCM63XX_PHY depend on non-existant symbol The kernel doesn't have a symbol called BCM63XX. There is a symbol BCM63XX_ENET (introduced in 9b1fc55a0500, 6 weeks after 09bb9aa0ed that introduced BCM63XX_PHY), but the driver compiles without that, too. Cc: Maxime Bizon Cc: Florian Fainelli Cc: David S. Miller Cc: Ralf Baechle Signed-off-by: Uwe Kleine-König Signed-off-by: David S. Miller commit cf93c94581bab447a5634c6d737c1cf38c080261 Author: Uwe Kleine-König Date: Sun Oct 3 23:43:32 2010 +0000 net/phy: fix many "defined but unused" warnings MODULE_DEVICE_TABLE only expands to something if it's compiled for a module. So when building-in support for the phys, the mdio_device_id tables are unused. Marking them with __maybe_unused fixes the following warnings: drivers/net/phy/bcm63xx.c:134: warning: 'bcm63xx_tbl' defined but not used drivers/net/phy/broadcom.c:933: warning: 'broadcom_tbl' defined but not used drivers/net/phy/cicada.c:162: warning: 'cicada_tbl' defined but not used drivers/net/phy/davicom.c:222: warning: 'davicom_tbl' defined but not used drivers/net/phy/et1011c.c:114: warning: 'et1011c_tbl' defined but not used drivers/net/phy/icplus.c:137: warning: 'icplus_tbl' defined but not used drivers/net/phy/lxt.c:226: warning: 'lxt_tbl' defined but not used drivers/net/phy/marvell.c:724: warning: 'marvell_tbl' defined but not used drivers/net/phy/micrel.c:234: warning: 'micrel_tbl' defined but not used drivers/net/phy/national.c:154: warning: 'ns_tbl' defined but not used drivers/net/phy/qsemi.c:141: warning: 'qs6612_tbl' defined but not used drivers/net/phy/realtek.c:82: warning: 'realtek_tbl' defined but not used drivers/net/phy/smsc.c:257: warning: 'smsc_tbl' defined but not used drivers/net/phy/ste10Xp.c:135: warning: 'ste10Xp_tbl' defined but not used drivers/net/phy/vitesse.c:195: warning: 'vitesse_tbl' defined but not used Signed-off-by: Uwe Kleine-König Signed-off-by: David S. Miller commit 29fa060eab3f524d338566d34c1d9e704579ae5e Author: David S. Miller Date: Tue Oct 5 00:29:48 2010 -0700 net: relax rtnl_dereference() rtnl_dereference() is used in contexts where RTNL is held, to fetch an RCU protected pointer. Updates to this pointer are prevented by RTNL, so we dont need smp_read_barrier_depends() and the ACCESS_ONCE() provided in rcu_dereference_check(). rtnl_dereference() is mainly a macro to document the locking invariant. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 13f5bf18ba657d2d17c8fcf584e50359c718dd4b Author: David S. Miller Date: Tue Oct 5 00:27:05 2010 -0700 ipvs: Use frag walker helper in SCTP proto support. Signed-off-by: David S. Miller Acked-by: Simon Horman commit 24824a09e35402b8d58dcc5be803a5ad3937bdba Author: Eric Dumazet Date: Sat Oct 2 06:11:55 2010 +0000 net: dynamic ingress_queue allocation ingress being not used very much, and net_device->ingress_queue being quite a big object (128 or 256 bytes), use a dynamic allocation if needed (tc qdisc add dev eth0 ingress ...) dev_ingress_queue(dev) helper should be used only with RTNL taken. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 0bd9e6a964d86a19f54a9ba31168a37d64e451d1 Author: Sritej Velaga Date: Mon Oct 4 04:20:16 2010 +0000 qlcnic: set mtu lower limit Setting mtu < 68 is not supported. Signed-off-by: Sritej Velaga Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit aef3d898276e046bfa877cd20b8ee269b85161cd Author: Sritej Velaga Date: Mon Oct 4 04:20:15 2010 +0000 qlcnic: cleanup port mode setting Port mode setting is not required for Qlogic CNA adapters. Signed-off-by: Sritej Velaga Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit a1c0c459918e8c8ce152deba84f9ed27d7eb0e53 Author: Sucheta Chakraborty Date: Mon Oct 4 04:20:14 2010 +0000 qlcnic: sparse warning fixes Signed-off-by: Sucheta Chakraborty Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 7e56cac4b68805470849ba373dd313ba0e7cdb81 Author: Sucheta Chakraborty Date: Mon Oct 4 04:20:13 2010 +0000 qlcnic: fix vlan TSO on big endian machine o desc->vlan_tci is in __le16 format. Doing htons and cpu_to_le64 again on vlan_tci, result in invalid value on ppc. Signed-off-by: Sucheta Chakraborty Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit b501595cbb8afeaa9aaa870b3d29ef051403511a Author: Sucheta Chakraborty Date: Mon Oct 4 04:20:12 2010 +0000 qlcnic: fix endianess for lro ipaddress in ifa->ifa_address field are in big endian format. Also device requires ip address in big endian only. Signed-off-by: Sucheta Chakraborty Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit c265eb6ecb63e4b3a6b86b617fa7fd955a0e0980 Author: Amit Kumar Salecha Date: Mon Oct 4 04:20:11 2010 +0000 qlcnic: fix diag register regs_buff[i] and diag_registers[j] array should use different index variable. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit ef1828058b8a37f7005be677686727bbbde77f6a Author: Amit Kumar Salecha Date: Mon Oct 4 04:20:10 2010 +0000 qlcnic: fix eswitch stats Some of the counters are not implemented in fw. Fw return NOT AVAILABLE VALUE as (0xffffffffffffffff). Adding these counters, result in invalid value. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 31dee692e22eedaf2540fa543fa9c91df6ab8bda Author: Amit Kumar Salecha Date: Mon Oct 4 04:20:09 2010 +0000 qlcnic: fix internal loopback test o Loop 10 times with delay of 1 ms to rcv packet. o Print garbage packet. o Try send/receive MAX(16) packet, instead of exit from test, if a packet is not received. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit eecc545856c8a0f27783a440d25f4ceaa1f95ce8 Author: Patrick McHardy Date: Mon Oct 4 23:24:21 2010 +0200 netfilter: add missing xt_log.h file Forgot to add xt_log.h in commit a8defca0 (netfilter: ipt_LOG: add bufferisation to call printk() once) Signed-off-by: Patrick McHardy commit a9fda02bfc91a281cd812ae15dabe6bfb9574f90 Merge: aa30900 ec706da Author: Russell King Date: Mon Oct 4 22:23:26 2010 +0100 Merge branch 'for_rmk' of git://git.linaro.org/kernel/linux-linaro-next into devel-stable commit f68c53015c5b9aa98ffd87a34009f89bdbbd7160 Author: Changli Gao Date: Mon Oct 4 22:24:12 2010 +0200 netfilter: unregister nf hooks, matches and targets in the reverse order Since we register nf hooks, matches and targets in order, we'd better unregister them in the reverse order. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit c4e259c859538e94007d1f04a488540375189551 Author: Will Deacon Date: Mon Sep 13 16:19:41 2010 +0100 ARM: 6386/1: flush_ptrace_access: invalidate correct I-cache alias copy_to_user_page can be used by access_process_vm to write to an executable page of a process using a mapping acquired by kmap. For systems with I-cache aliasing, flushing the I-cache using the Kernel mapping may leave stale data in the I-cache if the user mapping is of a different colour. This patch introduces a flush_icache_alias function to flush.c, which calls flush_icache_range with a mapping of the specified colour. flush_ptrace_access is then modified to call this new function instead of coherent_kern_range in the case of an aliasing I-cache and a non-aliasing D-cache. Signed-off-by: Will Deacon Signed-off-by: Russell King commit 8925ec4c530094b878e7e28a1fd78e7122afd973 Author: Will Deacon Date: Mon Sep 13 16:18:30 2010 +0100 ARM: 6385/1: setup: detect aliasing I-cache when D-cache is non-aliasing Currently, the Kernel assumes that if a CPU has a non-aliasing D-cache then the I-cache is also non-aliasing. This may not be true on ARM cores from v6 onwards, which may have aliasing I-caches but non-aliasing D-caches. This patch adds a cpu_has_aliasing_icache function, which is called from cacheid_init and adds CACHEID_VIPT_I_ALIASING to the cacheid when appropriate. A utility macro, icache_is_vipt_aliasing(), is also provided. Signed-off-by: Will Deacon Signed-off-by: Russell King commit 100642c7b6971fb4ab69a662f4f60970e3a16dfd Author: Linus Walleij Date: Mon Sep 6 09:16:44 2010 +0100 ARM: 6366/1: Update U300 defconfig This mainly removes a lot of unused subsystems (as for the mainline drivers) in the U300 defconfig, switch of MMC debugging by default and enables debugfs on the builds. Once we merge the drivers we'll configure it on again. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 8ed9059533eb89b4372d7fc31b6565c053e5253b Author: Maxim Osipov Date: Wed Sep 15 11:54:49 2010 +0100 ARM: 6393/1: AT91: Add flexibity board support This patch adds support for Flexibity Connect platform from http://www.flexibity.com/ (AT91SAM9260 based). Signed-off-by: Maxim Osipov Acked-by: Jean-Christophe PLAGNIOL-VILLARD Acked-by: Andrew Victor Signed-off-by: Russell King commit 81d11955bf0b5ae25e3adbec930cd84840385dae Author: Tony Lindgren Date: Tue Sep 21 17:16:40 2010 +0100 ARM: 6405/1: Handle __flush_icache_all for CONFIG_SMP_ON_UP Do this by adding flush_icache_all to cache_fns for ARMv6 and 7. As flush_icache_all may neeed to be called from flush_kern_cache_all, add it as the first entry in the cache_fns. Note that now we can remove the ARM_ERRATA_411920 dependency to !SMP so it can be selected on UP ARMv6 processors, such as omap2. Signed-off-by: Tony Lindgren Signed-off-by: Anand Gadiyar Signed-off-by: Russell King commit f9e417e901e891d139f4d5fd750959e4a862d9f7 Author: Tony Lindgren Date: Tue Sep 21 00:43:19 2010 +0100 ARM: 6402/1: Don't send IPI in smp_send_stop if there's only one CPU No need to send IPI if there's one CPU, especially when booting systems with CONFIG_SMP_ON_UP that may not even support IPI. Signed-off-by: Tony Lindgren Signed-off-by: Russell King commit f00ec48fadf5e37e7889f14cff900aa70d18b644 Author: Russell King Date: Sat Sep 4 10:47:48 2010 +0100 ARM: Allow SMP kernels to boot on UP systems UP systems do not implement all the instructions that SMP systems have, so in order to boot a SMP kernel on a UP system, we need to rewrite parts of the kernel. Do this using an 'alternatives' scheme, where the kernel code and data is modified prior to initialization to replace the SMP instructions, thereby rendering the problematical code ineffectual. We use the linker to generate a list of 32-bit word locations and their replacement values, and run through these replacements when we detect a UP system. Signed-off-by: Russell King commit 067173526c3bbc2eaeefcf6b7b2a9d998b9e8042 Author: Russell King Date: Sat Sep 4 16:14:20 2010 +0100 ARM: Provide common header for hard_smp_processor_id() Provide a common header to read the SMP CPU number from the MPIDR. Signed-off-by: Russell King commit 971acb9b420ea1662dd3c48184c4315f87643be5 Author: Russell King Date: Sat Sep 4 08:16:30 2010 +0100 ARM: Simplify SMP/SCU/TWD dependencies All platforms which currently support SMP also support the ARM SCU and ARM TWD blocks, so it's pointless to make these config symbols conditional on the platform symbols which SMP is already conditional on. Signed-off-by: Russell King commit 055d1965161bde96207371e7d31eb776c0f7790d Author: Uwe Kleine-König Date: Thu Sep 2 09:14:21 2010 +0100 ARM: 6349/1: sa1111: move __sa1111_probe() to .devinit.text __sa1111_probe is only called by sa1111_probe that lives in .devinit.text. So it's save to move the former to .devinit.text, too. Acked-by: Kristoffer Ericson Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 9f5336915bc47947230290a1a384de95803f815a Author: Alexander Shishkin Date: Wed Aug 4 11:26:27 2010 +0100 ARM: 6293/1: coresight: cosmetic fixes Use BIT() macro whenever it is sensible to do so. Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Alexander Shishkin Signed-off-by: Russell King commit 8234eaef8002cb8ba30920949b338d692508137a Author: Alexander Shishkin Date: Wed Aug 4 11:22:43 2010 +0100 ARM: 6291/1: coresight: move struct tracectx inside etm driver This is done so as to be able to make use of the coresight components' registers in assembler code (like omap sleep code). Also, there shouldn't be any users of this structure outside the etm driver. Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Alexander Shishkin Signed-off-by: Russell King commit 2e54eb96e2c801f33d95b5dade15212ac4d6c4a5 Author: Petr Vandrovec Date: Mon Sep 27 01:47:33 2010 +0200 BKL: Remove BKL from ncpfs Dozen of changes in ncpfs to provide some locking other than BKL. In readdir cache unlock and mark complete first page as last operation, so it can be used for synchronization, as code intended. When updating dentry name on case insensitive filesystems do at least some basic locking... Hold i_mutex when updating inode fields. Push some ncp_conn_is_valid down to ncp_request. Connection can become invalid at any moment, and fewer error code paths to test the better. Use i_size_{read,write} to modify file size. Set inode's backing_dev_info as ncpfs has its own special bdi. In ioctl unbreak ioctls invoked on filesystem mounted 'ro' - tests are for inode writeable or owner match, but were turned to filesystem writeable and inode writeable or owner match. Also collect all permission checks in single place. Add some locking, and remove comments saying that it would be cool to add some locks to the code. Constify some pointers. Signed-off-by: Petr Vandrovec Signed-off-by: Arnd Bergmann commit 60056794127a25d641465b706e8828186f7a2e1f Author: Arnd Bergmann Date: Wed Feb 24 13:25:33 2010 +0100 BKL: Remove BKL from OCFS2 The BKL in ocfs2/dlmfs is used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. The use in ocfs2_control_open is evidently unrelated and the function is protected by ocfs2_control_lock. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: Mark Fasheh Cc: Joel Becker commit 3dbc4b32d0b39701cbec65582e196a20889155fb Author: Arnd Bergmann Date: Thu Sep 16 15:35:54 2010 +0200 BKL: Remove BKL from squashfs The BKL is only used in put_super and fill_super, which are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: Phillip Lougher commit 1a028dd2dd589c3924d9711a1b073a13c820b6b5 Author: Arnd Bergmann Date: Thu Sep 16 16:11:09 2010 +0200 BKL: Remove BKL from jffs2 The BKL is only used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: David Woodhouse commit 18dfe89d7c394b56e20e06dde8b7a80ff96cf02c Author: Arnd Bergmann Date: Thu Sep 16 15:35:54 2010 +0200 BKL: Remove BKL from ecryptfs The BKL is only used in fill_super, which is protected by the superblocks s_umount rw_semaphorei, and in fasync, which does not do anything that could require the BKL. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: Dustin Kirkland Cc: Tyler Hicks Cc: ecryptfs-devel@lists.launchpad.net commit 77f2fe036cd51300c80d1aca76bcf23a09977f13 Author: Arnd Bergmann Date: Thu Sep 16 15:35:54 2010 +0200 BKL: Remove BKL from afs The BKL is only used in put_super and fill_super, which are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: linux-afs@lists.infradead.org Cc: David Howells commit cdbd2b013d2814ad39e893316943fb58e6d9ec23 Author: Arnd Bergmann Date: Thu Sep 16 15:35:54 2010 +0200 BKL: Remove BKL from USB gadgetfs The BKL is only used in fill_super, which is protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Arnd Bergmann Cc: David Brownell Cc: linux-usb@vger.kernel.org commit 00e300e1b682ea86fcb5216250722afd42686ab3 Author: Arnd Bergmann Date: Tue Sep 14 23:00:34 2010 +0200 BKL: Remove BKL from autofs4 autofs4 uses the BKL only to guard its ioctl operations. This can be trivially converted to use a mutex, as we have done with most device drivers before. Signed-off-by: Arnd Bergmann Cc: "H. Peter Anvin" Cc: Ian Kent commit 4f819a7899b06afcd7623ab9d00fd81503ad3e24 Author: Arnd Bergmann Date: Sun Sep 12 19:05:56 2010 +0200 BKL: Remove BKL from isofs As in other file systems, we can replace the big kernel lock with a private mutex in isofs. This means we can now access multiple file systems concurrently, but it also means that we serialize readdir and lookup across sleeping operations which previously released the big kernel lock. This should not matter though, as these operations are in practice serialized through the hardware access. The isofs_get_blocks functions now does not take any lock any more, it used to recursively get the BKL. After looking at the code for hours, I convinced myself that it was never needed here anyway, because it only reads constant fields of the inode and writes to a buffer head array that is at this time only visible to the caller. The get_sb and fill_super operations do not need the locking at all because they operate on a file system that is either about to be created or to be destroyed but in either case is not visible to other threads. Signed-off-by: Arnd Bergmann commit 3768744cfea7b995dce27f02341161fbfdfee80c Author: Arnd Bergmann Date: Tue Sep 14 23:07:27 2010 +0200 BKL: Remove BKL from fat The lock_kernel in fat_put_super is not needed because it only protects the super block itself and we know that no other thread can reach it because we are about to kfree the object. In the two fill_super functions, this converts the locking to use lock_super like elsewhere in the fat code. This is probably not needed either, but is consistent and puts us on the safe side. Signed-off-by: Arnd Bergmann Cc: OGAWA Hirofumi Cc: Jan Blunck commit 3e44f9f1dc19e2b8d4f7ca3b3c63e976b22ad372 Author: Jan Blunck Date: Wed Feb 24 13:25:35 2010 +0100 BKL: Remove BKL from ext2 filesystem The BKL is still used in ext2_put_super(), ext2_fill_super(), ext2_sync_fs() ext2_remount() and ext2_write_inode(). From these calls ext2_put_super(), ext2_fill_super() and ext2_remount() are protected against each other by the struct super_block s_umount rw semaphore. The call in ext2_write_inode() could only protect the modification of the ext2_sb_info through ext2_update_dynamic_rev() against concurrent ext2_sync_fs() or ext2_remount(). ext2_fill_super() and ext2_put_super() can be left out because you need a valid filesystem reference in all three cases, which you do not have when you are one of these functions. If the BKL is only protecting the modification of the ext2_sb_info it can safely be removed since this is protected by the struct ext2_sb_info s_lock. Signed-off-by: Jan Blunck Cc: Jan Kara Signed-off-by: Arnd Bergmann commit 6841c05021236b8d394cc6c41aa6ae17623aef13 Author: Jan Blunck Date: Wed Feb 24 13:25:35 2010 +0100 BKL: Remove BKL from do_new_mount() After pushing down the BKL to the get_sb/fill_super operations of the filesystems that still make usage of the BKL it is safe to remove it from do_new_mount(). I've read through all the code formerly covered by the BKL inside do_kern_mount() and have satisfied myself that it doesn't need the BKL any more. Signed-off-by: Jan Blunck Cc: Matthew Wilcox Signed-off-by: Arnd Bergmann commit 38d018dba3f725b969f196550d92a6ec1c092428 Author: Jan Blunck Date: Wed Feb 24 13:25:34 2010 +0100 BKL: Remove BKL from cgroup The BKL is only used in remount_fs and get_sb that are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit efdffb54034a6fc96bc7fafa33ca2a5503113eee Author: Jan Blunck Date: Wed Feb 24 13:25:33 2010 +0100 BKL: Remove BKL from NTFS The BKL is only used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit d6d4c19c5f9ac5972e30e89b3c81ad1fd6e11fee Author: Jan Blunck Date: Wed Feb 24 13:25:32 2010 +0100 BKL: Remove BKL from NILFS2 The BKL is only used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit 22b26db6f82bfa9a7f2b44443af3b5541927a130 Author: Jan Blunck Date: Wed Feb 24 13:25:31 2010 +0100 BKL: Remove BKL from JFS The BKL is only used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit 8526fb37c907f8f4eb9965367af6aeec76aedbce Author: Jan Blunck Date: Wed Feb 24 13:25:30 2010 +0100 BKL: Remove BKL from HFS The BKL is only used in put_super and fill_super that are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit f2143c4e2ebc6be3f07b7c7527dae7313fde23e1 Author: Jan Blunck Date: Wed Feb 24 13:25:30 2010 +0100 BKL: Remove BKL from ext4 filesystem The BKL is still used in ext4_put_super(), ext4_fill_super() and ext4_remount(). All three calles are protected against concurrent calls by the s_umount rw semaphore of struct super_block. Therefore the BKL is protecting nothing in this case. Signed-off-by: Jan Blunck Acked-by: "Theodore Ts'o" Signed-off-by: Arnd Bergmann commit 77b54a46a83232d172d55013c3af838190615260 Author: Jan Blunck Date: Wed Feb 24 13:25:30 2010 +0100 BKL: Remove BKL from ext3_put_super() and ext3_remount() The BKL lock is protecting the remounting against a potential call to ext3_put_super(). This could not happen, since this is protected by the s_umount rw semaphore of struct super_block. Therefore I think the BKL is protecting nothing here. Signed-off-by: Jan Blunck Acked-by: Jan Kara Signed-off-by: Arnd Bergmann commit d646cf82e9b6a58ba2d748e66e5fc7223830c68c Author: Jan Blunck Date: Wed Feb 24 13:25:29 2010 +0100 BKL: Remove BKL from ext3 fill_super() The BKL is protecting nothing than two memory allocations here. Signed-off-by: Jan Blunck Acked-by: Jan Kara Signed-off-by: Arnd Bergmann commit b0991aa324b57dca8feef75ed75b24080ee4a9fc Author: Jan Blunck Date: Wed Feb 24 13:25:29 2010 +0100 BKL: Remove BKL from CifsFS The BKL is only used in put_super and fill_super that are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Cc: Steve French Signed-off-by: Arnd Bergmann commit ba13d597a60a1a26614f18b76c1a2cad1a548e46 Author: Jan Blunck Date: Wed Feb 24 13:25:29 2010 +0100 BKL: Remove BKL from BFS The BKL is only used in put_super and fill_super that are both protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit 74c41429ae5889933a2b9b9d0d2f687baa410766 Author: Jan Blunck Date: Sun Aug 15 22:52:36 2010 +0200 BKL: Remove BKL from Amiga FFS The BKL is only used in put_super, fill_super and remount_fs that are all three protected by the superblocks s_umount rw_semaphore. Therefore it is safe to remove the BKL entirely. Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann commit db71922217a214e5c9268448e537b54fc1f301ea Author: Jan Blunck Date: Sun Aug 15 22:51:10 2010 +0200 BKL: Explicitly add BKL around get_sb/fill_super This patch is a preparation necessary to remove the BKL from do_new_mount(). It explicitly adds calls to lock_kernel()/unlock_kernel() around get_sb/fill_super operations for filesystems that still uses the BKL. I've read through all the code formerly covered by the BKL inside do_kern_mount() and have satisfied myself that it doesn't need the BKL any more. do_kern_mount() is already called without the BKL when mounting the rootfs and in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called from various places without BKL: simple_pin_fs(), nfs_do_clone_mount() through nfs_follow_mountpoint(), afs_mntpt_do_automount() through afs_mntpt_follow_link(). Both later functions are actually the filesystems follow_link inode operation. vfs_kern_mount() is calling the specified get_sb function and lets the filesystem do its job by calling the given fill_super function. Therefore I think it is safe to push down the BKL from the VFS to the low-level filesystems get_sb/fill_super operation. [arnd: do not add the BKL to those file systems that already don't use it elsewhere] Signed-off-by: Jan Blunck Signed-off-by: Arnd Bergmann Cc: Matthew Wilcox Cc: Christoph Hellwig commit e55df53dd62c73185af46fb6ffa7074b05ceefc4 Author: Nicolas Kaiser Date: Mon Oct 4 21:00:42 2010 +0200 netfilter: remove duplicated include Remove duplicated include. Signed-off-by: Nicolas Kaiser Signed-off-by: Patrick McHardy commit 21a180cda012e1f93e362dd4a9b0bfd3d8c92940 Merge: c7d4426 51e97a1 Author: David S. Miller Date: Mon Oct 4 11:56:38 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/ipv4/Kconfig net/ipv4/tcp_timer.c commit a8defca048fd11eb2d1a17ab61a60a856292dd4e Author: Eric Dumazet Date: Mon Oct 4 20:56:05 2010 +0200 netfilter: ipt_LOG: add bufferisation to call printk() once ipt_LOG & ip6t_LOG use lot of calls to printk() and use a lock in a hope several cpus wont mix their output in syslog. printk() being very expensive [1], its better to call it once, on a prebuilt and complete line. Also, with mixed IPv4 and IPv6 trafic, separate IPv4/IPv6 locks dont avoid garbage. I used an allocation of a 1024 bytes structure, sort of seq_printf() but with a fixed size limit. Use a static buffer if dynamic allocation failed. Emit a once time alert if buffer size happens to be too short. [1]: printk() has various features like printk_delay()... Signed-off-by: Eric Dumazet Signed-off-by: Patrick McHardy commit 0c200d935346fe0ebde9b6dffbb683dddd166fb9 Author: Stephen Hemminger Date: Mon Oct 4 20:53:18 2010 +0200 netfilter: nf_nat: make find/put static The functions nf_nat_proto_find_get and nf_nat_proto_put are only used internally in nf_nat_core. This might break some out of tree NAT module. Signed-off-by: Stephen Hemminger Signed-off-by: Patrick McHardy commit 1d7e3565946bf23fef5b3219be7df63b314478a2 Author: Rabin Vincent Date: Wed Sep 29 16:01:08 2010 +0100 ARM: 6418/1: ux500: rename DB8500 DMA event line macros Change the DMA event line macros to have the name of the SoC. Also, have the event line number encoded in the macro since on DB5500 several event lines are present at multiple alternate numbers. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit e81fcc97350755e021c85b816877ae292b8f28d0 Author: Linus Walleij Date: Tue Sep 28 15:45:41 2010 +0100 ARM: 6417/1: ux500: build configuration for DB5500 mbox and modem irq handler This rounds of the DB5500 mailbox patches by adding the Kconfig options to enable the modem IRQs and mailboxes. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 38cdfe06630a109a7a38b70c3cd208defd9f5711 Author: Linus Walleij Date: Mon Sep 27 22:11:57 2010 +0100 ARM: 6415/1: ux500: DB5500 mailbox driver This is a driver for the mailboxes used to communicate with the DB5500 modem portions. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit b84ccd776fedee8b28f736662cd045bf893ed633 Author: Linus Walleij Date: Mon Sep 27 22:10:55 2010 +0100 ARM: 6414/1: ux500: DB5500 generic modem IRQ handler This is a (threaded) IRQ handler for the modems that appear from the modem part of the DB5500 ASIC. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 4d4a4b037c5d3620b8c55504a8c9e0cbf949f7fa Author: Linus Walleij Date: Mon Sep 27 22:09:52 2010 +0100 ARM: 6413/1: ux500: resources for DB5500 mbox driver and modem irq handler Platform resources found in the DB5500 for mailboxes and the modem IRQ controller. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 366d4a43b1a7a861c356a0e407c4f03f454d42ea Author: Borislav Petkov Date: Mon Oct 4 09:31:27 2010 +0200 x86, cpu: Fix X86_FEATURE_NOPL ba0593bf553c450a03dbc5f8c1f0ff58b778a0c8 cleared the aforementioned cpuid bit only on 32-bit due to various problems with Virtual PC. This somehow got lost during the 32- + 64-bit merge so restore the feature bit on 64-bit. For that, set it explicitly for non-constant arguments of cpu_has(). Update comment for future reference. Signed-off-by: Borislav Petkov LKML-Reference: <20101004073127.GA20305@liondog.tnic> Cc: Ryan O'Neill Cc: Linus Torvalds Signed-off-by: H. Peter Anvin commit 758ff03387228824617cef9507e5682488bf9e0c Author: Simon Horman Date: Sun Aug 22 21:37:55 2010 +0900 IPVS: sip persistence engine Add the SIP callid as a key for persistence. This allows multiple connections from the same IP address to be differentiated on the basis of the callid. When used in conjunction with the persistence mask, it allows connections from different IP addresses to be aggregated on the basis of the callid. It is envisaged that a persistence mask of 0.0.0.0 will be a useful setting. That is, ignore the source IP address when checking for persistence. It is envisaged that this option will be used in conjunction with one-packet scheduling. This only works with UDP and cannot be made to work with TCP within the current framework. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit f71499aa11f884255b69ce6c3b3c398c821591a1 Author: Simon Horman Date: Sun Aug 22 21:37:54 2010 +0900 IPVS: Fallback if persistence engine fails Fall back to normal persistence handling if the persistence engine fails to recognise a packet. This way, at least the packet will go somewhere. It is envisaged that iptables could be used to block packets such if this is not desired although nf_conntrack_sip would likely need to be enhanced first. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 0d1e71b04a04b6912e50926b9987c1e72facb1f3 Author: Simon Horman Date: Sun Aug 22 21:37:54 2010 +0900 IPVS: Allow configuration of persistence engines Allow the persistence engine of a virtual service to be set, edited and unset. This feature only works with the netlink user-space interface. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 8be67a6617b3403551fccb67b1c624c659419515 Author: Simon Horman Date: Sun Aug 22 21:37:54 2010 +0900 IPVS: management of persistence engine modules This is based heavily on the scheduler management code Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit a3c918acd29a96aba3b46bf50136e7953a480d17 Author: Simon Horman Date: Sun Aug 22 21:37:53 2010 +0900 IPVS: Add persistence engine data to /proc/net/ip_vs_conn This shouldn't break compatibility with userspace as the new data is at the end of the line. I have confirmed that this doesn't break ipvsadm, the main (only?) user-space user of this data. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 85999283a21ab2dd37427fdd8c8e8af57223977c Author: Simon Horman Date: Sun Aug 22 21:37:53 2010 +0900 IPVS: Add struct ip_vs_pe Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 2fabf35bfcd89445c54cf1e6a5437dd3cf924a92 Author: Simon Horman Date: Sun Aug 22 21:37:52 2010 +0900 IPVS: ip_vs_{un,}bind_scheduler NULL arguments In general NULL arguments aren't passed by the few callers that exist, so don't test for them. The exception is to make passing NULL to ip_vs_unbind_scheduler() a noop. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 6e08bfb879574524cc9a67be960c684989fd986c Author: Simon Horman Date: Sun Aug 22 21:37:52 2010 +0900 IPVS: Allow null argument to ip_vs_scheduler_put() This simplifies caller logic sightly. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit f11017ec2d1859c661f4e2b12c4a8d250e1f47cf Author: Simon Horman Date: Sun Aug 22 21:37:52 2010 +0900 IPVS: Add struct ip_vs_conn_param Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 5b57a98c1f0d78a4c238d83c4ac70de3bd237b2f Author: Simon Horman Date: Sun Aug 22 21:37:51 2010 +0900 IPVS: compact ip_vs_sched_persist() Compact ip_vs_sched_persist() by setting up parameters and calling functions once. Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 001985b2c0cfad48e1dec8e30f4d432eac240dd2 Author: Simon Horman Date: Sun Aug 22 21:37:51 2010 +0900 netfilter: nf_conntrack_sip: Add callid parser Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit 5adbb9fb0c35c38022f79e09fecf15ba8f65f069 Author: Simon Horman Date: Sun Aug 22 21:37:51 2010 +0900 netfilter: nf_conntrack_sip: Allow ct_sip_get_header() to be called with a null ct argument Signed-off-by: Simon Horman Acked-by: Julian Anastasov commit bd151412263a67b5321e9dd1d5b4bf6d96fdebf3 Author: Thomas Gleixner Date: Fri Oct 1 15:17:14 2010 +0200 genirq: Provide config option to disable deprecated code This option covers now the old chip functions and the irq_desc data fields which are moving to struct irq_data. More stuff will follow. Pretty handy for testing a conversion, whether something broke or not. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 540804b5c52065a87d826f7714b18a3ec0b269f9 Author: Stephane Eranian Date: Mon Oct 4 12:00:02 2010 +0200 perf_events: Fix invalid pointer when pid is invalid This patch fixes an error in perf_event_open() when the pid provided by the user is invalid. find_lively_task_by_vpid() does not return NULL on error but an error code. Without the fix the error code was silently passed to find_get_context() which would eventually cause a invalid pointer dereference. Signed-off-by: Stephane Eranian Cc: peterz@infradead.org Cc: paulus@samba.org Cc: davem@davemloft.net Cc: fweisbec@gmail.com Cc: perfmon2-devel@lists.sf.net Cc: eranian@gmail.com Cc: robert.richter@amd.com LKML-Reference: <4ca9a5d1.e8e9d80a.3dbb.ffff8f2e@mx.google.com> Signed-off-by: Ingo Molnar commit 21e2b8c62cca8f7dbec0c8c131ca1637e4a5670f Author: Thomas Gleixner Date: Mon Sep 27 12:45:53 2010 +0000 genirq: Provide compat handling for chip->retrigger() Wrap the old chip function retrigger() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.025801092@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 2f7e99bb9be6a2d8d7b808dc86037710cc8b7bf1 Author: Thomas Gleixner Date: Mon Sep 27 12:45:50 2010 +0000 genirq: Provide compat handling for chip->set_wake() Wrap the old chip function set_wake() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.927527393@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit b2ba2c30033c10cca2454f8b44bf98f5249e61c6 Author: Thomas Gleixner Date: Mon Sep 27 12:45:47 2010 +0000 genirq: Provide compat handling for chip->set_type() Wrap the old chip function set_type() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.832261548@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit c96b3b3c448592a0b87ef20306deb8b1fb4878c7 Author: Thomas Gleixner Date: Mon Sep 27 12:45:41 2010 +0000 genirq: Provide compat handling for chip->set_affinity() Wrap the old chip function set_affinity() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.732894108@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 37e12df709f09eac17314d79a52190ac46746e33 Author: Thomas Gleixner Date: Mon Sep 27 12:45:38 2010 +0000 genirq: Provide compat handling for chip->startup() Wrap the old chip function startup() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.635152961@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit bc310dda41be6439364c8f3b9fe7c9d743d22b1c Author: Thomas Gleixner Date: Mon Sep 27 12:45:02 2010 +0000 genirq: Provide compat handling for chip->disable()/shutdown() Wrap the old chip functions disable() and shutdown() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.532070631@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit c5f756344c390f629243b4a28c2bd198fdfd7ee9 Author: Thomas Gleixner Date: Mon Sep 27 12:44:56 2010 +0000 genirq: Provide compat handling for chip->enable() Wrap the old chip function enable() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.437159182@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 0c5c15572ac096001f52d37b416f2a4be9aebb80 Author: Thomas Gleixner Date: Mon Sep 27 12:44:53 2010 +0000 genirq: Provide compat handling for chip->eoi() Wrap the old chip function eoi() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.339657617@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 9205e31d1af0f725e71bbae10d199c6b9e8d6dd8 Author: Thomas Gleixner Date: Mon Sep 27 12:44:50 2010 +0000 genirq: Provide compat handling for chip->mask_ack() Wrap the old chip function mask_ack() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.240806983@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 22a49163e90dd7088f801dd54e25b04e1f337e9b Author: Thomas Gleixner Date: Mon Sep 27 12:44:47 2010 +0000 genirq: Provide compat handling for chip->ack() Wrap the old chip function ack() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.142624725@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 0eda58b7f3a30c9a13d83db1cfaab00e1c452055 Author: Thomas Gleixner Date: Mon Sep 27 12:44:44 2010 +0000 genirq: Provide compat handling for chip->unmask() Wrap the old chip function unmask() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.043608928@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit e2c0f8ff0fc26959952fbfa89f732fef928df77f Author: Thomas Gleixner Date: Mon Sep 27 12:44:42 2010 +0000 genirq: Provide compat handling for chip->mask() Wrap the old chip function mask() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.940355859@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 3876ec9ef3775d062345b3760d3271ecb8cd3fea Author: Thomas Gleixner Date: Mon Sep 27 12:44:35 2010 +0000 genirq: Provide compat handling for bus_lock/bus_sync_unlock Wrap the old chip functions for bus_lock/bus_sync_unlock until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.842536121@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit a77c4635915021c646cc017f22239e66d1aab4d5 Author: Thomas Gleixner Date: Fri Oct 1 14:44:58 2010 +0200 genirq: Add new functions to dummy chips The compat functions go away when the core code is converted. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f8822657e799b02c55556c99a601261e207a299d Author: Thomas Gleixner Date: Mon Sep 27 12:44:32 2010 +0000 genirq: Provide advanced irq chip functions The low level irq chip functions want access to irq_desc->irq_data. Provide new functions which hand down irq_data instead of the irq number so these functions avoid to call irq_to_desc() which is a radix tree lookup in case of sparse irq. This provides all the old functions except one: end(). end() is a relict of __do_IRQ() and will just go away with the __do_IRQ() code. The replacement for set_affinity() has an extra argument "bool force". The reason for this is to notify the low level code, that the move has to be done right away and cannot be delayed until the next interrupt happens. That's necessary to handle the irq fixup on cpu unplug in the generic code. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.742126604@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 6b8ff3120c758340505dddf08ad685ebb841d5d5 Author: Thomas Gleixner Date: Fri Oct 1 12:58:38 2010 +0200 genirq: Convert core code to irq_data Convert all references in the core code to orq, chip, handler_data, chip_data, msi_desc, affinity to irq_data.* Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit ff7dcd44dd446db2c3e13bdedf2d52b8e0127f16 Author: Thomas Gleixner Date: Mon Sep 27 12:44:25 2010 +0000 genirq: Create irq_data Low level chip functions need access to irq_desc->handler_data, irq_desc->chip_data and irq_desc->msi_desc. We hand down the irq number to the low level functions, so they need to lookup irq_desc. With sparse irq this means a radix tree lookup. We could hand down irq_desc itself, but low level chip functions have no need to fiddle with it directly and we want to restrict access to irq_desc further. Preparatory patch for new chip functions. Note, that the ugly anon union/struct is there to avoid a full tree wide clean up for now. This is not going to last 3 years like __do_IRQ() Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.645542300@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 3bb9808e99bcc36eecb8e082bf70efb2a0bcdcb7 Author: Thomas Gleixner Date: Mon Sep 27 12:46:02 2010 +0000 x86: Use genirq Kconfig Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.314600915@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit d9817ebeeef16e01487549312c68540ca8f1561b Author: Thomas Gleixner Date: Mon Sep 27 12:45:59 2010 +0000 genirq: Provide Kconfig The generic irq Kconfig options are copied around all archs. Provide a generic Kconfig file which can be included. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.217333624@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit e7ffec1eb178db349c7fbfd647725e9d06619962 Author: Thomas Gleixner Date: Sun Oct 3 20:08:13 2010 +0200 isdn: Free irq_data namespace The irq_data namespace is the preference for the generic irq layer. Rename the union typedef in drivers/isdn/act2000/act2000.h Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 35a27e8e6565910e5202f1af83ea85305fbf5ceb Author: Thomas Gleixner Date: Fri Oct 1 16:35:59 2010 +0200 mfd: Rename struct irq_data to struct sih_irq_data struct irq_data is the preferred name for the data associated to an interrupt in the core code. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 4fdaa7b682b413dfb7ca9fa74ff45b1e0cb3dade Author: Robert Richter Date: Thu Aug 19 10:50:26 2010 +0200 oprofile: Remove duplicate code around __oprofilefs_create_file() Removing duplicate code by assigning the inodes private data pointer in __oprofilefs_create_file(). Extending the function interface to pass the pointer. Signed-off-by: Robert Richter commit dc0c22b878a60373762495b8e5628a32c1b80ac4 Author: Robert Richter Date: Fri Aug 27 14:32:41 2010 +0200 oprofile, ARM: Remove some goto statements This patch removes some unnecessary goto statements. Acked-by: Will Deacon Signed-off-by: Robert Richter commit f6be4b428197766521aca664a935c63888d096d9 Author: Robert Richter Date: Wed Sep 29 14:43:29 2010 +0200 oprofile, ARM: Rework op_create_counter() This patch simplifies op_create_counter(). Removing if/else if paths and return code variable by direct returning from function. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 4d1814f48edec31f12737609cd1c871864c8298b Author: Robert Richter Date: Wed Sep 29 15:42:30 2010 +0200 oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure There is duplicate cleanup code in the init and exit functions. Now, oprofile_arch_exit() is also used if oprofile_arch_init() fails. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 54dc3f4674fbaf362d6e969904bfcece3cfebef1 Author: Eric BĂ©nard Date: Sat Oct 2 17:15:26 2010 +0200 mach-cpuimx35: remove unecessary tsc2007 functions + style cleanup - remove functions which are no more necessary for tsc2007 - indent platform_data for better readability Signed-off-by: Eric BĂ©nard Signed-off-by: Sascha Hauer commit c7d4426a98a5f6654cd0b4b33d9dab2e77192c18 Author: Eric Dumazet Date: Sun Oct 3 22:17:54 2010 -0700 net: introduce DST_NOCACHE flag While doing stress tests with IP route cache disabled, and multi queue devices, I noticed a very high contention on one rwlock used in neighbour code. When many cpus are trying to send frames (possibly using a high performance multiqueue device) to the same neighbour, they fight for the neigh->lock rwlock in order to call neigh_hh_init(), and fight on hh->hh_refcnt (a pair of atomic_inc/atomic_dec_and_test()) But we dont need to call neigh_hh_init() for dst that are used only once. It costs four atomic operations at least, on two contended cache lines, plus the high contention on neigh->lock rwlock. Introduce a new dst flag, DST_NOCACHE, that is set when dst was not inserted in route cache. With the stress test bench, sending 160000000 frames on one neighbour, results are : Before patch: real 2m28.406s user 0m11.781s sys 36m17.964s After patch: real 1m26.532s user 0m12.185s sys 20m3.903s Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9a7241c21b06c3a3f8ebcf3e347bd68556369da7 Author: David S. Miller Date: Sun Oct 3 22:14:37 2010 -0700 sctp: Fix break indentation in sctp_ioctl(). Signed-off-by: David S. Miller commit 3abcdeda59c1d4cf2bf83311ed2d544355ec7c2d Author: Sathya Perla Date: Sun Oct 3 22:12:27 2010 -0700 be2net: add multiple RX queue support This patch adds multiple RX queue support to be2net. There are upto 4 extra rx-queues per port into which TCP/UDP traffic can be hashed into. Some of the ethtool stats are now displayed on a per queue basis. Signed-off-by: Sathya Perla Signed-off-by: David S. Miller commit 72829071269b19381173a13ea1b2ca2f4f9d4cec Merge: 10651db 41f4a6f Author: David S. Miller Date: Sun Oct 3 22:09:32 2010 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 10651db75a94c54a34bbf85fbee334d1114da3fb Author: Ursula Braun Date: Fri Oct 1 02:51:13 2010 +0000 qeth: tagging with VLAN-ID 0 This patch adapts qeth to handle tagged frames with VLAN-ID 0 and with or without priority information in the tag. It enables qeth to receive priority-tagged frames on a base interface, for example from z/OS, without configuring an additional VLAN interface. Signed-off-by: Ursula Braun Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit a069ec917457e44e214fc34e50acd185110fa81b Author: Dimitris Michailidis Date: Thu Sep 30 09:17:12 2010 +0000 cxgb4: remove a bogus PCI function number check Remove a bogus PCI function number check from the driver's .remove method that causes pci_release_regions not to be called for function 0 if additional functions are attached and one of them is used as primary. Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit 1790c228fb3f57793160c0f0c20b55c398cab106 Author: Julia Lawall Date: Sat Oct 2 04:37:07 2010 +0000 drivers/atm/idt77252.c: Remove unnecessary error check This code does not call deinit_card(card); in an error case, as done in other error-handling code in the same function. But actually, the called function init_sram can only return 0, so there is no need for the error check at all. init_sram is also given a void return type, and its single return statement at the end of the function is dropped. A simplified version of the sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ @r@ statement S1,S2,S3; constant C1,C2,C3; @@ *if (...) {... S1 return -C1;} ... *if (...) {... when != S1 return -C2;} ... *if (...) {... S1 return -C3;} // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit f009627b71eacfeede3d63b00a25afdf5e3e24bb Author: Andrew Morton Date: Fri Oct 1 11:17:12 2010 +0000 drivers-net-tulip-de4x5c-fix-copy-length-in-de4x5_ioctl-checkpatch-fixes ERROR: trailing statements should be on next line #23: FILE: drivers/net/tulip/de4x5.c:5477: + if (copy_to_user(ioc->data, tmp.lval, ioc->len)) return -EFAULT; total: 1 errors, 0 warnings, 8 lines checked ./patches/drivers-net-tulip-de4x5c-fix-copy-length-in-de4x5_ioctl.patch has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. Please run checkpatch prior to sending patches Cc: Dan Rosenberg Cc: Grant Grundler Cc: Jeff Mahoney Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit a8cb16dd9cb571c45bb479a1e4721ce11220a216 Author: Eric Dumazet Date: Fri Oct 1 16:15:29 2010 +0000 ipmr: cleanups Various code style cleanups Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a8c9486b816f74d4645144db9e8fa2f711c1fc4b Author: Eric Dumazet Date: Fri Oct 1 16:15:08 2010 +0000 ipmr: RCU protection for mfc_cache_array Use RCU & RTNL protection for mfc_cache_array[] ipmr_cache_find() is called under rcu_read_lock(); Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 4c9687098f245601e9d94178715ee03afbcc6f80 Author: Eric Dumazet Date: Fri Oct 1 16:15:01 2010 +0000 ipmr: RCU conversion of mroute_sk Use RCU and RTNL to protect (struct mr_table)->mroute_sk Readers use RCU, writers use RTNL. ip_ra_control() already use an RCU grace period before ip_ra_destroy_rcu(), so we dont need synchronize_rcu() in mrtsock_destruct() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 55747a0a73ea74a25fcebb0731e8d3f13fe8c09d Author: Eric Dumazet Date: Fri Oct 1 16:14:55 2010 +0000 ipmr: __pim_rcv() is called under rcu_read_lock No need to get a reference on reg_dev and release it, we are in a rcu_read_lock() protected section. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit ddcb4541e917780ef7ccc68dd8df18ca0bc055d0 Author: stephen hemminger Date: Fri Oct 1 13:58:00 2010 +0000 gre: protocol table can be static This table is only used in gre.c Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ec706dab290c486837d4a825870ab052bf200279 Author: Nicolas Pitre Date: Thu Aug 26 23:10:50 2010 -0400 ARM: add a vma entry for the user accessible vector page The kernel makes the high vector page visible to user space. This page contains (amongst others) small code segments that can be executed in user space. Make this page visible through ptrace and /proc//mem in order to let gdb perform code parsing needed for proper unwinding. For example, the ERESTART_RESTARTBLOCK handler actually has a stack frame -- it returns to a PC value stored on the user's stack. To unwind after a "sleep" system call was interrupted twice, GDB would have to recognize this situation and understand that stack frame layout -- which it currently cannot do. We could fix this by hard-coding addresses in the vector page range into GDB, but that isn't really portable as not all of those addresses are guaranteed to remain stable across kernel releases. And having the gdb process make an exception for this page and get content from its own address space for it looks strange, and it is not future proof either. Being located above PAGE_OFFSET, this vma cannot be deleted by user space code. Signed-off-by: Nicolas Pitre commit 70c70d97809c3cdb8ff04f38ee3718c5385a2a4d Author: Nicolas Pitre Date: Thu Aug 26 15:08:35 2010 -0700 ARM: SECCOMP support Signed-off-by: Nicolas Pitre commit 087aaffcdf9c91667c93923fbc05fa8fb6bc7d3a Author: Nicolas Pitre Date: Wed Sep 22 18:34:36 2010 -0400 ARM: implement CONFIG_STRICT_DEVMEM by disabling access to RAM via /dev/mem There are very few legitimate use cases, if any, for directly accessing system RAM through /dev/mem. So let's mimic what they do on x86 and forbid it when CONFIG_STRICT_DEVMEM is turned on. Signed-off-by: Nicolas Pitre commit 7c63984b86f96c71c541132c74c4b56fe2a13e1a Author: Nicolas Pitre Date: Thu Sep 23 16:52:40 2010 -0400 ARM: do not define VMALLOC_END relative to PAGE_OFFSET VMALLOC_END is supposed to be an absolute value, while PAGE_OFFSET may vary depending on the selected user:kernel memory split mode through CONFIG_VMSPLIT_*. In fact, the goal of moving PAGE_OFFSET down is to accommodate more directly addressed RAM by the kernel below the vmalloc area, and having VMALLOC_END move along PAGE_OFFSET is rather against the very reason why PAGE_OFFSET can be moved in the first place. Signed-off-by: Nicolas Pitre commit 33d7c5c1c808ea47d85630ac2dd98490d7df0ff4 Author: Amit Kucheria Date: Wed Sep 1 22:49:13 2010 +0300 ARM: mxc: turn off HWCAP_NEON for older versions of imx51 silicon Versions of silicon older than TO3 have broken NEON implementation. Turn off NEON in such cases. Signed-off-by: Amit Kucheria Tested-by: Dave Martin Tested-by: Jason Hui Signed-off-by: Nicolas Pitre commit c62d0f2ac18d38265ccf0e821e6afee60a0c89b5 Author: Nicolas Pitre Date: Wed Sep 1 09:37:05 2010 -0400 ARM: link board specific files after core files This allows for board specific issues to override decisions made in generic code that might not be suitable due to some errata or the like, by making the initcall hooks from those board specific files run after the core ones, therefore avoiding ugly #ifdef's in core code. Signed-off-by: Nicolas Pitre Tested-by: Dave Martin Tested-by: Jason Hui commit 5c80cc78de46aef6cd5e714208da05c3f7f548f8 Author: Andreas Herrmann Date: Thu Sep 30 14:43:16 2010 +0200 x86, amd_nb: Enable GART support for AMD family 0x15 CPUs AMD CPU family 0x15 still supports GART for compatibility reasons. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930124316.GG20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit d4fbe4f03557e1fd4d9bbb3a1957aad560f39e96 Author: Andreas Herrmann Date: Thu Sep 30 14:41:56 2010 +0200 x86, amd: Use compute unit information to determine thread siblings This information is vital for different load balancing policies. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930124156.GF20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 6057b4d331f19a3ea51aec463ea7839c128b3227 Author: Andreas Herrmann Date: Thu Sep 30 14:38:57 2010 +0200 x86, amd: Extract compute unit information for AMD CPUs Get compute unit information from CPUID Fn8000_001E_EBX. (See AMD CPUID Specification - publication # 25481, revision 2.34, September 2010.) Note that each core on a compute unit still has a core_id of its own. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123857.GE20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 23588c38a84c9175c6668789b64ffba4651e5c6a Author: Andreas Herrmann Date: Thu Sep 30 14:36:28 2010 +0200 x86, amd: Add support for CPUID topology extension of AMD CPUs Node information (ID, number of internal nodes) is provided via CPUID Fn8000_001e_ECX. See AMD CPUID Specification (Publication # 25481, Revision 2.34, September 2010). Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123628.GD20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 420b13b60a3e5c5dcc6ec290e131cf5fbc603d94 Author: Andreas Herrmann Date: Thu Sep 30 14:33:58 2010 +0200 x86, nmi: Support NMI watchdog on newer AMD CPU families CPU families 0x12, 0x14 and 0x15 support this functionality. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123357.GC20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 3fdbf004c1706480a7c7fac3c9d836fa6df20d7d Author: Andreas Herrmann Date: Thu Sep 30 14:32:35 2010 +0200 x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD CPUs Instead of adapting the CPU family check in amd_special_default_mtrr() for each new CPU family assume that all new AMD CPUs support the necessary bits in SYS_CFG MSR. Tom2Enabled is architectural (defined in APM Vol.2). Tom2ForceMemTypeWB is defined in all BKDGs starting with K8 NPT. In pre K8-NPT BKDG this bit is reserved (read as zero). W/o this adaption Linux would unnecessarily complain about bad MTRR settings on every new AMD CPU family, e.g. [ 0.000000] WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 4863MB of RAM. Cc: stable@kernel.org # .32.x, .35.x Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123235.GB20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 86ffb08519d6fe1e9c4fe5a110ffa5fcb868cb1c Merge: 23ac4ae aeb9c7d Author: H. Peter Anvin Date: Fri Oct 1 16:18:11 2010 -0700 Merge remote branch 'origin/x86/cpu' into x86/amd-nb commit e33621a2e3f2b7b73259f6740776b3983ec5bab9 Author: FUJITA Tomonori Date: Fri Oct 1 14:15:27 2010 -0700 [IA64] enable ARCH_DMA_ADDR_T_64BIT Signed-off-by: FUJITA Tomonori Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 35ed16740c564ff092fe45804dfbbb1449f2bd7e Author: Rahul Ruikar Date: Fri Oct 1 13:32:45 2010 -0700 [IA64] ioc3_serial: release resources in error return path In ioc3uart_probe() resources were not released during error return path - ports[phys_port] Signed-off-by: Rahul Ruikar Signed-off-by: Tony Luck commit c49c06e4960949a9bced708858433fcf6ca36a9c Author: Vivek Goyal Date: Fri Oct 1 21:16:42 2010 +0200 blkio-throttle: Fix possible multiplication overflow in iops calculations o User can specify max iops value of 32bit (UINT_MAX), through cgroup interface. If a user has specified say 4294967294 (UNIT_MAX - 2), then on 32bit platform, following multiplication can overflow. io_allowed = (tg->iops[rw] * jiffy_elapsed_rnd) o Explicitly cast the multiplication to 64bit and then perform division and then check whether result is still great then UNINT_MAX. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 9355aede5a3c4975e0ba8bbfe2b9d1fd73308916 Author: Vivek Goyal Date: Fri Oct 1 21:16:41 2010 +0200 blkio-throttle: limit max iops value to UINT_MAX - Limit max iops value to UINT_MAX and return error to user if value is more than that instead of accepting bigger values and truncating implicitly. Signed-off-by: Jens Axboe commit 5e901a2b95db709c5e40599ff4df6029be1e2a12 Author: Vivek Goyal Date: Fri Oct 1 21:16:38 2010 +0200 blkio-throttle: There is no need to convert jiffies to milli seconds o Do not convert jiffies to mili seconds as it is not required. Just work with jiffies and HZ. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 41f4a6f71fe33faa7971c173c263fb431fe987fe Merge: 94d57c4 1728943 Author: John W. Linville Date: Fri Oct 1 11:12:36 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem commit 5140434d5f82f2e2119926272ada2e9731ec04f1 Author: Robert Richter Date: Thu Sep 30 18:55:47 2010 +0200 oprofile, x86: Simplify init/exit functions Now, that we only call the exit function if init succeeds with commit: 979048e oprofile: don't call arch exit code from init code on failure we can simplify the x86 init/exit functions too. Variable using_nmi becomes obsolete. Signed-off-by: Robert Richter commit f6dedecc37164a58bb80ae2ed9d204669ffc4850 Author: Jiri Olsa Date: Wed Sep 29 10:46:47 2010 -0400 oprofile, x86: Adding backtrace dump for 32bit process in compat mode This patch implements the oprofile backtrace generation for 32 bit applications running in the 64bit environment (compat mode). With this change it's possible to get backtrace for 32bits applications under the 64bits environment using oprofile's callgraph options. opcontrol --setup -c ... opreport -l -cg ... Signed-off-by: Jiri Olsa Signed-off-by: Robert Richter commit 40c6b3cb64cd1d02322df5f729cca25084580f40 Author: Jiri Olsa Date: Wed Sep 29 10:46:46 2010 -0400 oprofile, x86: Using struct stack_frame for 64bit processes dump Removing unnecessary struct frame_head and replacing it with struct stack_frame. The struct stack_frame is already defined and used in other places in kernel, so there's no reason to define new structure. Signed-off-by: Jiri Olsa Signed-off-by: Robert Richter commit 3aad5d3ee4e4fce8f4b5bb6ca73342dcade42b33 Author: Vivek Goyal Date: Fri Oct 1 14:51:14 2010 +0200 blkio-throttle: Fix link failure failure on i386 o Randy Dunlap reported following linux-next failure. This patch fixes it. on i386: blk-throttle.c:(.text+0x1abb8): undefined reference to `__udivdi3' blk-throttle.c:(.text+0x1b1dc): undefined reference to `__udivdi3' o bytes_per_second interface is 64bit and I was continuing to do 64 bit division even on 32bit platform without help of special macros/functions hence the failure. Signed-off-by: Vivek Goyal Reported-by: Randy Dunlap Signed-off-by: Jens Axboe commit fe0714377ee2ca161bf2afb7773e22f15f1786d4 Author: Vivek Goyal Date: Fri Oct 1 14:49:49 2010 +0200 blkio: Recalculate the throttled bio dispatch time upon throttle limit change o Currently any cgroup throttle limit changes are processed asynchronousy and the change does not take affect till a new bio is dispatched from same group. o It might happen that a user sets a redicuously low limit on throttling. Say 1 bytes per second on reads. In such cases simple operations like mount a disk can wait for a very long time. o Once bio is throttled, there is no easy way to come out of that wait even if user increases the read limit later. o This patch fixes it. Now if a user changes the cgroup limits, we recalculate the bio dispatch time according to new limits. o Can't take queueu lock under blkcg_lock, hence after the change I wake up the dispatch thread again which recalculates the time. So there are some variables being synchronized across two threads without lock and I had to make use of barriers. Hoping I have used barriers correctly. Any review of memory barrier code especially will help. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 02977e4af7ed3b478c505e50491ffdf3e1314cf4 Author: Vivek Goyal Date: Fri Oct 1 14:49:48 2010 +0200 blkio: Add root group to td->tg_list o Currently all the dynamically allocated groups, except root grp is added to td->tg_list. This was not a problem so far but in next patch I will travel through td->tg_list to process any updates of limits on the group. If root group is not in tg_list, then root group's updates are not processed. o It is better to root group also to tg_list instead of doing special processing for it during limit updates. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 61014e96e6ed55b8db0af31574eec2a75d4e8755 Author: Vivek Goyal Date: Fri Oct 1 14:49:44 2010 +0200 blkio: deletion of a cgroup was causes oops o Now a cgroup list of blkg elements can contain blkg from multiple policies. Before sending an unlink event, make sure blkg belongs to they policy. If policy does not own the blkg, do not send update for this blkg. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 13f98250f587b7defa39ed738dfa74b600e46e7b Author: Vivek Goyal Date: Fri Oct 1 14:49:41 2010 +0200 blkio: Do not export throttle files if CONFIG_BLK_DEV_THROTTLING=n Currently throttling related files were visible even if user had disabled throttling using config options. It was switching off background throttling of bio but not the cgroup files. This patch fixes it. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit efb012b361cf9319cd86ff169afa7550b7aa9336 Author: Malahal Naineni Date: Fri Oct 1 14:45:27 2010 +0200 block: set the bounce_pfn to the actual DMA limit rather than to max memory The bounce_pfn of the request queue in 64 bit systems is set to the current max_low_pfn. Adding more memory later makes this incorrect. Memory allocated beyond this boot time max_low_pfn appear to require bounce buffers (bounce buffers are actually not allocated but used in calculating segments that may result in "over max segments limit" errors). Signed-off-by: Malahal Naineni Signed-off-by: Jens Axboe commit 260a67a9e534f0c7d49ddd6451833d54ba39ac81 Author: Jens Axboe Date: Fri Oct 1 14:42:43 2010 +0200 block: revert bad fix for memory hotplug causing bounces Revert "block: set the bounce_pfn to the actual DMA limit rather than to max memory" This reverts commit c49825facfd4969585224a896a5e717f88450cad. Signed-off-by: Jens Axboe commit 94d57c4cfaa43e29ca5fa5ff874048cfc67276f5 Author: Vasanthy Kolluri Date: Thu Sep 30 13:36:05 2010 +0000 enic: Update MAINTAINERS Update MAINTAINERS list Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit 2fdba3881154ee91927af7d7436d54eb05dcc3bf Author: Vasanthy Kolluri Date: Thu Sep 30 13:35:45 2010 +0000 enic: Make local functions static Make functions used locally in a file as static Signed-off-by: Stephen Hemminger Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit bf746e62afc83be1baccc0cc9e128a9805ecd5fd Author: Vasanthy Kolluri Date: Thu Sep 30 13:35:34 2010 +0000 enic: Remove dead code Removed code that is unused Signed-off-by: Stephen Hemminger Signed-off-by: Vasanthy Kolluri Signed-off-by: Roopa Prabhu Signed-off-by: David Wang Signed-off-by: David S. Miller commit 367e5e376922dcf52f92e1db436010fb828d3bfa Author: Eric Dumazet Date: Thu Sep 30 05:36:29 2010 +0000 neigh: reorder fields in struct neighbour On 64bit arches, there are two 32bit holes that we can remove. sizeof(struct neighbour) shrinks from 0xf8 to 0xf0 bytes Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit bb7196d2bf30e4cb06fe5fed046c9084465e854c Author: Tilman Schmidt Date: Thu Sep 30 13:35:52 2010 +0000 isdn/gigaset: improve bas_gigaset USB error reporting Rephrase some USB error messages to make them clearer and more consistent. Downgrade some warning messages that may occur during normal operation to debug messages. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit c9c0c3043452d30ab87135ba3753ce7855a3a8e7 Author: Tilman Schmidt Date: Thu Sep 30 13:35:42 2010 +0000 isdn/gigaset: fix bas_gigaset interrupt read error handling Rework the handling of USB errors in interrupt input reads to clear halts correctly, delay URB resubmission after errors, limit retries, and improve error recovery. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit 4cb5e42f6132bf2d2851f8dd67bd8499979c7ebc Author: Tilman Schmidt Date: Thu Sep 30 13:35:31 2010 +0000 isdn/gigaset: unclog bas_gigaset AT response pipe Recover from a lost HD_RECEIVEATDATA_ACK message by sending a zero-length HD_READ_ATMESSAGE command when ev_layer sends "+++". Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit 60798c68bebf6009df9da634e79ebdd8c8227238 Author: Tilman Schmidt Date: Thu Sep 30 13:35:21 2010 +0000 isdn/gigaset: try USB reset for bas_gigaset error recovery In error_reset(), if sending HD_RESET_INTERRUPT_PIPE to the device fails, try performing an USB reset. Also correct an error in the leading comment. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit 1d5a9edcd5f1fe6483afca33294ed0ebab793ebf Author: Tilman Schmidt Date: Thu Sep 30 13:35:11 2010 +0000 isdn/gigaset: bas_gigaset timer cleanup Use setup_timer() and mod_timer() instead of direct assignment to timer structure members, simplify the argument of one timer routine, and make extra sure all timers are stopped during suspend. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit befba36ab942c44ba1d3761a7439324fff83638f Author: Tilman Schmidt Date: Thu Sep 30 13:35:01 2010 +0000 isdn/gigaset: drop obsolete debug option Remove the debug flag DEBUG_DRIVER and associated code. It doesn't serve any useful purpose anymore. Signed-off-by: Tilman Schmidt Signed-off-by: David S. Miller commit f3d531b99fb30945b4a64d6e2e86e1e62605aca5 Author: Tilman Schmidt Date: Thu Sep 30 13:34:51 2010 +0000 isdn/gigaset: correct bas_gigaset rx buffer handling In transparent data reception, avoid a NULL pointer dereference in case an skbuff cannot be allocated, remove an inappropriate call to the HDLC flush routine, and correct the accounting of received bytes for continued buffers. Signed-off-by: Tilman Schmidt CC: stable Signed-off-by: David S. Miller commit c8701a08d6a4efeae45d84d0aa87172f23b14e3c Author: Tilman Schmidt Date: Thu Sep 30 13:34:40 2010 +0000 isdn/gigaset: fix bas_gigaset AT read error handling Rework the handling of USB errors in AT response reads to fix a possible infinite retry loop and a memory leak, and silence a few overly verbose kernel messages. Signed-off-by: Tilman Schmidt CC: stable Signed-off-by: David S. Miller commit b33ffa5cbf52ee751bb8068218ebb3c742c5a515 Author: Tilman Schmidt Date: Thu Sep 30 13:34:30 2010 +0000 isdn/gigaset: bas_gigaset locking fix Unlock cs->lock before calling error_hangup() which is marked "cs->lock must not be held". Signed-off-by: Tilman Schmidt CC: stable Signed-off-by: David S. Miller commit bd9e310dca15c9987256f67af19f9f42426e7493 Author: Uwe Kleine-König Date: Tue Sep 28 22:04:01 2010 +0200 ARM: imx/pca100: only specify i2c device type once The first argument to I2C_BOARD_INFO is used to assign .type, so it should not be specified a second time. For the rtc-pcf8563/pcf8563 entry gcc preferred pcf8563, so did I. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 214b43100fd59e55fcd265329aafd14ab01ec30d Author: Uwe Kleine-König Date: Tue Sep 28 21:55:22 2010 +0200 ARM: imx/pcm970: make platform_data static This fixes the following sparse warning: arch/arm/mach-imx/pcm970-baseboard.c:224:13: warning: symbol 'pcm970_baseboard_init' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6c80ee51707ec9fcf137bc7b511d2853b772eae6 Author: Uwe Kleine-König Date: Tue Sep 28 21:53:31 2010 +0200 ARM: imx: make all pin lists const and signed, move to .init where possible Making the lists signed fixes sparse warnings like: arch/arm/mach-imx/mach-mx27_3ds.c:94:31: warning: incorrect type in argument 1 (different signedness) arch/arm/mach-imx/mach-mx27_3ds.c:94:31: expected int const *pin_list arch/arm/mach-imx/mach-mx27_3ds.c:94:31: got unsigned int static [toplevel] * Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 7ad211e35b41166ccf8448345726f324f26260f7 Author: Uwe Kleine-König Date: Tue Sep 28 21:39:49 2010 +0200 ARM: imx/pcm038: make regulator platform data static This fixes the following sparse warning: arch/arm/mach-imx/pcm970-baseboard.c:203:30: warning: symbol 'pcm970_sja1000_platform_data' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 13040066e28688b635801cdd5c6587fddae0e232 Author: Uwe Kleine-König Date: Tue Sep 28 21:37:20 2010 +0200 ARM: imx/clock-imx27: Pass NULL as function callback, not 0 This fixes many sparse warnings like: arch/arm/mach-imx/clock-imx27.c:597:1: warning: Using plain integer as NULL pointer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8f6e900a661881f9585d9b3a7173a44020c3c0b2 Author: Sascha Hauer Date: Wed Aug 25 11:56:26 2010 +0200 ARM: mx5: clock-imx51: make *ipg clocks secondary clocks of their corresponding peripheral clocks Currently the uarts and timer only work because they are turned on by reset default. Make them secondary clocks of their corresponding peripheral clocks to make sure they are turned on when necessary. Also, register some clocks to get rid of compiler warnings Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 63a7c6d7507ed6f4ea24a8ed008efa1bb22a2a97 Author: Sascha Hauer Date: Tue Aug 3 11:59:46 2010 +0200 ARM: mx5: dynamically register mxc-nand device Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 00b57bf9786ca701508333112c8917d1e0860129 Author: Uwe Kleine-König Date: Mon Aug 23 11:25:52 2010 +0200 ARM: imx: reorganize nand registration to use a struct Addiontionally make the interrupt #defines match the base address defines MX.._NFC_BASE_ADDR. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 40e2eda92178f58fd7da2866d3f346dcd2baafed Author: Sascha Hauer Date: Fri Aug 20 16:44:34 2010 +0200 ARM: mx51: Add audmux support Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit b86186610f639344a7db54da89267f645afc30ec Author: Sascha Hauer Date: Fri Aug 20 16:43:54 2010 +0200 ARM: mx51: add imx-ssi devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 04b73b1571c26d491c62c42cb06b96bf482fa7a2 Author: Uwe Kleine-König Date: Wed Aug 11 22:23:06 2010 +0200 ARM: mx51: dynamically register imx-uart devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 2b82e64d787f9d1a5d304da137c2b1bdbe3b2d9d Author: Sascha Hauer Date: Tue Aug 3 11:59:07 2010 +0200 ARM: mx5: Add Nand clock support Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit f781bc8aa44c8676ad84b69fc4553e8f035c6e89 Author: Sascha Hauer Date: Tue Aug 24 14:49:09 2010 +0200 ARM: mx5/iomux-mx51: Fix input path of some pins in gpio mode Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 2e35bab5fd8b19a8eabbb4c57b3ddd305057eed4 Author: Sascha Hauer Date: Fri Aug 20 18:35:51 2010 +0200 ARM: mx5/iomux-mx51: Add aud3 primary function defines Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8efd9271fae0a735db5660330e14022031c88e77 Author: Sascha Hauer Date: Fri Aug 20 10:45:11 2010 +0200 ARM: mx5/iomux-mx51: Add SPI controller pads Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8005cf2eb39786a0a3592fe178603ee1caccc5eb Author: Jason Wang Date: Thu Sep 2 15:52:04 2010 +0800 ARM: mx5/mx51_3ds: add SPI NOR flash in the board init stage A 2M bytes SPI NOR flash(sst25vf016b) is soldered on the mx51_3ds board. So add the corresponding device for it. Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 988916e1a9af1994d510138e7201acf7b425fb46 Author: Jason Wang Date: Thu Sep 2 15:52:03 2010 +0800 ARM: mx5/mx51_3ds: add eCSPI2 support on the imx51_3ds board Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit eaa4fd0b4022bd4d2ff0c38b3cc936ee5a441711 Author: Jason Wang Date: Thu Sep 2 15:52:02 2010 +0800 ARM: mx5/iomux-mx51: add iomux definitions for eCSPI2 on the imx51_3ds board On the imx51_3ds board, eCSPI2 is connected to a SPI NOR flash, now add iomux definitions for those used pins. Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8d83db81affd71af0fb6f054ab552d16a7cb805b Author: Jason Wang Date: Thu Sep 2 15:52:00 2010 +0800 ARM: mx5/clock-mx51: add spi clocks Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 74d99f395901502747a44a1379f3b4fdb638dafa Author: Uwe Kleine-König Date: Fri Sep 10 17:01:26 2010 +0200 ARM: mx5/clock-mx51: new macro that defines a clk with all members Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 79901478e0a2854c4becbb2e77f176bd7fa37caa Author: Uwe Kleine-König Date: Fri Sep 10 16:58:42 2010 +0200 ARM: mx5/clock-mx51: refactor ccgr callbacks to use common code Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 9f0c11ee67d9a5ab76c27d2f9dbdd9ee85fbce10 Author: Uwe Kleine-König Date: Fri Sep 10 16:57:07 2010 +0200 ARM: mx5: add spi_imx device registration Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit ab5605037c119f1bde0f01786ede16d0ea5dcd8a Author: Uwe Kleine-König Date: Thu Sep 9 21:02:02 2010 +0200 ARM: imx: use platform ids for spi_imx devices The driver recently learned to handle platform ids. Make use of this new feature. The up side is that the driver needs less knowledge about the spi interfaces used on different SoCs. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0b599603d8534bc3946a0f07e461c76d7947dfcf Author: Uwe Kleine-König Date: Thu Sep 9 21:02:48 2010 +0200 spi/imx: add support for imx51's eCSPI and CSPI i.MX51 comes with two eCSPI interfaces (that are quite different from what was known before---the tried and tested Freescale way) and a CSPI interface that is identical to the devices found on i.MX25 and i.MX35. This patch is a merge of two very similar patches (by Jason Wang and Sascha Hauer resp.) plus a (now hopefully correct) reimplementation of the clock calculation. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 3b2aa89eb381d2f445aa3c60d8f070a3f55efa63 Author: Uwe Kleine-König Date: Fri Sep 10 09:42:29 2010 +0200 spi/imx: save the spi chip select in config struct, not the gpio to use This prepares adding support for imx51's eCSPI. This IP has seperate control and config bits for all four supported chip selects, so the config routine needs to know which chip select is being used even if the chipselect is realized by a gpio. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 1723e66b03c3d131d16f7646752c9782c66ea1ae Author: Uwe Kleine-König Date: Fri Sep 10 09:19:18 2010 +0200 spi/imx: get rid of more ifs depending on the used cpu Nearly everything that is needed is provided by the version of the SPI IP. Now the only checks left using cpu_is_... are clk divider tuning on mx21/mx27 and autodetection (which will die soon). Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit f4ba6315cb77a5dcff6664ce1d66ebfe31bcc6b1 Author: Uwe Kleine-König Date: Thu Sep 9 15:29:01 2010 +0200 spi/imx: convert driver to use platform ids This has the advantage not to need to much cpu_is_... macros. Still more when imx51 support is added which has two different spi interfaces which would introduce additional checks on the device id. With this setup it's not possible for the compiler anymore to detect the unused functions, so four additional kconfig symbols are introduced to ifdef out the unneeded functions in the callback array and all these functions are marked with __maybe_unused to suppress the corresponding gcc warnings. Comparing the driver footprint with and without the patch for a mx27 kernel yields: add/remove: 2/0 grow/shrink: 2/0 up/down: 280/0 (280) function old new delta spi_imx_devtype - 192 +192 spi_imx_probe 980 1032 +52 spi_imx_devtype_data - 32 +32 spi_imx_setupxfer 276 280 +4 Later when the platform code is updated to use the platform ids, the autodetection can be removed which will make the driver a bit smaller again. (~60 Bytes in my test.) Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit e89524d33deb55de28b4ab171e4b0f89d46b2d4e Author: Uwe Kleine-König Date: Thu Sep 9 11:12:12 2010 +0200 spi/imx: default to m on platforms that have such devices Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 77a406da5a5b76445a816d5f043fc9aef4026ff1 Author: Uwe Kleine-König Date: Wed Aug 25 12:19:50 2010 +0200 ARM: imx: fix name of macros to add imx-i2c devices This is a follow up to c698715 (ARM: imx: dynamically register imx-i2c devices (imx27)) 2b92084 (ARM: imx: dynamically register imx-i2c devices (imx21)) 6348e6b (ARM: imx: dynamically register imx-i2c devices (imx1)) Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 44505c0768971f4aa94ca09c8155448a46a7ff8a Author: Uwe Kleine-König Date: Thu Sep 30 16:44:53 2010 +0200 ARM: mx5: dynamically register imx-i2c devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit c7ebfdaca0b89fe9d846e93b249303313612d0e3 Author: Matt Carlson Date: Thu Sep 30 10:34:37 2010 +0000 tg3: Update version to 3.114 This patch updates the tg3 version to 3.114. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 7cb32cf23c63a371cf89bfaad3f911a1609241cc Author: Matt Carlson Date: Thu Sep 30 10:34:36 2010 +0000 tg3: Add extend rx ring sizes for 5717 and 5719 This patch increases the rx ring sizes for those asic revs that support them. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 2c49a44df33e22e1f48bd8d51781e7f38d55d002 Author: Matt Carlson Date: Thu Sep 30 10:34:35 2010 +0000 tg3: Prepare for larger rx ring sizes This patch adds two new variables to track the size of the standard and jumbo rx producer ring sizes. The code is then pivoted to these variables from preprocessor constants. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 1da85aa3db6878639e407548dad5b2404443e2c5 Author: Matt Carlson Date: Thu Sep 30 10:34:34 2010 +0000 tg3: Futureproof the loopback test There are other multiqueue modes 5717 and 5719 devices can assume. This patch makes sure that the loopback test is safe, should those other modes be enabled in the future. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 37a949c54857d8b2a38dbdc75bc8666c3292cbc4 Author: Matt Carlson Date: Thu Sep 30 10:34:33 2010 +0000 tg3: Cleanup missing VPD partno section This patch cleans up the default VPD partno section. New entries for 5717 asic rev devices were also added. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit f51a8903f14512f5ce61a74657db7f84f16b2717 Author: Matt Carlson Date: Thu Sep 30 10:34:32 2010 +0000 tg3: Remove 5724 device ID This product was never released to the public. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit d309a46e42542223946d3a9e4e239fdc945cb53e Author: Matt Carlson Date: Thu Sep 30 10:34:31 2010 +0000 tg3: 5719: Prevent tx data corruption This patch enables a bit that prevents read DMA overflows and adjusts the txmbuf margin from the hardware default. The combination of these modifications prevents a tx data corruption issue we were seeing on the 5719. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 66cfd1bd05a7a1c31c9cdbb2ddf5c57d1cddc5f6 Author: Matt Carlson Date: Thu Sep 30 10:34:30 2010 +0000 tg3: Fix potential netpoll crash Up until now the tg3 driver would call netif_napi_add() for the maximum number of NAPI instances the driver could use. The problem is that netpoll could call tg3_poll() on instances that are not active. The net effect is that the driver will crash attempting to dereference uninitialized pointers. The fix is to only allocate as many NAPI instances as the driver would use in tg3_open() and deleted them in tg3_close(). Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 40de9a7cebc4e0b23cd6863c84c2279f0ccadebb Author: Christoph Hellwig Date: Fri Oct 1 09:12:08 2010 +0200 hfsplus: fix rename over directories When renaming over a directory we need to use hfsplus_rmdir instead of hfsplus_unlink to evict the victim. This makes sure we properly error out on non-empty directory as required by Posix (BZ #16571), and it also makes sure we do the right thing in case i_nlink will every be set correctly for directories on hfsplus. Reported-by: Vlado Plaga Signed-off-by: Christoph Hellwig commit ef70fcc0cd5d98f5e2df82c9e598b47f351d4f66 Merge: 4cbe75b 98d943b Author: Robert Richter Date: Fri Oct 1 08:54:17 2010 +0200 Merge branch 'oprofile/urgent' into oprofile/core Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit 0197aa38df2ce550c0bfc96194b07ce6b68af814 Author: Eric Dumazet Date: Thu Sep 30 03:33:58 2010 +0000 ipv4: rcu conversion in ip_route_output_slow ip_route_output_slow() is enclosed in an rcu_read_lock() protected section, so that no references are taken/released on device, thanks to __ip_dev_find() & dev_get_by_index_rcu() Tested with ip route cache disabled, and a stress test : Before patch: elapsed time : real 1m38.347s user 0m11.909s sys 23m51.501s Profile: 13788.00 22.7% ip_route_output_slow [kernel] 7875.00 13.0% dst_destroy [kernel] 3925.00 6.5% fib_semantic_match [kernel] 3144.00 5.2% fib_rules_lookup [kernel] 3061.00 5.0% dst_alloc [kernel] 2276.00 3.7% rt_set_nexthop [kernel] 1762.00 2.9% fib_table_lookup [kernel] 1538.00 2.5% _raw_read_lock [kernel] 1358.00 2.2% ip_output [kernel] After patch: real 1m28.808s user 0m13.245s sys 20m37.293s 10950.00 17.2% ip_route_output_slow [kernel] 10726.00 16.9% dst_destroy [kernel] 5170.00 8.1% fib_semantic_match [kernel] 3937.00 6.2% dst_alloc [kernel] 3635.00 5.7% rt_set_nexthop [kernel] 2900.00 4.6% fib_rules_lookup [kernel] 2240.00 3.5% fib_table_lookup [kernel] 1427.00 2.2% _raw_read_lock [kernel] 1157.00 1.8% kmem_cache_alloc [kernel] Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 82efee1499a27c06f5afb11b07db384fdb3f7004 Author: Eric Dumazet Date: Thu Sep 30 03:31:56 2010 +0000 ipv4: introduce __ip_dev_find() ip_dev_find(net, addr) finds a device given an IPv4 source address and takes a reference on it. Introduce __ip_dev_find(), taking a third argument, to optionally take the device reference. Callers not asking the reference to be taken should be in an rcu_read_lock() protected section. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 467c3d9cd541eef284ff8118069b088e015b8d6a Author: Thomas Gleixner Date: Fri Oct 1 05:46:52 2010 +0200 hfsplus: convert tree_lock to mutex tree_lock is used as mutex so make it a mutex. Signed-off-by: Thomas Gleixner Signed-off-by: Christoph Hellwig commit 7fcc99f4f2ddb1c39abc05fbb9b32f05b03c7f8f Author: Christoph Hellwig Date: Fri Oct 1 05:46:31 2010 +0200 hfsplus: add missing extent locking in hfsplus_write_inode Most of the extent handling code already does proper SMP locking, but hfsplus_write_inode was calling into hfsplus_ext_write_extent without taking the extents_lock. Fix this by splitting hfsplus_ext_write_extent into an internal helper that expects the lock, and a public interface that first acquires it. Also add a few locking asserts and document the locking rules in hfsplus_fs.h. Signed-off-by: Christoph Hellwig commit 89755dcace09b44b3aa024bf302d9b19b4c24cad Author: Christoph Hellwig Date: Fri Oct 1 05:45:25 2010 +0200 hfsplus: protect readdir against removals from open_dir_list We already have i_mutex for readdir and the namespace operations that add entries to open_dir_list, the only thing that was missing was the removal in hfsplus_dir_release. Signed-off-by: Christoph Hellwig commit 84adede31267af37141da2b2b04293c5ea8af7ae Author: Christoph Hellwig Date: Fri Oct 1 05:45:20 2010 +0200 hfsplus: use atomic bitops for the superblock flags The flags in the HFS+-specific superlock do get modified during runtime, use atomic bitops to make the modifications SMP safe. Signed-off-by: Christoph Hellwig commit 7ac9fb9c2a50963b699b3548e6f00698c1554dc6 Author: Christoph Hellwig Date: Fri Oct 1 05:45:08 2010 +0200 hfsplus: add per-superblock lock for volume header updates Lock updates to the mutal fields in the volume header, and document the locing in the hfsplus_sb_info structure. Signed-off-by: Christoph Hellwig commit 58a818f532e83f337689358c102ba2048d1b37f5 Author: Christoph Hellwig Date: Fri Oct 1 05:44:02 2010 +0200 hfsplus: remove the rsrc_inodes list We never walk the list - the only reason for it is to make the resource fork inodes appear hashed to the writeback code. Borrow a trick from JFS to do that without needing a list head. Signed-off-by: Christoph Hellwig commit 66e5db05bb6670f314d90aba5998e6a033e4d563 Author: Christoph Hellwig Date: Fri Oct 1 05:43:58 2010 +0200 hfsplus: do not cache and write next_alloc We never look at it, nor change the next_alloc field in the superblock. So don't bother caching it or writing it out in hfsplus_sync_fs. Signed-off-by: Christoph Hellwig commit f17c89bfcc9cccd405098eac3ec1ebfddf03279e Author: Christoph Hellwig Date: Fri Oct 1 05:43:54 2010 +0200 hfsplus: fix error handling in hfsplus_symlink We need to free the inode again on a hfsplus_create_cat failure. Signed-off-by: Christoph Hellwig commit 30d3abbec730a5a9c954a6342271f7a7db155b08 Author: Christoph Hellwig Date: Fri Oct 1 05:43:50 2010 +0200 hfsplus: merge mknod/mkdir/creat Make hfsplus_mkdir and hfsplus_create call hfsplus_mknod instead of duplicating the code. Signed-off-by: Christoph Hellwig commit b5080f77ed2de3c8ac67a63044f8a781c75207d9 Author: Christoph Hellwig Date: Fri Oct 1 05:43:43 2010 +0200 hfsplus: clean up hfsplus_write_inode Add a new hfsplus_system_write_inode for writing the special system inodes and streamline the fastpath write_inode code. Signed-off-by: Christoph Hellwig commit fc4fff82104fa096eada73943fe5249500acd5fa Author: Christoph Hellwig Date: Fri Oct 1 05:43:41 2010 +0200 hfsplus: clean up hfsplus_iget Add a new hfsplus_system_read_inode for reading the special system inodes and streamline the fastpath iget code. Signed-off-by: Christoph Hellwig commit 6af502de224c3742936d54eee7e3690c09822934 Author: Christoph Hellwig Date: Fri Oct 1 05:43:31 2010 +0200 hfsplus: fix HFSPLUS_I calling convention HFSPLUS_I doesn't return a pointer to the hfsplus-specific inode information like all other FOO_I macros, but dereference the pointer in a way that made it look like a direct struct derefence. This only works as long as the HFSPLUS_I macro is used directly and prevents us from keepig a local hfsplus_inode_info pointer. Fix the calling convention and introduce a local hip variable in all functions that use it constantly. Signed-off-by: Christoph Hellwig commit dd73a01a30d729e8fa6f829c4582650e258e36f9 Author: Christoph Hellwig Date: Fri Oct 1 05:42:59 2010 +0200 hfsplus: fix HFSPLUS_SB calling convention HFSPLUS_SB doesn't return a pointer to the hfsplus-specific superblock information like all other FOO_SB macros, but dereference the pointer in a way that made it look like a direct struct derefence. This only works as long as the HFSPLUS_SB macro is used directly and prevents us from keepig a local hfsplus_sb_info pointer. Fix the calling convention and introduce a local sbi variable in all functions that use it constantly. Signed-off-by: Christoph Hellwig commit e753a62156e952fd5a3c64f98454d9aeee3a2546 Author: Christoph Hellwig Date: Fri Oct 1 05:41:53 2010 +0200 hfsplus: remove BKL from hfsplus_put_super Except for ->put_super the BKL is now gone from HFS, which means it's superflous there too as ->put_super is serialized by the VFS. Signed-off-by: Christoph Hellwig commit a9fdbf8c6070d49c482e209df7ee93d9ec41ea27 Author: Christoph Hellwig Date: Fri Oct 1 05:41:50 2010 +0200 hfsplus: use alloc_mutex in hfsplus_sync_fs Use alloc_mutex to protect hfsplus_sync_fs against itself and concurrent allocations, which allows to get rid of lock_super in hfsplus. Note that most fields in the superblock still aren't protected against concurrent allocations, that will follow later. Signed-off-by: Christoph Hellwig commit 40bf48afe92fcea61e7e164f0b2599fba8b88124 Author: Christoph Hellwig Date: Fri Oct 1 05:41:39 2010 +0200 hfsplus: introduce alloc_mutex Use a new per-sb alloc_mutex instead of abusing i_mutex of the alloc_file to protect block allocations. This gets rid of lockdep nesting warnings and prepares for extending the scope of alloc_mutex. Signed-off-by: Christoph Hellwig commit 6333816ade7e04a96ec0a34a8378c455e4f7c4dd Author: Christoph Hellwig Date: Fri Oct 1 05:41:35 2010 +0200 hfsplus: protect setflags using i_mutex Use i_mutex for protecting against concurrent setflags ioctls like in other filesystems and get rid of the BKL in hfsplus_ioctl. Signed-off-by: Christoph Hellwig commit 94744567fef9602c3d8218a1d8f58c04cce354f6 Author: Christoph Hellwig Date: Fri Oct 1 05:41:31 2010 +0200 hfsplus: split hfsplus_ioctl Give each ioctl command a function of it's own. Signed-off-by: Christoph Hellwig commit 249e6353001e407edf5c9a74482ecfca90c8ff33 Author: Christoph Hellwig Date: Fri Oct 1 05:41:27 2010 +0200 hfsplus: fix BKL leak in hfsplus_ioctl Currenly the HFSPLUS_IOC_EXT2_GETFLAGS case never unlocks the BKL, which can lead to easily reproduced lockups when doing multiple GETFLAGS ioctls. Fix this by only taking the BKL for the HFSPLUS_IOC_EXT2_SETFLAGS case as neither HFSPLUS_IOC_EXT2_GETFLAGS not the default error case needs it. Signed-off-by: Christoph Hellwig commit 828bac87bb074f3366621724fdfbe314f98ccc7e Author: Bruce Allan Date: Wed Sep 29 21:39:37 2010 +0000 e1000e: 82579 performance improvements The initial support for 82579 was tuned poorly for performance. Adjust the packet buffer allocation appropriately for both standard and jumbo frames; and for jumbo frames increase the receive descriptor pre-fetch, disable adaptive interrupt moderation and set the DMA latency tolerance. Signed-off-by: Bruce Allan Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 3a3b75860527a11ba5035c6aa576079245d09e2a Author: Jesse Brandeburg Date: Wed Sep 29 21:38:49 2010 +0000 e1000e: use hardware writeback batching Most e1000e parts support batching writebacks. The problem with this is that when some of the TADV or TIDV timers are not set, Tx can sit forever. This is solved in this patch with write flushes using the Flush Partial Descriptors (FPD) bit in TIDV and RDTR. This improves bus utilization and removes partial writes on e1000e, particularly from 82571 parts in S5500 chipset based machines. Only ES2LAN and 82571/2 parts are included in this optimization, to reduce testing load. Signed-off-by: Jesse Brandeburg Tested-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 6af3b9ebfea38d0a057fbd7bdcecc61ac5662f02 Author: Emil Tantilov Date: Wed Sep 29 21:35:23 2010 +0000 ixgbe: fix link issues and panic with shared interrupts for 82598 Fix possible panic/hang with shared Legacy interrupts by not enabling interrupts when interface is down. Also fixes an intermittent link by enabling LSC upon exit from ixgbe_intr() This patch adds flags to ixgbe_irq_enable() to allow for some flexibility when enabling interrupts. Signed-off-by: Emil Tantilov Tested-by: Stephen Ko Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit dd28d1a0b5ecc0f5512f658b1a8fd38bc4f4c98c Author: Eric Dumazet Date: Wed Sep 29 11:53:50 2010 +0000 ipv4: __mkroute_output() speedup While doing stress tests with a disabled IP route cache, I found __mkroute_output() was touching three times in_device atomic refcount. Use RCU to touch it once to reduce cache line ping pongs. Before patch time to perform the test real 1m42.009s user 0m12.545s sys 25m0.726s Profile : 16109.00 26.4% ip_route_output_slow vmlinux 7434.00 12.2% dst_destroy vmlinux 3280.00 5.4% fib_rules_lookup vmlinux 3252.00 5.3% fib_semantic_match vmlinux 2622.00 4.3% fib_table_lookup vmlinux 2535.00 4.1% dst_alloc vmlinux 1750.00 2.9% _raw_read_lock vmlinux 1532.00 2.5% rt_set_nexthop vmlinux After patch real 1m36.503s user 0m12.977s sys 23m25.608s 14234.00 22.4% ip_route_output_slow vmlinux 8717.00 13.7% dst_destroy vmlinux 4052.00 6.4% fib_rules_lookup vmlinux 3951.00 6.2% fib_semantic_match vmlinux 3191.00 5.0% dst_alloc vmlinux 1764.00 2.8% fib_table_lookup vmlinux 1692.00 2.7% _raw_read_lock vmlinux 1605.00 2.5% rt_set_nexthop vmlinux Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit e1a5964f0c32a75b17360cfc565d25aaedbff747 Author: RĂ©mi Denis-Courmont Date: Wed Sep 29 22:33:50 2010 +0000 Phonet: restore flow control credits when sending fails This patch restores the below flow control patch submitted by RĂ©mi Denis-Courmont, which accidentaly got lost due to Pipe controller patch on Phonet. commit 1a98214feef2221cd7c24b17cd688a5a9d85b2ea Author: RĂ©mi Denis-Courmont Date: Mon Aug 30 12:57:03 2010 +0000 Phonet: restore flow control credits when sending fails Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller Signed-off-by: Kumar Sanghvi Acked-by: Linus Walleij Signed-off-by: David S. Miller commit 1020660189bb72ae25fd68733ee473d29b8604b5 Author: Philip Rakity Date: Tue Sep 28 04:26:30 2010 +0000 net: pxa168_etc.c recognize additional contributors Signed-off-by: Philip Rakity Signed-off-by: Sachin Sanap Signed-off-by: Mark Brown Signed-off-by: David S. Miller commit 46290341cd649c2bfb69e5067c1804c0395c83a1 Author: Bob Peterson Date: Thu Sep 30 10:34:00 2010 -0400 GFS2 fatal: filesystem consistency error on rename This patch fixes a GFS2 problem whereby the first rename after a mount can result in a file system consistency error being flagged improperly and cause the file system to withdraw. The problem is that the rename code tries to run the rgrp list with function gfs2_blk2rgrpd before the rgrp list is guaranteed to be read in from disk. The patch makes the rename function hold the rindex glock (as the gfs2_unlink code does today) which reads in the rgrp list if need be. There were a total of three places in the rename code that improperly referenced the rgrp list without the rindex glock and this patch fixes all three. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit b365a85c68161ea5db5476eb8845a91ceb1777ea Author: Dan Carpenter Date: Wed Sep 29 10:41:05 2010 +0200 x86, UV: Use allocated buffer in tlb_uv.c:tunables_read() The original code didn't check that the value returned from snprintf() was less than the size of the buffer. Although it didn't cause a runtime bug in this case, it makes the static checkers complain. Andrew Morton suggested a dynamically sized buffer would be cleaner. Suggested-by: Andrew Morton Signed-off-by: Dan Carpenter Cc: Cliff Wickman Cc: Jack Steiner Cc: Robin Holt LKML-Reference: <20100929083118.GA6376@bicker> Signed-off-by: Ingo Molnar commit 6d0722a2cec2c23db3b0855ff8bb433175a16b44 Author: Eric Dumazet Date: Wed Sep 29 23:35:10 2010 -0700 ip_gre: comments change HARD_TX_LOCK no longer protects tunnels from dead loops, but xmit_recursion percpu counter. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 65836112fc24bdf009554481b36b6ba0a690b855 Author: Ohad Ben-Cohen Date: Tue Sep 28 20:20:28 2010 +0200 wl12xx: fix non-wl12xx build scenarios Support building wl1271-equipped boards without building the wl1271 driver itself, e.g.: CONFIG_MACH_OMAP_ZOOM3=y CONFIG_WL12XX is not set Reported-by: John W. Linville Signed-off-by: Ohad Ben-Cohen Signed-off-by: Luciano Coelho commit 9812cb12c9d58c5d9aead84eb2e7864c68c80302 Author: Ondrej Zary Date: Tue Sep 28 08:46:17 2010 +0000 de2104x: remove experimental status It should be ready after 8 years...remove the experimental dependency. Signed-off-by: Ondrej Zary Acked-by: Jeff Garzik Signed-off-by: David S. Miller commit 862ea4f263c68680558382c1475ad3032c7fd7d4 Author: Ondrej Zary Date: Tue Sep 28 08:18:55 2010 +0000 de2104x: disable media debug messages by default Print media debug messages only when HW debug is enabled. Signed-off-by: Ondrej Zary Acked-by: Jeff Garzik Signed-off-by: David S. Miller commit ef09aadf7bf1a17f4d4938855238c0fd8749a99f Author: Andrew Gallatin Date: Tue Sep 28 08:13:12 2010 +0000 myri10ge: DCA update (resubmit) This patch contains the following DCA improvements to myri10ge: 1) Finally move myri10ge to use dca3 API 2) Disable PCIe relaxed ordering when enabling DCA on myri10ge. This provides a performance boost on Nehalem based Xeons 3) Make sure to properly initialize NIC's DCA state when it is enabled, rather than giving the NIC a bogus tag (0) and waiting for the first received packet to trigger an update. Not using a real tag can cause hardware exceptions on some motherboards when a CPU socket is empty. 3) Always update the cached CPU when our interrupt affinity changes so as to avoid excessive calls to dca3_get_tag() Signed-off-by: Andrew Gallatin Signed-off-by: Loic Prylli Signed-off-by: David S. Miller commit 8681dc3abd54e845a2effab441921b4c4457c241 Author: Dmitry Kravkov Date: Wed Sep 29 01:05:37 2010 +0000 bnx2x: Moved enabling of MSI to the bnx2x_set_num_queues() Moved enabling of MSI to the bnx2x_set_num_queues() - the same functions that handles the initialization of the MSI-X. From: Vladislav Zolotarov Signed-off-by: Dmitry Kravkov Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 1b9f409293529da4630bfc5d6d8e7d7451a6ccb5 Author: stephen hemminger Date: Tue Sep 28 19:30:14 2010 +0000 tcp: tcp_enter_quickack_mode can be static Function only used in tcp_input.c Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit a64de47c091e4a337fa9763315cb6f2fbf0c583b Author: stephen hemminger Date: Tue Sep 28 17:08:02 2010 +0000 arp: remove unnecessary export of arp_broken_ops arp_broken_ops is only used in arp.c Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit bfa5ae63b823f4ffd3483a05f60a93a4a7b7d680 Author: Eric Dumazet Date: Tue Sep 28 05:58:37 2010 +0000 net: rename netdev rx_queue to ingress_queue There is some confusion with rx_queue name after RPS, and net drivers private rx_queue fields. I suggest to rename "struct net_device"->rx_queue to ingress_queue. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 8560f2266b36adb43238f1f9fd13958dd031901c Author: Eric Dumazet Date: Tue Sep 28 03:23:34 2010 +0000 ip6tnl: percpu stats accounting Maintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets. Other seldom used fields are kept in netdev->stats structure, possibly unsafe. This is a preliminary work to support lockless transmit path, and correct RX stats, that are already unsafe. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 153f0943382e9ae0bff7caa110a1a4656088d0d4 Author: Eric Dumazet Date: Tue Sep 28 00:17:17 2010 +0000 ipip: enable lockless xmits IPIP tunnels can benefit from lockless xmits, using NETIF_F_LLTX Bench on a 16 cpus machine (dual E5540 cpus), 16 threads sending 10000000 UDP frames via one ipip tunnel (size:200 bytes per frame) Before patch : real 2m53.321s user 0m10.277s sys 46m0.597s After patch: real 0m32.063s user 0m9.237s sys 8m16.255s Last problem to solve is the contention on dst : 16118.00 28.3% __ip_route_output_key vmlinux 6135.00 10.8% dst_release vmlinux 3220.00 5.6% ip_finish_output vmlinux 2149.00 3.8% ip_route_output_flow vmlinux 1575.00 2.8% ip_append_data vmlinux 1481.00 2.6% ip_push_pending_frames vmlinux 1349.00 2.4% __xfrm_lookup vmlinux 1216.00 2.1% csum_partial_copy_generic vmlinux 1208.00 2.1% udp_sendmsg vmlinux Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit b790e01aee74c23a5d92576177934f13aa51f718 Author: Eric Dumazet Date: Mon Sep 27 23:05:47 2010 +0000 ip_gre: lockless xmit GRE tunnels can benefit from lockless xmits, using NETIF_F_LLTX Note: If tunnels are created with the "oseq" option, LLTX is not enabled : Even using an atomic_t o_seq, we would increase chance for packets being out of order at receiver. Bench on a 16 cpus machine (dual E5540 cpus), 16 threads sending 10000000 UDP frames via one gre tunnel (size:200 bytes per frame) Before patch : real 3m0.094s user 0m9.365s sys 47m50.103s After patch: real 0m29.756s user 0m11.097s sys 7m33.012s Last problem to solve is the contention on dst : 38660.00 21.4% __ip_route_output_key vmlinux 20786.00 11.5% dst_release vmlinux 14191.00 7.8% __xfrm_lookup vmlinux 12410.00 6.9% ip_finish_output vmlinux 4540.00 2.5% ip_push_pending_frames vmlinux 4427.00 2.4% ip_append_data vmlinux 4265.00 2.4% __alloc_skb vmlinux 4140.00 2.3% __ip_local_out vmlinux 3991.00 2.2% dev_queue_xmit vmlinux Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 8df40d1033d64597dcf1efd4f7547e817f7a953b Author: Eric Dumazet Date: Tue Sep 28 02:53:41 2010 +0000 sit: enable lockless xmits SIT tunnels can benefit from lockless xmits, using NETIF_F_LLTX Bench on a 16 cpus machine (dual E5540 cpus), 16 threads sending 10000000 UDP frames via one sit tunnel (size:220 bytes per frame) Before patch : real 3m15.399s user 0m9.185s sys 51m55.403s 75029.00 87.5% _raw_spin_lock vmlinux 1090.00 1.3% dst_release vmlinux 902.00 1.1% dev_queue_xmit vmlinux 627.00 0.7% sock_wfree vmlinux 613.00 0.7% ip6_push_pending_frames ipv6.ko 505.00 0.6% __ip_route_output_key vmlinux After patch: real 1m1.387s user 0m12.489s sys 15m58.868s 28239.00 23.3% dst_release vmlinux 13570.00 11.2% ip6_push_pending_frames ipv6.ko 13118.00 10.8% ip6_append_data ipv6.ko 7995.00 6.6% __ip_route_output_key vmlinux 7924.00 6.5% sk_dst_check vmlinux 5015.00 4.1% udpv6_sendmsg ipv6.ko 3594.00 3.0% sock_alloc_send_pskb vmlinux 3135.00 2.6% sock_wfree vmlinux 3055.00 2.5% ip6_sk_dst_lookup ipv6.ko 2473.00 2.0% ip_finish_output vmlinux Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit dd4080ee575db1a2d0f40538aed5aa7662a06c54 Author: Eric Dumazet Date: Tue Sep 28 02:17:58 2010 +0000 sit: fix percpu stats accounting commit 15fc1f7056ebd (sit: percpu stats accounting) forgot the fallback tunnel case (sit0), and can crash pretty fast. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit fada5636fe41fd1423fe4e6af7b9f609378acde6 Author: Eric Dumazet Date: Mon Sep 27 23:56:46 2010 +0000 ipip: fix percpu stats accounting commit 3c97af99a5aa1 (ipip: percpu stats accounting) forgot the fallback tunnel case (tunl0), and can crash pretty fast. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6d81f41c58c69ddde497e9e640ba5805aa26e78c Author: Eric Dumazet Date: Mon Sep 27 20:50:33 2010 +0000 dummy: percpu stats and lockless xmit Converts dummy network device driver to : - percpu stats - 64bit stats - lockless xmit (NETIF_F_LLTX) - performance features added (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | NETIF_F_NO_CSUM | NETIF_F_HIGHDMA) Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 745e20f1b626b1be4b100af5d4bf7b3439392f8f Author: Eric Dumazet Date: Wed Sep 29 13:23:09 2010 -0700 net: add a recursion limit in xmit path As tunnel devices are going to be lockless, we need to make sure a misconfigured machine wont enter an infinite loop. Add a percpu variable, and limit to three the number of stacked xmits. Reported-by: Jesse Gross Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit f3983c2133e9bea9c8b4f690737d15e3e9b02491 Author: Jeff Layton Date: Wed Sep 22 16:17:40 2010 -0700 cifs: fix handling of signing with writepages (try #6) Get a reference to the file early so we can eventually base the decision about signing on the correct tcon. If that doesn't work for some reason, then fall back to generic_writepages. That's just as likely to fail, but it simplifies the error handling. In truth, I'm not sure how that could occur anyway, so maybe a NULL open_file here ought to be a BUG()? After that, we drop the reference to the open_file and then we re-get one prior to each WriteAndX call. This helps ensure that the filehandle isn't held open any longer than necessary and that open files are reclaimed prior to each write call. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit f7a40689fd1e963cb1006349e050c07584895db5 Author: Jeff Layton Date: Mon Sep 20 16:01:36 2010 -0700 cifs: have cifs_new_fileinfo take a tcon arg To minimize calls to cifs_sb_tcon and to allow for a clear error path if a tcon can't be acquired. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 0d424ad0a4b8c08e45928bccfa5b4b240097b01b Author: Jeff Layton Date: Mon Sep 20 16:01:35 2010 -0700 cifs: add cifs_sb_master_tcon and convert some callers to use it At mount time, we'll always need to create a tcon that will serve as a template for others that are associated with the mount. This tcon is known as the "master" tcon. In some cases, we'll need to use that tcon regardless of who's accessing the mount. Add an accessor function for the master tcon and go ahead and switch the appropriate places to use it. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit f6acb9d0596889a774e142ed76cb05b90d9763d2 Author: Jeff Layton Date: Mon Sep 20 16:01:34 2010 -0700 cifs: temporarily rename cifs_sb->tcon to ptcon to catch stragglers Signed-off-by: Jeff Layton Signed-off-by: Steve French commit a6e8a8455c94565c53e1a1756d2ab9d9e3a902b8 Author: Jeff Layton Date: Mon Sep 20 16:01:33 2010 -0700 cifs: add function to get a tcon from cifs_sb When we convert cifs to do multiple sessions per mount, we'll need more than one tcon per superblock. At that point "cifs_sb->tcon" will make no sense. Add a new accessor function that gets a tcon given a cifs_sb. For now, it just returns cifs_sb->tcon. Later it'll do more. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit ba00ba64cf0895e4c2ac507e56306363dc125a90 Author: Jeff Layton Date: Mon Sep 20 16:01:31 2010 -0700 cifs: make various routines use the cifsFileInfo->tcon pointer ...where it's available and appropriate. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit d3bf5221d3274b5015ad18a55060b074cca8d2f0 Author: Steve French Date: Wed Sep 22 19:15:36 2010 +0000 [CIFS] Fix ordering of cleanup on module init failure If registering fs cache failed, we weren't cleaning up proc. Acked-by: Jeff Layton CC: Suresh Jayaraman Signed-off-by: Steve French commit 17edec6f563ba6b5630329fbe9473557bb475c3d Author: Steve French Date: Wed Sep 22 02:01:59 2010 +0000 [CIFS] Remove obsolete header We decided not to use connector to do the upcalls so cn_cifs.h is obsolete - remove it. Signed-off-by: Steve French commit ab9db8b737210bec365593a04dd1c534220bb311 Author: Jeff Layton Date: Tue Sep 21 08:14:46 2010 -0700 cifs: allow matching of tcp sessions in CifsNew state With commit 7332f2a6217ee6925f83ef0e725013067ed316ba, cifsd will no longer exit when the socket abends and the tcpStatus is CifsNew. With that change, there's no reason to avoid matching an existing session in this state. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 5fe97cfddc426f3145e8673b68faab7e54462173 Author: Jeff Layton Date: Mon Sep 20 16:01:30 2010 -0700 cifs: add tcon field to cifsFileInfo struct Eventually, we'll have more than one tcon per superblock. At that point, we'll need to know which one is associated with a particular fid. For now, this is just set from the cifs_sb->tcon pointer, but eventually the caller of cifs_new_fileinfo will pass a tcon pointer in. Signed-off-by: Jeff Layton Signed-off-by: Steve French commit 736a33205969c16f81d747db14ff4c0f133609a6 Author: Stefan Metzmacher Date: Fri Jul 30 14:56:00 2010 +0200 cifs: add "mfsymlinks" mount option This is the start for an implementation of "Minshall+French Symlinks" (see http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks). Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 1b12b9c15b4371d83b729b8fc18c670e78a1479b Author: Stefan Metzmacher Date: Thu Aug 5 21:19:56 2010 +0200 cifs: use Minshall+French symlink functions If configured, Minshall+French Symlinks are used against all servers. If the server supports UNIX Extensions, we still create Minshall+French Symlinks on write, but on read we fallback to UNIX Extension symlinks. Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 8713d01db8bf948eb9632726f529ec4f821bb025 Author: Stefan Metzmacher Date: Thu Aug 5 21:15:22 2010 +0200 cifs: implement CIFSCreateMFSymLink() Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 18bddd1059c5d1e17ad6e49c514c95484aa80a33 Author: Stefan Metzmacher Date: Tue Aug 3 11:24:22 2010 +0200 cifs: implement CIFSFormatMFSymlink() Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 0fd43ae4758b2841656afda4439b80e8a3603af2 Author: Stefan Metzmacher Date: Thu Aug 5 21:13:44 2010 +0200 cifs: implement CIFSQueryMFSymLink() Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 8bfb50a882ccd9804929876470f74edcb23d2326 Author: Stefan Metzmacher Date: Sat Jul 31 09:15:10 2010 +0200 cifs: implement CIFSCouldBeMFSymlink() and CIFSCheckMFSymlink() Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit c69c1b6eaea1b3e1eecf7ad2fba0208ac4a11131 Author: Stefan Metzmacher Date: Sat Jul 31 09:14:16 2010 +0200 cifs: implement CIFSParseMFSymlink() Signed-off-by: Stefan Metzmacher Signed-off-by: Steve French commit 3eb9a8893a76cf1cda3b41c3212eb2cfe83eae0e Author: Ben Greear Date: Wed Sep 1 17:06:02 2010 -0700 cifs: Allow binding to local IP address. When using multi-homed machines, it's nice to be able to specify the local IP to use for outbound connections. This patch gives cifs the ability to bind to a particular IP address. Usage: mount -t cifs -o srcaddr=192.168.1.50,user=foo, ... Usage: mount -t cifs -o srcaddr=2002::100:1,user=foo, ... Acked-by: Jeff Layton Acked-by: Dr. David Holder Signed-off-by: Ben Greear Signed-off-by: Steve French commit 2b149f11978b44199954710d32c0eecf6c9efd9c Author: Shirish Pargaonkar Date: Sat Sep 18 22:02:18 2010 -0500 cifs NTLMv2/NTLMSSP ntlmv2 within ntlmssp autentication code Attribue Value (AV) pairs or Target Info (TI) pairs are part of ntlmv2 authentication. Structure ntlmv2_resp had only definition for two av pairs. So removed it, and now allocation of av pairs is dynamic. For servers like Windows 7/2008, av pairs sent by server in challege packet (type 2 in the ntlmssp exchange/negotiation) can vary. Server sends them during ntlmssp negotiation. So when ntlmssp is used as an authentication mechanism, type 2 challenge packet from server has this information. Pluck it and use the entire blob for authenticaiton purpose. If user has not specified, extract (netbios) domain name from the av pairs which is used to calculate ntlmv2 hash. Servers like Windows 7 are particular about the AV pair blob. Servers like Windows 2003, are not very strict about the contents of av pair blob used during ntlmv2 authentication. So when security mechanism such as ntlmv2 is used (not ntlmv2 in ntlmssp), there is no negotiation and so genereate a minimal blob that gets used in ntlmv2 authentication as well as gets sent. Fields tilen and tilbob are session specific. AV pair values are defined. To calculate ntlmv2 response we need ti/av pair blob. For sec mech like ntlmssp, the blob is plucked from type 2 response from the server. From this blob, netbios name of the domain is retrieved, if user has not already provided, to be included in the Target String as part of ntlmv2 hash calculations. For sec mech like ntlmv2, create a minimal, two av pair blob. The allocated blob is freed in case of error. In case there is no error, this blob is used in calculating ntlmv2 response (in CalcNTLMv2_response) and is also copied on the response to the server, and then freed. The type 3 ntlmssp response is prepared on a buffer, 5 * sizeof of struct _AUTHENTICATE_MESSAGE, an empirical value large enough to hold _AUTHENTICATE_MESSAGE plus a blob with max possible 10 values as part of ntlmv2 response and lmv2 keys and domain, user, workstation names etc. Also, kerberos gets selected as a default mechanism if server supports it, over the other security mechanisms. Signed-off-by: Shirish Pargaonkar Signed-off-by: Steve French commit 5f98ca9afb9c004f8948c0d40920503de447918a Author: Shirish Pargaonkar Date: Sat Sep 18 22:01:58 2010 -0500 cifs NTLMv2/NTLMSSP Change variable name mac_key to session key to reflect the key it holds Change name of variable mac_key to session key. The reason mac_key was changed to session key is, this structure does not hold message authentication code, it holds the session key (for ntlmv2, ntlmv1 etc.). mac is generated as a signature in cifs_calc* functions. Signed-off-by: Shirish Pargaonkar Signed-off-by: Steve French commit aa91c7e4ab9b0842b7d7a7cbf8cca18b20df89b5 Author: Suresh Jayaraman Date: Fri Sep 17 18:56:39 2010 +0530 cifs: fix broken oplock handling cifs_new_fileinfo() does not use the 'oplock' value from the callers. Instead, it sets it to REQ_OPLOCK which seems wrong. We should be using the oplock value obtained from the Server to set the inode's clientCanCacheAll or clientCanCacheRead flags. Fix this by passing oplock from the callers to cifs_new_fileinfo(). This change dates back to commit a6ce4932 (2.6.30-rc3). So, all the affected versions will need this fix. Please Cc stable once reviewed and accepted. Cc: Stable Reviewed-by: Jeff Layton Signed-off-by: Suresh Jayaraman Signed-off-by: Steve French commit a347ecb209b58a1b37f20d8299ab552f7d3ee8c3 Author: Suresh Jayaraman Date: Fri Sep 17 19:43:10 2010 +0530 cifs: use type __u32 instead of int for the oplock parameter ... and avoid implicit casting from a signed type. Also, pass oplock by value instead by reference as we don't intend to change the value in cifs_open_inode_helper(). Thanks to Jeff Layton for spotting this. Reviewed-by: Jeff Layton Signed-off-by: Suresh Jayaraman Signed-off-by: Steve French commit 1c4a77bf54a61dde135740a563b6ec03382604e8 Author: Dominik Brodowski Date: Sat Sep 18 23:21:09 2010 +0200 pcmcia: add a few debug statements Signed-off-by: Dominik Brodowski commit 2262054e74b4b26ed56a8535c1259f6c6c2862a4 Author: Dominik Brodowski Date: Sun Aug 15 08:38:38 2010 +0200 pcmcia: remove obsolete and wrong comments What's worse than no comment? A wrong comment. Several PCMCIA device drivers contained the same comments, which were based on how the PCMCIA subsystem worked in the old days of 2.4., and which were originally part of a "dummy_cs" driver. These comments no longer matched at all what is happening now, and therefore should be removed. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 06b3a1d12f41b592972643f8b84015d6c03dc576 Author: Dominik Brodowski Date: Sun Aug 8 12:27:40 2010 +0200 pcmcia: avoid messages on module (un)loading printk() statements on module load or unload are frowned upon. Also, add a few __init or __exit declarations. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 2e9b981a7c63ee8278df6823f8389d69dad1a499 Author: Dominik Brodowski Date: Sun Aug 8 11:36:26 2010 +0200 pcmcia: move driver name to struct pcmcia_driver Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1cc745d1cdca8086b472a06671f0830fc0e98861 Author: Dominik Brodowski Date: Sun Aug 1 11:21:14 2010 +0200 pcmcia: remove the "Finally, report what we've done" message Remove this unnecessary message -- this info is either available in sysfs or by enabling dynamic debug from the PCMCIA core. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-scsi@vger.kernel.org CC: linux-usb@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 00990e7ce0b0e596fe41d9c64d6933ea70084003 Author: Dominik Brodowski Date: Fri Jul 30 13:13:46 2010 +0200 pcmcia: use autoconfiguration feature for ioports and iomem When CONF_AUTO_SET_IO or CONF_AUTO_SET_IOMEM are set, the corresponding fields in struct pcmcia_device *p_dev->resource[0,1,2] are set accordinly. Drivers wishing to override certain settings may do so in the callback function, but they no longer need to parse the CIS entries stored in cistpl_cftable_entry_t themselves. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: linux-bluetooth@vger.kernel.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 440eed43e2a95bb842488755683716814da10f2b Author: Dominik Brodowski Date: Fri Jul 30 09:51:52 2010 +0200 pcmcia: introduce autoconfiguration feature Introduce an autoconfiguration feature to set certain values in pcmcia_loop_config(), instead of copying the same code over and over in each PCMCIA driver. At first, introduce the following options: CONF_AUTO_CHECK_VCC check or matching Vcc entry CONF_AUTO_SET_VPP set Vpp CONF_AUTO_AUDIO enable the speaker line CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 9485ee14e143c7076e88deea1e87ca3eb0b2f94e Author: Dominik Brodowski Date: Sat Jul 31 07:09:32 2010 +0200 pcmcia: Documentation update Fill in missing descriptions and update some others for functions in pcmcia_resource.c. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1ac71e5a35eebee60cdcf15b3980bd94498f037b Author: Dominik Brodowski Date: Thu Jul 29 19:27:09 2010 +0200 pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device pcmcia_enable_device() now replaces pcmcia_request_configuration(). Instead of config_req_t, all necessary flags are either passed as a parameter to pcmcia_enable_device(), or (in rare circumstances) set in struct pcmcia_device -> flags. With the last remaining user of include/pcmcia/cs.h gone, remove all references. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 7feabb6412ea23edd298c0fa90e5aa6733eb4a42 Author: Dominik Brodowski Date: Thu Jul 29 18:35:47 2010 +0200 pcmcia: move config_{base,index,regs} to struct pcmcia_device Several drivers prefer to explicitly set config_{base,index,regs}, formerly known as ConfigBase, ConfigIndex and Present. Instead of passing these values inside config_req_t, store it in struct pcmcia_device. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 37979e1546a790c44adbc7f27a85569944480ebc Author: Dominik Brodowski Date: Thu Jul 29 16:33:23 2010 +0200 pcmcia: simplify IntType IntType was only set to INT_MEMORY (driver pcmciamtd) or INT_MEMORY_AND_IO (all other drivers). As this flags seems to relate to ioport access, make it conditional to the driver having requested IO port access. There are two drivers which do not request IO ports, but did set INT_MEMORY_AND_IO: ray_cs and b43. For those, we consistently only set INT_MEMORY in future. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit fc301101034c06bf56a7f71bf682c48909e401a4 Author: Dominik Brodowski Date: Thu Jul 29 16:19:39 2010 +0200 pcmcia: simplify Status, ExtStatus register access The Status (CISREG_CCSR) and ExtStatus (CISREG_ESR) registers were only accessed to enable audio output for some drivers and IRQ for serial_cs.c. The former also required setting config_req_t.Attributes to CONF_ENABLE_SPKR; the latter can be simplified to setting this field to CONF_ENABLE_ESR. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1a4a046030ade0f57b8f3b476d61c7c35d894b66 Author: Dominik Brodowski Date: Thu Jul 29 15:54:54 2010 +0200 pcmcia: remove Pin, Copy configuration register access The "Pin" and "Copy" configuration registers (CISREG_SCR, CISREG_PPR) do not seem to be utilized anywhere. If a device would request a write to these registers, "0" would be written. Continue to do so, but warn of unexpected behavior -- and remove the "Pin" and "Copy" entries from config_req_t. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit e8405f0f617856de0ceb7d04e65b663051451544 Author: Dominik Brodowski Date: Thu Jul 29 15:50:55 2010 +0200 pcmcia: move Vpp setup to struct pcmcia_device Some drivers prefer to explicitly set Vpp. Instead of passing the voltage inside config_req_t, store it in struct pcmcia_device. CC: linux-ide@vger.kernel.org CC: netdev@vger.kernel.org CC: linux-mtd@lists.infradead.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: linux-usb@vger.kernel.org CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit fb49fa533f9d211994c33efb752ffa5b30033729 Author: Dominik Brodowski Date: Thu Jul 29 14:06:42 2010 +0200 pcmcia: split up modify_configuration() into two fixup functions pcmcia_modify_configuration() was only used by two drivers to fix up one issue each: setting the Vpp to a different value, and reducing the IO width to 8 bit. Introduce two explicitly named functions handling these things, and remove one further typedef. CC: netdev@vger.kernel.org CC: linux-mtd@lists.infradead.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit cdb138080b78146d1cdadba9f5dadbeb97445b91 Author: Dominik Brodowski Date: Wed Jul 28 10:59:06 2010 +0200 pcmcia: do not use win_req_t when calling pcmcia_request_window() Instead of win_req_t, drivers are now requested to fill out struct pcmcia_device *p_dev->resource[2,3,4,5] for up to four iomem ranges. After a call to pcmcia_request_window(), the windows found there are reserved and may be used until pcmcia_release_window() is called. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-mtd@lists.infradead.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit feb47ca9314666d920855b8a235032dea2b2caa4 Author: Steven Whitehouse Date: Wed Sep 29 15:04:18 2010 +0100 GFS2: Improve journal allocation via sysfs Recently a feature was added to GFS2 to allow journal id allocation via sysfs. This patch builds upon that so that a negative journal id will be treated as an error code to be passed back as the return code from mount. This allows termination of the mount process if there is a failure. Also, the process has been updated so that the kernel will wait for a journal id, even in the "spectator" case. This is required in order to avoid mounting a filesystem in case there is an error while joining the cluster. In the spectator case, 0 is written into the file to indicate that all is well, and that mount should continue. Signed-off-by: Steven Whitehouse commit 43f74c199563a4273e528e2166d0650625a1e05f Author: Steven Whitehouse Date: Wed Sep 29 14:24:41 2010 +0100 GFS2: Add "norecovery" mount option as a synonym for "spectator" XFS supports the "norecovery" mount option which is basically the same as the GFS2 spectator mode. This adds support for "norecovery" as a synonym for spectator mode, which is hopefully a more obvious description of what it actually does. Signed-off-by: Steven Whitehouse commit c741c4551237f9c1bdcd3b1b39b0883bd19a3723 Author: Steven Whitehouse Date: Wed Sep 29 14:20:52 2010 +0100 GFS2: Fix spectator umount issue The tests further down the recovery function relating to unlocking the journal need to be updated to match the intial test. Also, a test in the umount code which was surplus to requirements has been removed. Umounting spectator mounts now works correctly, as expected. Signed-off-by: Steven Whitehouse commit 0c92ecf10d9fb80b1798d2a9adfdea17f8f5e6d9 Author: Jassi Brar Date: Wed Sep 29 17:31:33 2010 +0900 spi/s3c64xx: Correction for 16,32 bits bus width We can't do without setting channel and bus width to same size. In order to do that, use loop read/writes in polling mode and appropriate burst size in DMA mode. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit b42a81ca0fa7b3b442a0731ffc4e7db44464b5f2 Author: Jassi Brar Date: Wed Sep 29 17:31:33 2010 +0900 spi/s3c64xx: Consider the clk_from_cmu flag Newer SoCs have the SPI clock scaling control in platform's clock management unit. Inorder for such SoCs to work, we need to check the flag clk_from_cmu before making any clock changes. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit e02ddd442a532c73e547ae3735c8012e3bd719a5 Author: Jassi Brar Date: Wed Sep 29 17:31:31 2010 +0900 spi/s3c64xx: Prevent unnecessary map-unmap Since we use DMA mode only for xfers bigger than FIFO size, do not map/unmap buffers for polling mode transfers. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit 4a4fd47155ac49b62de5177a780c245e967752f3 Author: Julia Lawall Date: Wed Sep 29 17:31:30 2010 +0900 spi/amba-pl022: Fix error case return statement. The return -EINVAL appears to only make sense if the if branch that it is aligned with is taken, and the indentation indicates that this is the authors intent, so move it into that branch. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: Grant Likely commit e447d3588e1c5944f607083cb509663f8015d420 Author: Julia Lawall Date: Wed Sep 29 17:31:29 2010 +0900 spi/orion: Drop unnecessary null test list_for_each_entry binds its first argument to a non-null value, and thus any null test on the value of that argument is superfluous. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ iterator I; expression x,E; @@ I(x,...) { <... - (x != NULL) && E ...> } // Signed-off-by: Julia Lawall Signed-off-by: Grant Likely commit 079a176d87a4da4cb18864c54d3932131e11e229 Author: Felipe Balbi Date: Wed Sep 29 17:31:29 2010 +0900 spi: omap2_mcspi: make use of dev_vdbg() dev_vdbg() is only compiled when VERBOSE is defined, so there's no need to wrap dev_dbg() on #ifdef VERBOSE .. #endif as we can use dev_vdbg() directly. Signed-off-by: Felipe Balbi Signed-off-by: Grant Likely commit ab79ad14a2d51e95f0ac3cef7cd116a57089ba82 Author: Maciej Ć»enczykowski Date: Mon Sep 27 00:07:02 2010 +0000 ipv6: Implement Any-IP support for IPv6. AnyIP is the capability to receive packets and establish incoming connections on IPs we have not explicitly configured on the machine. An example use case is to configure a machine to accept all incoming traffic on eth0, and leave the policy of whether traffic for a given IP should be delivered to the machine up to the load balancer. Can be setup as follows: ip -6 rule from all iif eth0 lookup 200 ip -6 route add local default dev lo table 200 (in this case for all IPv6 addresses) Signed-off-by: Maciej Ć»enczykowski Signed-off-by: David S. Miller commit 4465b469008bc03b98a1b8df4e9ae501b6c69d4b Author: Tom Herbert Date: Sun May 23 19:54:12 2010 +0000 ipv4: Allow configuring subnets as local addresses This patch allows a host to be configured to respond to any address in a specified range as if it were local, without actually needing to configure the address on an interface. This is done through routing table configuration. For instance, to configure a host to respond to any address in 10.1/16 received on eth0 as a local address we can do: ip rule add from all iif eth0 lookup 200 ip route add local 10.1/16 dev lo proto kernel scope host src 127.0.0.1 table 200 This host is now reachable by any 10.1/16 address (route lookup on input for packets received on eth0 can find the route). On output, the rule will not be matched so that this host can still send packets to 10.1/16 (not sent on loopback). Presumably, external routing can be configured to make sense out of this. To make this work, we needed to modify the logic in finding the interface which is assigned a given source address for output (dev_ip_find). We perform a normal fib_lookup instead of just a lookup on the local table, and in the lookup we ignore the input interface for matching. This patch is useful to implement IP-anycast for subnets of virtual addresses. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller commit 62cb3c6ac47a5ab7d8c67dbbf8cbdcd5ae735410 Author: Wey-Yi Guy Date: Tue Sep 28 17:43:10 2010 -0700 iwlagn: API v5 for 6050 series device For 6050 series device, change the supported API version Signed-off-by: Wey-Yi Guy commit 6d6a1afdc591e3f3ee66c39206923def43044ab6 Author: Shanyu Zhao Date: Tue Sep 14 18:13:31 2010 -0700 iwlwifi: send DC calib config to runtime ucode Since uCode is responsible for doing DC calibration, there's no need to let init uCode to do initial DC calibration then send results back to driver, then driver sends the results to runtime uCode. Driver can simply tell runtime uCode to do DC calibration. Actually, this patch does not disable DC calib for init uCode. It just prevent driver from saving and sending the DC calib results (from init ucode) to runtime uCode. The driver still uses 0xffffffff in CALIB_CFG_CMD for init ucode. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit 02796d77cb4cfb64b9465eabbdb13b3b7d1679e9 Author: Shanyu Zhao Date: Tue Sep 14 16:23:42 2010 -0700 iwlagn: set CSR register for 6050g2 devices For 6050g2 devices driver needs to set a special bit to CSR register so that uCode can do things correctly in calibration routines. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit 6b5ce501428942d9dec864a41ee223307f421574 Author: Shanyu Zhao Date: Tue Sep 14 16:23:32 2010 -0700 iwlwifi: add iwl_nic_ops structure to iwl_ops iwlwifi driver supports multiple devices. Since some device needs special configuration we create a new iwl_nic_ops structure which is configurable per device. Currently there is only one function pointer inside this structure: additional_nic_config(). The iwl_nic_ops structure is added to the top level in struct iwl_ops, making it easier to change per device. Duplication of the iwl_lib_ops structure is no longer needed. With this new ops the previous function pointer set_calib_version is no longer needed since it is just a per device nic configuration. As part of the code restructuring, a bug is addressed. Indication of calib version to uCode is only needed for 6050 devices, however, current implementation set calib version for all 6000 devices for which DC calib is needed. To fix this, create iwl6050_ops for 6050 devices and only populate iwl_nic_ops in this structure. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit 1de19eccb3fe634e939cb40f30fdfda93a67fe93 Author: Jay Sternberg Date: Tue Sep 14 15:21:20 2010 -0700 iwlwifi: define 100 devices add new structures and defines need to identify 100 devices. Signed-off-by: Jay Sternberg Signed-off-by: Wey-Yi Guy commit 1728943d83e9fd919e454332fe344944123b3c3a Merge: f2176d7 e7ee762 Author: John W. Linville Date: Tue Sep 28 16:01:47 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 Conflicts: drivers/net/wireless/iwlwifi/iwl-agn-lib.c drivers/net/wireless/iwlwifi/iwl3945-base.c commit f2176d7240e4f455a6e007703c7512fbde926dc8 Author: Juuso Oikarinen Date: Tue Sep 28 14:39:32 2010 +0300 mac80211: Fix WMM driver queue configuration The WMM parameter configuration function (ieee80211_sta_wmm_params) only configures the WMM parameters to the driver is the wmm_last_param_set counter value is changed by the AP. The wmm_last_param_set is initialized to -1 on association in order to ensure the configuration is made to the driver at least once on association, but currently this initialization is done *after* the WMM parameter configuration function was called. This leads to unreliability in the driver getting properly configured on first association (depending on what counter value the AP happens to use.) When disassociating (the wmm default parameters are configured to the driver) and then reassociating, due to the above the WMM configuration is not set to the driver at all. On drivers without beacon filtering the problem is corrected by later beacons, but on drivers with beacon filtering the WMM will remain permanently incorrectly configured. Fix this by moving the initialization of wmm_last_param_set to -1 before ieee80211_sta_wmm_params is called on association. Signed-off-by: Juuso Oikarinen Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 93b05238027420978d785569f8c1aa4a6867bc13 Author: Johannes Berg Date: Tue Sep 28 12:53:14 2010 +0200 cfg80211: always set IBSS basic rates IBSS started from wireless extensions is currently missing basic rate configuration, fix this by moving the code to generate the default to the common code that gets invoked for both nl80211 and wext. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit dc4769f0bb949e312ad8d9b652047ff6709978c2 Author: Christian Lamparter Date: Tue Sep 28 01:53:42 2010 +0200 carl9170: interrupt urbs must not set URB_ZERO_PACKET This patch fixes a bug in the driver which was exposed by CONFIG_USB_DEBUG: "usb 1-1.6.3: BOGUS urb flags, 40 --> 0" The transfer flag "URB_ZERO_PACKET" is only valid for bulk urbs. Reported-by: AndrĂ© Erdmann Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit eada7cad6005006b457f10a4c3e1881ff99d03a4 Author: Bruno Randolf Date: Mon Sep 27 13:02:40 2010 +0900 ath5k: Fix bitmasks and typos for PCU Diagnostic register As reported by Ryan Niemi, some bitmasks in the register definition for the PCU Diagnostic register (DIAG_SW) were missing a zero at the end. While at it fix some typos and add more comments. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 28df897a42aa41d6318be5b9872c4bb5c8d8d7e3 Author: Bruno Randolf Date: Mon Sep 27 12:22:32 2010 +0900 ath5k: Disable interrupts in ath5k_hw_get_tsf64 The code in ath5k_hw_get_tsf64() is time critical and will return wrong results if we get interrupted, so disable local interrupts. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 11f21df36cbcffbfada9307e809d4372ece27f47 Author: Bruno Randolf Date: Mon Sep 27 12:22:26 2010 +0900 ath5k: Increase "fudge" for beacon timers We use FUDGE to make sure the next TBTT is ahead of the current TU. Since we later substract AR5K_TUNE_SW_BEACON_RESP (10) in the timer configuration we need to make sure it is bigger than that. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 7f896126017830b29cf501d246ee32b81e359acd Author: Bruno Randolf Date: Mon Sep 27 12:22:21 2010 +0900 ath5k: Check and fix ATIM window This patch adds sanity-checks for the beacon timers and especially the ATIM window to ath5k. It is basically the same what i did for madwifi two years ago and fixes a problem in IBSS mode which has been described as "ramping" pings. See the code comments for a more detailed description and these links: http://madwifi-project.org/ticket/1154 http://madwifi-project.org/changeset/3867 http://thread.gmane.org/gmane.linux.drivers.madwifi.devel/6066 Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 4a79f2c517cce31c3b25aab0ec5078368b22c363 Author: Bruno Randolf Date: Mon Sep 27 12:22:16 2010 +0900 ath5k: Remove unused variable for atim window It's not used and it's unlikely we will ever implement ATIM. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 4bd437ea40b81fb4c047034de6dca1b5af496fb0 Author: Christian Lamparter Date: Mon Sep 27 01:36:38 2010 +0200 carl9170: revamp carl9170_tx_prepare David Miller complained about the driver's excessive use of variables in __packed structs. While I did not fully agree with his sole "performance" argument on all accounts. I do see some room for improvement in hot-paths on architectures without an efficient access to unaligned elements. This first patch (dare I say?) optimizes an important tx hot-path in the driver: carl9170_tx_prepare. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9c655c8be9053a65886ac3e06420399a9bfdbd70 Author: Christian Lamparter Date: Sun Sep 26 23:06:56 2010 +0200 carl9170: fix WARN_ON triggered by Broadcom HT STAs Broadcom's Windows driver for the 4313 advertises an ampdu density of 7 => 16 us. The AR9170 MAC on the other hand only supports densities up to 8 us. This patch removes the noisy WARN_ON, because there is nothing we can do about it. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit cb139ecc0c030e8ccc736bd86cfef502c200825a Author: Christian Lamparter Date: Sun Sep 26 22:49:34 2010 +0200 carl9170: fix tx_ampdu_upload counter tx_ampdu_upload was not decreased when an a-MPDU frame had to be kicked out from the tx_pending queues. This broke ampdu aggregation, because the scheduler waits until tx_ampdu_upload drops to zero, before making the next aggregate. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 042c53f6e84896701b67012ad525bc44ea6de25f Author: Christian Lamparter Date: Sun Sep 26 21:48:31 2010 +0200 carl9170: remove lost-frame workaround This patch removes some cruft, which survived the RFC review phase. Originally, carl9170_tx_ampdu_queue erroneously dropped a lot of frames. As a result the ampdu scheduler bogged down quite frequently and the affected BA session timed out. However this bug has been fixed and the WA and its debugfs counter is no longer useful. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit b4c85d459c3a2c539a2d5885b12372e404bafc6b Author: Christian Lamparter Date: Sun Sep 26 21:40:40 2010 +0200 carl9170: angle brackets for wiki link "The convention seems to be angle brackets around URLS in Kconfig." -- Finn Thain (to update web addresses in the kernel) Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 793e721d21fd7d2825e3b7e56ff5009ec6d052e9 Author: Christian Lamparter Date: Sun Sep 26 21:28:51 2010 +0200 carl9170: remove non-standard ba session teardown 802.11n-2009 demands in 11.2.1: " When a STA enters normal (non-APSD) PS mode, any downlink Block ACK agreement without an associated schedule is suspended for the duration of this PS mode." The operative word is "suspended" and not terminated. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 8d4780eb1ece4e8109b4f6b2e5e61f7fc593c3f4 Author: Luis R. Rodriguez Date: Fri Sep 24 21:59:57 2010 -0400 mac80211: fix offchannel assumption upon association Association is dealt with as an atomic offchannel operation, we do this because we don't know we are associated until we get the associatin response from the AP. When we do get the associatin response though we were never clearing the offchannel state. This has a few implications, we told drivers we were still offchannel, and the first configured TX power for the channel does not take into account any power constraints. For ath9k this meant ANI calibration would not start upon association, and we'd have to wait until the first bgscan to be triggered. There may be other issues this resolves but I'm too lazy to comb the code to check. Cc: stable@kernel.org Cc: Amod Bodas Cc: Vasanth Thiagarajan Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit bc01befdcf3e40979eb518085a075cbf0aacede0 Author: Pablo Neira Ayuso Date: Tue Sep 28 21:06:34 2010 +0200 netfilter: ctnetlink: add support for user-space expectation helpers This patch adds the basic infrastructure to support user-space expectation helpers via ctnetlink and the netfilter queuing infrastructure NFQUEUE. Basically, this patch: * adds NF_CT_EXPECT_USERSPACE flag to identify user-space created expectations. I have also added a sanity check in __nf_ct_expect_check() to avoid that kernel-space helpers may create an expectation if the master conntrack has no helper assigned. * adds some branches to check if the master conntrack helper exists, otherwise we skip the code that refers to kernel-space helper such as the local expectation list and the expectation policy. * allows to set the timeout for user-space expectations with no helper assigned. * a list of expectations created from user-space that depends on ctnetlink (if this module is removed, they are deleted). * includes USERSPACE in the /proc output for expectations that have been created by a user-space helper. This patch also modifies ctnetlink to skip including the helper name in the Netlink messages if no kernel-space helper is set (since no user-space expectation has not kernel-space kernel assigned). You can access an example user-space FTP conntrack helper at: http://people.netfilter.org/pablo/userspace-conntrack-helpers/nf-ftp-helper-userspace-POC.tar.bz Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy commit fc34ecd07f15358e2b29620fafeb8a6a9528ce79 Author: Randy Dunlap Date: Tue Sep 28 10:34:27 2010 -0700 pch_gbe: add header files Fix build errors, more header files needed. drivers/net/pch_gbe/pch_gbe_main.c:965: error: implicit declaration of function 'tcp_hdr' drivers/net/pch_gbe/pch_gbe_main.c:965: error: invalid type argument of '->' (have 'int') drivers/net/pch_gbe/pch_gbe_main.c:968: error: invalid type argument of '->' (have 'int') drivers/net/pch_gbe/pch_gbe_main.c:976: error: implicit declaration of function 'udp_hdr' drivers/net/pch_gbe/pch_gbe_main.c:976: error: invalid type argument of '->' (have 'int') drivers/net/pch_gbe/pch_gbe_main.c:980: error: invalid type argument of '->' (have 'int') Signed-off-by: Randy Dunlap Signed-off-by: David S. Miller commit d99bf6e707444af4df294f54a679f679018d7ec3 Author: John W. Linville Date: Mon Sep 27 14:00:51 2010 -0400 wl12xx: fix separate-object-folder builds Make this go away (happens when building with a separate object directory): Assembler messages: Fatal error: can't create drivers/net/wireless/wl12xx/.tmp_wl12xx_platform_data.o: No such file or directory drivers/net/wireless/wl12xx/wl12xx_platform_data.c: In function 'wl12xx_get_platform_data': drivers/net/wireless/wl12xx/wl12xx_platform_data.c:28: error: cannot open drivers/net/wireless/wl12xx/.tmp_wl12xx_platform_data.gcno drivers/net/wireless/wl12xx/wl12xx_platform_data.c:28: confused by earlier errors, bailing out Signed-off-by: John W. Linville Reported-by: Stephen Rothwell Cc: Signed-off-by: Ohad Ben-Cohen commit 381bd10aff491216383291879b29461efb575119 Author: Luciano Coelho Date: Tue Sep 28 09:54:27 2010 +0300 MAINTAINERS: Update git url for the wl1271 driver We are integrating wl1271 commits via a new git tree now and wl1271 development should be made on top of the new tree. Update the repository url accordingly. Cc: John W. Linville Signed-off-by: Luciano Coelho commit 7a55724e0dc24cadaeb58f8306222a7802a24ff1 Author: Juuso Oikarinen Date: Mon Sep 27 12:42:07 2010 +0200 wl1271: Add support for hardware GEM cipher This patch adds support for the hardware GEM cipher suite. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 8eab7b4708b5ef4701ecbe5d659f99743b77b668 Author: Juuso Oikarinen Date: Fri Sep 24 03:10:11 2010 +0200 wl1271: Increase connection reliability This patch improves connection reliability by choosing the lowest basic rate for null-func frames (which increases their range, as the firmware does not do rate fall-back for null-func frames.) Also, increase the PSM entry retry-counter. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Tested-by: Tuomas Katila Signed-off-by: Luciano Coelho commit bea39d6a60b62f16e904be5a520bf55714d73021 Author: Juuso Oikarinen Date: Tue Sep 21 08:14:31 2010 +0200 wl1271: Optimize scan duration Currently then dwell times for each channel in scans is set to an overly long value, and excessive number of probe-requests are transmitted on each channel (for active scans.) Based on testing, comparable results can be received with smaller dwell-time, and, with fever probe-requests - in fact, reducing the number of probe-requests to 2 seems to increase the number of found results. Configure more optimal values for per channel dwell times. Comparison for the different scan configurations (in my current office environment): dwell-time 60000 3x probe-req == ~60 results 40000 3x probe-req == ~50 results 30000 3x probe-req == ~40 results dwell-time 60000 2x probe-req == ~70 results 40000 2x probe-req == ~60 results 30000 2x probe-req == ~58 results The above are results for a cumulative 3 scan run. For individual scans, the number of results drop slightly more. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit 78abd3207438b20e099b41cbed58d640cbd237a6 Author: Juuso Oikarinen Date: Tue Sep 21 06:23:32 2010 +0200 wl1271: Add handling for failing hardware scan command Currently, the driver does not handle a failing hardware command to scan in any way - effectively, the scan machine will jam until the driver is shut down, and future scan requests will just return -EBUSY to user space, resulting in a type of busy-loop. The same problem occurs if the firmware fails to deliver the scan completion event - add timeout for this. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit 52b0e7a61fd4b67fe8efe295297d8549f052f786 Author: Juuso Oikarinen Date: Tue Sep 21 06:23:31 2010 +0200 wl1271: Add hardware recovery mechanism There is some probability of hardware failures, which currently go largely undetected. Attempt to recover from these failures by shutting down the hardware, and requesting mac80211 to reconfigure it. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit 52a2a37550b604b3c3c7a044ff72d85b60165659 Author: Juuso Oikarinen Date: Tue Sep 21 06:23:30 2010 +0200 wl1271: Separate interface removal to another function Do this so the interface removal can be triggered from an upcoming hardware failure recovery mechanism. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit 8c7f4f3166e16bb350bfc53955ea6cf9bfd34aab Author: Juuso Oikarinen Date: Tue Sep 21 06:23:29 2010 +0200 wl1271: Fix work cancelling when shutting down the driver The work cancelling has had several hazards, ranging from potentially executing work after the driver is in OFF state, to executing work after the driver and relevant memory structures are already removed. Fix these. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit c454f1d9a896d3519c756355b37bb39941093233 Author: Juuso Oikarinen Date: Tue Aug 24 06:28:03 2010 +0300 wl1271: Move scan complete invocation into work function The current scan implementation can jam, if the scan request ends up containing no work. This can especially happen if there is a scan request with only 11a band channels for HW that does not support 11a. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 9987a9da3eda093ceeff14ad4926adb130a0d0ea Author: Juuso Oikarinen Date: Wed Sep 1 11:31:12 2010 +0200 wl1271: Fix AC/TID default configuration The WMM queue default configuration was incorrect, and caused uapsd mode problems (among possible others.) Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit ed484a16b495ee7e13cb28fd6ff6053d10657633 Author: Juuso Oikarinen Date: Wed Sep 1 11:31:11 2010 +0200 wl1271: Fix tid-configuration of TX frames Incorrect TID was configured for TX frames. This resulted in incorrect queues to be used for classes in transmission. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit d594845106f34c079a6b05be01a37e4883c3bf4c Author: Steven Whitehouse Date: Tue Sep 28 10:17:47 2010 +0100 GFS2: Fix compiler warning from previous patch This shouldn't really be required, but gcc can't tell that "al" is only accessed when initialised. Signed-off-by: Steven Whitehouse commit 11eb54298fa7197cb4187f8a3474ead0709f76ff Author: Juuso Oikarinen Date: Tue Aug 24 06:28:03 2010 +0300 wl1271: Enable 11a support always, prevent scanning for unsupporting chips This patch always enables 11a band towards the mac80211, but prevents scanning (and hence the usage of) 11a band channels if the chipset does not support it. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 65cddbf1353212f8ab00c6084e3063d85c419201 Author: Juuso Oikarinen Date: Tue Aug 24 06:28:03 2010 +0300 wl1271: Reduce rate used for last PSM entry attempt This patch reduces the rate of the null-func used to enter PSM on the last retry as precaution. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 02fabb0eafde901ae51532ad15fdd4737b7d71e3 Author: Juuso Oikarinen Date: Thu Aug 19 04:41:15 2010 +0200 wl1271: Enable/disable 11a support based on INI configuration Instead of hardcoding 11a support, enable/disable driver support based on the dual-mode-select parameter in the nvs-file general paramters. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 18c311b71899803de91f1ed41b9d87eb81017a91 Author: Juuso Oikarinen Date: Tue Aug 17 04:09:34 2010 +0200 wl1271: Remove function cmd_read_memory The function is not used anywhere. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 4e23b11b08ed116664cce6114546d5a96eb94e8b Author: Juuso Oikarinen Date: Fri Aug 13 04:46:48 2010 +0200 wl1271: Release interrupt *after* releasing the driver context The current order causes driver releasing to fail in various ways, and causes possible instability. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 165530974504e21d79a43e5f964bd9284e45a8f1 Author: Juuso Oikarinen Date: Tue Aug 17 03:50:04 2010 +0200 wl1271: Remove acx_fw_version function It's not used anywhere. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 03f06b7efc8cbc666bd096b68bdf955388e0b323 Author: Juuso Oikarinen Date: Tue Aug 10 06:38:36 2010 +0200 wl1271: Move setting of wake-up conditions to ps.c from cmd.c This removes a fixme. Also, it removes a redundant setting of the wake-up conditions when exiting power save mode, which should improve performance. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 2f63b011b4a6d3c0572147be5756212f5558fff0 Author: Juuso Oikarinen Date: Tue Aug 10 06:38:35 2010 +0200 wl1271: Remove outdated FIXME's Remove outdated FIXME's from the code. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit fa21c7a9e4be439e217fe72edbd39b643b643791 Author: Juuso Oikarinen Date: Tue Aug 10 08:22:02 2010 +0200 wl1271: Change supported channel order for a more optimal scan The mac80211 inserts channels into a scan request in the same order the driver registers them. Use this fact to optimize scan by ordering the channels so that adjacent channels don't get scanned consecutively. Signed-off-by: Juuso Oikarinen Reviewed-by: Luciano Coelho Signed-off-by: Luciano Coelho commit 4f35c0253ab7f32cf30eab5459e8256af1619ff1 Author: Luciano Coelho Date: Wed Aug 4 04:36:32 2010 +0300 wl1271: fix forced passive scan When we get no SSIDs in the scan request, we should force a passive scan in all channels. This patch adds code to force the passive scan flag to be set in that case. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen commit 5924f89d6597cd7ba014128ded64b2c7450c369c Author: Luciano Coelho Date: Wed Aug 4 03:46:22 2010 +0300 wl1271: remove useless 11a check when scanning This code was a leftover of the previous scanning mechanism. The if is totally unnecessary, since both branches do the same thing. Signed-off-by: Luciano Coelho Reviewed-by: Juuso Oikarinen commit 76a029fbfb18c42f75c891842df26605ef87add0 Author: Juuso Oikarinen Date: Thu Jul 29 04:54:45 2010 +0300 wl1271: Fix scan race condition In the scan state machine, the wl1271_mutex is unlocked first then relocked, and then the scan state variables are modified. This makes it possible for ieee80211_scan_complete to be called twice in some scenarios, as the scan completion event from the firmware may be processed while the mutex is unlocked. To fix the issue, move the ieee80211_scan_complete call last in the function. This is generally safer, but there still may be issues is functions calling the scan state machine rely on states checked before the unlocking of the global mutex. (forward ported from 2.6.32 -- this is not strictly needed anymore, because the mutex doesn't need to be unlocked anymore, but I'm applying this change anyway, so that the call to ieee80211_scan_complete is in the same place) Signed-off-by: Juuso Oikarinen Reviewed-by: Saravanan Dhanabal Signed-off-by: Luciano Coelho commit c2c192ac6c16e2e8f5cc8cf54e02bb1d4e0e761d Author: Juuso Oikarinen Date: Tue Jul 27 03:30:09 2010 +0300 wl1271: Add trigger to net_device oper_state to change BT coex priority Add a trigger to net_device changes to monitor for oper_state changes in order to be able to inform the firmware when association is fully complete (including the EAP negotiation.) Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit be86cbea1e9c3a4dd8faedcfa327495d09fe3531 Author: Juuso Oikarinen Date: Thu May 27 12:53:01 2010 +0300 wl1271: Implement CMD_SET_STA_STATE to indicate connection completion to FW Implement the command function to send CMD_SET_STA_STATE to the firmware. This is used to indicate that association (and the related EAP negotiation) are complete. This is used to tune WLAN-BT coexistense priority towards BT, improving BT A2DP and SCO performance. Signed-off-by: Juuso Oikarinen Reviewed-by: Teemu Paasikivi Signed-off-by: Luciano Coelho commit 98d633b64a55d6f3e943951ca35f283b0901d7db Author: Luciano Coelho Date: Thu Jul 8 06:27:38 2010 +0300 wl1271: remove deprecated ACX definition As of Rev. 6.1.0.0.335, the ACX_SET_SMART_REFLEX_DEBUG command is deprecated. This patch removes it from the wl1271 driver (it wasn't used anyway). Signed-off-by: Luciano Coelho Reviewed-by: Saravanan Dhanabal commit bf97b6734e027cc18abad420ab88f861f65d7816 Author: Benjamin Marzinski Date: Mon Sep 27 16:00:04 2010 -0500 GFS2: reserve more blocks for transactions Some of the functions in GFS2 were not reserving space in the transaction for the resource group header and the resource groups bitblocks that get added when you do allocation. GFS2 now makes sure to reserve space for the resource group header and either all the bitblocks in the resource group, or one for each block that it may allocate, whichever is smaller using the new gfs2_rg_blocks() inline function. Signed-off-by: Benjamin Marzinski Signed-off-by: Steven Whitehouse commit 54dd55a406f6e9cb5ae208f258b907455162e045 Author: Steffen Sledz Date: Mon Sep 27 14:20:26 2010 +0200 UBIFS: avoid kernel error if ubifs superblock read fails .get_sb is called on mounts with automatic fs detection too, so this function should print an error if it cannot read the superblock in debug mode only (new behaviour conforms the other fs types) Signed-off-by: Steffen Sledz Signed-off-by: Artem Bityutskiy commit 4d443a085de2b6bcae5e0a773c63b8731ff27101 Author: Kumar Sanghvi Date: Mon Sep 27 19:35:06 2010 +0000 Documentation: Update Phonet doc for Pipe Controller implementation Updates the Phonet document with description related to Pipe controller implementation Signed-off-by: Kumar Sanghvi Acked-by: Linus Walleij Signed-off-by: David S. Miller commit 2ddaad397c47de012dfb956b0c05540da1a0dde5 Author: Ben Hutchings Date: Mon Sep 27 22:11:51 2010 -0700 tg3: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 5df8dbd7e517b581e0b8cbd72a99da17914a20b0 Author: Ben Hutchings Date: Mon Sep 27 08:32:59 2010 +0000 8021q: Use netif_copy_real_num_queues() to set queue counts This covers RX if necessary, as well as TX. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit c4f4adc7b7e03f9c0bfc81fccc8ad85d06dc8d88 Author: Ben Hutchings Date: Mon Sep 27 08:31:07 2010 +0000 sfc: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit e2209ba35aa7050fced05bf9c4244562fcaebd63 Author: Ben Hutchings Date: Mon Sep 27 08:30:59 2010 +0000 niu: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit c99202684f7a45c965cb13fa6bb647f2ce9d27fa Author: Ben Hutchings Date: Mon Sep 27 08:30:34 2010 +0000 myri10ge: Use netif_set_real_num_{rx, tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 206d6b3270921fe4a207515beb1f7f7cd8aa3597 Author: Ben Hutchings Date: Mon Sep 27 08:30:05 2010 +0000 mv643xx_eth: Use netif_set_real_num_{rx, tx}_queues() Signed-off-by: Ben Hutchings Acked-by: Lennert Buytenhek Signed-off-by: David S. Miller commit 1eb63a28148336b8a97ff5ee0ecd6830e76a7044 Author: Ben Hutchings Date: Mon Sep 27 08:29:34 2010 +0000 mlx4_en: Use netif_set_real_num_{rx, tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 847f53ff40a81c94367aabb2ef05f2b99cb5706d Author: Ben Hutchings Date: Mon Sep 27 08:28:56 2010 +0000 ixgbe: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 21adef3e2959160df31f8516883431e5595f9e50 Author: Ben Hutchings Date: Mon Sep 27 08:28:39 2010 +0000 igb: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit fe06912333bb9776b0429100b195080809984ae4 Author: Ben Hutchings Date: Mon Sep 27 08:27:37 2010 +0000 gianfar: Use netif_set_real_num_rx_queues() Do not set num_tx_queues or real_num_tx_queues, since alloc_etherdev_mq() does that. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 003ab6742a31662eb808f01273126830612cbda1 Author: Ben Hutchings Date: Mon Sep 27 08:26:10 2010 +0000 cxgb4vf: Use netif_set_real_num_{rx, tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit a020ed4bb88356fea9e24ffcfd9692a835a3f122 Author: Ben Hutchings Date: Mon Sep 27 08:25:57 2010 +0000 cxgb4: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 19221e75da32cecbd3fe83a8ac12755fe38a4602 Author: Ben Hutchings Date: Mon Sep 27 08:25:44 2010 +0000 cxgb3: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 31b600b5fcd101acffb261f87f60f27085ca6509 Author: Ben Hutchings Date: Mon Sep 27 08:25:27 2010 +0000 bnx2x: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 657d92fe6d693b9674264bc7546e664714955425 Author: Ben Hutchings Date: Mon Sep 27 08:25:16 2010 +0000 bnx2: Use netif_set_real_num_{rx,tx}_queues() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 3171d026291d08c2a4cfe06302ce308b09605c4b Author: Ben Hutchings Date: Mon Sep 27 08:24:49 2010 +0000 net: Add netif_copy_real_num_queues() for use by virtual net drivers This sets the active numbers of queues on a net device to match another. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 62fe0b40abb3484413800edaef9b087a20059acf Author: Ben Hutchings Date: Mon Sep 27 08:24:33 2010 +0000 net: Allow changing number of RX queues after device allocation For RPS, we create a kobject for each RX queue based on the number of queues passed to alloc_netdev_mq(). However, drivers generally do not determine the numbers of hardware queues to use until much later, so this usually represents the maximum number the driver may use and not the actual number in use. For TX queues, drivers can update the actual number using netif_set_real_num_tx_queues(). Add a corresponding function for RX queues, netif_set_real_num_rx_queues(). Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit f91ff5b9ff529be8aac2039af63b2c8ea6cd6ebe Author: Eric Dumazet Date: Mon Sep 27 06:07:30 2010 +0000 net: sk_{detach|attach}_filter() rcu fixes sk_attach_filter() and sk_detach_filter() are run with socket locked. Use the appropriate rcu_dereference_protected() instead of blocking BH, and rcu_dereference_bh(). There is no point adding BH prevention and memory barrier. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7fa7cb7109d07c29ab28bb877bc7049a0150dbe5 Author: Eric Dumazet Date: Mon Sep 27 04:18:27 2010 +0000 fib: use atomic_inc_not_zero() in fib_rules_lookup It seems we dont use appropriate refcount increment in an rcu_read_lock() protected section. fib_rule_get() might increment a null refcount and bad things could happen. While fib_nl_delrule() respects an rcu grace period before calling fib_rule_put(), fib_rules_cleanup_ops() calls fib_rule_put() without a grace period. Note : after this patch, we might avoid the synchronize_rcu() call done in fib_nl_delrule() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 15fc1f7056ebdc57e23f99077fec89e63e6fa941 Author: Eric Dumazet Date: Mon Sep 27 00:38:18 2010 +0000 sit: percpu stats accounting Maintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets. Other seldom used fields are kept in netdev->stats structure, possibly unsafe. This is a preliminary work to support lockless transmit path, and correct RX stats, that are already unsafe. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 3c97af99a5aa17feaebb4eb0f85f51ab6c055797 Author: Eric Dumazet Date: Mon Sep 27 00:35:50 2010 +0000 ipip: percpu stats accounting Maintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets. Other seldom used fields are kept in netdev->stats structure, possibly unsafe. This is a preliminary work to support lockless transmit path, and correct RX stats, that are already unsafe. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit e985aad723d7709e6bee566bacb100d33d9b791b Author: Eric Dumazet Date: Mon Sep 27 03:57:11 2010 +0000 ip_gre: percpu stats accounting Le lundi 27 septembre 2010 Ă  14:29 +0100, Ben Hutchings a Ă©crit : > > diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c > > index 5d6ddcb..de39b22 100644 > > --- a/net/ipv4/ip_gre.c > > +++ b/net/ipv4/ip_gre.c > [...] > > @@ -377,7 +405,7 @@ static struct ip_tunnel *ipgre_tunnel_locate(struct net *net, > > if (parms->name[0]) > > strlcpy(name, parms->name, IFNAMSIZ); > > else > > - sprintf(name, "gre%%d"); > > + strcpy(name, "gre%d"); > > > > dev = alloc_netdev(sizeof(*t), name, ipgre_tunnel_setup); > > if (!dev) > [...] > > This is a valid fix, but doesn't belong in this patch! > Sorry ? It was not a fix, but at most a cleanup ;) Anyway I forgot the gretap case... [PATCH 2/4 v2] ip_gre: percpu stats accounting Maintain per_cpu tx_bytes, tx_packets, rx_bytes, rx_packets. Other seldom used fields are kept in netdev->stats structure, possibly unsafe. This is a preliminary work to support lockless transmit path, and correct RX stats, that are already unsafe. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 290b895e0ba4552dfcfc4bd35759c192345b934a Author: Eric Dumazet Date: Mon Sep 27 00:33:35 2010 +0000 tunnels: prepare percpu accounting Tunnels are going to use percpu for their accounting. They are going to use a new tstats field in net_device. skb_tunnel_rx() is changed to be a wrapper around __skb_tunnel_rx() IPTUNNEL_XMIT() is changed to be a wrapper around __IPTUNNEL_XMIT() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit af5ef241133b602a77b682009f112e7c3f7604e5 Author: Eric Dumazet Date: Sun Sep 26 22:47:09 2010 +0000 vlan: use this_cpu_ptr() in vlan_skb_recv() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 8d98efa84b790bdd62248eb0dfff17e9baf5c844 Author: Kumar Sanghvi Date: Sun Sep 26 19:07:59 2010 +0000 Phonet: Implement Pipe Controller to support Nokia Slim Modems Phonet stack assumes the presence of Pipe Controller, either in Modem or on Application Processing Engine user-space for the Pipe data. Nokia Slim Modems like WG2.5 used in ST-Ericsson U8500 platform do not implement Pipe controller in them. This patch adds Pipe Controller implemenation to Phonet stack to support Pipe data over Phonet stack for Nokia Slim Modems. Signed-off-by: Kumar Sanghvi Acked-by: Linus Walleij Signed-off-by: David S. Miller commit 5d4bff94f9e0877a85b4dc573eb7a3f1d97c13ae Author: Tony Luck Date: Mon Sep 27 13:58:14 2010 -0700 [IA64] Stop using the deprecated __do_IRQ() code path Thomas Gleixner wrote: >__do_IRQ() has been deprecated after a two years migration phase in >commit 0e57aa1. Since then another 18 months have gone by ... Mostly trivial stuff for this. The only tricky part was realizing that the new handler_*_irq() paths do not use desc->chip->end(irq). Not a problem for the edge case as the ia64 iosapic routine for that was nop(). But the "level" case handled interrupt migration there. Just use a slightly modified version of the "end" routine as "unmask" for the level triggered case. Signed-off-by: Tony Luck commit e2b626248b0799bd14be40ce290c6681a8419512 Author: Rajkumar Manoharan Date: Fri Sep 24 17:58:50 2010 +0530 ath9k_htc: Fix TKIP disconnect failure with HTC drivers The following commit removed splitmic. But forgot to add ATH_CRYPT_CAP_MIC_COMBINED flag for HTC drivers which causes TKIP to fail. Author: Bruno Randolf Date: Wed Sep 8 16:04:54 2010 +0900 ath/ath9k: Replace common->splitmic with a flag Replace common->splitmic with ATH_CRYPT_CAP_MIC_COMBINED flag. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 554891e63a29af35cc6bb403ef34e319518114d0 Author: Johannes Berg Date: Fri Sep 24 12:38:25 2010 +0200 mac80211: move packet flags into packet commit 8c0c709eea5cbab97fb464cd68b06f24acc58ee1 Author: Johannes Berg Date: Wed Nov 25 17:46:15 2009 +0100 mac80211: move cmntr flag out of rx flags moved the CMNTR flag into the skb RX flags for some aggregation cleanups, but this was wrong since the optimisation this flag tried to make requires that it is kept across the processing of multiple interfaces -- which isn't true for flags in the skb. The patch not only broke the optimisation, it also introduced a bug: under some (common!) circumstances the flag will be set on an already freed skb! However, investigating this in more detail, I found that most of the flags that we set should be per packet, _except_ for this one, due to a-MPDU processing. Additionally, the flags used for processing (currently just this one) need to be reset before processing a new packet. Since we haven't actually seen bugs reported as a result of the wrong flags handling (which is not too surprising -- the only real bug case I can come up with is an a-MSDU contained in an a-MPDU), I'll make a different fix for rc. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4080c7cdc23f26c6e6166a70f50fa43814552d81 Author: Johannes Berg Date: Fri Sep 24 11:21:08 2010 +0200 mac80211: fix release_reorder_timeout in scan Even if the reorder timeout timer fires while scanning, the frames weren't received during scanning and therefore shouldn't be dropped. To implement this, changes to the passive scan RX handler simplify understanding it, because it currently checks HW_SCANNING independently of a packet's in-scan receive status (which doesn't make a big difference, since scan_rx() will only pick up probe responses and beacons, which can't be aggregated.) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4b0dd98e70b6516c2c26f28091c2fb09f0ecf215 Author: Johannes Berg Date: Fri Sep 24 11:21:07 2010 +0200 mac80211: clean up rx handling wrt. found_sta If a station was found, then we'll have exited the function already, so it is not necessary to have a variable keeping track of it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 4406c376895608375105013bf405ecac720ef558 Author: Johannes Berg Date: Fri Sep 24 11:21:06 2010 +0200 mac80211: consolidate packet processing There are now four instances of vaguely the same code that does packet preparation, checking for MMIC errors and reporting them, and then invoking packet processing. Consolidate all of these. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 20b01f80f72426e7ed2e773220da4357925383d5 Author: Johannes Berg Date: Fri Sep 24 11:21:05 2010 +0200 mac80211: remove prepare_for_handlers sdata argument The first argument to prepare_for_handlers is always the sdata that can just be stored in rx data directly (and even already is, in two of four code paths.) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7c1e183186377e84e6f4e457be0514887f2df4ef Author: John W. Linville Date: Fri Sep 24 15:52:49 2010 -0400 Revert "mac80211: fix use-after-free" This reverts commit cd87a2d3a33d75a646f1aa1aa2ee5bf712d6f963. Author reports it conflicts with proper fixes, applied hereafter. Signed-off-by: John W. Linville commit 92e44948b2b3b2db8f39f17033f98ae2356156a5 Author: Teemu Paasikivi Date: Fri Sep 24 07:23:55 2010 +0300 nl80211: Fix exit from nl80211_set_power_save If interface does not existk, when nl80211_set_power_save is called, (eg. module has been unloaded) it has been causing kernel panic. Added new goto target to avoid crash if get_rdev_dev_by_info_ifindex does not return dev and rdev pointers. Signed-off-by: Teemu Paasikivi Signed-off-by: John W. Linville commit 56af326830757f3e8a1742770d15dfd6e3c40e85 Author: Ben Greear Date: Thu Sep 23 10:22:24 2010 -0700 mac80211: Support receiving data frames on multiple vifs. When using multiple STA interfaces on the same radio, some data packets need to be received on all interfaces (broadcast, for instance). Make the STA loop look similar to the mgt-data loop. Also, add logic to check RX_FLAG_MMIC_ERROR for last interface in mgt-data loop. Signed-off-by: Ben Greear Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 686b9cb994f5f74be790df4cd12873dfdc8a6984 Author: Ben Greear Date: Thu Sep 23 09:44:36 2010 -0700 mac80211/ath9k: Support AMPDU with multiple VIFs. The old ieee80211_find_sta_by_hw method didn't properly find VIFS when there was more than one per AP. This caused AMPDU logic in ath9k to get the wrong VIF when trying to account for transmitted SKBs. This patch changes ieee80211_find_sta_by_hw to take a localaddr argument to distinguish between VIFs with the same AP but different local addresses. The method name is changed to ieee80211_find_sta_by_ifaddr. Signed-off-by: Ben Greear Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 295bafb47b0d365e1b4f747dffef29e590f13233 Author: Ben Greear Date: Wed Sep 22 20:29:01 2010 -0700 mac80211: Support multiple VIFS per AP in debugfs. Create 'stations' sub-directory under each netdev:[vif-name] directory to hold all stations for that network device. Signed-off-by: Ben Greear Acked-by: Johannes Berg Signed-off-by: John W. Linville commit a42acef0dd3548ffda03d245d41b95250354017e Author: Felix Fietkau Date: Wed Sep 22 12:34:54 2010 +0200 ath9k_hw: simplify revision checks for AR9287 Since AR9287 v1.0 was never sold (and the initvals removed), its revision checks can be simplified similar to AR9280 Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit e17f83eafd37129f9e09425136e59bc4333bdb9c Author: Felix Fietkau Date: Wed Sep 22 12:34:53 2010 +0200 ath9k_hw: simplify revision checks for AR9285 Since AR9285 v1.0 and v1.1 were never sold (and the initvals removed), its revision checks can be simplified similar to AR9280 Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 7a37081e2e25e58701b17c41579fd06bc353b392 Author: Felix Fietkau Date: Wed Sep 22 12:34:52 2010 +0200 ath9k_hw: simplify revision checks for AR9280 Since AR9280 v1.0 was never sold (and the initvals removed), v1.0 specific revision checks can be removed and the 'v2.0 or later' check can be simplified to a check for AR9280 or later. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 67e0208acea29682f5766eb9f67f6f26117eef3e Author: Ido Yariv Date: Wed Sep 22 09:53:13 2010 +0200 wl1271: Fix overflow in wl1271_boot_upload_nvs Due to miscalculation of nvs_len, excessive data was sent to the firmware. Fix this by first setting nvs_ptr to point to the first NVS table, and computing the total size of all NVS tables accordingly. Signed-off-by: Ido Yariv Tested-By: Tuomas Katila Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 87fd2e6c90acb45a5741207fc953190596f93841 Author: Ben Greear Date: Tue Sep 21 17:03:57 2010 -0700 ath5k: Add bssid mask and rxfilter to debugfs. Helps with debugging virtual interfaces. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit d0795f912318f65b800c6b619d749c3bf7c930fb Author: Steven Whitehouse Date: Mon Sep 27 15:58:11 2010 +0100 GFS2: Fix journal check for spectator mounts When checking journals for spectator mounts, we cannot rely on the journal being locked, whatever its jid might be. This patch ensures that we always get the journal locks when checking journals for a spectator mount. Signed-off-by: Steven Whitehouse commit 64de5ec168d9743903e6ec482c3e9f37af49f9c1 Author: Uwe Kleine-König Date: Tue Sep 21 12:13:34 2010 +0200 ARM: imx: reorganize imx-i2c device registration to use a struct per SoC Signed-off-by: Uwe Kleine-König commit 4697bb926f43b8012ebd111ef43834f42126a0ef Author: Uwe Kleine-König Date: Wed Aug 25 17:37:45 2010 +0200 ARM: imx: dynamically allocate imx-ssi devices Signed-off-by: Uwe Kleine-König commit 5162de08d116fe7bbb912b17d84169983bfa16a8 Author: Uwe Kleine-König Date: Tue Aug 10 22:57:24 2010 +0200 ARM: imx: change the way imx-uarts are registered For mx1_defconfig this yields: add/remove: 1/0 grow/shrink: 1/4 up/down: 49/-108 (-59) function old new delta imx1_imx_uart_data - 48 +48 kernel_config_data 7277 7278 +1 imx_add_imx_uart_1irq 132 128 -4 imx_add_imx_uart_3irq 164 156 -8 scb9328_init 96 64 -32 mx1ads_init 220 156 -64 for mx21_defconfig this yields: add/remove: 1/0 grow/shrink: 0/3 up/down: 64/-52 (12) function old new delta imx21_imx_uart_data - 64 +64 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 mx21ads_board_init 220 176 -44 for a random mx25 config this yields: add/remove: 1/0 grow/shrink: 0/5 up/down: 80/-56 (24) function old new delta imx25_imx_uart_data - 80 +80 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 mx25pdk_init 288 272 -16 eukrea_mbimxsd_baseboard_init 272 256 -16 eukrea_cpuimx25_init 252 236 -16 for mx27_defconfig this yields: add/remove: 1/0 grow/shrink: 0/10 up/down: 96/-280 (-184) function old new delta imx27_imx_uart_data - 96 +96 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 pca100_init 560 544 -16 mx27pdk_init 112 96 -16 mx27lite_init 92 76 -16 eukrea_cpuimx27_init 332 316 -16 pcm038_init 388 348 -40 mxt_td60_board_init 320 280 -40 eukrea_mbimx27_baseboard_init 476 436 -40 mx27ads_board_init 368 280 -88 and finally for mx3_defconfig: add/remove: 2/0 grow/shrink: 0/9 up/down: 128/-344 (-216) function old new delta imx31_imx_uart_data - 80 +80 imx35_imx_uart_data - 48 +48 imx_add_imx_uart_1irq 132 128 -4 imx_add_imx_uart_3irq 164 152 -12 mx31moboard_devboard_init 360 344 -16 mx31lite_db_init 176 160 -16 mx31moboard_smartbot_init 384 360 -24 kzm_board_init 232 208 -24 armadillo5x0_init 392 364 -28 mx31lilly_db_init 248 208 -40 mxc_board_init 3760 3580 -180 Signed-off-by: Uwe Kleine-König commit 35bab0589b9a71533b37280eefa430c21dc102fe Author: Uwe Kleine-König Date: Thu Sep 9 21:02:02 2010 +0200 ARM: imx: change the way spi-imx devices are registered Group soc specific data in a global struct instead of repeating it for each call to imxXX_add_spi_imxX. The structs holding the actual data are placed in .init.constdata and so don't do much harm. Compared to the previous approach this reduces code size to call imx_add_spi_imx. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit a8a05b855291defb1d97a1c3681480e4ca330254 Author: Uwe Kleine-König Date: Tue Aug 3 16:09:35 2010 +0200 ARM: mx51: use IMX_IO_ADDRESS to define MX51_IO_ADDRESS Signed-off-by: Uwe Kleine-König commit 68b5e858dde8dcb0413b7c1d699c1056ecc0934d Author: Uwe Kleine-König Date: Tue Aug 3 16:15:29 2010 +0200 ARM: mx51: fix naming of spi related defines The names used now match the processor's reference manual. Also remove MXC from the interrupt defines to match the other imx platforms. Acked-by: Wolfram Sang Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit 5a2db4e3865868c3bf230435fb312524c0e10bd4 Author: Uwe Kleine-König Date: Tue Aug 3 16:03:26 2010 +0200 ARM: mx51: clean up mx51 header This makes the header more look like the other ones, i.e. - sort #defines by value - use lowercase hex constants - use a consistently named header guard Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit 6470310865dc8d7ed78f0df8f4c7f7e39c7bab99 Author: Uwe Kleine-König Date: Tue Sep 21 10:46:15 2010 +0200 ARM: mx51_defconfig: add new boards MACH_MX51_3DS and MACH_EUKREA_CPUIMX51 Further remove FIXED_PHY as it breaks the ethernet. VGA_CONSOLE isn't selectable anymore since fb78b51cb11e. EXT3_DEFAULTS_TO_ORDERED defaults to y since aa32a796389b. INOTIFY is gone since 2dfc1cae4c42. CONFIG_DETECT_SOFTLOCKUP is gone since e16bb1d7fe07. Enable TMPFS for udev. KEYS is selected by NFS_USE_KERNEL_DNS Signed-off-by: Uwe Kleine-König commit ea9a9b2ba239792be57d8601f57a4971958ebad5 Author: Uwe Kleine-König Date: Wed Aug 11 07:32:33 2010 +0200 ARM: remove mx31pdk_defconfig This machine is enabled in mx3_defconfig and so mx31pdk_defconfig isn't really useful. Signed-off-by: Uwe Kleine-König commit 801561cdda3027a0d1e0e15a3772e5dab5af7c65 Author: Uwe Kleine-König Date: Fri Aug 13 12:38:56 2010 +0200 ARM: mx3_defconfig: add new machine MACH_EUKREA_CPUIMX35 Furthermore INOTIFY is gone since 2dfc1ca (inotify: remove inotify in kernel interface) Signed-off-by: Uwe Kleine-König commit 0ac15c884eceaf5b0917d4d28d86ff1bb4845d37 Author: Uwe Kleine-König Date: Tue Sep 21 12:35:41 2010 +0200 ARM: mx27_defconfig: enable switches used in mx27 code - enable all mx27 machines (MACH_CPUIMX27, MACH_IMX27_VISSTRIM_M10, MACH_PCA100, MACH_MXT_TD60) including optional features for CPUIMX27 - eukrea_mbimx27-baseboard.c uses TOUCHSCREEN_ADS7846 - mach-cpuimx27.c uses SERIAL_8250 - several machines make use of SPI_IMX (selects SPI_BITBANG) - drop VGA_CONSOLE as this isn't selectable anymore since fb78b51cb11e - several machines make use of USB_ULPI (depends on USB, but don't enable USB_DEVICE_CLASS as it's deprecated) Signed-off-by: Uwe Kleine-König commit e16ddb3ad2b42d7c906748dc3bc3f393ddb94c67 Author: Uwe Kleine-König Date: Tue Aug 24 12:33:23 2010 +0200 ARM: mx5/mx51_babbage: don't use PHYS_OFFSET Signed-off-by: Uwe Kleine-König commit e7a895bf64e9360499d04b80fa33b0ad93546d44 Author: Sascha Hauer Date: Thu Aug 19 11:37:31 2010 +0200 ARM: mx5/mx51_babbage: fix compiler warnings Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit a060656240af125b22b1c011944377ff4216ac3e Author: Uwe Kleine-König Date: Fri Aug 13 17:34:05 2010 +0200 ARM: imx: ehci: use void __iomem * to hold i/o addresses This fixes: arch/arm/plat-mxc/ehci.c: In function 'mxc_initialize_usb_hw': arch/arm/plat-mxc/ehci.c:260: warning: assignment makes integer from pointer without a cast arch/arm/plat-mxc/ehci.c:263: warning: assignment makes integer from pointer without a cast arch/arm/plat-mxc/ehci.c:270: warning: assignment makes integer from pointer without a cast Signed-off-by: Uwe Kleine-König commit 556cbdbf23fb43433dba9657ad194a36be18f81b Author: Uwe Kleine-König Date: Sat Aug 14 14:00:16 2010 +0200 ARM: imx: remove #ifdefery for unmerged flexcan driver The flexcan driver was merged as e955cead. Cc: Sascha Hauer Acked-by: Marc Kleine-Budde Cc: Wolfgang Grandegger Signed-off-by: Uwe Kleine-König commit 3efee47db7a191443b529740b35240d63ae1ad20 Author: Fabio Estevam Date: Mon Aug 23 07:32:09 2010 -0700 ARM: mx5/mx51_babbage: Add FEC support Tested it by booting a rootfs via NFS. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit bd45140d98b60c8ddef8f053ad1645dc1572a15a Author: Sascha Hauer Date: Thu Aug 19 14:08:05 2010 +0200 ARM: mx3/imx35: Add EPIT support Signed-off-by: Sascha Hauer Signed-off-by: Michael Grzeschik Signed-off-by: Uwe Kleine-König commit f2b8901d3efe5e1603c8f6a102b2d5c851c108c6 Author: Sascha Hauer Date: Thu Aug 19 14:08:04 2010 +0200 ARM: imx: Add EPIT support The Enhanced Periodic Interrupt Timer (EPIT) is found on newer i.MX SoCs and can be used as an alternative system timer. Signed-off-by: Sascha Hauer Signed-off-by: Michael Grzeschik Signed-off-by: Uwe Kleine-König commit ab3d8b5859234d1d60b9592e9e9c5eaa9bb55678 Author: Marc Kleine-Budde Date: Wed Aug 18 18:26:42 2010 +0200 ARM: mx3/mx35_3ds: add usb host2 support we still have to toggle two pins on the mc9sdz60: /* MUX3_CTR to be low for USB Host2 DP&DM */ pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 6, 0); /* CAN_PWDN to be high for USB Host2 Power&OC */ pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 1, 1); until we've a proper driver for the mx9sdz60 in linux we'll do this in barebox (a.k.a. u-boot-v2) Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 79a11b0ba4a4e2f042b143e6ac0813d6fab90626 Author: Marc Kleine-Budde Date: Wed Aug 18 17:56:44 2010 +0200 ARM: mx3/mx35_3ds: rename usb otg platform data variable name Rename the variable holding the usb otg platform data to avoid clash with usb host platform data variable. usb_pdata -> usb_otg_pdata Signed-off-by: Marc Kleine-Budde Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 81aa17207b3c50f32be31a1be949e98c660da5f1 Author: Marc Kleine-Budde Date: Wed Aug 18 18:22:59 2010 +0200 ARM: mx3/mx35_3ds: add NAND flash The mx35_3ds comes with 2 GiByte NAND flash. This adds the corresponding platform device. Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit d17e1c1ac3a1e4befecb34c20dc8cb901aa72aba Author: Marc Kleine-Budde Date: Wed Aug 18 18:20:24 2010 +0200 ARM: mx3/mx35_3ds: add physmap-flash NOR at CS0 The mx35_3ds comes with 64 MiByte for NOR flash at CS0, add physmap-flash platform device for it. Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 3b161e51b254fa7bd3a9b0bd7ca7a2ac8ceaae8b Author: Javier Martin Date: Fri Jul 30 10:06:01 2010 +0200 ARM: imx: Add support for Vista Silicon Visstrim_m10 board Vista Silicon Visstrim_m10 i.MX27 based board is used as multimedia streaming server, access control and other custom applications. Signed-off-by: Javier Martin Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit e40051d134f7ee95c8c1f7a3471e84eafc9ab326 Merge: 42099d7 2cc6d2b Author: David S. Miller Date: Mon Sep 27 01:03:03 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/qlcnic/qlcnic_init.c net/ipv4/ip_output.c commit 42099d7a3941d4aaf853caac92b3ae76149fc6e7 Author: Otavio Salvador Date: Sun Sep 26 19:58:07 2010 -0700 net: r6040: store BIOS default MAC in perm_add Signed-off-by: Otavio Salvador Signed-off-by: David S. Miller commit a7855c78a24d6348e989bec616318e68c662e78b Author: Eric Dumazet Date: Thu Sep 23 23:51:51 2010 +0000 net: loopback driver cleanup loopback driver uses dev->ml_priv to store its percpu stats pointer. It uses ugly casts "(void __percpu __force *)" to shut up sparse complains. Define an union to better document we use ml_priv in loopback driver and define a lstats field with appropriate types. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 83180af0b0ea166adf8249f4513beb7355f9b4c9 Author: Eric Dumazet Date: Thu Sep 23 21:46:03 2010 +0000 net: fix rcu use in ip_route_output_slow __in_dev_get_rtnl(dev_out) is called while RTNL is not held, thus triggers a lockdep fault. At this point, we only perform a raw test of dev_out->ip_ptr being NULL, we dont need to make sure ip_ptr cant changed right after. We can use rcu_dereference_raw() for this. Reported-by: Andrew Morton Acked-by: Paul E. McKenney Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 1b4bf461f05d56ced6d6b8f3b4831adc7076f565 Author: Eric Dumazet Date: Thu Sep 23 17:26:35 2010 +0000 rps: allocate rx queues in register_netdevice only Instead of having two places were we allocate dev->_rx, introduce netif_alloc_rx_queues() helper and call it only from register_netdevice(), not from alloc_netdev_mq() Goal is to let drivers change dev->num_rx_queues after allocating netdev and before registering it. This also removes a lot of ifdefs in net/core/dev.c Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7a91b434e2bad554b709265db7603b1aa52dd92e Author: Eric Dumazet Date: Sun Sep 26 18:53:07 2010 -0700 net: update SOCK_MIN_RCVBUF SOCK_MIN_RCVBUF current value is 256 bytes It doesnt permit to receive the smallest possible frame, considering socket sk_rmem_alloc/sk_rcvbuf account skb truesizes. On 64bit arches, sizeof(struct sk_buff) is 240 bytes. Add the typical 64 bytes of headroom, and we go over the limit. With old kernels and 32bit arches, we were under the limit, if netdriver was doing copybreak. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 807540baae406c84dcb9c1c8ef07a56d2d2ae84a Author: Eric Dumazet Date: Thu Sep 23 05:40:09 2010 +0000 drivers/net: return operator cleanup Change "return (EXPR);" to "return EXPR;" return is not a function, parentheses are not required. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit cb4dfe562cac6fcb544df752e40c1d78000d0712 Author: Eric Dumazet Date: Thu Sep 23 05:06:54 2010 +0000 net: skb_frag_t can be smaller on small arches On 32bit arches, if PAGE_SIZE is smaller than 65536, we can use 16bit offset and size fields. This patch saves 72 bytes per skb on i386, or 128 bytes after rounding. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit c5256c51232d8312755e8de2b514c426b19b101a Author: Eric Dumazet Date: Thu Sep 23 00:46:11 2010 +0000 net: propagate NETIF_F_HIGHDMA to vlans Automatically allows vlans to get NETIF_F_HIGHDMA if underlying device supports it. On 32bit arches (and more precisely if CONFIG_HIGHMEM is enabled), it can help to reduce cost of illegal_highdma() and __skb_linearize() calls. Tested on tg3 , bnx2, bonding, this worked very well. This is a generalization of a patch provided by Yi Zou & Jeff Kirsher. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 0890b5880df6a4989336add11f3a22122b26d9e1 Author: Arnd Bergmann Date: Sat Sep 11 18:18:22 2010 +0200 cris: autoconvert trivial BKL users All uses of the big kernel lock in the cris architecture are for ioctl and open functions of character device drivers, which can be trivially converted to a per-driver mutex. Most of these are probably unnecessary, so it may make sense to audit them and eventually remove the extra mutex introduced by this patch. Signed-off-by: Arnd Bergmann Cc: Mikael Starvik Cc: Jesper Nilsson Cc: linux-cris-kernel@axis.com commit 80eb4a6f89bbf8e8318e108701bad11451efb2df Author: Arnd Bergmann Date: Sat Sep 11 18:10:10 2010 +0200 alpha: kill big kernel lock All uses of the BKL on alpha are totally bogus, nothing is really protected by this. Remove the remaining users so we don't have to mark alpha as 'depends on BKL'. Signed-off-by: Arnd Bergmann Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Cc: linux-alpha@vger.kernel.org commit 6117d2130c9da5977e975ad9fa607b86d6516a44 Author: Arnd Bergmann Date: Sat Jun 5 13:28:09 2010 +0200 isapnp: BKL removal Remove BKL use from isapnp_proc_bus_lseek(), like was done for proc_bus_pci_lseek() a long time ago and recently for Zorro by Geert Uytterhoeven. Signed-off-by: Arnd Bergmann Cc: Geert Uytterhoeven Cc: Jaroslav Kysela commit cfdb00a77ea7d5fb922fd985e5dfbcb36873411b Author: Arnd Bergmann Date: Mon May 31 22:38:40 2010 +0200 s390/block: kill the big kernel lock The dasd and dcssblk drivers gained the big kernel lock in the recent pushdown from the block layer, but they don't really need it, so remove the calls without a replacement. Signed-off-by: Arnd Bergmann Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux-s390@vger.kernel.org commit 504c6d1b44bc6e694bdba8d9a2a4e046275b5e2b Author: Vivek Goyal Date: Sun Sep 26 12:23:25 2010 +0900 amiga floppy: Compile failure fixes o Compile fixes for amiga floppy driver. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit e4ecda1b60bfd2333c12bbe71b153d3b6bdc831a Author: Mark Lord Date: Sat Sep 25 11:17:22 2010 +0200 Fix compile error in blk-exec.c for !CONFIG_DETECT_HUNG_TASK Ensure that 'sysctl_hung_task_timeout_secs' is defined even when CONFIG_DETECT_HUNG_TASK is not set. This way we can safely reference it without need for ifdefs in the code elsewhere. eg. in block/blk-exec.c Signed-off-by: Mark Lord Signed-off-by: Jens Axboe commit bba50b99b2410e863b38afdcd0280eb37f8a8bcc Author: Greg Rose Date: Thu Sep 23 12:46:25 2010 +0000 ixgbevf: Refactor ring parameter re-size The function to resize the Tx/Rx rings had the potential to dereference a NULL pointer and the code would attempt to resize the Tx ring even if the Rx ring allocation had failed. This would cause some confusion in the return code semantics. Fixed up to just unwind the allocations if any of them fail and return an error. Signed-off-by: Greg Rose Tested-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 543876c92837a8b208b5c99ec225c1f5a581900e Author: Giuseppe Cavallaro Date: Fri Sep 24 21:27:41 2010 -0700 stmmac: review the wake-up support If the PM support is available this is passed through the platform instead to be hard-coded in the core files. WoL on Magic Frame can be enabled by using the ethtool support. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit 77555ee7228234257957fd54daa0b69178906320 Author: Masayuki Ohtake Date: Tue Sep 21 01:44:11 2010 +0000 net: Add Gigabit Ethernet driver of Topcliff PCH Signed-off-by: Masayuki Ohtake Signed-off-by: David S. Miller commit 3b4b682becdfa9f42321aa024d5cc84f71f06d8c Author: Ma Ling Date: Fri Sep 17 03:12:40 2010 +0800 x86, mem: Optimize memmove for small size and unaligned cases movs instruction will combine data to accelerate moving data, however we need to concern two cases about it. 1. movs instruction need long lantency to startup, so here we use general mov instruction to copy data. 2. movs instruction is not good for unaligned case, even if src offset is 0x10, dest offset is 0x0, we avoid and handle the case by general mov instruction. Signed-off-by: Ma Ling LKML-Reference: <1284664360-6138-1-git-send-email-ling.ma@intel.com> Signed-off-by: H. Peter Anvin commit 59104f062435c7816e39ee5ed504a69cb8037f10 Author: Eric Dumazet Date: Mon Sep 20 20:16:27 2010 +0000 ip: take care of last fragment in ip_append_data While investigating a bit, I found ip_fragment() slow path was taken because ip_append_data() provides following layout for a send(MTU + N*(MTU - 20)) syscall : - one skb with 1500 (mtu) bytes - N fragments of 1480 (mtu-20) bytes (before adding IP header) last fragment gets 17 bytes of trail data because of following bit: if (datalen == length + fraggap) alloclen += rt->dst.trailer_len; Then esp4 adds 16 bytes of data (while trailer_len is 17... hmm... another bug ?) In ip_fragment(), we notice last fragment is too big (1496 + 20) > mtu, so we take slow path, building another skb chain. In order to avoid taking slow path, we should correct ip_append_data() to make sure last fragment has real trail space, under mtu... Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9cf13668a5f8165a81349defc5f82c57a4a8279b Author: Rajkumar Manoharan Date: Tue Sep 21 12:58:09 2010 +0530 ath9k_htc: Fix beacon distribution in IBSS mode This patch ensures fair beacon distribution in IBSS mode by configuring proper CWmin based on slot time. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 9094537c3a9ef9e127e844254a74186735c9a90b Author: Vasanthakumar Thiagarajan Date: Mon Sep 20 22:54:46 2010 -0700 ath9k: Fix tx struck state with paprd Paprd needs to be done only on active chains(not for all the chains that hw can support). The paprd training frames which are sent for inactive chains would be hanging on the hw queue without getting transmitted and would make the connection so unstable. This issue happens only with the hw which supports paprd cal(ar9003). Signed-off-by: Vasanthakumar Thiagarajan Cc: stable@kernel.org Signed-off-by: John W. Linville commit eb7d3066cf864342e8ae6a5c1126a1602c4d06c0 Author: Christian Lamparter Date: Tue Sep 21 21:36:18 2010 +0200 mac80211: clear txflags for ps-filtered frames This patch fixes stale mac80211_tx_control_flags for filtered / retried frames. Because ieee80211_handle_filtered_frame feeds skbs back into the tx path, they have to be stripped of some tx flags so they won't confuse the stack, driver or device. Cc: Acked-by: Johannes Berg Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit ed627be38a1a07c6986a9f17c299f6afc86ac6b7 Author: Dan Carpenter Date: Sun Sep 12 01:48:33 2010 +0200 airo: remove "basic_rate" module option The "basic_rate" module option is not implemented correctly. If the rate was set to zero it was supposed to set it to "basic_rate | 0x80". Unfortunately the check to see if what zero was wrong and it checked "!ai->config.rates" (which is always false) instead of "!ai->config.rates[i]". This option was just used for development and it wasn't documented anywhere. Instead of fixing it, we can just remove it. Reported-by: Stanislaw Gruszka Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit 651b52254fc061f02d965524e71de4333a009a5a Author: Jouni Malinen Date: Sat Aug 28 19:37:51 2010 +0300 mac80211: Add DS Parameter Set into Probe Request on 2.4 GHz IEEE Std 802.11k-2008 added DS Parameter Set information element into Probe Request frames as an optional information on 2.4 GHz band (and mandatory, if radio measurements are enabled). This allows APs to filter out Probe Request frames that may be received from neighboring overlapping channels and by doing so, reduce the number of unnecessary frames in the air. Make mac80211 add this IE into Probe Request frames whenever the channel is known (i.e., whenever hwscan is not used). Signed-off-by: Jouni Malinen Acked-by: Johannes Berg Signed-off-by: John W. Linville commit 8dcb20038ade81f9a87c024e7f12ec74f0e95f33 Author: Jouni Malinen Date: Sat Aug 28 19:36:10 2010 +0300 mac80211: Filter ProbeReq SuppRates based on TX rate mask If the TX rate set has been masked, the removed rates can also be removed from the Supported Rates and Extended Supported Rates IEs in Probe Request frames. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 29ad2facd47f8e37eab8b156e2c384fa181c8b4a Merge: 6e5c2b4 cd87a2d Author: John W. Linville Date: Fri Sep 24 15:52:34 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 Conflicts: drivers/net/wireless/ath/ath5k/base.c net/mac80211/main.c commit 639e2f2aa76eefaf22078dccbbf2f3483f587aa7 Author: Vivek Goyal Date: Fri Sep 24 20:35:45 2010 +0200 atari floppy: Stop sharing request queue across multiple gendisks o Use one request queue per gendisk instead of sharing the queue. o Don't have hardware. No compile testing or run time testing done. Completely untested. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 786029ff810ff4a2fd52c0462713985a415417ab Author: Vivek Goyal Date: Fri Sep 24 20:35:44 2010 +0200 amiga floppy: Stop sharing request queue across multiple gendisks o Use one request queue per gendisk instead of sharing request queue o Don't have hardware. No compile testing or run time testing done. Completely untested. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit c49825facfd4969585224a896a5e717f88450cad Author: Malahal Naineni Date: Fri Sep 24 20:25:49 2010 +0200 block: set the bounce_pfn to the actual DMA limit rather than to max memory The bounce_pfn of the request queue in 64 bit systems is set to the current max_low_pfn. Adding more memory later makes this incorrect. Memory allocated beyond this boot time max_low_pfn appear to require bounce buffers (bounce buffers are actually not allocated but used in calculating segments that may result in "over max segments limit" errors). Signed-off-by: Malahal Naineni Signed-off-by: Jens Axboe commit 4b1977698ceb4c4caa800d475127139da49966f9 Author: Mark Lord Date: Fri Sep 24 09:51:13 2010 -0400 block: Prevent hang_check firing during long I/O During long I/O operations, the hang_check timer may fire, trigger stack dumps that unnecessarily alarm the user. Eg. hdparm --security-erase NULL /dev/sdb ## can take *hours* to complete So, if hang_check is armed, we should wake up periodically to prevent it from triggering. This patch uses a wake-up interval equal to half the hang_check timer period, which keeps overhead low enough. Signed-off-by: Mark Lord Signed-off-by: Jens Axboe commit c80dbb58f9c3f84372e37dfe80b41810052ad62f Author: Steven Whitehouse Date: Fri Sep 24 09:55:07 2010 +0100 GFS2: Remove upgrade mount option This option has never done anything useful. Also at the same time this cleans up the sb checks which are done at mount time. The debug option will be accepted, but ignored in future. Since it didn't do anything, there didn't seem much point in retaining it. Signed-off-by: Steven Whitehouse commit d6dad199a10423ce37b8bfec1f055c380dc4a3d5 Author: Ingo Molnar Date: Fri Sep 24 09:12:25 2010 +0200 jump label: Fix GCC feature check when distcc is used The following build bug occurs on distcc builds: CC arch/x86/kernel/asm-offsets.s In file included from include/linux/module.h:24, from include/linux/crypto.h:22, from arch/x86/kernel/asm-offsets_64.c:9, from arch/x86/kernel/asm-offsets.c:5: include/trace/events/module.h: In function 'trace_module_load': include/trace/events/module.h:18: error: expected '(' before 'goto' include/trace/events/module.h:18: error: expected identifier or '*' before '(' token It triggers because distcc is invoked by turning $CC into "distcc gcc", but gcc-goto.sh check script was using $1 not $@ to expand parameters. Cc: Jason Baron Cc: Steven Rostedt LKML-Reference: <20100923034910.867858597@goodmis.org> Signed-off-by: Ingo Molnar commit a5a2bad55de89a0adf7d6f783cb87ab7eb1a894f Merge: d0303d7 46eb3b6 Author: Ingo Molnar Date: Fri Sep 24 09:12:05 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit df0a59a14c693647da4097ba3578c524c452fd0d Author: Joe Perches Date: Mon Jul 12 13:49:54 2010 -0700 [IA64] Remove unnecessary casts of private_data in perfmon.c Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit a02cec2155fbea457eca8881870fd2de1a4c4c76 Author: Eric Dumazet Date: Wed Sep 22 20:43:57 2010 +0000 net: return operator cleanup Change "return (EXPR);" to "return EXPR;" return is not a function, parentheses are not required. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6a08d194ee40806e0ccd5f36ed768e64cbfc979f Author: Jesse Brandeburg Date: Wed Sep 22 18:23:05 2010 +0000 e1000: use GRO for receive E1000 can benefit from calling the GRO receive functions. Signed-off-by: Jesse Brandeburg Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 338c15e470d818f215d651505dc169d4e92f36a4 Author: Jesse Brandeburg Date: Wed Sep 22 18:22:42 2010 +0000 e1000: fix occasional panic on unload Net drivers in general have an issue where timers fired by mod_timer or work threads with schedule_work are running outside of the rtnl_lock. With no other lock protection these routines are vulnerable to races with driver unload or reset paths. The longer term solution to this might be a redesign with safer locks being taken in the driver to guarantee no reentrance, but for now a safe and effective fix is to take the rtnl_lock in these routines. Signed-off-by: Jesse Brandeburg Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 5cf42fcda0fdddfe7f5ea8629cb7b820bf7e91ab Author: Jesse Brandeburg Date: Wed Sep 22 18:22:17 2010 +0000 e1000: use work queues E1000 is using several timers that in a follow on patch will need to acquire the rtnl_lock in order to be safe. This patch moves the timer bodies into work queues which will allow the next patch to add rtnl_lock. Signed-off-by: Jesse Brandeburg Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit ddad53ee8a85649e78f6a3eb8a4af4a7a7c577cb Author: Julia Lawall Date: Fri Aug 27 23:01:30 2010 +0200 [IA64] Fix missing iounmap in error path in cyclone.c By moving the iounmap up above the test, it takes place whether the test succeeds or fails. Signed-off-by: Julia Lawall Signed-off-by: Tony Luck commit 383f9f1741cd03687303f82543bbae11935a2ad6 Author: Thomas Gleixner Date: Tue Sep 7 14:33:34 2010 +0000 [IA64] salinfo: sema_init instead of init_MUTEX Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Signed-off-by: Tony Luck commit 3e6b1b25a92df39d2b619ed3cf74322ddef6800e Author: Nikitas Angelinas Date: Wed Sep 8 22:04:30 2010 +0100 [IA64] xen: use ARRAY_SIZE macro in xen_pv_ops.c Replace sizeof(xen_branch_target) / sizeof(xen_branch_target[0]) with ARRAY_SIZE(xen_branch_target) in arch/ia64/xen/xen_pv_ops.c Signed-off-by: Nikitas Angelinas Signed-off-by: Tony Luck commit c216488cd1f35c54afbcedf185d5908beb814aef Author: Joe Perches Date: Mon Sep 13 21:23:48 2010 -0700 [IA64] Use static const char * const in palinfo.c Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit 48a4b30124d079c765e6eaea3a7359195d7f0c37 Author: Tony Luck Date: Thu Sep 23 14:02:09 2010 -0700 [IA64] remove asm/compat.h Missed this file in commit 32974ad4907cdde6c9de612cd1b2ee0568fb9409 [IA64] Remove COMPAT_IA32 support It is no longer needed, so remove it. Signed-off-by: Tony Luck commit 85718fae2a8d845e66762e6464152a255e323777 Author: Tony Luck Date: Thu Sep 23 13:52:07 2010 -0700 [IA64] Add CONFIG_STACKTRACE_SUPPORT Several Linux features are dependent on stack trace support. Add it so they can be enabled. Signed-off-by: Tony Luck commit 3e3c486012a3dbb113c0ca15ee265d309d77aea9 Author: Daniel Drake Date: Thu Sep 23 17:28:46 2010 +0100 x86, olpc: Rework BIOS signature check The XO-1.5 laptop is not currently detected as an OLPC machine because it fails this XO-1-centric check. Now that we have OLPC OFW support in the kernel, a more sensible check is to see if we found OFW during boot and check the architecture property. Also remove a now-meaningless codepath, as we're always going to have OFW support with OLPC. Signed-off-by: Daniel Drake LKML-Reference: <20100923162846.D8D409D401B@zog.reactivated.net> Cc: Andres Salomon Cc: Grant Likely Signed-off-by: H. Peter Anvin commit 76fb657017588a0912f0d1d140cb807446e4ef05 Author: Daniel Drake Date: Thu Sep 23 17:28:04 2010 +0100 x86, olpc: Only enable PCI configuration type override on XO-1 This configuration type override is for XO-1 only and must not happen on XO-1.5. Signed-off-by: Daniel Drake LKML-Reference: <20100923162805.0F6549D401B@zog.reactivated.net> Cc: Andres Solomon Cc: Grant Likely Signed-off-by: H. Peter Anvin commit 6554287b1de0448f1e02e200d02b43914e997d15 Author: Bart Oldeman Date: Thu Sep 23 13:16:58 2010 -0400 x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers. Impact: fix kernel bug such as: BUG: scheduling while atomic: dosemu.bin/19680/0x00000004 See also Ubuntu bug 455067 at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/455067 Commits 4915a35e35a037254550a2ba9f367a812bc37d40 ("Use preempt_conditional_sti/cli in do_int3, like on x86_64.") and 3d2a71a596bd9c761c8487a2178e95f8a61da083 ("x86, traps: converge do_debug handlers") started disabling preemption in int1 and int3 handlers on i386. The problem with vm86 is that the call to handle_vm86_trap() may jump straight to entry_32.S and never returns so preempt is never enabled again, and there is an imbalance in the preempt count. Commit be716615fe596ee117292dc615e95f707fb67fd1 ("x86, vm86: fix preemption bug"), which was later (accidentally?) reverted by commit 08d68323d1f0c34452e614263b212ca556dae47f ("hw-breakpoints: modifying generic debug exception to use thread-specific debug registers") fixed the problem for debug exceptions but not for breakpoints. There are three solutions to this problem. 1. Reenable preemption before calling handle_vm86_trap(). This was the approach that was later reverted. 2. Do not disable preemption for i386 in breakpoint and debug handlers. This was the situation before October 2008. As far as I understand preemption only needs to be disabled on x86_64 because a seperate stack is used, but it's nice to have things work the same way on i386 and x86_64. 3. Let handle_vm86_trap() return instead of jumping to assembly code. By setting a flag in _TIF_WORK_MASK, either TIF_IRET or TIF_NOTIFY_RESUME, the code in entry_32.S is instructed to return to 32 bit mode from V86 mode. The logic in entry_32.S was already present to handle signals. (I chose TIF_IRET because it's slightly more efficient in do_notify_resume() in signal.c, but in fact TIF_IRET can probably be replaced by TIF_NOTIFY_RESUME everywhere.) I'm submitting approach 3, because I believe it is the most elegant and prevents future confusion. Still, an obvious preempt_conditional_cli(regs); is necessary in traps.c to correct the bug. [ hpa: This is technically a regression, but because: 1. the regression is so old, 2. the patch seems relatively high risk, justifying more testing, and 3. we're late in the 2.6.36-rc cycle, I'm queuing it up for the 2.6.37 merge window. It might, however, justify as a -stable backport at a latter time, hence Cc: stable. ] Signed-off-by: Bart Oldeman LKML-Reference: Cc: Frederic Weisbecker Cc: K.Prasad Cc: Alan Stern Cc: Alexander van Heukelum Cc: Signed-off-by: H. Peter Anvin commit d1ea13c6e2cce0106531852daaa93dd97aec9580 Author: Thomas Gleixner Date: Thu Sep 23 18:40:07 2010 +0200 genirq: Cleanup irq_chip->typename leftovers 3 years transition phase is enough. Cleanup the last users and remove the cruft. Signed-off-by: Thomas Gleixner Cc: Leo Chen Cc: Hirokazu Takata Cc: Chris Metcalf Cc: Jeff Dike Cc: Chris Zankel commit 2dfbf4dfbe47a484bae20456c12b40763b9b6af7 Author: Paul E. McKenney Date: Wed Sep 15 23:30:48 2010 -0700 rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter The PROVE_RCU_REPEATEDLY has no "Say Y"/"Say N" advice, so this commit adds it. Reported-by: Johannes Berg Signed-off-by: Paul E. McKenney commit 269dcc1c2ec25864308ee03a3fa26ea819d9f5d0 Author: Paul E. McKenney Date: Tue Sep 7 14:23:09 2010 -0700 rcu: Add tracing data to support queueing models The current tracing data is not sufficient to deduce the average time that a callback spends waiting for a grace period to end. Add three per-CPU counters recording the number of callbacks invoked (ci), the number of callbacks orphaned (co), and the number of callbacks adopted (ca). Given the existing callback queue length (ql), the average wait time in absence of CPU hotplug operations is ql/ci. The units of wait time will be in terms of the duration over which ci was measured. In the presence of CPU hotplug operations, there is room for argument, but ql/(ci-co+ca) won't steer you too far wrong. Also fixes a typo called out by Lucas De Marchi . Signed-off-by: Paul E. McKenney commit 0ddea0ead2ced99eaaaddff2beb755381e5c89f8 Author: Paul E. McKenney Date: Sun Sep 19 21:06:14 2010 -0700 rcu: fix sparse errors in rcutorture.c Add the sparse __rcu address-space identifier and make a couple of variables static. Signed-off-by: Paul E. McKenney commit 53ecfba259f54b6967a35d19f4a564e3bc07997f Author: Paul E. McKenney Date: Mon Sep 13 17:24:21 2010 -0700 rcu: only one evaluation of arg in rcu_dereference_check() unless sparse The current version of the __rcu_access_pointer(), __rcu_dereference_check(), and __rcu_dereference_protected() macros evaluate their "p" argument three times, not counting typeof()s. This is bad news if that argument contains a side effect. This commit therefore evaluates this argument only once in normal kernel builds. However, the straightforward approach defeats sparse's RCU-pointer checking, so when __CHECKER__ is defined, the additional pair of evaluations of the "p" argument are performed in order to permit sparse to detect misuse of RCU-protected pointers. Signed-off-by: Paul E. McKenney Cc: Arnd Bergmann commit 829f8ed2c963df7c23d1c644db6c4387eb1601fa Author: Christian Dietrich Date: Mon Sep 6 16:37:12 2010 +0200 kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC The CONFIG_DEBUG_LOCK_ALLOC ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Signed-off-by: Christian Dietrich Signed-off-by: Paul E. McKenney commit 18a06301158b5e4e9fae29e477f468e23f3eda90 Author: Linus Walleij Date: Sun Sep 12 12:56:44 2010 +0100 ARM: 6370/1: mmci: use _cansleep GPIO functions Currently the kernel is screaming about slowpath at me for the wp/cd callbacks. Switch to the _cansleep variants so as to silence this. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 4b8caec09562ce7e6e3aaf2954eef8ea73ba67b8 Author: Rabin Vincent Date: Mon Aug 9 12:56:40 2010 +0100 ARM: 6309/1: mmci: allow neither ->status nor gpio_cd to be specified The card may be always present on the board, and for these cases neither a status callback nor a card detect GPIO is required, and card detection polling can be disabled. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 148b8b39c156424da22693d26adcb69800faf95e Author: Rabin Vincent Date: Mon Aug 9 12:55:48 2010 +0100 ARM: 6308/1: mmci: support card detection interrupts If an IRQ can be requested on the card detected GPIO, use it instead of polling. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit c2048b003cfb840ad81bdc6eb55beb12a19a222e Author: Steven Whitehouse Date: Thu Sep 23 14:00:31 2010 +0100 GFS2: Remove localcaching mount option This option defaulted to on for lock_nolock mounts and off otherwise. The only function was to avoid the revalidation of dentries. In the cluster case, that is entirely pointless and liable to cause coherency problems. The patch changes the revalidation to depend upon whether the fs is a local or cluster fs (i.e. it follows the existing default behaviour). I very much doubt anybody ever used this option as there is no reason to. Even so we will continue to accept it on the mount command line, but ignore it. Signed-off-by: Steven Whitehouse commit f57a024ed2ee00d62515ffd4040f5ded3e0eb853 Author: Steven Whitehouse Date: Thu Sep 23 13:41:42 2010 +0100 GFS2: Remove ignore_local_fs mount argument This is been a no-op for a very long time now. I'm pretty sure nobody uses it, but just in case we'll still accept it on the command line, but ignore it. Signed-off-by: Steven Whitehouse commit 9f5f9ffe50e90ed73040d2100db8bfc341cee352 Author: Paul Mackerras Date: Thu Sep 9 19:02:40 2010 +0000 powerpc/perf: Fix sampling enable for PPC970 The logic to distinguish marked instruction events from ordinary events on PPC970 and derivatives was flawed. The result is that instruction sampling didn't get enabled in the PMU for some marked instruction events, so they would never trigger. This fixes it by adding the appropriate break statements in the switch statement. Reported-by: David Binderman Cc: stable@kernel.org Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 1ef21199a5d98702755cfa0df39b8b5112c423d6 Author: Stephen Rothwell Date: Fri Sep 3 13:19:04 2010 +1000 powerpc: define a compat_sys_recv cond_syscall Signed-off-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit d0303d71c2fb9bcb90a8d48e6462c78c86f70ce6 Merge: 90edf27 c79bd89 Author: Ingo Molnar Date: Thu Sep 23 08:02:09 2010 +0200 Merge branch 'linus' into perf/core Conflicts: arch/sparc/kernel/perf_event.c Merge reason: Resolve the conflict. Signed-off-by: Ingo Molnar commit 7b872a55c40b7e6f5e257c252f96dde911bd7b2f Author: Yi Zou Date: Wed Sep 22 17:57:58 2010 +0000 e1000/e1000e/igb/ixgb/ixgbe: set NETIF_F_HIGHDMA for VLAN feature flags If the netdev->features is set with NETIF_F_HIGHDMA, we should set the corresponding netdev->vlan_features as well to allow VLAN netdev created on top of the real netdev to be able to also benefit from HIGHDMA on 32bit system, reducing the performance hit that is caused by __skb_linearize(), particularly for large send. This is fixed in this patch for all Intel e1000, e1000e, igb, ixgbe, and ixgbe drivers since this should be beneficial to all devices supported by these drivers. Signed-off-by: Yi Zou Tested-by: Emil Tantilov Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 308fb39a860c816be8741fe783ae7c64e9c1af5d Author: Joseph Gasparakis Date: Wed Sep 22 17:56:44 2010 +0000 igb: Add support for DH89xxCC This patch adds support for the Intel(r) DH89xxCC series. The new device will be using Intel(r) i347-AT4 and Marvell(r) M88E1322 and M88E1112 PHYs. Support for these devices has also been added here. Signed-off-by: Joseph Gasparakis Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit d85b9004bc2047d79248b167cc151ff9a4b509c3 Author: Alexander Duyck Date: Wed Sep 22 17:56:20 2010 +0000 igb: clear VF_PROMISC bits instead of setting all other bits This change corrects an issue in which we were setting all flag bits except for promisc instead of clearing the promisc bits due to the incorrect use of an |= instead of an &=. Signed-off-by: Alexander Duyck Tested-by: Jeff Pieper Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 46eb3b64dddd20f44e76b08676fa642dd374bf1d Author: Steven Rostedt Date: Wed Sep 22 23:10:23 2010 -0400 jump label/x86/sparc64: Remove !CC_OPTIMIZE_FOR_SIZE config conditions The !CC_OPTIMIZE_FOR_SIZE was added to enable the jump label functionality because Jason noticed that the gcc option would not optimize the labels and may even hurt performance. But this is a gcc problem not a kernel one. Removing this condition should add motivation to the gcc developers to actually fix it. Cc: Jason Baron Acked-by: David S. Miller Signed-off-by: Steven Rostedt commit 234bb549eea16ec7d5207ba747fb8dbf489e64c1 Author: Jan Beulich Date: Thu Sep 2 13:46:34 2010 +0100 x86, cleanups: Use clear_page/copy_page rather than memset/memcpy When operating on whole pages, use clear_page() and copy_page() in favor of memset() and memcpy(); after all that's what they are intended for. Signed-off-by: Jan Beulich LKML-Reference: <4C7FB8CA0200007800013F51@vpn.id2.novell.com> Cc: Andrew Morton Signed-off-by: H. Peter Anvin commit 95fccd465eefb3d6bf80dae0496607b534d38313 Author: Steven Rostedt Date: Wed Sep 22 17:37:43 2010 -0400 jump label: Remove duplicate structure for x86 The structure in the x86 jump label code uses the typedef jump_label_t, which is defined by the #ifdef arch type. The structure does not need to be duplicated there. Signed-off-by: Steven Rostedt commit 768190fdc058cc7405330f7782782df084c25d61 Author: andrew hendry Date: Tue Sep 21 15:24:45 2010 +0000 X.25 remove bkl in poll The x25_datagram_poll didn't add anything, removed it. Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit 40e192c3ff7b1af680b0b03e94cadf1dad5fb82e Author: andrew hendry Date: Tue Sep 21 15:24:25 2010 +0000 X.25 remove bkl in getsockname Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit dff9d3c215251022dd8bb3823c9f75edb4b63fe9 Author: David S. Miller Date: Fri Sep 17 11:09:25 2010 -0400 jump label: Add sparc64 support Add jump label support for sparc64. Signed-off-by: David S. Miller LKML-Reference: <3b5b071fcdb2afb7f67cacecfa78b14c740278a7.1284733808.git.jbaron@redhat.com> Signed-off-by: Jason Baron [ cleaned up some formatting ] Signed-off-by: Steven Rostedt commit d9f5ab7b1c0a520867af389bab5d5fcdbd0e407e Author: Jason Baron Date: Fri Sep 17 11:09:22 2010 -0400 jump label: x86 support add x86 support for jump label. I'm keeping this patch separate so its clear to arch maintainers what was required for x86 support this new feature. Hopefully, it wouldn't be too painful for other archs. Signed-off-by: Jason Baron LKML-Reference: [ cleaned up some formatting ] Signed-off-by: Steven Rostedt commit 52159d98be6f26c48f5e02c7ab3c9848a85979b5 Author: Jason Baron Date: Fri Sep 17 11:09:17 2010 -0400 jump label: Convert dynamic debug to use jump labels Convert the 'dynamic debug' infrastructure to use jump labels. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit 8f7b50c514206211cc282a4247f7b12f18dee674 Author: Jason Baron Date: Fri Sep 17 11:09:13 2010 -0400 jump label: Tracepoint support for jump labels Make use of the jump label infrastructure for tracepoints. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit 4c3ef6d79328c0e23ade60cbfc8d496123a6855c Author: Jason Baron Date: Fri Sep 17 11:09:08 2010 -0400 jump label: Add jump_label_text_reserved() to reserve jump points Add a jump_label_text_reserved(void *start, void *end), so that other pieces of code that want to modify kernel text, can first verify that jump label has not reserved the instruction. Acked-by: Masami Hiramatsu Signed-off-by: Jason Baron LKML-Reference: <06236663a3a7b1c1f13576bb9eccb6d9c17b7bfe.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit e0cf0cd49632552f063fb3ae58691946da45fb2e Author: Jason Baron Date: Fri Sep 17 11:09:04 2010 -0400 jump label: Initialize workqueue tracepoints *before* they are registered Initialize the workqueue data structures *before* they are registered so that they are ready for callbacks. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit bf5438fca2950b03c21ad868090cc1a8fcd49536 Author: Jason Baron Date: Fri Sep 17 11:09:00 2010 -0400 jump label: Base patch for jump label base patch to implement 'jump labeling'. Based on a new 'asm goto' inline assembly gcc mechanism, we can now branch to labels from an 'asm goto' statment. This allows us to create a 'no-op' fastpath, which can subsequently be patched with a jump to the slowpath code. This is useful for code which might be rarely used, but which we'd like to be able to call, if needed. Tracepoints are the current usecase that these are being implemented for. Acked-by: David S. Miller Signed-off-by: Jason Baron LKML-Reference: [ cleaned up some formating ] Signed-off-by: Steven Rostedt commit 7e51b439f147670c4ddd2bf6ca4567592b5312de Author: Ben Hutchings Date: Wed Sep 22 10:00:47 2010 +0000 sfc: Add support for SFE4003 board and TXC43128 PHY This board never went into production, but some engineering samples are in use. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 8fbca791309b5a57bec53e5fd7da912c16416ed3 Author: Ben Hutchings Date: Wed Sep 22 10:00:11 2010 +0000 sfc: Remove support for SFN4111T, SFT9001 and Falcon GMAC SFN4111T never reached production and is not being used for internal or customer testing. Since we have no production Falcon boards using the SFT9001 or the GMAC, remove support for them as well. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 90edf27fb89241917e91155bfdcc7c8e5a587222 Merge: 41945f6 8b15575 Author: Ingo Molnar Date: Wed Sep 22 18:45:01 2010 +0200 Merge branch 'linus' into perf/core Conflicts: kernel/hw_breakpoint.c Merge reason: resolve the conflict. Signed-off-by: Ingo Molnar commit 676cb02dc32adef13d9efb5ea52079e4ede1e3ec Author: Thomas Gleixner Date: Mon Jul 20 23:33:49 2009 +0200 softirqs: Make wakeup_softirqd static No users outside of kernel/softirq.c Signed-off-by: Thomas Gleixner commit 488211844e0c3fad6ffa98a6f3c4f2139074e79a Author: Jens Axboe Date: Wed Sep 22 09:32:36 2010 +0200 floppy: switch to one queue per drive instead of sharing a queue Pretty straight forward conversion. Note that we do round-robin between the drives that have available requests, before we simply used the drive that the IO scheduler told us to. Since the IO scheduler doesn't care about multiple devices per queue, the resulting sort would not have made sense. Fixed by Vivek to get rid of a double lock problem in set_next_request() Signed-off-by: Jens Axboe Signed-off-by: Vivek Goyal commit 8b008faf92ac8f7eeb65e8cd36077601af7c46db Author: Pablo Neira Ayuso Date: Wed Sep 22 08:36:59 2010 +0200 netfilter: ctnetlink: allow to specify the expectation flags With this patch, you can specify the expectation flags for user-space created expectations. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy commit bcac0dfab191cb53b3f9b43c8014a34070ed58ff Author: Pablo Neira Ayuso Date: Wed Sep 22 08:35:36 2010 +0200 netfilter: ctnetlink: missing validation of CTA_EXPECT_ZONE attribute This patch adds the missing validation of the CTA_EXPECT_ZONE attribute in the ctnetlink code. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy commit 5b92b61f3891517d18d0573ad2c939c81b59ecfe Author: Pablo Neira Ayuso Date: Wed Sep 22 08:34:12 2010 +0200 netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpers This patch improves the situation in which the expectation table is full for conntrack NAT helpers. Basically, we give up if we don't find a place in the table instead of looping over nf_ct_expect_related() with a different port (we should only do this if it returns -EBUSY, for -EMFILE or -ESHUTDOWN I think that it's better to skip this). Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy commit a0741ca949692904646c310573754859cba09bf1 Merge: 9e2e8f1 b618f6f Author: David S. Miller Date: Tue Sep 21 18:17:19 2010 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 9e2e8f14d48dbb6c31aeb739ae4fc8997b9dfe84 Author: Sjur Braendeland Date: Tue Sep 21 11:44:46 2010 +0000 caif: Use default send and receive buffer size in caif_socket. CAIF sockets should use socket's default send and receive buffers sizes. Signed-off-by: Sjur Braendeland Signed-off-by: David S. Miller commit e5e03ce1e5c6c015cabf274b24976dff408dc07f Author: Sjur Braendeland Date: Tue Sep 21 11:44:45 2010 +0000 caif: Fix function NULL pointer check. Check that receive function pointer is not null before calling it. Signed-off-by: Sjur Braendeland Signed-off-by: David S. Miller commit b04367df66eb63444d38c43d15f5e39499d85ae6 Author: Sjur Braendeland Date: Tue Sep 21 11:44:44 2010 +0000 caif: Minor fixes in log prints. Use pr_debug for flow control printouts, and refine an error printout. Signed-off-by: Sjur Braendeland Signed-off-by: David S. Miller commit 9c44c9fa78c5a449699491f0355189e2a09c242a Author: Sjur Braendeland Date: Tue Sep 21 10:40:06 2010 +0000 caif: Remove buggy re-definition of pr_debug Remove debugging quirk redefining pr_debug to pr_warning. Signed-off-by: Sjur BrĂŠndeland Signed-off-by: David S. Miller commit 48daa3bb84d547828871534caa51427a3fe90748 Author: Eric Dumazet Date: Tue Sep 21 06:57:39 2010 +0000 ipv6: addrconf.h cleanups - Use rcu_dereference_rtnl() in __in6_dev_get - kerneldoc for __in6_dev_get() and in6_dev_get() - Use inline functions instead of macros Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 756e64a0b106f1a2ca96889c39ea0d48131105c0 Author: Eric Dumazet Date: Tue Sep 21 06:43:54 2010 +0000 net: constify some ppp/pptp structs Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a9478e386165477504916094ae5efb073a44fd9f Author: Denis Kirjanov Date: Mon Sep 20 22:57:49 2010 +0000 sundance: Use dev_kfree_skb_any() helper Use dev_kfree_skb_any() helper to free the skb Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit d91dc27993a366565b3ed37fc62d35cf3e10ff5d Author: Denis Kirjanov Date: Mon Sep 20 22:56:57 2010 +0000 sundance: Handle DMA mapping errors Check for DMA mapping errors. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 0c8a745f06f7f007ec492dc0606f5b1ea62f3da9 Author: Denis Kirjanov Date: Mon Sep 20 22:56:07 2010 +0000 sundance: Convert to DMA API Convert to DMA API Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 82fd5b5d1ec370a50b3060418cde6a4ac8401117 Author: Andy Shevchenko Date: Mon Sep 20 20:40:26 2010 +0000 net: core: use kernel's converter from hex to bin Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 66bb16de6b9a05936d1eeb20155bab008b476191 Author: Andy Shevchenko Date: Mon Sep 20 20:40:24 2010 +0000 drivers: atm: use native kernel's hex_to_bin() func Signed-off-by: Andy Shevchenko Cc: Chas Williams Cc: linux-atm-general@lists.sourceforge.net Signed-off-by: David S. Miller commit d9fd1b2857154f1ac32ca041641ba947525ff7fa Author: Meelis Roos Date: Mon Sep 20 21:19:03 2010 +0000 tmspci: fix tr%d in printk tmspci driver uses dev->name before register_netdev() and so prints tr%d in initialization messages. Fix it by using dev_info. Found and tested on real hardware. Signed-off-by: Meelis Roos Signed-off-by: David S. Miller commit 73da16c28ed0724755afdb95c7dd6b166381be10 Author: David S. Miller Date: Tue Sep 21 16:12:11 2010 -0700 ethtool: Fix build due to lack of ethtool.h include. net/core/ethtool.c: In function 'ethtool_get_regs': net/core/ethtool.c:818:2: error: implicit declaration of function 'vmalloc' net/core/ethtool.c:818:9: warning: assignment makes pointer from integer without a cast net/core/ethtool.c:833:2: error: implicit declaration of function 'vfree' Signed-off-by: David S. Miller commit 10ed61c432c013705ef6a2bebad139fc5d72e274 Author: David S. Miller Date: Tue Sep 21 16:11:06 2010 -0700 sfc: Fix build due to lack of vmalloc.h include. drivers/net/sfc/filter.c: In function ‘efx_probe_filters’: drivers/net/sfc/filter.c:422: error: implicit declaration of function ‘vmalloc’ drivers/net/sfc/filter.c:422: warning: assignment makes pointer from integer without a cast drivers/net/sfc/filter.c: In function ‘efx_remove_filters’: drivers/net/sfc/filter.c:442: error: implicit declaration of function ‘vfree’ Signed-off-by: David S. Miller commit 98e684bd5c927cb94ff23fb6f1dd34dd346a19cf Merge: e254c27 536bb20 Author: David S. Miller Date: Tue Sep 21 16:00:40 2010 -0700 Merge branch 'dccp' of git://eden-feed.erg.abdn.ac.uk/net-next-2.6 commit e254c274ae19888e5693ba6d32576ab03a8ae8a4 Author: Ben Hutchings Date: Mon Sep 20 08:44:10 2010 +0000 sfc: Clean up and correct comments on efx_monitor() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 75abc51c29d1d1f6cde0abd003003ac61b9a9fba Author: Ben Hutchings Date: Mon Sep 20 08:43:53 2010 +0000 sfc: Include RX IP filter table in register dump For backward compatibility, add it at the end. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit b4187e4277b13d7bc4acc3c953b3cab0137b14b2 Author: Ben Hutchings Date: Mon Sep 20 08:43:42 2010 +0000 sfc: Implement the ethtool RX n-tuple control functions Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 64eebcfd899a5d2ebe211a593ec13ec24630f1a3 Author: Ben Hutchings Date: Mon Sep 20 08:43:07 2010 +0000 sfc: Add filter table management Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit a77f5db361ed9953b5b749353ea2c7fed2bf8d93 Author: Ben Hutchings Date: Mon Sep 20 08:42:17 2010 +0000 ethtool: Allocate register dump buffer with vmalloc() Some NICs have huge register files which exceed the maximum heap allocation size. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 6099e3dea9aaa6127cea0610533221c9e956f009 Author: Ben Hutchings Date: Mon Sep 20 08:42:08 2010 +0000 ethtool: Add Ethernet MAC-level filtering/steering Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit c22ab7816fd81efceefa96b00c4ad62cf657964b Author: Ben Hutchings Date: Mon Sep 20 08:41:47 2010 +0000 ethtool: Define RX n-tuple action to clear a rule Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit b618f6f885579a6237e5bf4582fa6167972ddef4 Merge: 462fb2a 6e5c2b4 Author: John W. Linville Date: Tue Sep 21 15:49:14 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: arch/arm/mach-omap2/board-omap3pandora.c drivers/net/wireless/ath/ath5k/base.c commit 26c15cfd291f8b4ee40b4bbdf5e3772adfd704f5 Author: Julian Anastasov Date: Tue Sep 21 18:12:30 2010 +0200 ipvs: changes related to service usecnt Change the usage of svc usecnt during command execution: - we check if svc is registered but we do not need to hold usecnt reference while under __ip_vs_mutex, only the packet handling needs it during scheduling - change __ip_vs_service_get to __ip_vs_service_find and __ip_vs_svc_fwm_get to __ip_vs_svc_fwm_find because now caller will increase svc->usecnt - put common code that calls update_service in __ip_vs_update_dest - put common code in ip_vs_unlink_service() and use it to unregister the service - add comment that svc should not be accessed after ip_vs_del_service anymore - all IP_VS_WAIT_WHILE calls are now unified: usecnt > 0 - Properly log the app ports As result, some problems are fixed: - possible use-after-free of svc in ip_vs_genl_set_cmd after ip_vs_del_service because our usecnt reference does not guarantee that svc is not freed on refcnt==0, eg. when no dests are moved to trash - possible usecnt leak in do_ip_vs_set_ctl after ip_vs_del_service when the service is not freed now, for example, when some destionations are moved into trash and svc->refcnt remains above 0. It is harmless because svc is not in hash anymore. Signed-off-by: Julian Anastasov Acked-by: Simon Horman Signed-off-by: Patrick McHardy commit 99f07e91bef34db0fc8b1a224096e97f02dc0d56 Author: Changli Gao Date: Tue Sep 21 17:49:20 2010 +0200 netfilter: save the hash of the tuple in the original direction for latter use Since we don't change the tuple in the original direction, we can save it in ct->tuplehash[IP_CT_DIR_REPLY].hnode.pprev for __nf_conntrack_confirm() use. __hash_conntrack() is split into two steps: hash_conntrack_raw() is used to get the raw hash, and __hash_bucket() is used to get the bucket id. In SYN-flood case, early_drop() doesn't need to recompute the hash again. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit 8a8030407f55a6aaedb51167c1a2383311fcd707 Author: Julian Anastasov Date: Tue Sep 21 17:38:57 2010 +0200 ipvs: make rerouting optional with snat_reroute Add new sysctl flag "snat_reroute". Recent kernels use ip_route_me_harder() to route LVS-NAT responses properly by VIP when there are multiple paths to client. But setups that do not have alternative default routes can skip this routing lookup by using snat_reroute=0. Signed-off-by: Julian Anastasov Signed-off-by: Patrick McHardy commit f4bc17cdd205ebaa3807c2aa973719bb5ce6a5b2 Author: Julian Anastasov Date: Tue Sep 21 17:35:41 2010 +0200 ipvs: netfilter connection tracking changes Add more code to IPVS to work with Netfilter connection tracking and fix some problems. - Allow IPVS to be compiled without connection tracking as in 2.6.35 and before. This can avoid keeping conntracks for all IPVS connections because this costs memory. ip_vs_ftp still depends on connection tracking and NAT as implemented for 2.6.36. - Add sysctl var "conntrack" to enable connection tracking for all IPVS connections. For loaded IPVS directors it needs tuning of nf_conntrack_max limit. - Add IP_VS_CONN_F_NFCT connection flag to request the connection to use connection tracking. This allows user space to provide this flag, for example, in dest->conn_flags. This can be useful to request connection tracking per real server instead of forcing it for all connections with the "conntrack" sysctl. This flag is set currently only by ip_vs_ftp and of course by "conntrack" sysctl. - Add ip_vs_nfct.c file to hold all connection tracking code, by this way main code should not depend of netfilter conntrack support. - Return back the ip_vs_post_routing handler as in 2.6.35 and use skb->ipvs_property=1 to allow IPVS to work without connection tracking Connection tracking: - most of the code is already in 2.6.36-rc - alter conntrack reply tuple for LVS-NAT connections when first packet from client is forwarded and conntrack state is NEW or RELATED. Additionally, alter reply for RELATED connections from real server, again for packet in original direction. - add IP_VS_XMIT_TUNNEL to confirm conntrack (without altering reply) for LVS-TUN early because we want to call nf_reset. It is needed because we add IPIP header and the original conntrack should be preserved, not destroyed. The transmitted IPIP packets can reuse same conntrack, so we do not set skb->ipvs_property. - try to destroy conntrack when the IPVS connection is destroyed. It is not fatal if conntrack disappears before that, it depends on the used timers. Fix problems from long time: - add skb->ip_summed = CHECKSUM_NONE for the LVS-TUN transmitters Signed-off-by: Julian Anastasov Signed-off-by: Patrick McHardy commit 6e5c2b4e8addfaab8ef54dedaf7b607e1585c35b Author: Felix Fietkau Date: Mon Sep 20 13:45:40 2010 +0200 ath9k: make the driver specific rate control module optional ath9k can use minstrel_ht instead, so it makes sense to save some space here. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 334b06029ed3f5e31d773527d54fb40e3ee571f9 Author: Felix Fietkau Date: Mon Sep 20 13:45:39 2010 +0200 ath9k: move ath_tx_aggr_check() to the rate control module It is not used anywhere else and can be made static Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 90fa539ca3f07323da5a90f5c8f4e5cd952875e7 Author: Felix Fietkau Date: Mon Sep 20 13:45:38 2010 +0200 ath9k: clean up / fix aggregation session flush The tid aggregation cleanup is a bit fragile, as it discards failed subframes in some places, and retransmits them in others. This could block the cleanup of an existing aggregation session, if a retransmission for a tid is issued, yet the tid is never scheduled again because of the cleanup state. Fix this by getting rid of as many subframes as possible, as early as possible, and immediately transmitting pending subframes as regular HT frames instead of waiting for the cleanup to complete. Drop all pending subframes while keeping track of the Block ACK window during aggregate tx completion to prevent sending out stale subframes, which could confuse the receiver side. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 231c3a1f0630c07a584905507a1cb7b705a56ab7 Author: Felix Fietkau Date: Mon Sep 20 19:35:28 2010 +0200 ath9k: fix an aggregation start related race condition A new aggregation session start can be issued by mac80211, even when the cleanup of the previous session has not completed yet. Since the data structure for the session is not recreated, this could corrupt the block ack window and lock up the aggregation session. Fix this by delaying the new session until the old one has been cleaned up. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 81ee13ba7ef8c9eaebe91ed06edb844ab6403d4e Author: Felix Fietkau Date: Mon Sep 20 13:45:36 2010 +0200 ath9k: clean up block ack window handling There's no reason to keep pointers to pending tx buffers around, if they're only used to keep track of which frames are still pending. Use a bitfield instead. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 9ee82d541095cb64bf16a1f5d7573a8cddc125aa Author: Eliad Peller Date: Sun Sep 19 18:55:09 2010 +0200 wl1271: bugfix: use bitwise-AND instead of logical-AND typo - while looking for specific bits we should do a bitwise-AND instead of logical-AND. Signed-off-by: Eliad Peller Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 58be4607d25f86962dee6cc6b30573f95303517e Author: Eliad Peller Date: Sun Sep 19 18:55:08 2010 +0200 wl1271: avoid redundant memcpy of rx_status copy the rx_status directly to skb->cb (control buffer) instead of copying it to a local struct and then copying it again (for each rx packet) Signed-off-by: Eliad Peller Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 2c7808d9345b91bb19f6bfaebf7b9e0916b0859a Author: Christian Lamparter Date: Sat Sep 18 00:15:13 2010 +0200 carl9170: fix hang in AP mode when HT STA does PSM This is a obvious bug, skb_queue_walk does not work if the iterator gets removed from the queue. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 735761108f435a30bbabb5254fc5a8e17b99f2a1 Author: Christian Lamparter Date: Fri Sep 17 23:09:19 2010 +0200 carl9170: reinit phy after HT settings have changed The driver has a set of different initvals for 20 MHz vs dynamic HT2040 operation. Because we can't change some of the registers "in-flight", the driver needs to perform a warm reset. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 78ec789bd397249a9bb412ca91bd360079e7b446 Author: Christian Lamparter Date: Fri Sep 17 22:58:40 2010 +0200 carl9170: fix state downgrade during reset Don't mark the device as completely dead just yet. If all goes to plan and carl9170_reboot succeeds then we can skip the expensive userspace-driven reinitialization anyway. And if it doesn't and carl9170_reboot fails, then carl9170_usb_cancel_urbs will do the necessary steps. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit cf6487d0d656994cc43851b8c2384741e220f7ac Author: Christian Lamparter Date: Fri Sep 17 22:47:28 2010 +0200 carl9170: abort tasklet during usb reset This patch prevents the tasklet code from interfering while the firmware is down for an unscheduled maintenance. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9adc9e0ff397fb2d4f383cc2d399b18adc32e6eb Author: Christian Lamparter Date: Fri Sep 17 22:42:37 2010 +0200 carl9170: don't load bogus nf of chain 1 According to Atheros, chain 1 is not connected. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit e278c5a90368408bd191743e7c6f978f068f4b8d Author: Christian Lamparter Date: Fri Sep 17 22:22:50 2010 +0200 carl9170: fix noise dBm conversion Ever since carl9170 gained support to read the noisefloor, the reported noisefloor level was pretty poor. Initially I assumed that something was wrong in the PHY setup and it would be impossible to fix without any guidances. But this was not the case. In fact the nf readings were correct and the thing that was broken was the "simple" sign extension code! Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 9dec6f9c48242eec742c9475f32eeef29448701c Author: Christian Lamparter Date: Fri Sep 17 22:07:59 2010 +0200 carl9170: use rx chainmask from eeprom The eeprom provides a mask for all present rx chains. Why not use it instead of the generic initval default? Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit e0b1cc52e5da3e2fa79666b8df81a953c95c91e4 Author: Bruno Randolf Date: Fri Sep 17 11:37:18 2010 +0900 ath5k: Add tx queue configuration function Add the mac80211 callback function to configure the tx queue properties like cw_min, cw_max and aifs. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit de8af45520f47d14397b603beefae3d2983ce787 Author: Bruno Randolf Date: Fri Sep 17 11:37:12 2010 +0900 ath5k: Simplify cw_min/max and AIFS configuration Get rid of overly complicated cw_min/max and AIFS configuration: * Validate values in ath5k_hw_set_tx_queueprops(), so we can use them directly without further checks or computation in ath5k_hw_reset_tx_queue(). * Simplifiy by using AR5K_TUNE_AIFS|CWMIN|CWMAX variables directly since we don't support XR or B channels. That way we can also remove AR5K_TXQ_USEDEFAULT and the confusing logic around it. * Update data types: AIFS is u8, CW's are u16. * Remove now unneeded variables in ath5k_hw. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 234132960dcf8ebd9d424d92a4dfb0e57fa63a17 Author: Bruno Randolf Date: Fri Sep 17 11:37:07 2010 +0900 ath5k: Keep last descriptor in queue If we return a TX descriptor to the pool of available descriptors, while a queues TXDP still points to it we could potentially run into all sorts of troube. It has been suggested that there is hardware which can set the descriptors done bit before it reads ds_link and moves on to the next descriptor. While the documentation says this is not true for newer chipsets (the descriptor contents are copied to some internal memory), we don't know about older hardware. To be safe, we always keep the last descriptor in the queue, and avoid dangling TXDP pointers. Unfortunately this does not fully resolve the problem - queues still get stuck! This is similar to what ath9k does. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 923e5b3d3d773b9956b943ac64f782d5a127bdea Author: Bruno Randolf Date: Fri Sep 17 11:37:02 2010 +0900 ath5k: Count how many times a queue got stuck Add a counter to show how many times a queue got stuck in the debugfs queue file. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 4edd761f4075b03be5932682a2f7b9368dc9e536 Author: Bruno Randolf Date: Fri Sep 17 11:36:56 2010 +0900 ath5k: Add watchdog for stuck TX queues Since we do not know any better solution to the problem that TX queues can get stuck, this adds a timer-based watchdog, which will check for stuck queues and reset the hardware if necessary. Ported from ath9k commit 164ace38536849966ffa377b1b1132993a5a375d. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 1440401e7051d4cf66084a7c36125834901bb90d Author: Bruno Randolf Date: Fri Sep 17 11:36:51 2010 +0900 ath5k: Move tx frame completion into separate function Clearer separation between queue handling and what we do with completed frames. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 651d9375dca9997ef2b05639191756da73b0cf8d Author: Bruno Randolf Date: Fri Sep 17 11:36:46 2010 +0900 ath5k: Fix TX queues stopping It does not make sense to stop queues for NF calibration. This will not stop transmissions from the card, if there are queued packets. If we run out of TX buffers we need to stop all queues, not only one. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit cfddc11c429a655e418ffc111372cc69dee6a1a5 Author: Bruno Randolf Date: Fri Sep 17 11:36:40 2010 +0900 ath5k: Fix queue debug file Take txq lock in debug file and fix reporting of used buffers. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 925e0b061300c94912be36eac16f0b44249a1add Author: Bruno Randolf Date: Fri Sep 17 11:36:35 2010 +0900 ath5k: Use four hardware queues Prepare ath5k for WME by using four hardware queues. The way we set up our queues matches the mac80211 queue priority 1:1, so we don't have to do any mapping for queue numbers. Every queue uses 50 of the total 200 available transmit buffers, so the DMA memory usage does not increase with this patch, but it might be good to fine-tune the number of buffers per queue later (depending on the CPU speed and load, and the speed of the medium access, it might not be big enough). Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 8a63facc376a7b8bb2b64c0ffbdb0949d1d6c71c Author: Bob Copeland Date: Fri Sep 17 12:45:07 2010 +0900 ath5k: reorder base.c to remove fwd decls This change reorganizes the main ath5k file in order to re-group related functions and remove most of the forward declarations (from 61 down to 3). This is, unfortunately, a lot of churn, but there should be no functional changes. Signed-off-by: Bob Copeland Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit ce2220d1da0bad9583af38a03ad508968d554c0f Author: Bruno Randolf Date: Fri Sep 17 11:36:25 2010 +0900 ath/ath5k/ath9k: Fix crypto capabilities merge issue Fixing up a merge issue / concurrent development: Remove unneeded ath_crypt_caps flags, as per "ath9k_hw: remove useless hw capability flags" (364734fafbba0c3133e482db78149b9a823ae7a5), but set the AESCCM flag for ath9k. common ath code still needs a flag for this because there is ath5k hardware which can't do AES in hardware. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit c807666a08800ab387298817db5a6f6e11606adb Author: Christian Lamparter Date: Thu Sep 16 22:55:20 2010 +0200 carl9170: update AR9170 phy initvals This patch is loosely based on an ath9k patch called: "ath9k_hw: sync initvals for ar9001 and ar9002 with Atheros" It includes the following changes/fixes: - AGC setting improvements - timing changes for improved performance Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 80b517f362605f2b6a6cfe086604534290aab2de Author: Ohad Ben-Cohen Date: Thu Sep 16 01:32:30 2010 +0200 omap: zoom: add mmc3/wl1271 device support Add MMC3 support on ZOOM, which has the wl1271 device hardwired to. The wl1271 is a 4-wire, 1.8V, embedded SDIO WLAN device with an external IRQ line, and power-controlled by a GPIO-based fixed regulator. Signed-off-by: Ohad Ben-Cohen Acked-by: Tony Lindgren Signed-off-by: John W. Linville commit b642fde7f137566c993991fd2e7bf6b8274bf625 Author: Ohad Ben-Cohen Date: Thu Sep 16 01:32:09 2010 +0200 omap: zoom: add fixed regulator device for wlan Add a fixed regulator vmmc device to enable power control of the wl1271 wlan device. Signed-off-by: Ohad Ben-Cohen Acked-by: Tony Lindgren Signed-off-by: John W. Linville commit 15cea99306ae14ce5f7c3d3989bcc17202e2b0be Author: Ohad Ben-Cohen Date: Thu Sep 16 01:31:51 2010 +0200 wl1271: make ref_clock configurable by board The wl1271 device is using a reference clock that may change between board to board. Make the ref_clock parameter configurable by board settings instead of having a hard coded value in the sources. Signed-off-by: Ohad Ben-Cohen Signed-off-by: John W. Linville commit 09cecc340b3b4d9960b039c0f576548bbf857f5a Author: Ohad Ben-Cohen Date: Thu Sep 16 01:31:35 2010 +0200 wl1271: take irq info from private board data Remove the hard coded irq information, and instead take the irq information from the board's platform data. Signed-off-by: Ohad Ben-Cohen Signed-off-by: John W. Linville commit 61ee7007a5d61aa066076da578e8e8084e122d7d Author: Ohad Ben-Cohen Date: Thu Sep 16 01:31:12 2010 +0200 wl12xx: add platform data passing support Add a simple mechanism to pass platform data to the SDIO instances of wl12xx. This way there is no confusion over who owns the 'embedded data', typechecking is preserved, and no possibility for the wrong driver to pick up the data. Originally proposed by Russell King. Signed-off-by: Ohad Ben-Cohen Signed-off-by: John W. Linville commit 2cc78ff78c0af502b040d4527212e29e02d3231d Author: Ohad Ben-Cohen Date: Thu Sep 16 01:22:04 2010 +0200 wl1271: propagate set_power's return value Make it possible for the set power method to indicate a success/failure return value. This is needed to support more complex power on/off operations such as SDIO power manipulations. Signed-off-by: Ohad Ben-Cohen Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit c1f9a095600e07fefe64eb94eb711f410100824a Author: Ohad Ben-Cohen Date: Thu Sep 16 13:16:02 2010 +0200 wl12xx: make wl12xx.h common to both spi and sdio Move wl12xx.h outside of the spi-specific location, so it can be shared with both spi and sdio solutions. Update all users of spi/wl12xx.h accordingly Signed-off-by: Ohad Ben-Cohen Acked-by: Luciano Coelho Acked-by: Tony Lindgren Signed-off-by: John W. Linville commit a8027073eb127cd207070891374b5c54c2ce3d23 Author: Steven Rostedt Date: Mon Sep 20 15:13:34 2010 -0400 tracing/sched: Add sched_pi_setprio tracepoint Add a tracepoint that shows the priority of a task being boosted via priority inheritance. Cc: Gregory Haskins Acked-by: Peter Zijlstra Signed-off-by: Steven Rostedt commit b3bc211cfe7d5fe94b310480d78e00bea96fbf2a Author: Steven Rostedt Date: Mon Sep 20 22:40:04 2010 -0400 sched: Give CPU bound RT tasks preference If a high priority task is waking up on a CPU that is running a lower priority task that is bound to a CPU, see if we can move the high RT task to another CPU first. Note, if all other CPUs are running higher priority tasks than the CPU bounded current task, then it will be preempted regardless. Signed-off-by: Steven Rostedt Signed-off-by: Peter Zijlstra Cc: Gregory Haskins LKML-Reference: <20100921024138.888922071@goodmis.org> Signed-off-by: Ingo Molnar commit 43fa5460fe60dea5c610490a1d263415419c60f6 Author: Steven Rostedt Date: Mon Sep 20 22:40:03 2010 -0400 sched: Try not to migrate higher priority RT tasks When first working on the RT scheduler design, we concentrated on keeping all CPUs running RT tasks instead of having multiple RT tasks on a single CPU waiting for the migration thread to move them. Instead we take a more proactive stance and push or pull RT tasks from one CPU to another on wakeup or scheduling. When an RT task wakes up on a CPU that is running another RT task, instead of preempting it and killing the cache of the running RT task, we look to see if we can migrate the RT task that is waking up, even if the RT task waking up is of higher priority. This may sound a bit odd, but RT tasks should be limited in migration by the user anyway. But in practice, people do not do this, which causes high prio RT tasks to bounce around the CPUs. This becomes even worse when we have priority inheritance, because a high prio task can block on a lower prio task and boost its priority. When the lower prio task wakes up the high prio task, if it happens to be on the same CPU it will migrate off of it. But in reality, the above does not happen much either, because the wake up of the lower prio task, which has already been boosted, if it was on the same CPU as the higher prio task, it would then migrate off of it. But anyway, we do not want to migrate them either. To examine the scheduling, I created a test program and examined it under kernelshark. The test program created CPU * 2 threads, where each thread had a different priority. The program takes different options. The options used in this change log was to have priority inheritance mutexes or not. All threads did the following loop: static void grab_lock(long id, int iter, int l) { ftrace_write("thread %ld iter %d, taking lock %d\n", id, iter, l); pthread_mutex_lock(&locks[l]); ftrace_write("thread %ld iter %d, took lock %d\n", id, iter, l); busy_loop(nr_tasks - id); ftrace_write("thread %ld iter %d, unlock lock %d\n", id, iter, l); pthread_mutex_unlock(&locks[l]); } void *start_task(void *id) { [...] while (!done) { for (l = 0; l < nr_locks; l++) { grab_lock(id, i, l); ftrace_write("thread %ld iter %d sleeping\n", id, i); ms_sleep(id); } i++; } [...] } The busy_loop(ms) keeps the CPU spinning for ms milliseconds. The ms_sleep(ms) sleeps for ms milliseconds. The ftrace_write() writes to the ftrace buffer to help analyze via ftrace. The higher the id, the higher the prio, the shorter it does the busy loop, but the longer it spins. This is usually the case with RT tasks, the lower priority tasks usually run longer than higher priority tasks. At the end of the test, it records the number of loops each thread took, as well as the number of voluntary preemptions, non-voluntary preemptions, and number of migrations each thread took, taking the information from /proc/$$/sched and /proc/$$/status. Running this on a 4 CPU processor, the results without changes to the kernel looked like this: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 53 3220 1470 98 1: 562 773 724 98 2: 752 933 1375 98 3: 749 39 697 98 4: 758 5 515 98 5: 764 2 679 99 6: 761 2 535 99 7: 757 3 346 99 total: 5156 4977 6341 787 Each thread regardless of priority migrated a few hundred times. The higher priority tasks, were a little better but still took quite an impact. By letting higher priority tasks bump the lower prio task from the CPU, things changed a bit: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 37 2835 1937 98 1: 666 1821 1865 98 2: 654 1003 1385 98 3: 664 635 973 99 4: 698 197 352 99 5: 703 101 159 99 6: 708 1 75 99 7: 713 1 2 99 total: 4843 6594 6748 789 The total # of migrations did not change (several runs showed the difference all within the noise). But we now see a dramatic improvement to the higher priority tasks. (kernelshark showed that the watchdog timer bumped the highest priority task to give it the 2 count. This was actually consistent with every run). Notice that the # of iterations did not change either. The above was with priority inheritance mutexes. That is, when the higher prority task blocked on a lower priority task, the lower priority task would inherit the higher priority task (which shows why task 6 was bumped so many times). When not using priority inheritance mutexes, the current kernel shows this: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 56 3101 1892 95 1: 594 713 937 95 2: 625 188 618 95 3: 628 4 491 96 4: 640 7 468 96 5: 631 2 501 96 6: 641 1 466 96 7: 643 2 497 96 total: 4458 4018 5870 765 Not much changed with or without priority inheritance mutexes. But if we let the high priority task bump lower priority tasks on wakeup we see: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 115 3439 2782 98 1: 633 1354 1583 99 2: 652 919 1218 99 3: 645 713 934 99 4: 690 3 3 99 5: 694 1 4 99 6: 720 3 4 99 7: 747 0 1 100 Which shows a even bigger change. The big difference between task 3 and task 4 is because we have only 4 CPUs on the machine, causing the 4 highest prio tasks to always have preference. Although I did not measure cache misses, and I'm sure there would be little to measure since the test was not data intensive, I could imagine large improvements for higher priority tasks when dealing with lower priority tasks. Thus, I'm satisfied with making the change and agreeing with what Gregory Haskins argued a few years ago when we first had this discussion. One final note. All tasks in the above tests were RT tasks. Any RT task will always preempt a non RT task that is running on the CPU the RT task wants to run on. Signed-off-by: Steven Rostedt Signed-off-by: Peter Zijlstra Cc: Gregory Haskins LKML-Reference: <20100921024138.605460343@goodmis.org> Signed-off-by: Ingo Molnar commit 58b26c4c025778c09c7a1438ff185080e11b7d0a Author: Venkatesh Pallipadi Date: Fri Sep 10 18:19:17 2010 -0700 sched: Increment cache_nice_tries only on periodic lb scheduler uses cache_nice_tries as an indicator to do cache_hot and active load balance, when normal load balance fails. Currently, this value is changed on any failed load balance attempt. That ends up being not so nice to workloads that enter/exit idle often, as they do more frequent new_idle balance and that pretty soon results in cache hot tasks being pulled in. Making the cache_nice_tries ignore failed new_idle balance seems to make better sense. With that only the failed load balance in periodic load balance gets accounted and the rate of accumulation of cache_nice_tries will not depend on idle entry/exit (short running sleep-wakeup kind of tasks). This reduces movement of cache_hot tasks. schedstat diff (after-before) excerpt from a workload that has frequent and short wakeup-idle pattern (:2 in cpu col below refers to NEWIDLE idx) This snapshot was across ~400 seconds. Without this change: domainstats: domain0 cpu cnt bln fld imb gain hgain nobusyq nobusyg 0:2 306487 219575 73167 110069413 44583 19070 1172 218403 1:2 292139 194853 81421 120893383 50745 21902 1259 193594 2:2 283166 174607 91359 129699642 54931 23688 1287 173320 3:2 273998 161788 93991 132757146 57122 24351 1366 160422 4:2 289851 215692 62190 83398383 36377 13680 851 214841 5:2 316312 222146 77605 117582154 49948 20281 988 221158 6:2 297172 195596 83623 122133390 52801 21301 929 194667 7:2 283391 178078 86378 126622761 55122 22239 928 177150 8:2 297655 210359 72995 110246694 45798 19777 1125 209234 9:2 297357 202011 79363 119753474 50953 22088 1089 200922 10:2 278797 178703 83180 122514385 52969 22726 1128 177575 11:2 272661 167669 86978 127342327 55857 24342 1195 166474 12:2 293039 204031 73211 110282059 47285 19651 948 203083 13:2 289502 196762 76803 114712942 49339 20547 1016 195746 14:2 264446 169609 78292 115715605 50459 21017 982 168627 15:2 260968 163660 80142 116811793 51483 21281 1064 162596 With this change: domainstats: domain0 cpu cnt bln fld imb gain hgain nobusyq nobusyg 0:2 272347 187380 77455 105420270 24975 1 953 186427 1:2 267276 172360 86234 116242264 28087 6 1028 171332 2:2 259769 156777 93281 123243134 30555 1 1043 155734 3:2 250870 143129 97627 127370868 32026 6 1188 141941 4:2 248422 177116 64096 78261112 22202 2 757 176359 5:2 275595 180683 84950 116075022 29400 6 778 179905 6:2 262418 162609 88944 119256898 31056 4 817 161792 7:2 252204 147946 92646 122388300 32879 4 824 147122 8:2 262335 172239 81631 110477214 26599 4 864 171375 9:2 261563 164775 88016 117203621 28331 3 849 163926 10:2 243389 140949 93379 121353071 29585 2 909 140040 11:2 242795 134651 98310 124768957 30895 2 1016 133635 12:2 255234 166622 79843 104696912 26483 4 746 165876 13:2 244944 151595 83855 109808099 27787 3 801 150794 14:2 241301 140982 89935 116954383 30403 6 845 140137 15:2 232271 128564 92821 119185207 31207 4 1416 127148 Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1284167957-3675-1-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit cf84fd96323633be7d437e1de4505fc82ff2c11a Merge: 31915ab b30a3f6 Author: Ingo Molnar Date: Tue Sep 21 13:56:43 2010 +0200 Merge commit 'v2.6.36-rc5' into sched/core Merge reason: Pick up the latest fixes in -rc5. Signed-off-by: Ingo Molnar commit 41945f6ccf1e86f87fddf6b32db9cf431c05fb54 Author: Peter Zijlstra Date: Thu Sep 16 19:17:24 2010 +0200 perf: Avoid RCU vs preemption assumptions The per-pmu per-cpu context patch converted things from get_cpu_var() to this_cpu_ptr(), but that only works if rcu_read_lock() actually disables preemption, and since there is no such guarantee, we need to fix that. Use the newly introduced {get,put}_cpu_ptr(). Signed-off-by: Peter Zijlstra Cc: Tejun Heo LKML-Reference: <20100917093009.308453028@chello.nl> Signed-off-by: Ingo Molnar commit 8b8e2ec1eeca7f6941bc81cefc9663018d6ceb57 Author: Peter Zijlstra Date: Thu Sep 16 19:21:28 2010 +0200 percpu: Add {get,put}_cpu_ptr These are similar to {get,put}_cpu_var() except for dynamically allocated per-cpu memory. Signed-off-by: Peter Zijlstra Acked-by: Tejun Heo LKML-Reference: <20100917093009.252867712@chello.nl> Signed-off-by: Ingo Molnar commit 7ed569206ebe7467b9c912b857ec46cf1c361111 Merge: e9d2b06 b30a3f6 Author: Ingo Molnar Date: Tue Sep 21 13:55:04 2010 +0200 Merge commit 'v2.6.36-rc5' into perf/core Merge reason: Pick up the latest fixes in -rc5. Signed-off-by: Ingo Molnar commit 536bb20b45dee3f9b77b0d250f8ed0733a5cb025 Author: Gerrit Renker Date: Sun Sep 19 20:14:23 2010 +0200 dccp ccid-3: Remove redundant 'options_received' struct The `options_received' struct is redundant, since it re-duplicates the existing `p' and `x_recv' fields. This patch removes the sub-struct and migrates the format conversion operations to ccid3_hc_tx_parse_options(). Signed-off-by: Gerrit Renker commit 792e6d3389061ad449429b9ba228eb758c247ea0 Author: Gerrit Renker Date: Sun Sep 19 20:10:52 2010 +0200 dccp tfrc/ccid-3: computing the loss rate from the Loss Event Rate This adds a function to take care of the following, separate cases occurring in the computation of the Loss Rate p: * 1/(2^32-1) is mapped into 0% as per RFC 4342, 8.5; * 1/0 is mapped into 100%, the maximum; * to avoid that p = 1/x is rounded down to 0 when x is very large, since this means accidentally re-entering slow-start indicated by p == 0, the minimum resolution value of p is now returned instead; * a bug in ccid3_hc_rx_getsockopt is fixed: 1/0 was mapped into ~0U. Signed-off-by: Gerrit Renker commit 80763dfbac4ed1e6dfe6ec08ef748e0e9aec3260 Author: Gerrit Renker Date: Sun Sep 19 20:08:24 2010 +0200 dccp ccid-3: remove dead states This patch is thanks to an investigation by Leandro Sales de Melo and his colleagues. They worked out two state diagrams which highlight the fact that the xxx_TERM states in CCID-3/4 are in fact not necessary. And this can be confirmed by in turn looking at the code: the xxx_TERM states are only ever set in ccid3_hc_{rx,tx}_exit(): when CCID-3 sets the state to xxx_TERM, it is at a time where no more processing should be going on, hence it is not necessary to introduce a dedicated exit state - this is already implied by unloading the CCID. Signed-off-by: Gerrit Renker commit a18213d1d2a469956845b437f5d1d0401ab22e8b Author: Gerrit Renker Date: Sun Sep 19 20:08:00 2010 +0200 dccp: Replace magic CCID-specific numbers by symbolic constants The constants DCCPO_{MIN,MAX}_CCID_SPECIFIC are nowhere used in the code, but instead for the CCID-specific options numbers are used. This patch unifies the use of CCID-specific option numbers, by adding symbolic names reflecting the definitions in RFC 4340, 10.3. Signed-off-by: Gerrit Renker commit 4874c131d79695e3d372042781a408a1a8a762d8 Author: Gerrit Renker Date: Sun Sep 19 20:06:50 2010 +0200 dccp: Add packet type information to CCID-specific option parsing This 1. adds packet type information to ccid_hc_{rx,tx}_parse_options(). This is necessary, since table 3 in RFC 4340, 5.8 leaves it to the CCIDs to state which options may (not) appear on what packet type. 2. adds such a check for CCID-3's {Loss Event, Receive} Rate as specified in RFC 4340 8.3 ("Receive Rate options MUST NOT be sent on DCCP-Data packets") and 8.5 ("Loss Event Rate options MUST NOT be sent on DCCP-Data packets"). 3. removes an unused argument `idx' from ccid_hc_{rx,tx}_parse_options(). This is also no longer necessary, since the CCID-specific option-parsing routines are passed every single parameter of the type-length-value option encoding. Signed-off-by: Gerrit Renker commit a800c7cc5380fbb6b4f2f3bd89f6776eb3da2242 Author: Thomas Gleixner Date: Tue Sep 21 11:33:54 2010 +0200 MAINTAINERS: Add IRQ subsystem I do not expect, that this will help anything, but at least it's going to remove the lame excuse about the missing maintainer entry. Signed-off-by: Thomas Gleixner commit c2b9ff24a0df649d4d40947878b5b5ac39c7299e Author: H. Peter Anvin Date: Mon Sep 20 18:01:46 2010 -0700 x86, cpu: Re-run get_cpu_cap() after adjusting the CPUID level At least on Intel, adjusting the max CPUID level can expose new CPUID features, so we need to re-run get_cpu_cap() after changing the CPUID level. Signed-off-by: H. Peter Anvin commit ce5f68246bf2385d6174856708d0b746dc378f20 Author: H. Peter Anvin Date: Mon Sep 20 13:04:45 2010 -0700 x86, hotplug: In the MWAIT case of play_dead, CLFLUSH the cache line When we're using MWAIT for play_dead, explicitly CLFLUSH the cache line before executing MONITOR. This is a potential workaround for the Xeon 7400 erratum AAI65 after having a spurious wakeup and returning around the loop. "Potential" here because it is not certain that that erratum could actually trigger; however, the CLFLUSH should be harmless. Signed-off-by: H. Peter Anvin Acked-by: Venkatesh Pallipadi Cc: Asit Mallick Cc: Arjan van de Ven Cc: Len Brown commit fa6f2cc77081792e4edca9168420a3422299ef15 Author: Jason Baron Date: Fri Sep 17 11:08:56 2010 -0400 jump label: Make text_poke_early() globally visible Make text_poke_early available outside of alternative.c. The jump label patchset wants to make use of it in order to set up the optimal no-op sequences at run-time. Signed-off-by: Jason Baron LKML-Reference: <04cfddf2ba77bcabfc3e524f1849d871d6a1cf9d.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit f49aa448561fe9215f43405cac6f31eb86317792 Author: Jason Baron Date: Fri Sep 17 11:08:51 2010 -0400 jump label: Make dynamic no-op selection available outside of ftrace Move Steve's code for finding the best 5-byte no-op from ftrace.c to alternative.c. The idea is that other consumers (in this case jump label) want to make use of that code. Signed-off-by: Jason Baron LKML-Reference: <96259ae74172dcac99c0020c249743c523a92e18.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit 23ac4ae827e6264e21b898f2cd3f601450aa02a6 Author: Andreas Herrmann Date: Fri Sep 17 18:03:43 2010 +0200 x86, k8: Rename k8.[ch] to amd_nb.[ch] and CONFIG_K8_NB to CONFIG_AMD_NB The file names are somehow misleading as the code is not specific to AMD K8 CPUs anymore. The files accomodate code for other AMD CPU northbridges as well. Same is true for the config option which is valid for AMD CPU northbridges in general and not specific to K8. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160343.GD4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 9f081ce5da2c8af297a0a7d15a57fb4beeed374b Author: Tony Luck Date: Mon Sep 20 13:15:07 2010 -0700 [IA64] Move local_softirq_pending() definition Ugly #include dependencies. We need to have local_softirq_pending() defined before it gets used in . But provides the definition *after* this #include chain: Signed-off-by: Tony Luck commit 43e3bf203456c4f06bdd6060426976ad2bed9081 Author: Konrad Rzeszutek Wilk Date: Mon Sep 20 13:13:04 2010 -0700 [IA64] iommu: Add a dummy iommu_table.h file in IA64. We don't need a comlex IOMMU dependency list on IA64 so we just define the IOMMU_* macro as a dummy. Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Tony Luck commit daebbca3ab41031666ee27f991b223d2bc0415e9 Author: Eric Dumazet Date: Mon Sep 20 02:28:59 2010 +0000 qlcnic: dont set skb->truesize skb->truesize is set in core network. Dont change it unless dealing with fragments. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 8990f468ae9010ab0af4be8f51bf7ab833a67202 Author: Eric Dumazet Date: Mon Sep 20 00:12:11 2010 +0000 net: rx_dropped accounting Under load, netif_rx() can drop incoming packets but administrators dont have a chance to spot which device needs some tuning (RPS activation for example) This patch adds rx_dropped accounting in vlans and tunnels. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 749ef9f8423054e326f3a246327ed2db4b6d395f Author: Corrado Zoccolo Date: Mon Sep 20 15:24:50 2010 +0200 cfq: improve fsync performance for small files Fsync performance for small files achieved by cfq on high-end disks is lower than what deadline can achieve, due to idling introduced between the sync write happening in process context and the journal commit. Moreover, when competing with a sequential reader, a process writing small files and fsync-ing them is starved. This patch fixes the two problems by: - marking journal commits as WRITE_SYNC, so that they get the REQ_NOIDLE flag set, - force all queues that have REQ_NOIDLE requests to be put in the noidle tree. Having the queue associated to the fsync-ing process and the one associated to journal commits in the noidle tree allows: - switching between them without idling, - fairness vs. competing idling queues, since they will be serviced only after the noidle tree expires its slice. Acked-by: Vivek Goyal Reviewed-by: Jeff Moyer Tested-by: Jeff Moyer Signed-off-by: Corrado Zoccolo Signed-off-by: Jens Axboe commit 8d1235852b462cfb66aa036bd4a2686763c69ed4 Author: Steven Whitehouse Date: Fri Sep 17 12:30:23 2010 +0100 GFS2: Make . and .. qstrs constant Rather than calculating the qstrs for . and .. each time we need them, its better to keep a constant version of these and just refer to them when required. Signed-off-by: Steven Whitehouse Reviewed-by: Christoph Hellwig commit 9fa0ea9f26f64fbfc3dfd51d1dc2c230b65ffb19 Author: Steven Whitehouse Date: Mon Sep 13 16:23:00 2010 +0100 GFS2: Use new workqueue scheme The recovery workqueue can be freezable since we want it to finish what it is doing if the system is to be frozen (although why you'd want to freeze a cluster node is beyond me since it will result in it being ejected from the cluster). It does still make sense for single node GFS2 filesystems though. The glock workqueue will benefit from being able to run more work items concurrently. A test running postmark shows improved performance and multi-threaded workloads are likely to benefit even more. It needs to be high priority because the latency directly affects the latency of filesystem glock operations. The delete workqueue is similar to the recovery workqueue in that it must not get blocked by memory allocations, and may run for a long time. Potentially other GFS2 threads might also be converted to workqueues, but I'll leave that for a later patch. Signed-off-by: Steven Whitehouse Acked-by: Tejun Heo commit 1fea7c25a05d388c0cdbe02cbdaf3a2e70885581 Author: Steven Whitehouse Date: Wed Sep 8 10:09:25 2010 +0100 GFS2: Update handling of DLM return codes to match reality GFS2's idea of which return codes it needs to handle was based upon those listed in dlm.h. Those didn't cover all the possible codes and listed some which never happen. This updates GFS2 to handle all the codes which can actually be returned from the DLM under various circumstances. Signed-off-by: Steven Whitehouse commit 7b5e3d5fcf0d6fce66050bd0313a7dc2ae4abc62 Author: Steven Whitehouse Date: Fri Sep 3 09:39:20 2010 +0100 GFS2: Don't enforce min hold time when two demotes occur in rapid succession Due to the design of the VFS, it is quite usual for operations on GFS2 to consist of a lookup (requiring a shared lock) followed by an operation requiring an exclusive lock. If a remote node has cached an exclusive lock, then it will receive two demote events in rapid succession firstly for a shared lock and then to unlocked. The existing min hold time code was triggering in this case, even if the node was otherwise idle since the state change time was being updated by the initial demote. This patch introduces logic to skip the min hold timer in the case that a "double demote" of this kind has occurred. The min hold timer will still be used in all other cases. A new glock flag is introduced which is used to keep track of whether there have been any newly queued holders since the last glock state change. The min hold time is only applied if the flag is set. Signed-off-by: Steven Whitehouse Tested-by: Abhijith Das commit fe08d5a89726675a920b0e9bbbe849c46b27a6e5 Author: Steven Whitehouse Date: Mon Aug 23 11:54:45 2010 +0100 GFS2: Fix whitespace in previous patch Removes the offending space Signed-off-by: Steven Whitehouse commit 3921120e757f9167f3fcd3a1781239824471b14d Author: Benjamin Marzinski Date: Fri Aug 20 00:21:02 2010 -0500 GFS2: fallocate support This patch adds support for fallocate to gfs2. Since the gfs2 does not support uninitialized data blocks, it must write out zeros to all the blocks. However, since it does not need to lock any pages to read from, gfs2 can write out the zero blocks much more efficiently. On a moderately full filesystem, fallocate works around 5 times faster on average. The fallocate call also allows gfs2 to add blocks to the file without changing the filesize, which will make it possible for gfs2 to preallocate space for the rindex file, so that gfs2 can grow a completely full filesystem. Signed-off-by: Benjamin Marzinski Signed-off-by: Steven Whitehouse commit 9a3f236d40a99ea8dca3df40d8ef67631057cad6 Author: Steven Whitehouse Date: Mon Aug 23 11:49:34 2010 +0100 GFS2: Add a bug trap in allocation code This adds a check to ensure that if we reach the block allocator that we don't try and proceed if there is no alloc structure hanging off the inode. This should only happen if there is a bug in GFS2. The error return code is distinctive in order that it will be easily spotted. Signed-off-by: Steven Whitehouse commit 820969f353587281d645735c83c7f07d606e67ba Author: Steven Whitehouse Date: Wed Aug 11 09:53:47 2010 +0100 GFS2: No longer experimental I think the time has arrvied to remove the experimental tag from GFS2. Signed-off-by: Steven Whitehouse commit a2e0f79939e09e74698564b88dee709db208e1e2 Author: Steven Whitehouse Date: Wed Aug 11 09:53:11 2010 +0100 GFS2: Remove i_disksize With the update of the truncate code, ip->i_disksize and inode->i_size are merely copies of each other. This means we can remove ip->i_disksize and use inode->i_size exclusively reducing the size of a GFS2 inode by 8 bytes. Signed-off-by: Steven Whitehouse commit ff8f33c8b30d7b7efdcf2548c7f6e64db6a89b29 Author: Steven Whitehouse Date: Wed Aug 11 09:37:53 2010 +0100 GFS2: New truncate sequence This updates GFS2's truncate code to use the new truncate sequence correctly. This is a stepping stone to being able to remove ip->i_disksize in favour of using i_size everywhere now that the two sizes are always identical. Signed-off-by: Steven Whitehouse Cc: Nick Piggin Cc: Christoph Hellwig commit b51d92da4ebb52b61fdc99c911171562673e88ef Author: Simon Guinot Date: Sun Sep 19 15:33:59 2010 +0200 [ARM] Kirkwood: remove duplicated code in LaCie setup files Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 84712e9aa43862ded44e47acfaa93612a7eeaf7c Author: Simon Guinot Date: Sun Sep 19 15:33:58 2010 +0200 [ARM] Kirkwood: add LaCie d2 Network v2 support Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 709406494c0ed7da843bad624f6b16f9a2df4a6c Author: Eric Cooper Date: Wed Sep 15 10:49:41 2010 -0400 [ARM] Kirkwood: support for Seagate DockStar This patch adds support for the Seagate FreeAgent DockStar, a Marvell SheevaPlug variant. Signed-off-by: Eric Cooper Signed-off-by: Nicolas Pitre commit fd2ce9c59a63d1daec8d76d272eca5149fb8706a Author: Tanmay Upadhyay Date: Thu Aug 26 11:11:58 2010 +0530 [ARM] OpenRD: Enable SD/UART selection for serial port 1 This patch enables users to choose either the SDIO interface or UART1 (RS232/RS485). The selection can be done through kernel parameter. By default the port would be used for SDIO interface. Passing the string "kw_openrd_init_uart1=232" or "kw_openrd_init_uart1=485" enables either the RS-232 or RS-485 port respectively; disabling the SDIO interface. Anything else selects the default SDIO interface. "kw_openrd_init_uart1=485" is ignored on OpenRD-Base as it doesn't have RS485 port. Signed-off-by: Tanmay Upadhyay Acked-by: Alexander Clouter Signed-off-by: Nicolas Pitre commit 462fb2af9788a82a534f8184abfde31574e1cfa0 Author: Bandan Das Date: Sun Sep 19 09:34:33 2010 +0000 bridge : Sanitize skb before it enters the IP stack Related dicussion here : http://lkml.org/lkml/2010/9/3/16 Introduce a function br_parse_ip_options that will audit the skb and possibly refill IP options before a packet enters the IP stack. If no options are present, the function will zero out the skb cb area so that it is not misinterpreted as options by some unsuspecting IP layer routine. If packet consistency fails, drop it. Signed-off-by: Bandan Das Signed-off-by: David S. Miller commit aef3ea33e85035f7c827c1db9155f97f4b7ee725 Author: Dan Carpenter Date: Sat Sep 18 13:44:14 2010 +0000 rds: spin_lock_irq() is not nestable This is basically just a cleanup. IRQs were disabled on the previous line so we don't need to do it again here. In the current code IRQs would get turned on one line earlier than intended. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit f4fa7f3807d41b78056c6648b04bfadd737df21e Author: Dan Carpenter Date: Sat Sep 18 13:42:59 2010 +0000 rds: double unlock in rds_ib_cm_handle_connect() We unlock after we goto out. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 9b9d2e00bfa592aceda7b43da76c670df61faa97 Author: Dan Carpenter Date: Sat Sep 18 13:42:25 2010 +0000 rds: signedness bug In the original code if the copy_from_user() fails in rds_rdma_pages() then the error handling fails and we get a stack trace from kmalloc(). Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 0746556beab1a57f1afb5c9d6f393d98528ce682 Author: Dan Carpenter Date: Sun Sep 19 11:25:54 2010 -0700 bna: off by one The mod->mbhdlr[] array has BFI_MC_MAX elements. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 8f8f103d8466e627ecef7894248eb79407d9047c Author: Eric Dumazet Date: Sun Sep 19 11:24:02 2010 -0700 net: reorder struct netdev_hw_addr Move 'synced' and 'global_use' fields before 'refcount', to shrinks struct netdev_hw_addr by 8 bytes (on 64bit arches). Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 2ef13294d29bcfb306e0d360f1b97f37b647b0c0 Author: Artem Bityutskiy Date: Sun Sep 19 18:34:26 2010 +0300 UBIFS: introduce new flags for RO mounts Commit 2fde99cb55fb9d9b88180512a5e8a5d939d27fec "UBIFS: mark VFS SB RO too" introduced regression. This commit made UBIFS set the 'MS_RDONLY' flag in the VFS superblock when it switches to R/O mode due to an error. This was done to make VFS show the R/O UBIFS flag in /proc/mounts. However, several places in UBIFS relied on the 'MS_RDONLY' flag and assume this flag can only change when we re-mount. For example, 'ubifs_put_super()'. This patch introduces new UBIFS flag - 'c->ro_mount' which changes only when we re-mount, and preserves the way UBIFS was originally mounted (R/W or R/O). This allows us to de-initialize UBIFS cleanly in 'ubifs_put_super()'. This patch also changes all 'ubifs_assert(!c->ro_media)' assertions to 'ubifs_assert(!c->ro_media && !c->ro_mount)', because we never should write anything if the FS was mounter R/O. All the places where we test for 'MS_RDONLY' flag in the VFS SB were changed and now we test the 'c->ro_mount' flag instead, because it preserves the original UBIFS mount type, unlike the 'MS_RDONLY' flag. Signed-off-by: Artem Bityutskiy commit 09383498c5d35262e643bfdbae84826177a3c624 Author: Tejun Heo Date: Thu Sep 16 10:48:29 2010 +0200 workqueue: implement flush[_delayed]_work_sync() Implement flush[_delayed]_work_sync(). These are flush functions which also make sure no CPU is still executing the target work from earlier queueing instances. These are similar to cancel[_delayed]_work_sync() except that the target work item is flushed instead of cancelled. Signed-off-by: Tejun Heo commit baf59022c37d43f202e62d5130e4bac5e825b426 Author: Tejun Heo Date: Thu Sep 16 10:42:16 2010 +0200 workqueue: factor out start_flush_work() Factor out start_flush_work() from flush_work(). start_flush_work() has @wait_executing argument which controls whether the barrier is queued only if the work is pending or also if executing. As flush_work() needs to wait for execution too, it uses %true. This commit doesn't cause any behavior difference. start_flush_work() will be used to implement flush_work_sync(). Signed-off-by: Tejun Heo commit 401a8d048eadfbe1b1c1bf53d3b614fcc894c61a Author: Tejun Heo Date: Thu Sep 16 10:36:00 2010 +0200 workqueue: cleanup flush/cancel functions Make the following cleanup changes. * Relocate flush/cancel function prototypes and definitions. * Relocate wait_on_cpu_work() and wait_on_work() before try_to_grab_pending(). These will be used to implement flush_work_sync(). * Make all flush/cancel functions return bool instead of int. * Update wait_on_cpu_work() and wait_on_work() to return %true if they actually waited. * Add / update comments. This patch doesn't cause any functional changes. Signed-off-by: Tejun Heo commit 81dcaf6516d8bbd75b894862c8ae7bba04380cfe Author: Tejun Heo Date: Thu Sep 16 10:17:35 2010 +0200 workqueue: implement alloc_ordered_workqueue() alloc_ordered_workqueue() creates a workqueue which processes each work itemp one by one in the queued order. This will be used to replace create_freezeable_workqueue() and create_singlethread_workqueue(). Signed-off-by: Tejun Heo commit f8b63c184ad13cc8adc3dadb557d4fbc29f76e4d Author: Catalin Marinas Date: Mon Sep 13 15:59:07 2010 +0100 ARM: 6382/1: Remove superfluous flush_kernel_dcache_page() Since page cache pages are now considered 'dirty' by default, the cache flushing is handled via __flush_dcache_page() when a page gets mapped to user space. Highmem pages on VIVT systems are flushed during kunmap() and flush_kernel_dcache_page() was already a no-op in this case. ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE is still defined since ARM needs specific implementations for flush_kernel_vmap_range() and invalidate_kernel_vmap_range(). Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 85848dd7ab75fce1134856228582a8df522c91d9 Author: Catalin Marinas Date: Mon Sep 13 15:58:37 2010 +0100 ARM: 6381/1: Use lazy cache flushing on ARMv7 SMP systems ARMv7 processors like Cortex-A9 broadcast the cache maintenance operations in hardware. This patch allows the flush_dcache_page/update_mmu_cache pair to work in lazy flushing mode similar to the UP case. Note that cache flushing on SMP systems now takes place via the set_pte_at() call (__sync_icache_dcache) and there is no race with other CPUs executing code from the new PTE before the cache flushing took place. Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 6012191aa9c6ffff3a23b81162298318b56d7cb3 Author: Catalin Marinas Date: Mon Sep 13 15:58:06 2010 +0100 ARM: 6380/1: Introduce __sync_icache_dcache() for VIPT caches On SMP systems, there is a small chance of a PTE becoming visible to a different CPU before the current cache maintenance operations in update_mmu_cache(). To avoid this, cache maintenance must be handled in set_pte_at() (similar to IA-64 and PowerPC). This patch provides a unified VIPT cache handling mechanism and implements the __sync_icache_dcache() function for ARMv6 onwards architectures. It is called from set_pte_at() and replaces the update_mmu_cache(). The latter is still used on VIVT hardware where a vm_area_struct is required. Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit c01778001a4f5ad9c62d882776235f3f31922fdd Author: Catalin Marinas Date: Mon Sep 13 15:57:36 2010 +0100 ARM: 6379/1: Assume new page cache pages have dirty D-cache There are places in Linux where writes to newly allocated page cache pages happen without a subsequent call to flush_dcache_page() (several PIO drivers including USB HCD). This patch changes the meaning of PG_arch_1 to be PG_dcache_clean and always flush the D-cache for a newly mapped page in update_mmu_cache(). The patch also sets the PG_arch_1 bit in the DMA cache maintenance function to avoid additional cache flushing in update_mmu_cache(). Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 0fc73099dd25df2c5181b7bad57d1faa5cd12d3c Author: Catalin Marinas Date: Mon Sep 13 15:57:05 2010 +0100 ARM: 6378/1: Allow lazy cache flushing via PG_arch_1 for highmem pages Commit d73cd42 forced non-lazy cache flushing of highmem pages in flush_dcache_page(). This isn't needed since __flush_dcache_page() (called lazily from update_mmu_cache) can handle highmem pages (fixed by commit 7e5a69e). Signed-off-by: Catalin Marinas Acked-by: Nicolas Pitre Signed-off-by: Russell King commit 4f724beace1be4ba3dbd1a75cff3940354e3ff4f Author: Sundar Iyer Date: Wed Sep 15 10:50:59 2010 +0100 ARM: 6392/1: ux500: add ab8500-regulators machine specific data From: Sundar R Iyer Reviewed-by: Mark Brown Acked-by: Linus Walleij Acked-by: Bengt JONSSON Signed-off-by: Sundar R Iyer Signed-off-by: Russell King commit 9d704c04ff8ae61b60935d67ce334b18fc70f1b2 Author: Sundar Iyer Date: Wed Sep 15 10:45:51 2010 +0100 ARM: 6391/1: ux500: add CPU hotplug support Acked-by: Linus Walleij Signed-off-by: Sundar Iyer Signed-off-by: Russell King commit f0a7a98d1d400e2a5fd9a63ed56d30d30f2864cb Author: Rabin Vincent Date: Mon Sep 13 13:04:02 2010 +0100 ARM: 6373/1: tc35892-gpio: add setup/remove callbacks For board-specific initialization. Cc: Samuel Ortiz Cc: linux-kernel@vger.kernel.org Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f066439cfc37d498a06de76fcab8c21d4094ca64 Author: Rabin Vincent Date: Mon Sep 13 12:39:38 2010 +0100 ARM: 6372/1: ux500: add DB5500 DMA event lines Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit eaa7f2d50de08efcebb3909ad81fbd76220c9b95 Author: Rabin Vincent Date: Mon Sep 13 12:37:52 2010 +0100 ARM: 6371/1: ux500: add DB5500 pins Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 29aeb3cfeb88ecdb2febb5da247d0cf6a82f8831 Author: Linus Walleij Date: Mon Sep 6 22:15:08 2010 +0100 ARM: 6337/2: AB8500 I2C platform configuration and irq This patch adds the platform part of the AB8500 PRCMU I2C access driver. The old irq name AB4500 is changed to AB8500. Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit aa3090005d27f3c7fba915ccea36b97b669fa3ab Merge: 151b6a5 448352a Author: Russell King Date: Sun Sep 19 11:00:02 2010 +0100 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-tcc into devel-stable commit 15e408cd6ccc3f4f453d87ccd5bc7a84d59feb96 Author: Namhyung Kim Date: Tue Sep 14 21:43:48 2010 +0900 futex: Add lock context annotations queue_lock/unlock/me() and unqueue_me_pi() grab/release spinlocks but are missing proper annotations. Add them. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-3-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit a3c74c52570c0c4ac90c9a0216de800c39089ba7 Author: Namhyung Kim Date: Tue Sep 14 21:43:47 2010 +0900 futex: Mark restart_block.futex.uaddr[2] __user @uaddr and @uaddr2 fields in restart_block.futex are user pointers. Add __user and remove unnecessary casts. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-2-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit 1dcc41bb037533839753df983d31778b30b67d93 Author: Namhyung Kim Date: Tue Sep 14 21:43:46 2010 +0900 futex: Change 3rd arg of fetch_robust_entry() to unsigned int* Sparse complains: kernel/futex.c:2495:59: warning: incorrect type in argument 3 (different signedness) Make 3rd argument of fetch_robust_entry() 'unsigned int'. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-1-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit 995bd3bb5c78f3ff71339803c0b8337ed36d64fb Author: Thomas Gleixner Date: Wed Sep 15 15:11:57 2010 +0200 x86: Hpet: Avoid the comparator readback penalty Due to the overly intelligent design of HPETs, we need to workaround the problem that the compare value which we write is already behind the actual counter value at the point where the value hits the real compare register. This happens for two reasons: 1) We read out the counter, add the delta and write the result to the compare register. When a NMI or SMI hits between the read out and the write then the counter can be ahead of the event already 2) The write to the compare register is delayed by up to two HPET cycles in certain chipsets. We worked around this by reading back the compare register to make sure that the written value has hit the hardware. For certain ICH9+ chipsets this can require two readouts, as the first one can return the previous compare register value. That's bad performance wise for the normal case where the event is far enough in the future. As we already know that the write can be delayed by up to two cycles we can avoid the read back of the compare register completely if we make the decision whether the delta has elapsed already or not based on the following calculation: cmp = event - actual_count; If cmp is less than 8 HPET clock cycles, then we decide that the event has happened already and return -ETIME. That covers the above #1 and #2 problems which would cause a wait for HPET wraparound (~306 seconds). Signed-off-by: Thomas Gleixner Tested-by: Nix Tested-by: Artur Skawina Cc: Damien Wyart Tested-by: John Drescher Cc: Venkatesh Pallipadi Cc: Arjan van de Ven Cc: Andreas Herrmann Tested-by: Borislav Petkov Cc: Suresh Siddha LKML-Reference: commit a68e5c94f7d3dd64fef34dd5d97e365cae4bb42a Author: H. Peter Anvin Date: Fri Sep 17 17:06:46 2010 -0700 x86, hotplug: Move WBINVD back outside the play_dead loop On processors with hyperthreading, when only one thread is offlined the other thread can cause a spurious wakeup on the idled thread. We do not want to re-WBINVD when that happens. Ideally, we should simply skip WBINVD unless we're the last thread on a particular core to shut down, but there might be similar issues elsewhere in the system. Thus, revert to previous behavior of only WBINVD outside the loop. Partly as a result, remove the mb()'s around it: they are not necessary since wbinvd() is a serializing instruction, but they were intended to make sure the compiler didn't do any funny loop optimizations. Reported-by: Asit Mallick Signed-off-by: H. Peter Anvin Cc: Arjan van de Ven Cc: Len Brown Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: commit e6599c2ecf18002339fe81cde1fa83b37bf26290 Author: Eric Dumazet Date: Fri Sep 17 09:25:07 2010 +0000 bonding: enable gro by default gro can be enabled by default on bonding devices. Actual support depends on the lower devices. One can still use ethtool to switch off GRO if needed. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 07af7a2bfa853db3957a22f9a41f437bf0f10e63 Author: Ben Hutchings Date: Thu Sep 16 11:34:26 2010 +0000 ethtool: Add comments for valid use of flow types Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit be2902daee80b655cebd482b5ee91ffc29408121 Author: Ben Hutchings Date: Thu Sep 16 11:28:07 2010 +0000 ethtool, ixgbe: Move RX n-tuple mask fixup to ethtool The ethtool utility does not set masks for flow parameters that are not specified, so if both value and mask are 0 then this must be treated as equivalent to a mask with all bits set. Currently that is done in the only driver that implements RX n-tuple filtering, ixgbe. Move it to the ethtool core. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 3b27e105550f7c4a79ecb6d6a9c49c651c59ae9b Author: David Lamparter Date: Fri Sep 17 03:22:19 2010 +0000 netns: keep vlan slaves on master netns move previously, if a vlan master device was moved from one network namespace to another, all 802.1q and macvlan slaves were deleted. we can use dev->reg_state to figure out whether dev_change_net_namespace is happening, since that won't set dev->reg_state NETREG_UNREGISTERING. so, this changes 8021q and macvlan to ignore NETDEV_UNREGISTER when reg_state is not NETREG_UNREGISTERING. Signed-off-by: David Lamparter Reviewed-by: "Eric W. Biederman" Acked-by: Daniel Lezcano Acked-by: Patrick McHardy Signed-off-by: David S. Miller commit b71c7aaa1e2a9858f0c469026098fbd6e046d7bb Author: Giuseppe CAVALLARO Date: Fri Sep 17 03:23:42 2010 +0000 stmmac: use one memset() to reset TDES01 Use one memset() to reset all TDES01 fields instead of one by one to reduce number of instructions. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit c629882ac73cab2cd41d9948caeed633fc570fc0 Author: Giuseppe CAVALLARO Date: Fri Sep 17 03:23:41 2010 +0000 stmmac: prevent dma init stuck in case of failures. Add a limit when perform the DMA reset procedure so, in case of problems (i.e. PHY reset failed) the Kernel won't hang on the stmmac DMA initialisation blocking the Kernels execution. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit ebbb293f8b3021ae2009fcb7cb3b8a52fb5fd06a Author: Giuseppe CAVALLARO Date: Fri Sep 17 03:23:40 2010 +0000 stmmac: consolidate and tidy-up the COE support The first version of the driver had hard-coded the logic for handling the checksum offloading. This was designed according to the chips included in the STM platforms where: o MAC10/100 supports no COE at all. o GMAC fully supports RX/TX COE. This is not good for other chip configurations where, for example, the mac10/100 supports the tx csum in HW or when the GMAC has no IPC. Thanks to Johannes Stezenbach; he provided me a first draft of this patch that only reviewed the IPC for the GMAC devices. This patch also helps on SPEAr platforms where the MAC10/100 can perform the TX csum in HW. Thanks to Deepak SIKRI for his support on this. In the end, GMAC devices for STM platforms have a bugged Jumbo frame support that needs to have the Tx COE disabled for oversized frames (due to limited buffer sizes). This information is also passed through the driver's platform structure. Signed-off-by: Giuseppe Cavallaro Signed-off-by: Johannes Stezenbach Signed-off-by: Deepak SIKRI Signed-off-by: David S. Miller commit dfb8fb96ae2b5126cd0c08c0ccd7c42e1f46568a Author: Giuseppe CAVALLARO Date: Fri Sep 17 03:23:39 2010 +0000 stmmac: add CSR Clock range selection This patch adds the CSR Clock range selection. Original patch from Johannes Stezenbach fixed the CSR in the stmmac_mdio. We agreed to provide this through the platform instead of. Also thanks to Johannes for having tested it on ARM. Signed-off-by: Giuseppe Cavallaro Signed-off-by: Johannes Stezenbach Signed-off-by: David S. Miller commit ea53069231f9317062910d6e772cca4ce93de8c8 Author: H. Peter Anvin Date: Fri Sep 17 15:39:11 2010 -0700 x86, hotplug: Use mwait to offline a processor, fix the legacy case The code in native_play_dead() has a number of problems: 1. We should use MWAIT when available, to put ourselves into a deeper sleep state. 2. We use the existence of CLFLUSH to determine if WBINVD is safe, but that is totally bogus -- WBINVD is 486+, whereas CLFLUSH is a much later addition. 3. We should do WBINVD inside the loop, just in case of something like setting an A bit on page tables. Pointed out by Arjan van de Ven. This code is based in part of a previous patch by Venki Pallipadi, but unlike that patch this one keeps all the detection code local instead of pre-caching a bunch of information. We're shutting down the CPU; there is absolutely no hurry. This patch moves all the code to C and deletes the global wbinvd_halt() which is broken anyway. Originally-by: Venkatesh Pallipadi Signed-off-by: H. Peter Anvin Reviewed-by: Arjan van de Ven Cc: Len Brown Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: <20090522232230.162239000@intel.com> commit bc83cccc761953f878088cdfa682de0970b5561f Author: H. Peter Anvin Date: Fri Sep 17 15:36:40 2010 -0700 x86, mwait: Move mwait constants to a common header file We have MWAIT constants spread across three different .c files, for no good reason. Move them all into a common header file. Signed-off-by: H. Peter Anvin Reviewed-by: Arjan van de Ven Cc: Len Brown LKML-Reference: commit 900f9ac9f12dc3dd6fc8e33e16df172eafcaead6 Author: Andreas Herrmann Date: Fri Sep 17 18:02:54 2010 +0200 x86, k8-gart: Decouple handling of garts and northbridges So far we only provide num_k8_northbridges. This is required in different areas (e.g. L3 cache index disable, GART). But not all AMD CPUs provide a GART. Thus it is useful to split off the GART handling from the generic caching of AMD northbridge misc devices. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160254.GC4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 3518dd14ca888085797ca8d3a9e11c8ef9e7ae68 Author: Andreas Herrmann Date: Fri Sep 17 18:07:45 2010 +0200 x86, cacheinfo: Fix dependency of AMD L3 CID L3 cache index disable code uses PCI accesses to AMD northbridge functions. Currently the code is #ifdef CONFIG_CPU_SUP_AMD. But it should be #if (defined(CONFIG_CPU_SUP_AMD) && defined(CONFIG_PCI)) which in the end is a dependency to K8_NB. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160744.GF4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 09f250ac8faefa9deb14854e4715a139ed99617b Author: Wey-Yi Guy Date: Mon Sep 13 08:08:18 2010 -0700 iwlagn: initialize both tx/rx prio boost parameters For config bt command, initialize both tx_prio_boost and rx_prio_boost to "0". Signed-off-by: Wey-Yi Guy commit b345f4da42da69f7136ea1b83ef38b3412e51b72 Author: Wey-Yi Guy Date: Mon Sep 13 07:51:03 2010 -0700 iwlagn: minor coex API changes Adding two new parameters in config bt API. these two parameters use the 3 reserved bytes, so there is no structure size changes. Make sure set both parameters to "zero" in order to preserve previous behavior. Signed-off-by: Wey-Yi Guy commit 1d270075be62fb8212bd5afebd0bab693759a1a0 Author: Wey-Yi Guy Date: Tue Sep 7 12:42:20 2010 -0700 iwlagn: correct naming for failure reply tx status For failure tx status 0x90 and 0x91, give the correct name to reflect the errors. Signed-off-by: Wey-Yi Guy commit 0b7e5e85b0317f06d92704a5be42cc101a552ab5 Author: Jay Sternberg Date: Wed Sep 8 09:42:35 2010 -0700 iwlwifi: corrections to debug output of ucode statistics remove duplicate header and clean up format so it is defined once making changes consolicated ensuring consistancy of output. no function change to date displayed. Signed-off-by: Jay Sternberg Signed-off-by: Wey-Yi Guy commit 95b49ed013c9a8856ce768d8d4a62acfc410f73d Author: Wey-Yi Guy Date: Sun Sep 5 10:49:45 2010 -0700 iwlagn: adding aggregated frame failure status to debugfs Addition to standard tx frame failure report, adding aggregated frame failure report to debugfs Signed-off-by: Wey-Yi Guy commit 814665fef7562b31d32e515c4d91b06c8b956560 Author: Wey-Yi Guy Date: Sun Sep 5 10:49:44 2010 -0700 iwlagn: keep track of aggregated tx frames failure counter When uCode completed the aggregated frames transmission attempt, it will send tx command response with aggregated frame status. Keep track of the failure counter which help indicate any transmission error condition. Signed-off-by: Wey-Yi Guy commit e1b3fa0c22625d985cc7f82b7f3aa90a6fc75c2f Author: Wey-Yi Guy Date: Sun Sep 5 10:49:43 2010 -0700 iwlagn: log aggregation tx command status For aggregated frames with block ack, different status flag will be used as part of tx command response. Signed-off-by: Wey-Yi Guy commit 54a9aa65f749673f851ef86481940394185c1b0e Author: Wey-Yi Guy Date: Sun Sep 5 10:49:42 2010 -0700 iwlagn: keep track of failure tx status Tx command response sent to host by uCode after completed the transmission attempt. The status parameter indicates whether the transmission was successful, or else why if failed. Here we keep the counters to help understand the different failure cases. Signed-off-by: Wey-Yi Guy commit 91835ba401189a81e5ad1f932f880d8eed8c9db2 Author: Wey-Yi Guy Date: Sun Sep 5 10:49:41 2010 -0700 iwlagn: keep track fail tx reason counter If uCode fail to transmit frame, it will send reply tx back to driver with failure status; keep the counters of each failure cases for debugging. Signed-off-by: Wey-Yi Guy commit a437fbb96fe4eab241f06bbd7c7c1070ccdb2544 Author: Wey-Yi Guy Date: Sun Sep 5 10:49:38 2010 -0700 iwlagn: add bt_status_read for 5150 Include bt_status_read function pointer for 5150 device Signed-off-by: Wey-Yi Guy commit 448352ae72ef1760c19631a728a3791c1efc52f2 Author: Thomas Gleixner Date: Fri Sep 17 20:27:30 2010 +0200 MAINTAINERS: Add ARM Telechips maintainer Signed-off-by: Thomas Gleixner commit 2aea73ce22b786039906be89b0ae191d4c016c1e Author: Hans J. Koch Date: Fri Sep 17 18:21:36 2010 +0200 ARM: Add board support for Telechips TCC8000-SDK board Add support for the Telechips TCC8000-SDK development board. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 026cec6164901372c3a16b430cd405f0bb6a7c1f Author: Hans J. Koch Date: Fri Sep 17 18:20:11 2010 +0200 ARM: Add common platform devices for TCC8xxx SoCs This patch introduces a first set of platform devices for integrated peripherals of TCC8xxx processors. Drivers for these devices are available and will be posted in a second step. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 8a41fa3b3c89e5bd3c69219ddeee268bdcce886c Author: Hans J. Koch Date: Fri Sep 17 18:18:57 2010 +0200 ARM: Basic IO mappings for mach-tcc8k Map the IO ranges of TCC8xxx peripherals. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 3de7b517dfacf1deb0690dbac28f917643e49975 Author: Hans J. Koch Date: Fri Sep 17 18:17:42 2010 +0200 ARM: Add TCC8xxx system timer Add the system timer using clockevents with the internal TC32 timer. This also adds a clocksource using the same timer. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit e9268ef2252c2dfc7e2d0c435826768bb0e549ea Author: Hans J. Koch Date: Fri Sep 17 18:16:29 2010 +0200 ARM: Introduce plat-tcc irq framework Introduce lowlevel interrupt routines. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit da15797eaec795bc2a1a9adb441214a6f5ea07fc Author: Hans J. Koch Date: Fri Sep 17 18:15:11 2010 +0200 ARM: Add the clock framework for Telechips TCC8xxx processors. This adds definitions and low-level functions to handle clocks in TCC8xxx processors. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 83ef3338a2ae5d5bd9f5f6803b900b8067660054 Author: Hans J. Koch Date: Fri Sep 17 18:13:56 2010 +0200 ARM: Introduce plat-tcc This patch introduces support for the tcc platform by creating an arch/arm/plat-tcc and arch/arm/mach-tcc8k directories and adding basic include files plus Kconfig and Makefile. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 67c9660831f6b6b76866a0838466c83765ffbbd3 Author: Eric Dumazet Date: Fri Sep 17 11:56:18 2010 -0700 ethtool: change ethtool_set_gro() to use ethtool_op_get_rx_csum To be able to switch on GRO on a device, ethtool_set_gro() checks this device provides a get_rx_csum() method. Some devices dont provide this method, while they do support RX checksumming. This patch allows bonding to support GRO : ethtool -K bond0 gro on Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 457e9d2233bdde5bb5577df3e2d4d48f84c67b66 Author: Amit Kumar Salecha Date: Thu Sep 16 19:14:43 2010 +0000 qlcnic: update version 5.0.10 Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 97f29d8236aa3612986e7e7179282ff460eba686 Author: Amit Kumar Salecha Date: Thu Sep 16 19:14:42 2010 +0000 qlcnic: remove fw version check Don't compare flash and file fw version. Allow to load old fw from file than flashed fw. If file fw is present, don't skip fw re-intialization. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit aec1e8452dc364cffd0333e5632ec482f6322593 Author: Amit Kumar Salecha Date: Thu Sep 16 19:14:41 2010 +0000 qlcnic: vlan lro support LRO + GRO + vlan rx accleration support, performance increases around 20% and cpu utilization reduces around 70% on vlan interface. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 5718d3b432757ac83f65c50dd61df9c1e0d88e61 Author: Amit Kumar Salecha Date: Thu Sep 16 19:14:40 2010 +0000 qlcnic: vlan gro support GRO support + vlan rx accleration, boost around 9% performance and reduces 25% of cpu utilization on vlan interface. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit d57906633efd58ccd93f056ed436ffde5cb31aa8 Author: Amit Kumar Salecha Date: Thu Sep 16 19:14:39 2010 +0000 qlcnic: support vlan rx accleration Implemented vlan rx accleration in driver. This helps in increasing significant performance and reduces cpu utilization with GRO and LRO. Eric Dumazet: "Its a bit strange you use dev_kfree_skb_any(skb) here." "We run in NAPI mode, so you can use dev_kfree_skb()." Amit: Done. Using dev_kfree_skb(); Signed-off-by: Amit Kumar Salecha Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 045d3fe766b01921e24e2d4178e011b3b09ad4d6 Author: Martin K. Petersen Date: Fri Sep 10 01:22:07 2010 -0400 [SCSI] sd: Update thin provisioning support Add support for the Thin Provisioning VPD page and use the TPU and TPWS bits to switch between UNMAP and WRITE SAME(16) for discards. If no TP VPD page is present we fall back to old scheme where the max descriptor count combined with the max lba count are used trigger UNMAP. Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley commit 2680d722bf2c5f75225dd9acb3ec9e5a9e2652f4 Author: Artem Bityutskiy Date: Fri Sep 17 16:44:28 2010 +0300 UBIFS: introduce new flag for RO due to errors The R/O state may have various reasons: 1. The UBI volume is R/O 2. The FS is mounted R/O 3. The FS switched to R/O mode because of an error However, in UBIFS we have only one variable which represents cases 1 and 3 - 'c->ro_media'. Indeed, we set this to 1 if we switch to R/O mode due to an error, and then we test it in many places to make sure that we stop writing as soon as the error happens. But this is very unclean. One consequence of this, for example, is that in 'ubifs_remount_fs()' we use 'c->ro_media' to check whether we are in R/O mode because on an error, and we print a message in this case. However, if we are in R/O mode because the media is R/O, our message is bogus. This patch introduces new flag - 'c->ro_error' which is set when we switch to R/O mode because of an error. It also changes all "if (c->ro_media)" checks to "if (c->ro_error)" checks, because this is what the checks actually mean. We do not need to check for 'c->ro_media' because if the UBI volume is in R/O mode, we do not allow R/W mounting, and now writes can happen. This is guaranteed by VFS. But it is good to double-check this, so this patch also adds many "ubifs_assert(!c->ro_media)" checks. In the 'ubifs_remount_fs()' function this patch makes a bit more changes - it fixes the error messages as well. Signed-off-by: Artem Bityutskiy commit 3575792e005dc9994f15ae72c1c6f401d134177d Author: Julian Anastasov Date: Fri Sep 17 14:18:16 2010 +0200 ipvs: extend connection flags to 32 bits - the sync protocol supports 16 bits only, so bits 0..15 should be used only for flags that should go to backup server, bits 16 and above should be allocated for flags not sent to backup. - use IP_VS_CONN_F_DEST_MASK as mask of connection flags in destination that can be changed by user space - allow IP_VS_CONN_F_ONE_PACKET to be set in destination Signed-off-by: Julian Anastasov Signed-off-by: Patrick McHardy commit e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e Author: Peter Zijlstra Date: Fri Sep 17 11:28:50 2010 +0200 perf: Undo the per cpu-context timer stuff Revert the timer per cpu-context timers because of unfortunate nohz interaction. Fixing that would have been somewhat ugly, so go back to driving things from the regular tick. Provide a jiffies interval feature for people who want slower rotations. Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter Cc: Yinghai Lu LKML-Reference: <20100917093009.519845633@chello.nl> Signed-off-by: Ingo Molnar commit 917bdd1c9b7b0f4c22f2504c2f0c1074c8ab9df7 Author: Peter Zijlstra Date: Fri Sep 17 11:28:49 2010 +0200 perf: Fix perf_event_exit_cpu_context() Use the right cpu-context.. spotted by preempt warning on hot-unplug Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter LKML-Reference: <20100917093009.461794357@chello.nl> Signed-off-by: Ingo Molnar commit b04243ef7006cda301819f54ee7ce0a3632489e3 Author: Peter Zijlstra Date: Fri Sep 17 11:28:48 2010 +0200 perf: Complete software pmu grouping Aside from allowing software events into a !software group, allow adding !software events to pure software groups. Once we've moved the software group and attached the first !software event, the group will no longer be a pure software group and hence no longer be eligible for movement, at which point the straight ctx comparison is correct again. Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter Cc: Paul Mackerras LKML-Reference: <20100917093009.410784731@chello.nl> Signed-off-by: Ingo Molnar commit d14b12d7adbf214f33eb59f800b5c3d5ed9268e8 Author: Stephane Eranian Date: Fri Sep 17 11:28:47 2010 +0200 perf_events: Fix broken event grouping Events were not grouped anymore. The reason was that in perf_event_open(), the field event->group_leader was initialized before the function looked up the group_fd to find the event leader. This patch fixes this by reordering the code correctly. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: Robert Richter LKML-Reference: <20100917093009.360420946@chello.nl> Signed-off-by: Ingo Molnar commit 6d0aed7a38d06284db2a0e46c0a072b0c1c3299b Author: Jens Axboe Date: Fri Sep 17 10:00:46 2010 +0200 do_mounts: only enable PARTUUID for CONFIG_BLOCK When CONFIG_BLOCK is not enabled: init/do_mounts.c:71: error: implicit declaration of function 'dev_to_part' init/do_mounts.c:71: warning: initialization makes pointer from integer without a cast init/do_mounts.c:73: error: dereferencing pointer to incomplete type init/do_mounts.c:76: error: dereferencing pointer to incomplete type init/do_mounts.c:76: error: dereferencing pointer to incomplete type init/do_mounts.c:102: error: implicit declaration of function 'part_pack_uuid' init/do_mounts.c:104: error: 'block_class' undeclared (first use in this function) Reported-by: Randy Dunlap Signed-off-by: Jens Axboe commit 3ee48b6af49cf534ca2f481ecc484b156a41451d Author: Cliff Wickman Date: Thu Sep 16 11:44:02 2010 -0500 mm, x86: Saving vmcore with non-lazy freeing of vmas During the reading of /proc/vmcore the kernel is doing ioremap()/iounmap() repeatedly. And the buildup of un-flushed vm_area_struct's is causing a great deal of overhead. (rb_next() is chewing up most of that time). This solution is to provide function set_iounmap_nonlazy(). It causes a subsequent call to iounmap() to immediately purge the vma area (with try_purge_vmap_area_lazy()). With this patch we have seen the time for writing a 250MB compressed dump drop from 71 seconds to 44 seconds. Signed-off-by: Cliff Wickman Cc: Andrew Morton Cc: kexec@lists.infradead.org Cc: LKML-Reference: Signed-off-by: Ingo Molnar commit 74704ac6ea402d50c9543cb28247e6d9f521f7ae Author: Jean Pihet Date: Tue Sep 7 09:21:32 2010 +0200 tracing, perf: Add more power related events This patch adds new generic events for dynamic power management tracing: - clock events class: used for clock enable/disable and for clock rate change, - power_domain events class: used for power domains transitions. The OMAP architecture will be using the new events for PM debugging, however the new events are made generic enough to be used by all platforms. Signed-off-by: Jean Pihet Acked-by: Thomas Renninger Cc: discuss@lesswatts.org Cc: linux-pm@lists.linux-foundation.org Cc: Thomas Renninger Cc: Arjan van de Ven Cc: Peter Zijlstra Cc: Len Brown Cc: Kevin Hilman LKML-Reference: Signed-off-by: Ingo Molnar commit 0c796f91a518480fd6696ba2affed1167e840823 Author: Dan Rosenberg Date: Thu Sep 16 22:34:26 2010 -0700 drivers/net/tulip/de4x5.c: fix union member name in DE4X5_GET_REG ioctl This was previously reported as a security issue due to leakage of uninitialized stack memory. Jeff Mahoney pointed out that this is incorrect since the copied data is from a union (rather than a struct). Therefore, this patch is only under consideration for the sake of correctness, and is not security relevant. Signed-off-by: Dan Rosenberg Acked-by: Grant Grundler Signed-off-by: David S. Miller commit cd13539b8bc9ae884e6d8d9374c594adff4304e4 Author: Eric Dumazet Date: Thu Sep 16 02:58:13 2010 +0000 net: shrinks struct net_device commit ab95bfe01 (net: replace hooks in __netif_receive_skb) added rx_handler at wrong place, between two cache line aligned objects, creating a big hole (a full cache line) Move rx_handler and rx_handler_data before rx_queue, filling existing hole. Move master field in the cache line(s) used in receive path. This saves 64 bytes (or L1_CACHE_BYTES), and avoids two possible cache misses in receive path. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 94767632623c7bf5b16a0cf963ec93a8ad9acca4 Author: Eric Dumazet Date: Wed Sep 15 20:25:34 2010 +0000 ip6tnl: get rid of ip6_tnl_lock As RTNL is held while doing tunnels inserts and deletes, we can remove ip6_tnl_lock spinlock. My initial RCU conversion was conservative and converted the rwlock to spinlock, with no RTNL requirement. Use appropriate rcu annotations and modern lockdep checks as well. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit caeda9b926c608702c99f3432aae2c24298c3c1d Author: Stephen Rothwell Date: Thu Sep 16 21:39:16 2010 -0700 net: include inetdevice.h for rcu_dereference_raw api change rcu_dereference_raw() now needs to know the type of its argument. Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller commit a36c61f9025b8924f99f54d518763bee7aa84085 Author: Krishna Gudipati Date: Wed Sep 15 11:50:55 2010 -0700 [SCSI] bfa: cleanup driver We have flattened the BFA hierarchy and also reduced the number of source and header files we used to have earlier. Signed-off-by: Krishna Gudipati Signed-off-by: James Bottomley commit edaed859e63aac174fcc3fed81886b91bb124661 Author: Swen Schillig Date: Wed Sep 8 14:40:01 2010 +0200 [SCSI] zfcp: Replace status modifier functions. Replace the zfcp_modify__status functions and its accompanying wrappers with dedicated status modifier functions. This eases code readability and maintenance. Signed-off-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c9ff5d0315231b133a43e5af842bc01fb474f0d7 Author: Christof Schmitt Date: Wed Sep 8 14:40:00 2010 +0200 [SCSI] zfcp: Remove duplicated code from zfcp_ccw_set_online The steps for setting the zfcp_adapter online are the same in zfcp_ccw_set_online and zfcp_ccw_activate. Remove the code duplication by calling zfcp_ccw_activate from zfcp_ccw_set_online. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit a1ca48319a9aa1c5b57ce142f538e76050bb8972 Author: Christof Schmitt Date: Wed Sep 8 14:39:59 2010 +0200 [SCSI] zfcp: Move ACL/CFDC code to zfcp_cfdc.c Move the code evaluating the ACL/CFDC specific errors to the file zfcp_cfdc.c. With this change, all code related to the old access control feature is kept in one file, not split across zfcp_erp.c and zfcp_fsf.c. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c61b536c97f225a74cf430716fdb243dfafe9d48 Author: Christof Schmitt Date: Wed Sep 8 14:39:58 2010 +0200 [SCSI] zfcp: Reorder FCP I/O and task management handler functions Instead of calling the same handler for both, I/O and task management commands, use different handlers that call a function for the common part. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 44a24cb3731495336d77f3a955a7004997270dfd Author: Christof Schmitt Date: Wed Sep 8 14:39:57 2010 +0200 [SCSI] zfcp: Change spin_lock_bh to spin_lock_irq to fix lockdep warning With the change to use the data on the SCSI device, iterating through all LUNs/scsi_devices takes the SCSI host_lock. This triggers warnings from the lock dependency checker: ========================================================= [ INFO: possible irq lock inversion dependency detected ] 2.6.34.1 #97 --------------------------------------------------------- chchp/3224 just changed the state of lock: (&(shost->host_lock)->rlock){-.-...}, at: [<00000000003a73f4>] __scsi_iterate_devices+0x38/0xbc but this lock took another, HARDIRQ-unsafe lock in the past: (&(&qdio->req_q_lock)->rlock){+.-...} and interrupts could create inverse lock ordering between them. other info that might help us debug this: [ 24.972394] 2 locks held by chchp/3224: #0: (&(sch->lock)->rlock){-.-...}, at: [<0000000000401efa>] do_IRQ+0xb2/0x1e4 #1: (&adapter->port_list_lock){.-....}, at: [<0000000000490302>] zfcp_erp_modify_adapter_status+0x9e/0x16c [...] ========================================================= [ INFO: possible irq lock inversion dependency detected ] 2.6.34.1 #98 --------------------------------------------------------- chchp/3235 just changed the state of lock: (&(shost->host_lock)->rlock){-.-...}, at: [<00000000003a73f4>] __scsi_iterate_devices+0x38/0xbc but this lock took another, HARDIRQ-unsafe lock in the past: (&(&qdio->stat_lock)->rlock){+.-...} and interrupts could create inverse lock ordering between them. other info that might help us debug this: 2 locks held by chchp/3235: #0: (&(sch->lock)->rlock){-.-...}, at: [<0000000000401efa>] do_IRQ+0xb2/0x1e4 #1: (&adapter->port_list_lock){.-.-..}, at: [<00000000004902f6>] zfcp_erp_modify_adapter_status+0x9e/0x16c [...] To stop this warning, change the request queue lock to disable irqs, not only softirq. The changes are required only outside of the critical "send fcp command" path. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit f8210e34887e1feb977a9b6b8caa086855af40c9 Author: Christof Schmitt Date: Wed Sep 8 14:39:56 2010 +0200 [SCSI] zfcp: Allow midlayer to scan for LUNs when running in NPIV mode Enable the LUN scanning mechanism in the SCSI midlayer: - Do not set the disable_target_scan bit in the FC transport class. - Set max_lun to 0xFFFFFFFF to allow the midlayer scan to include the two-level hierachical LUNs (like 0x40XX40XX00000000, but in SCSI midlayer LUN format). - Set max_id to a high value to allow triggering the SCSI device rescan from sysfs. When running in NPIV mode, zfcp accepts all LUNs in slave_attach. When running in non-NPIV mode, the list of zfcp_unit structs determines which SCSI devices are allowed on the current system. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit b62a8d9b45b971a67a0f8413338c230e3117dff5 Author: Christof Schmitt Date: Wed Sep 8 14:39:55 2010 +0200 [SCSI] zfcp: Use SCSI device data zfcp_scsi_dev instead of zfcp_unit This is the large change to switch from using the data in zfcp_unit to zfcp_scsi_dev. Keeping everything working requires doing the switch in one piece. To ensure that no code keeps using the data in zfcp_unit, this patch also removes the data from zfcp_unit that is now being replaced with zfcp_scsi_dev. For zfcp, the scsi_device together with zfcp_scsi_dev exist from the call of slave_alloc to the call of slave_destroy. The data in zfcp_scsi_dev is initialized in zfcp_scsi_slave_alloc and the LUN is opened; the final shutdown for the LUN is run from slave_destroy. Where the scsi_device or zfcp_scsi_dev is needed, the pointer to the scsi_device is passed as function argument and inside the function converted to the pointer to zfcp_scsi_dev; this avoids back and forth conversion betweeen scsi_device and zfcp_scsi_dev. While changing the function arguments from zfcp_unit to scsi_device, the functions names are renamed form "unit" to "lun". This is to have a seperation between zfcp_scsi_dev/LUN and the zfcp_unit; only code referring to the remaining configuration information in zfcp_unit struct uses "unit". Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit fdbd1c5e27dabfa950d4b0f52a20069aeaf67b9d Author: Christof Schmitt Date: Wed Sep 8 14:39:54 2010 +0200 [SCSI] zfcp: Allow running unit/LUN shutdown without acquiring reference With the change for the LUN data to be part of the scsi_device, the slave_destroy callback will be the final call to the zfcp_erp_unit_shutdown function. The erp tries to acquire a reference to run the action asynchronously and fail, if it cannot get the reference. But calling scsi_device_get from slave_destroy will fail, because the scsi_device is already in the state SDEV_DEL. Introduce a new call into the zfcp erp to solve this: The function zfcp_erp_unit_shutdown_wait will close the LUN and wait for the erp to finish without acquiring an additional reference. The wait allows to omit the reference; the caller waiting for the erp to finish already has a reference that holds the struct in place. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit e4b9857fe628b453983cac89473a11a76a1f5786 Author: Christof Schmitt Date: Wed Sep 8 14:39:53 2010 +0200 [SCSI] zfcp: Remove ZFCP_SYSFS_FAILED macro and implement fcp_lun_show without macro These sysfs attributes will require different functions. Implement them without using macros, so that the open coded functions can be changed later. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 1daa4eb50fa5cd4c8f9c55452606e786fd42053b Author: Christof Schmitt Date: Wed Sep 8 14:39:52 2010 +0200 [SCSI] zfcp: Move code for managing zfcp_unit devices to new file Move the code for managing zfcp_unit devices to the new file zfcp_unit.c. This is in preparation for the change that zfcp_unit will only track the LUNs configured via unit_add, other data will be moved from zfcp_unit to the new struct zfcp_scsi_dev. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 57c237731b92fadc7d44824276313ec330b1989b Author: Christof Schmitt Date: Wed Sep 8 14:39:51 2010 +0200 [SCSI] zfcp: Add zfcp private struct as SCSI device driver data Add a new data structure zfcp_scsi_dev that holds zfcp private data for each SCSI device. Use scsi_transport_reserve_device to let the SCSI midlayer automatically allocate this with each SCSI device. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit d99e5f488ae28d9dfccc84435f4fd29bd1fe1b9b Author: Brian King Date: Thu Sep 9 16:20:42 2010 -0500 [SCSI] ibmvfc: Log link up/down events By default, ibmvfc does not log any async events in order to avoid flooding the log with them. Improve on this by logging by default events that are not likely to flood the log, such as link up/down. Having these events in the log will improve the ability to debug issues with ibmvfc. Signed-off-by: Brian King Signed-off-by: James Bottomley commit e6a4202aa920a25db76f0e02dabe133179293ec0 Author: Shyam Sundar Date: Tue Sep 7 20:55:32 2010 -0700 [SCSI] qla2xxx: ROM lock recovery if fw hangs while holding the lock. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 6de76cfc7db8844bc26ab9a60b20f50ad7851833 Author: Thomas Gleixner Date: Tue Sep 7 14:32:47 2010 +0000 [SCSI] aacraid: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: aacraid@adaptec.com Signed-off-by: James Bottomley commit 9b906779568f009b53254a15b283b53ae4570b93 Author: Nicholas Bellinger Date: Mon Sep 6 17:24:28 2010 -0700 [SCSI] scsi_debug: Convert to use root_device_register() and root_device_unregister() This patch updates the scsi_debug virtual LLD to use root_device_register() and root_device_unregister() from include/linux/device.h instead of device_register() and device_unregister() respectively within scsi_debug_init() and scsi_debug_exit() This simply involved converting the static struct device pseudo_primary into a pointer that is setup by the call to root_device_register(). This patch also contains the correct IS_ERR() conditional check of root_device_register() from within scsi_debug_init(). Thanks to Richard Sharpe and Dmitry Torokhov for their help with this item. Signed-off-by: Nicholas A. Bellinger Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 008443def34db1dcc8016763587a288254ea5735 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:36 2010 -0400 ath9k: fix regression which disabled ps on ath9k The patch titled "ath9k: Add new file init.c" shuffled some code around but in dong so for some reason also removed the revision check for disablign power save. Add this revision check again so we can get power save re-enabled again by default on cards newer than AR5416 and AR5418. $ git describe --contains 556242049cc3992d0ee625e9f15c4b00ea4baac8 v2.6.34-rc1~233^2~49^2~343 This patch has fixes for stable kernels [2.6.34+]. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3fac6dfdcd2b893c22b20a03dd1bf1af8b627c4b Author: Senthil Balasubramanian Date: Thu Sep 16 15:12:35 2010 -0400 ath9k: fix regression which prevents chip sleep after CAB data The patch: commit 293dc5dfdbcc16cde06e40a688394cc8ab083e48 Author: Gabor Juhos Date: Fri Jun 19 12:17:48 2009 +0200 ath9k: remove ath_rx_ps_back_to_sleep helper This helper only clears the SC_OP_WAIT_FOR_{BEACON,CAB} flags. Remove it and clear these flags directly in the approptiate places instead. Changes-licensed-under: ISC Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville introduced a regression which forgot to lift the beacon flag after we received all broadcast and multicast data. This meant we never went to sleep consuming about ~650mW on idle. This pretty much broke power save completely. This patch has fixes for stable kernels [2.6.32+]. Cc: stable@kernel.org Cc: Paul Stewart Cc: Sameer Nanda Cc: Gabor Juhos Cc: Amod Bodas Signed-off-by: Senthil Balasubramanian Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit f01a067d9e4598c71e3c9ee3a84859d2e8af4f8e Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:34 2010 -0400 mac80211: send last 3/5 probe requests as unicast Some buggy APs do not respond to unicast probe requests or send unicast probe requests very delayed so in the worst case we should try to send broadcast probe requests, otherwise we can get disconnected from these APs. Even if drivers do not have filters to disregard probe responses from foreign APs mac80211 will only process probe responses from our associated AP for re-arming connection monitoring. We need to do this since the beacon monitor does not push back the connection monitor by design so even if we are getting beacons from these type of APs our connection monitor currently relies heavily on the way the probe requests are received on the AP. An example of an AP affected by this is the Nexus One, but this has also been observed with random APs. We can probably optimize this later by using null funcs instead of probe requests. For more details refer to: http://code.google.com/p/chromium-os/issues/detail?id=5715 This patch has fixes for stable kernels [2.6.35+]. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 3bc3c0d748402e8c1f31b8569f5924d25d7b8e30 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:33 2010 -0400 mac80211: disable beacon monitor while going offchannel The beacon monitor should be disabled when going off channel to prevent spurious warnings and triggering connection deterioration work such as sending probe requests. Re-enable the beacon monitor once we come back to the home channel. This patch has fixes for stable kernels [2.6.34+]. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit d3a910a8e4e846b9a767d35483f4dc7c6de7af82 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:32 2010 -0400 mac80211: make the beacon monitor available externally This will be used by other components next. The beacon monitor was added as of 2.6.34 so these fixes are applicable only to kernels >= 2.6.34. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 4730d5977f3e12b828d354f7752cffd94bdf39e5 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:31 2010 -0400 mac80211: reset connection idle when going offchannel When we go offchannel mac80211 currently leaves alive the connection idle monitor. This should be instead postponed until we come back to our home channel, otherwise by the time we get back to the home channel we could be triggering unecesary probe requests. For APs that do not respond to unicast probe requests (Nexus One is a simple example) this means we essentially get disconnected after the probes fails. This patch has stable fixes for kernels [2.6.35+] Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 0c699c3a75d4e8d0d2c317f83048d8fd3ffe692a Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:30 2010 -0400 mac80211: reset probe send counter upon connection timer reset Upon beacon loss we send probe requests after 30 seconds of idle time and we wait for each probe response 1/2 second. We send a total of 3 probe requests before giving up on the AP. In the case that we reset the connection idle monitor we should reset the probe requests count to 0. Right now this won't help in any way but the next patch will. This patch has fixes for stable kernel [2.6.35+]. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit be099e82e9cf6d5d65d044e9ef6fc8bee3c7a113 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:29 2010 -0400 mac80211: add helper for reseting the connection monitor This will be used in another place later. The connection monitor was added as of 2.6.35 so these fixes will be applicable to >= 2.6.35. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 48a6a468198aadb54bc5d3fdd065364d43ff5197 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:28 2010 -0400 ath9k: fix enabling ANI / tx monitor after bg scan ath9k's entire logic with SC_OP_SCANNING is incorrect due to the way mac80211 currently implements the scan complete callback and we handle it in ath9k. This patch removes the flag completely in preference for the SC_OP_OFFCHANNEL which is really what we wanted. The scanning flag was used to ensure we reset ANI to the old values when we go back to the home channel, but if we are offchannel we use some defaults. The flag was also used to re-enable the TX monitor. Without this patch we simply never re-enabled ANI and the TX monitor after going offchannel. This means that after one background scan we are prone to noise issues and if we had a TX hang we would not recover. To get this to work properly we must enable ANI after we have configured the beacon timers, otherwise hardware acts really oddly. This patch has stable fixes which apply down to [2.6.36+], there *may* be a to fix this on older kernels but requires a bit of work since this patch relies on the new mac80211 flag IEEE80211_CONF_OFFCHANNEL which was introduced as of 2.6.36. Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 52b8ac92496e03d6b5619204d7f3bae6ce6eae45 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:27 2010 -0400 ath9k: fix regression on beacon loss after bgscan When we return to the home channel we were never reseting our beacon timers, this was casued by the fact that the scanning flag was still on even after we returned to our home channel. There are also other reasons why we would get a reset and if we are not off channel we always need to resynch our beacon timers, because a reset will clear them. This bug is a regression introduced on 2.6.36. The order of the changes are as follows: 5ee08656 - Sat Jul 31 - ath9k: prevent calibration during off-channel activity a0daa0e7 - Tue Jul 27 - Revert "mac80211: fix sw scan bracketing" 543708be - Fri Jun 18 - mac80211: fix sw scan bracketing mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \ --contains 5ee0865615f65f84e6ee9174771a6716c29e08e1 v2.6.36-rc1~43^2~34^2~22 mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \ --contains a0daa0e7592ada797d6835f11529097aabc27ad2 v2.6.36-rc1~571^2~64^2~13 mcgrof@tux ~/linux-2.6-allstable (git::master)$ git describe \ --contains 543708be320d7df692d24b349ca01a947b340764 v2.6.36-rc1~571^2~107^2~187 So 5ee08656 would have worked if a0daa0e7 was not committed but it was so this means 5ee08656 was broken since it assumed that when we were in the channel change routine the scan flag would be lifted. As it turns out the scan flag will be set when we are already on the home channel. For more details refer to: http://code.google.com/p/chromium-os/issues/detail?id=5715 These issues will need to be considered for our solution on reshifting the scan complete callback location on mac80211 on current development kernel work. This patch has stable fixes which apply down to [2.6.36+] Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 8ab2cd09fecc8819bbaee2d0fd8f3a092d866ce3 Author: Luis R. Rodriguez Date: Thu Sep 16 15:12:26 2010 -0400 ath9k: fix power save race conditions ath9k has a race on putting the chip into network sleep and having registers read from hardware. The race occurs because although ath9k_ps_restore() locks its own callers it makes use of some variables which get altered in the driver at different code paths. The variables are the ps_enabled and ps_flags. This is easily reprodicible in large network environments when roaming with the wpa_supplicant simple bgscan. You'd get some 0xdeadbeef read out on certain registers such as: ath: timeout (100000 us) on reg 0x806c: 0xdeadbeef & 0x01f00000 != 0x00000000 ath: RX failed to go idle in 10 ms RXSM=0xdeadbeef ath: timeout (100000 us) on reg 0x7000: 0xdeadbeef & 0x00000003 != 0x00000000 ath: Chip reset failed The fix is to protect the ath9k_config(hw, IEEE80211_CONF_CHANGE_PS) calls with a spin_lock_irqsave() which will disable contendors for these variables from interrupt context, timers, re-entry from mac80211 on the same callback, and most importantly from ath9k_ps_restore() which is the only call which will put the device into network sleep. There are quite a few threads and bug reports on these a few of them are: https://bugs.launchpad.net/ubuntu/karmic/+source/linux/+bug/407040 http://code.google.com/p/chromium-os/issues/detail?id=5709 http://code.google.com/p/chromium-os/issues/detail?id=5943 Stable fixes apply to [2.6.32+] Cc: stable@kernel.org Cc: Paul Stewart Cc: Amod Bodas Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 0f529e98498ff1a8bb264958b5fe7c0aa308d5dc Author: Rajkumar Manoharan Date: Thu Sep 16 19:56:55 2010 +0530 ath9k_htc: Fix register read through bulk pipe To optimize register read/write operations, the HTC firmwares were patched to change EP3 and EP4 pipe types from Interrupt to Bulk. So register writes are submitted as bulk urbs, but register reads are not. Also changing the register read endpoint pipe as bulk type when URBs are filled improves the register reads considerably which results in reduced scan time and CPU utilization. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 2ca27bcff7127da1aa7dd39cd2a6f7cb187e327f Author: Johannes Berg Date: Thu Sep 16 14:58:23 2010 +0200 mac80211: add p2p device type support When a driver advertises p2p device support, mac80211 will handle it, but internally it will rewrite the interface type to STA/AP rather than P2P-STA/GO since otherwise a lot of paths need to be touched that are otherwise identical. A p2p boolean tells drivers whether or not a given interface will be used for p2p or not. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 074ac8df9f93f2a35a356d92fd7f16cd846f0a03 Author: Johannes Berg Date: Thu Sep 16 14:58:22 2010 +0200 cfg80211/nl80211: introduce p2p device types This adds P2P-STA and P2P-GO as device types so we can distinguish between those and normal STA or AP (respectively) type interfaces. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f799a301abf77b87133d624164d28dc2b521e99d Author: Rajkumar Manoharan Date: Thu Sep 16 11:40:06 2010 +0530 ath9k_hw: remove warning in ath9k_hw_def_get_num_ant_config This patch fixes following warning drivers/net/wireless/ath/ath9k/eeprom_def.c: In function 'ath9k_hw_def_get_num_ant_config' drivers/net/wireless/ath/ath9k/eeprom_def.c:1425:47: warning: comparison between 'enum ath9k_hal_freq_band' and 'enum ieee80211_band' Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 65a602dd536ce45814a118322a393b956ea797fb Author: John W. Linville Date: Wed Sep 15 15:40:12 2010 -0400 libertas: correct sparse warnings CHECK drivers/net/wireless/libertas/cfg.c drivers/net/wireless/libertas/cfg.c:493:19: warning: cast to restricted __le16 CHECK drivers/net/wireless/libertas/mesh.c drivers/net/wireless/libertas/mesh.c:577:16: warning: incorrect type in assignment (different base types) drivers/net/wireless/libertas/mesh.c:577:16: expected restricted __le32 [addressable] [assigned] [usertype] id drivers/net/wireless/libertas/mesh.c:577:16: got bool Signed-off-by: John W. Linville commit 9bad82b8ae0e96483507e09463d8520bcfa78cc3 Author: John W. Linville Date: Wed Sep 15 15:26:13 2010 -0400 ath9k: make ath_ant_div_conf_fast_divbias static CHECK drivers/net/wireless/ath/ath9k/recv.c drivers/net/wireless/ath/ath9k/recv.c:1341:6: warning: symbol 'ath_ant_div_conf_fast_divbias' was not declared. Should it be static? Signed-off-by: John W. Linville commit 20c956dfbeec823082054954b2443e736455418b Author: John W. Linville Date: Wed Sep 15 15:16:22 2010 -0400 iwlwifi: fix sparse warning about wrong enum for band parameter drivers/net/wireless/iwlwifi/iwl-scan.c:386:27: warning: mixing different enum types drivers/net/wireless/iwlwifi/iwl-scan.c:386:27: int enum nl80211_band versus drivers/net/wireless/iwlwifi/iwl-scan.c:386:27: int enum ieee80211_band drivers/net/wireless/iwlwifi/iwl-scan.c:435:57: warning: mixing different enum types drivers/net/wireless/iwlwifi/iwl-scan.c:435:57: int enum ieee80211_band versus drivers/net/wireless/iwlwifi/iwl-scan.c:435:57: int enum nl80211_band drivers/net/wireless/iwlwifi/iwl-scan.c:474:53: warning: mixing different enum types drivers/net/wireless/iwlwifi/iwl-scan.c:474:53: int enum ieee80211_band versus drivers/net/wireless/iwlwifi/iwl-scan.c:474:53: int enum nl80211_band drivers/net/wireless/iwlwifi/iwl-scan.c:588:72: warning: mixing different enum types drivers/net/wireless/iwlwifi/iwl-scan.c:588:72: int enum ieee80211_band versus drivers/net/wireless/iwlwifi/iwl-scan.c:588:72: int enum nl80211_band Signed-off-by: John W. Linville commit 2d2080c3c1d52e186166afc3efe5067291e618bf Author: Johannes Berg Date: Wed Sep 15 15:13:13 2010 +0200 mac80211: set running state earlier When an interface is brought up, the recent changes to allow changing type-while-up only set the running bit after everything was done. This broke a number of things, including idle calculation for monitor interfaces, and it also broke WDS station insertion (although nobody noticed yet). Thus, change the code to set the running bit earlier, but keep it after the driver's add_interface was called because otherwise drivers may iterate over interfaces they haven't fully set up yet. Reported-by: Rajkumar Manoharan Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 46a5ebaf02d69e26ee0f47a0b8d2d9bc619240d4 Author: Johannes Berg Date: Wed Sep 15 13:28:15 2010 +0200 cfg80211/mac80211: use lockdep_assert_held Instead of using a WARN_ON(!mutex_is_locked()) use lockdep_assert_held() which compiles away completely when lockdep isn't enabled, and also is a more accurate assertion since it checks that the current thread is holding the mutex. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f5521b13880f4f4f612e1d20dd4f565122d16e04 Author: Johannes Berg Date: Tue Sep 14 22:06:53 2010 +0200 mac80211: use correct station flags lock This code is modifying the station flags, and as such should hold the flags lock so it can do so atomically vs. other flags modifications and readers. This issue was introduced when this code was added in eccb8e8f, as it used the wrong lock (thus not fixing the race that was previously documented in a comment.) Cc: stable@kernel.org [2.6.31+] Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 3905751243fd84340e027672d2f603e9009d490e Author: Ben Greear Date: Tue Sep 14 12:46:04 2010 -0700 ath9k: Print rxfilter in debugfs. Print raw and decoded rxfilter in debufs 'wiphy' file. Also, move variable-length printouts to bottom of file to make bounds checking easier. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit cfda669519241fccd5aa66c5a12bdae3dd04d5cd Author: Ben Greear Date: Tue Sep 14 12:00:22 2010 -0700 ath9k: calcrxfilter should take multiple VIFs into account. When there is more than one VIF, listen for all beacons and ensure ATH9K_RX_FILTER_MCAST_BCAST_ALL is set. Signed-off-by: Ben Greear Signed-off-by: John W. Linville commit 040e539e8e8d5585e1c3d7d15fa7215d3a691258 Author: Bruno Randolf Date: Wed Sep 8 16:05:04 2010 +0900 ath9k: Use common ath key management functions Use key management functions which have been moved to ath/key.c and remove ath9k copies of these functions and other now unused definitions. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 781f3136ff4cdd2b33149f2295fefa21f77b1c56 Author: Bruno Randolf Date: Wed Sep 8 16:04:59 2010 +0900 ath5k: Use common crypt capabilities flags Replace ah_aes_support and ah_combined_mic with common ath_crypt_caps ATH_CRYPT_CAP_CIPHER_AESCCM and ATH_CRYPT_CAP_MIC_COMBINED. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 117675d06ad2dd16fcf466669ba9700a8d589ea3 Author: Bruno Randolf Date: Wed Sep 8 16:04:54 2010 +0900 ath/ath9k: Replace common->splitmic with a flag Replace common->splitmic with ATH_CRYPT_CAP_MIC_COMBINED flag. splitmic has to be used when the ATH_CRYPT_CAP_MIC_COMBINED capability flag is not set. Signed-off-by: Bruno Randolf Acked-by: Bob Copeland Signed-off-by: John W. Linville commit d8878f83cf1cc0061e8b3bcf7dbd589410a51039 Author: Bruno Randolf Date: Wed Sep 8 16:04:49 2010 +0900 ath5k: Remove old ath5k key handling functions Remove the old ath5k key handling functions, since we now use the key management in ath common. Signed-off-by: Bruno Randolf Acked-by: Bob Copeland Signed-off-by: John W. Linville commit e0f8c2a9b879e1e65d588a40a3c88db69a7d6956 Author: Bruno Randolf Date: Wed Sep 8 16:04:43 2010 +0900 ath5k: Use common ath key management functions Use common ath key management functions in ath5k. This fixes problems with HW encryption in AP mode, which was broken in the ath5k implementation. Before (with the ath5k implementation) only one client could connect to the AP using HW encryption and WPA. When a second client connected, the first client was not able to send/receive any more packets. Because of the problems with HW encryption, software encryption was always used in AP mode, which resulted in a high CPU load (and/or low thruput) on embedded devices. Instead of trying to fix the implementation in ath5k it makes more sense to share the code with ath9k. This also enables HW encryption for AP mode again. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 1bba5b7329e15555dab90071b24ca84d0afcc635 Author: Bruno Randolf Date: Wed Sep 8 16:04:38 2010 +0900 ath: Copy key cache management functions from ath9k to ath Copied the key cache management functions from ath9k (common.c and hw.c) to ath/key.c so we can use them from ath5k, later. Minor changes have been made: - renamed ath9k_* to ath_* - replaced ah->caps.keycache_size with common->keymax - removed ATH9K_IS_MIC_ENABLED since it is always true. - the AR_PCU_MIC_NEW_LOC_ENA flag is replaced with (splitmic == 0). Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 34a1305137f484ee1806df5a00b9d8ee8d4ef758 Author: Bruno Randolf Date: Wed Sep 8 16:04:33 2010 +0900 ath: Copy cryptographic capability flags into ath This will be used later in this patch series. Signed-off-by: Bruno Randolf Signed-off-by: John W. Linville commit 9c376639297d3dd82d40e54c9cdca8da9dfc22f1 Author: Joe Perches Date: Fri Aug 20 15:13:59 2010 -0700 include/net/cfg80211.h: wiphy_ messages use dev_printk The output becomes: [ 41.261941] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit dd3932eddf428571762596e17b65f5dc92ca361b Author: Christoph Hellwig Date: Thu Sep 16 20:51:46 2010 +0200 block: remove BLKDEV_IFL_WAIT All the blkdev_issue_* helpers can only sanely be used for synchronous caller. To issue cache flushes or barriers asynchronously the caller needs to set up a bio by itself with a completion callback to move the asynchronous state machine ahead. So drop the BLKDEV_IFL_WAIT flag that is always specified when calling blkdev_issue_* and also remove the now unused flags argument to blkdev_issue_flush and blkdev_issue_zeroout. For blkdev_issue_discard we need to keep it for the secure discard flag, which gains a more descriptive name and loses the bitops vs flag confusion. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 01ea50638bc04ca5259f5711fcdedefcdde1cf43 Author: Signed-off-by: Jan Kara Date: Thu Sep 16 20:36:36 2010 +0200 block: Fix race during disk initialization When a new disk is being discovered, add_disk() first ties the bdev to gendisk (via register_disk()->blkdev_get()) and only after that calls bdi_register_bdev(). Because register_disk() also creates disk's kobject, it can happen that userspace manages to open and modify the device's data (or inode) before its BDI is properly initialized leading to a warning in __mark_inode_dirty(). Fix the problem by registering BDI early enough. This patch addresses https://bugzilla.kernel.org/show_bug.cgi?id=16312 Cc: stable@kernel.org Reported-by: Larry Finger Signed-off-by: Jan Kara Signed-off-by: Jens Axboe commit b23909695c33f53df5f1d16696b1aa5b874c1904 Author: Changli Gao Date: Thu Sep 16 19:55:03 2010 +0200 netfilter: nf_conntrack: fix the hash random initializing race nf_conntrack_alloc() isn't called with nf_conntrack_lock locked, so hash random initializing code maybe executed more than once on different CPUs. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit ed0b6d7581b54455062f09ccac123814e70cd02f Author: Changli Gao Date: Thu Sep 16 19:47:51 2010 +0200 netfilter: nf_nat: no IP_NAT_RANGE_MAP_IPS flags when alloc_null_binding() When alloc_null_binding(), no IP_NAT_RNAGE_MAP_IPS in flags means no IP address translation is needed. It isn't necessary to specify the address explicitly. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit 99ad3c53b36a056a472927de9c79eda231ecc6fe Author: Changli Gao Date: Thu Sep 16 19:45:19 2010 +0200 netfilter: nf_nat_core: don't check if the tuple is used if there is no other choice Eliminate nf_nat_used_tuple() to save some CPU cycles when there is no other choice. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit 70a851667dbd7aa3f7be9609d6580ca9861230b3 Author: Changli Gao Date: Thu Sep 16 19:37:30 2010 +0200 netfilter: use NFPROTO_IPV4 instead of AF_INET The field family of xt_target should be NFPROTO_IPV4, though NFPROTO_IPV4 and AF_INET are the same. Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit 31915ab4cbf507aadab40847cf9989da5e88b090 Author: Heiko Carstens Date: Thu Sep 16 14:42:25 2010 +0200 sched: Remove branch hints within context_switch() With 710390d9 "sched: Optimize branch hint in context_switch()" the branch hint logic within context_switch() got inversed. In fact the hints "if (likely(!mm))" and "if (likely(!prev->mm))" mean that it is likely that the previous and next task are kernel threads. That assumption is certainly counter intuitive, but Tim has shown that at least with his workload this is true. Nevertheless the truth is: it depends on the current workload. So just remove the annotations which also improves readability. Reported-by: Tim Blechmann Signed-off-by: Heiko Carstens Cc: Peter Zijlstra Cc: Mike Galbraith LKML-Reference: <20100916124225.GA2209@osiris.boeblingen.de.ibm.com> Signed-off-by: Ingo Molnar commit 1ec5584e3edf9c4bf2c88c846534d19cf986ba11 Author: Arnd Bergmann Date: Sun Aug 15 21:50:52 2010 +0200 libfs: use generic_file_llseek for simple_attr Simple attribute files need to be seekable to allow resetting the file for another read. Signed-off-by: Arnd Bergmann commit a0572d93c13d28cc25b2c286ec9378eeb4ddd46c Author: Arnd Bergmann Date: Sun Aug 15 18:32:42 2010 +0200 mac80211: disallow seeks in minstrel debug code No need for seek here, so let's just use nonseekable_open. Signed-off-by: Arnd Bergmann commit d9d2e9d5c9eead1f73f92f5fc03424dab90b6c95 Author: Arnd Bergmann Date: Sun Aug 15 18:51:56 2010 +0200 lirc: make chardev nonseekable There does not seem to be a need for lirc to allow seeking on the file descriptor, so let's just disallow this before users start relying on it. Signed-off-by: Arnd Bergmann commit aadbd4360911d7166dc04c5a4e5520b2c7914c73 Author: Arnd Bergmann Date: Tue Jul 6 23:11:07 2010 +0200 viotape: use noop_llseek Some applications try to seek on tape devices and fail if they return an error. Since we want to change the default llseek action to no_llseek, viotape needs to be changed to use noop_llseek explicitly. Signed-off-by: Arnd Bergmann commit cb3b9cf818070df1bf592b71275bcf99d8edefcb Author: Arnd Bergmann Date: Tue Jul 6 23:03:55 2010 +0200 raw: use explicit llseek file operations The raw_fops may need to seek, so there should be an explicit reference to default_llseek. raw_ctl_fops does not contain a read or write method, so we use noop_llseek to ignore seeking requests without an error. Signed-off-by: Arnd Bergmann commit 275bd41a6da179b4493171fa65eeeb2a9e47b316 Author: Arnd Bergmann Date: Tue Jul 6 22:54:51 2010 +0200 ibmasmfs: use generic_file_llseek The default for llseek will change to no_llseek, so ibmasmfs needs to add explicit .llseek assignments. Since we're dealing with regular files from a VFS perspective, use generic_file_llseek. Signed-off-by: Arnd Bergmann commit fe3b79dfdc34e562b8378fa958a503a2d5b077ff Author: Arnd Bergmann Date: Tue Jul 6 22:40:19 2010 +0200 spufs: use llseek in all file operations The default for llseek is changing, so we need explicit operations everywhere. Signed-off-by: Arnd Bergmann Cc: Jeremy Kerr Cc: linuxppc-dev@ozlabs.org commit c0b0aca0e0e8c479c43c1e126cddc5fc82b2803a Author: Arnd Bergmann Date: Tue Jul 6 19:16:33 2010 +0200 arm/omap: use generic_file_llseek in iommu_debug In future kernels, debugfs files need to specify the llseek operation explicitly to allow seeking. This sets the llseek operation in the omap iommu debugfs files to generic_file_llseek, which is appropriate for files using simple_read_from_buffer. Signed-off-by: Arnd Bergmann Cc: Tony Lindgren Cc: linux-omap@vger.kernel.org commit 05271ec424d526968d75b4dd9860f8078bcff0a6 Author: Arnd Bergmann Date: Tue Jul 6 19:10:26 2010 +0200 lkdtm: use generic_file_llseek in debugfs When the default llseek behavior gets changed to not allowing seek, all file operations that rely on the current behaviour need to use an explicit .llseek operation. The files that lkdtm uses in debugfs are regular files and they get read using simple_read_from_buffer, so generic_file_llseek is the right operation. Signed-off-by: Arnd Bergmann commit 2b18ab36cf7e956fb5b5ee12847e94fc66d496f4 Author: Arnd Bergmann Date: Tue Jul 6 19:05:31 2010 +0200 net/wireless: use generic_file_llseek in debugfs The default llseek operation is changing from default_llseek to no_llseek, so all code relying on the current behaviour needs to make that explicit. The wireless driver infrastructure and some of the drivers make use of generated debugfs files, so they cannot be converted by our script that automatically determines the right operation. All these files use debugfs and they typically rely on simple_read_from_buffer, so the best llseek operation here is generic_file_llseek. Signed-off-by: Arnd Bergmann Cc: "John W. Linville" Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org commit dc880abef75e7c62c9048171f5112500f36a9244 Author: Arnd Bergmann Date: Tue Jul 6 18:54:47 2010 +0200 drm: use noop_llseek The drm device drivers currently allow seeking on the character device but never care about the actual file position. When we change the default llseek operation to be no_llseek, calling llseek on a drm device would return an error condition, which is an API change. Explicitly setting noop_llseek lets us keep the current API. Signed-off-by: Arnd Bergmann Cc: David Airlie Cc: dri-devel@lists.freedesktop.org commit 7c996361ef0d02ef8c1435902c909d14195adcdc Author: Yinghai Lu Date: Thu Sep 16 00:20:36 2010 -0700 arm, memblock: Fix the sparsemem build Stephen Rothwell reported this build failure: arch/arm/mm/init.c: In function 'arm_memory_present': arch/arm/mm/init.c:260: warning: ISO C90 forbids mixed declarations and code Caused by commit 719c1514f2 ("memblock/arm: Use new accessors") which forgot a closing brace on a new for_each_memblock() in arm_memory_present(). Reported-by: Stephen Rothwell Signed-off-by: Yinghai Lu Cc: Peter Zijlstra Cc: Benjamin Herrenschmidt Cc: Russell King LKML-Reference: <4C91C544.5050907@kernel.org> Signed-off-by: Ingo Molnar commit 2786c4e5e54802c34297e55050fef3e862a27b3f Author: Vivek Goyal Date: Wed Sep 15 17:06:38 2010 -0400 blkio: Documentation Update o Documentation update Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 8e89d13f4ede2467629a971618537430fafaaea3 Author: Vivek Goyal Date: Wed Sep 15 17:06:37 2010 -0400 blkio: Implementation of IOPS limit logic o core logic of implementing IOPS throttling. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 7702e8f45b0a3bb262b9366c60beb5445758d94c Author: Vivek Goyal Date: Wed Sep 15 17:06:36 2010 -0400 blk-cgroup: cgroup changes for IOPS limit support o cgroup changes for IOPS throttling rules. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit e43473b7f223ec866f7db273697e76c337c390f9 Author: Vivek Goyal Date: Wed Sep 15 17:06:35 2010 -0400 blkio: Core implementation of throttle policy o Actual implementation of throttling policy in block layer. Currently it implements READ and WRITE bytes per second throttling logic. IOPS throttling comes in later patches. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 4c9eefa16c6f124ffcc736cb719b24ea27f85017 Author: Vivek Goyal Date: Wed Sep 15 17:06:34 2010 -0400 blk-cgroup: Introduce cgroup changes for throttling policy o cgroup chagnes for throttle policy. o Introduces READ and WRITE bytes per second throttling rules. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 062a644d6121d5e2f51c0b2ca0cbc5155ebf845b Author: Vivek Goyal Date: Wed Sep 15 17:06:33 2010 -0400 blk-cgroup: Prepare the base for supporting more than one IO control policies o This patch prepares the base for introducing new IO control policies. Currently all the code is written knowing there is only one policy and that is proportional bandwidth. Creating infrastructure for newer policies to come in. o Also there were many functions which were generated using macro. It was very confusing. Got rid of those. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit af41d7bd9b685ab4e8f930627874ba4f4728e128 Author: Vivek Goyal Date: Wed Sep 15 17:06:32 2010 -0400 blk-cgroup: Kill the header printed at the start of blkio.weight_device file o Kill extra "dev weight" header which is printed when somebody reads blkio.weight_device file. This really seems to be out of convention. No other blkio files are printing any header at the start of file. I think it is ok to just print values and how to interpret values should be part of documentation. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe commit 38b6f45a97bbb8536cc7d095b577f580bd4d643e Author: Jens Axboe Date: Thu Sep 16 08:33:54 2010 +0200 core: match_dev_by_uuid() should not be marked __init It is also called outside the scope of init functions. Stephen reports: WARNING: init/mounts.o(.text+0x21a): Section mismatch in reference from the function name_to_dev_t() to the function .init.text:match_dev_by_uuid() The function name_to_dev_t() references the function __init match_dev_by_uuid(). This is often because name_to_dev_t lacks a __init annotation or the annotation of match_dev_by_uuid is wrong. Reported-by: Stephen Rothwell Signed-off-by: Jens Axboe commit 8786fb70ccb36c7cff64680bb80c46d3a09d44db Author: Jens Axboe Date: Thu Sep 16 08:27:34 2010 +0200 aic7xxx_old: removed unused 'req' variable After the patch "block: remove spurious uses of REQ_HARDBARRIER", we no longer use 'req' in aic7xxx_buildscb(). Kill it. Reported-by: Stephen Rothwell Signed-off-by: Jens Axboe commit 2610a25406087ef797f4187e7f82dd04335056c7 Author: Namhyung Kim Date: Thu Sep 16 12:55:57 2010 +0900 sg: fix a warning in blk_rq_aligned() call 2nd argument of blk_rq_aligned() has changed to 'unsigned long' by the previous commit 'block: fix an address space warning in blk-map.c'. That commit neglected to update a user of that function. Signed-off-by: Namhyung Kim Signed-off-by: Jens Axboe commit 16c3ea785fe4a383c6675dfe7316f3c815755bdd Author: Brandon Philips Date: Wed Sep 15 09:24:24 2010 +0000 net: enable GRO by default for vlan devices Currently vlan devices don't have GRO by default as none of the Ethernet drivers add NETIF_F_GRO to their vlan_features. As GRO is a software feature add GRO to dev->vlan_features in register_netdevice() and let vlan_dev_init() take care that it gets enabled only when dev->features has NETIF_F_GRO too. Signed-off-by: Brandon Philips Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit b1cbd5f980863eb97f687baba95850c334c83a47 Author: Breno Leitao Date: Wed Sep 15 17:54:22 2010 +0000 ehea: Remove a silly return This patch removes the unconditional return in the end of the function check_sqs() Signed-off-by: Breno Leitao Signed-off-by: David S. Miller commit 1953925ea61cd1a77828deddc61d000303dbbb97 Author: stephen hemminger Date: Wed Sep 15 17:22:17 2010 +0000 sky2: enable GRO by default The driver has supported GRO for a while, but it was not enabled by default. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 95ae6b228f814fc0528d0506ee9f18ac333d6851 Author: Eric Dumazet Date: Wed Sep 15 04:04:31 2010 +0000 ipv4: ip_ptr cleanups dev->ip_ptr is protected by rtnl and rcu. Yet some places dont use appropriate primitives and/or locking rules. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9e0064a5456fd75fd7c70f6f3692c7f732f91a65 Author: David S. Miller Date: Wed Sep 15 21:34:41 2010 -0700 phonet: Fix build warning. net/phonet/socket.c: In function ‘pn_res_seq_show’: net/phonet/socket.c:726: warning: format ‘%02X’ expects type ‘unsigned int’, but argument 3 has type ‘long int’ Signed-off-by: David S. Miller commit 274a517ec13b3b47047b97a2e7c912138c9806e0 Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:30:15 2010 +0000 Phonet: resource routing documentation Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 507215f8d04f9e61f38c975e61d93bcafd30815f Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:30:14 2010 +0000 Phonet: list subscribed resources via proc_fs Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit b6a563b2af4ec5b0363cf89869ba234c0e2cd3da Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:30:13 2010 +0000 Phonet: look up the resource routing table when forwarding Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 7417fa83c1a8b75a03bd9b9b358999f38e771eab Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:30:12 2010 +0000 Phonet: hook resource routing to userspace via ioctl()'s I wish we could use something cleaner, such as bind(). But that would not work since resource subscription is orthogonal/in addition to the normal object ID allocated via bind(). This is similar to multicasting which also uses ioctl()'s. Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 4e3d16ce5e82648d7f4dfd28b6cf8fe2e9a9efc3 Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:30:11 2010 +0000 Phonet: resource routing backend When both destination device and object are nul, Phonet routes the packet according to the resource field. In fact, this is the most common pattern when sending Phonet "request" packets. In this case, the packet is delivered to whichever endpoint (socket) has registered the resource. This adds a new table so that Linux processes can register their Phonet sockets to Phonet resources, if they have adequate privileges. (Namespace support is not implemented at the moment.) Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 6482f554e2b9cbe733d63124765104f29cf0c9ad Author: RĂ©mi Denis-Courmont Date: Wed Sep 15 12:19:53 2010 +0000 Phonet: remove dangling pipe if an endpoint is closed early Closing a pipe endpoint is not normally allowed by the Phonet pipe, other than as a side after-effect of removing the pipe between two endpoints. But there is no way to prevent Linux userspace processes from being killed or suffering from bugs, so this can still happen. We might as well forcefully close Phonet pipe endpoints then. The cellular modem supports only a few existing pipes at a time. So we really should not leak them. This change instructs the modem to destroy the pipe if either of the pipe's endpoint (Linux socket) is closed too early. Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 7fedd7e5dfeb0f6bd69ee120b5c44a5e49892e47 Merge: 1a19eb7 37efb03 Author: David S. Miller Date: Wed Sep 15 20:21:48 2010 -0700 Merge branch 'dccp' of git://eden-feed.erg.abdn.ac.uk/net-next-2.6 commit 1a19eb753a591f8b39946b7fda91b25f07454835 Author: Arnd Bergmann Date: Tue Sep 14 09:35:05 2010 +0000 misdn: kill big kernel lock The use of the big kernel lock in misdn is completely bogus, so let's just remove it. Signed-off-by: Arnd Bergmann Cc: Karsten Keil Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 72250d44bc76d3d7fa9253aeeb063a467e2458fa Author: Arnd Bergmann Date: Tue Sep 14 09:35:04 2010 +0000 i4l: kill big kernel lock The isdn4linux driver uses the big kernel lock only to serialize access to a few fields in its own modem_info structure. The easiest replacement is a driver-wide mutex. More fine-grained locking would be more appropriate here, but likely harder to implement. Signed-off-by: Arnd Bergmann Cc: Karsten Keil Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 0a5f1d476aef43916abb2b8634ebff23ef2c05f6 Author: Arnd Bergmann Date: Tue Sep 14 10:22:36 2010 +0000 irda/irnet: use noop_llseek There may be applications trying to seek on the irnet character device, so we should use noop_llseek to avoid returning an error when the default llseek changes to no_llseek. Signed-off-by: Arnd Bergmann Cc: Samuel Ortiz Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 3a43be3c328ff42327da0b141de360dc4587aab7 Author: Eric Dumazet Date: Wed Sep 15 11:35:10 2010 +0000 sit: get rid of ipip6_lock As RTNL is held while doing tunnels inserts and deletes, we can remove ipip6_lock spinlock. My initial RCU conversion was conservative and converted the rwlock to spinlock, with no RTNL requirement. Use appropriate rcu annotations and modern lockdep checks as well. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 1507850b400492fdedc3064d3b8db5e9a1c871e3 Author: Eric Dumazet Date: Wed Sep 15 11:07:53 2010 +0000 gre: get rid of ipgre_lock As RTNL is held while doing tunnels inserts and deletes, we can remove ipgre_lock spinlock. My initial RCU conversion was conservative and converted the rwlock to spinlock, with no RTNL requirement. Use appropriate rcu annotations and modern lockdep checks as well. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit b7285b7912776a4492744949c747c88d539006fa Author: Eric Dumazet Date: Wed Sep 15 11:07:24 2010 +0000 ipip: get rid of ipip_lock As RTNL is held while doing tunnels inserts and deletes, we can remove ipip_lock spinlock. My initial RCU conversion was conservative and converted the rwlock to spinlock, with no RTNL requirement. Use appropriate rcu annotations and modern lockdep checks as well. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7dff59efbb0e8b0f81c95fd40379c0d0c757c808 Author: Eric Dumazet Date: Wed Sep 15 11:07:15 2010 +0000 net: add rtnl_dereference() We sometime want to dereference an rcu protected pointer while holding RTNL. Use a macro to hide all lockdep details. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit fa47f7e52874683a9659df2f1f143105f676dc0f Author: Suresh Siddha Date: Fri Aug 27 11:09:50 2010 -0700 x86, x2apic: Simplify apic init in SMP and UP builds Move enable_IR_x2apic() inside the default_setup_apic_routing(), and for SMP platforms, move the default_setup_apic_routing() after smp_sanity_check(). This cleans up the code that tries to avoid multiple calls to default_setup_apic_routing() when smp_sanity_check() fails (which goes through the APIC_init_uniprocessor() path). Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.173087246@sbsiddha-MOBL3.sc.intel.com> Signed-off-by: H. Peter Anvin commit 62a92f4c69cd1d9361ad8c16be1dd16e6821bc15 Author: Suresh Siddha Date: Fri Aug 27 11:09:49 2010 -0700 x86, intr-remap: Remove IRTE setup duplicate code Remove IRTE setup duplicate code with prepare_irte(). Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.095067319@sbsiddha-MOBL3.sc.intel.com> Signed-off-by: H. Peter Anvin commit 75e3cfbed6f71a8f151dc6e413b6ce3c390030cb Author: Suresh Siddha Date: Fri Aug 27 11:09:48 2010 -0700 x86, intr-remap: Set redirection hint in the IRTE Currently the redirection hint in the interrupt-remapping table entry is set to 0, which means the remapped interrupt is directed to the processors listed in the destination. So in logical flat mode in the presence of intr-remapping, this results in a single interrupt multi-casted to multiple cpu's as specified by the destination bit mask. But what we really want is to send that interrupt to one of the cpus based on the lowest priority delivery mode. Set the redirection hint in the IRTE to '1' to indicate that we want the remapped interrupt to be directed to only one of the processors listed in the destination. This fixes the issue of same interrupt getting delivered to multiple cpu's in the logical flat mode in the presence of interrupt-remapping. While there is no functional issue observed with this behavior, this will impact performance of such configurations (<=8 cpu's using logical flat mode in the presence of interrupt-remapping) Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.013051492@sbsiddha-MOBL3.sc.intel.com> Cc: Weidong Han Cc: # [v2.6.32+] Signed-off-by: H. Peter Anvin commit 93f3b86fb1bd0ad7b4a5eb1ad1fdae2b290633b7 Author: Joel Becker Date: Wed Sep 15 17:00:58 2010 -0700 ocfs2: Initialize the bktcnt variable properly, and call it bucket_count Signed-off-by: Joel Becker commit c0e1a3e80dc030cd54f06416efbf9e439bf6ecb7 Author: Joel Becker Date: Wed Sep 15 16:56:54 2010 -0700 ocfs2: Silence unused warning. When CONFIG_OCFS2_DEBUG_MASKLOG is undefined, we don't use the dentry variable in ocfs2_sync_file(). Let's just move all access to the dentry inside the logging call. Signed-off-by: Joel Becker commit e0de7c93b950b9e784894efc4b529c6958cb747a Author: Ben Hutchings Date: Tue Sep 14 09:13:08 2010 +0000 ethtool: Remove unimplemented flow specification types struct ethtool_rawip4_spec and struct ethtool_ether_spec are neither commented nor used by any driver, so remove them. Adjust padding in the user-visible unions that included these structures. Fix references to struct ethtool_rawip4_spec in ethtool_get_rx_ntuple(), which should use struct ethtool_usrip4_spec. struct ethtool_usrip4_spec cannot hold IPv6 host addresses and there is no separate structure that can, so remove ETH_RX_NFC_IP6 and the reference to it in niu. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit e035587305011432ee07f69f9738b3c7ef7f3684 Author: Ben Hutchings Date: Tue Sep 14 09:10:03 2010 +0000 ethtool: Complete kernel-doc comments for RX flow filter and hash control There are now several interfaces within the ethtool API for getting and setting RX flow filtering and hashing behaviour, most of which are poorly documented. This adds kernel-doc comments for all these interfaces, based on the existing incomplete comments and on the initial implementations. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit f833c4c181e4e948758b7b252322f50273100d30 Author: Matt Carlson Date: Wed Sep 15 09:00:01 2010 +0000 tg3: phy tmp variable roundup The tg3's phy routines define temporary variables in many locations within the same routine. This patch unifies all temporary variables into one location. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit a4a8bb15aed20ff74aa3ca14a4f2c0d62efd8391 Author: Matt Carlson Date: Wed Sep 15 09:00:00 2010 +0000 tg3: Dynamically allocate VPD data memory This patch eases stack pressure by dynamically allocating the memory used to temporarily store VPD data. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 02e96080af2b70313f2ffc8c1b03ae2f9d8c65ac Author: Matt Carlson Date: Wed Sep 15 08:59:59 2010 +0000 tg3: Use skb_is_gso_v6() This patch converts the driver to prefer the skb_is_gso_v6() helper over the explicit inlined version. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 8fea32b9555726d35b91492d17fc21c7874d36f9 Author: Matt Carlson Date: Wed Sep 15 08:59:58 2010 +0000 tg3: Move producer ring struct to tg3_napi Now that each NAPI instance has its own producer ring, it no longer makes sense to keep the producer ring structure external. This patch migrates the producer ring struct to tg3_napi and pivots the code to the new implementation. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 6fd45cb814709767a1704b541aa91647b7f275cf Author: Matt Carlson Date: Wed Sep 15 08:59:57 2010 +0000 tg3: Clarify semantics of TG3_IRQ_MAX_VECS TG3_IRQ_MAX_VECS should be seen as the maximum number of vectors that any device could be expected to use. tp->irq_max represents the maximum number of vectors the current device can use. This patch clarifies the semantics of the code to match the above description. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 2e9f7a7408d264f01d4477c564ef5c6b610cd10f Author: Matt Carlson Date: Wed Sep 15 08:59:56 2010 +0000 tg3: Unlock 5717 B0+ support This patch adjusts the driver to use the tg3_start_xmit_dma_bug() transmit routine for all revisions of 5717 asic rev devices and then allows the driver to attach to B0 and later devices. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit dc6d074457f1551f9357f773a4eda09a3d5ef150 Author: Matt Carlson Date: Wed Sep 15 08:59:55 2010 +0000 tg3: Don't send APE events for NCSI firmware NCSI firmware does not accept APE events. It relies on a "driver state" location in shared memory to tell it what the driver's current state is. This patch pivots the code to use the new driver state scheme. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit f0392d24485e4c144d2741a5424f069b8b5f30e7 Author: Matt Carlson Date: Wed Sep 15 08:59:54 2010 +0000 tg3: Disable TSS It was recently discovered that enabling TSS can lockup the device. This patch disables the feature until a suitable workaround can be found. Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 41a8a7ee4a78216962f3afcea5968c04d0ab3b08 Author: Matt Carlson Date: Wed Sep 15 08:59:53 2010 +0000 tg3: Fix read DMA FIFO overruns on recent devices Earlier versions of tg3 devices had a problem where the read DMA FIFO could be overrun in certain edge conditions. The fix was to limit the number of rx BDs the hardware would fetch at a time. For later devices (5761, 5784 and later ASIC revs), there is a hardware fix that must be enabled to fix the same problem. This patch adds that hardware fix. There is a gap in the ASIC revision lineage where neither fix is applied. This is intentional as these ASIC revisions are not afflicted by the bug. Reviewed-by: Benjamin Li Reviewed-by: Michael Chan Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit 3661ca66a42e306aaf53246fb75aec1ea01be0f0 Author: Yinghai Lu Date: Wed Sep 15 13:05:29 2010 -0700 memblock: Fix section mismatch warnings Stephen found a bunch of section mismatch warnings with the new memblock changes. Use __init_memblock to replace __init in memblock.c and remove __init in memblock.h. We should not use __init in header files. Reported-by: Stephen Rothwell Tested-by: Stephen Rothwell Signed-off-by: Yinghai Lu Cc: Peter Zijlstra Cc: Benjamin Herrenschmidt LKML-Reference: <4C912709.2090201@kernel.org> Signed-off-by: Ingo Molnar commit 54066a57c584ee8ce767053116fc4943ed1168b5 Author: Arnd Bergmann Date: Mon Mar 22 20:55:11 2010 +0100 hpet: kill BKL, add compat_ioctl hpet uses the big kernel lock in its ioctl and open functions. Replace this with a private mutex to be sure. Since we're already touching the ioctl function, add the compat_ioctl version as well -- all commands except HPET_INFO are compatible and that one is easy to add. Signed-off-by: Arnd Bergmann Cc: Clemens Ladisch Cc: Bob Picco commit 609146fdb319cebce93be550938ab852f7bade90 Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 ipmi: autoconvert trivial BKL users to private mutex All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann Acked-by: Corey Minyard Cc: openipmi-developer@lists.sourceforge.net commit d851b6e04ee978b0c1b187bee682592aa72f22ea Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 mac: autoconvert trivial BKL users to private mutex All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: linuxppc-dev@ozlabs.org commit 5aa82940b23d0c6e4083d48e387a16b8ad530a47 Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 mtd: autoconvert trivial BKL users to private mutex All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann Cc: David Woodhouse Cc: linux-mtd@lists.infradead.org commit c45d15d24eb2b49bf734e1e5e7e103befb76b19b Author: Arnd Bergmann Date: Wed Jun 2 14:28:52 2010 +0200 scsi: autoconvert trivial BKL users to private mutex All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*/d' ${file} else sed -i 's/include.*.*$/include /g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann Cc: linux-scsi@vger.kernel.org Cc: "James E.J. Bottomley" commit 0abee5260babe0a12d468b485a28336551697925 Author: Changli Gao Date: Wed Sep 15 19:24:50 2010 +0200 netfilter: nf_nat: add nf_nat_csum() Add a static function nf_nat_csum() to replace the duplicate code in nf_nat_mangle_udp_packet() and __nf_nat_mangle_tcp_packet(). Signed-off-by: Changli Gao Signed-off-by: Patrick McHardy commit 892df7f81c31ce7f85778aa78094e8d1f19b8413 Author: Udo van den Heuvel Date: Tue Sep 14 07:15:08 2010 +0200 x86: HPET force enable for CX700 / VIA Epia LT Allow using HPET with the hpet=force command line option on VIA EPIA CX700 systems. Signed-off-by: Udo van den Heuvel Cc: Robert Hancock LKML-Reference: <4C8F04DC.5060303@xs4all.nl> Signed-off-by: Thomas Gleixner commit b5af921ec02333e943efb59aca4f56b78fc0e100 Author: Will Drewry Date: Tue Aug 31 15:47:07 2010 -0500 init: add support for root devices specified by partition UUID This is the third patch in a series which adds support for storing partition metadata, optionally, off of the hd_struct. One major use for that data is being able to resolve partition by other identities than just the index on a block device. Device enumeration varies by platform and there's a benefit to being able to use something like EFI GPT's GUIDs to determine the correct block device and partition to mount as the root. This change adds that support to root= by adding support for the following syntax: root=PARTUUID=hex-uuid Signed-off-by: Will Drewry Signed-off-by: Jens Axboe commit eec7ecfede74bb996060efefd5c157acd5794e8a Author: Will Drewry Date: Tue Aug 31 15:47:06 2010 -0500 genhd, efi: add efi partition metadata to hd_structs This change extends the partition_meta_info structure to support EFI GPT-specific metadata and ensures that data is copied in on partition scanning. Signed-off-by: Will Drewry Signed-off-by: Jens Axboe commit 6d1d8050b4bc89d0165d29b58e894aeba2564a97 Author: Will Drewry Date: Tue Aug 31 15:47:05 2010 -0500 block, partition: add partition_meta_info to hd_struct I'm reposting this patch series as v4 since there have been no additional comments, and I cleaned up one extra bit of unneeded code (in 3/3). The patches are against Linus's tree: 2bfc96a127bc1cc94d26bfaa40159966064f9c8c (2.6.36-rc3). Would this patchset be suitable for inclusion in an mm branch? This changes adds a partition_meta_info struct which itself contains a union of structures that provide partition table specific metadata. This change leaves the union empty. The subsequent patch includes an implementation for CONFIG_EFI_PARTITION-based metadata. Signed-off-by: Will Drewry Signed-off-by: Jens Axboe commit 144177991ca624841ddbd1e7edff958fc0f6d1fe Author: Namhyung Kim Date: Wed Sep 15 13:08:27 2010 +0200 block: fix an address space warning in blk-map.c Change type of 2nd parameter of blk_rq_aligned() into unsigned long and remove unnecessary casting. Now we can call it with 'uaddr' instead of 'ubuf' in __blk_rq_map_user() so that it can remove following warnings from sparse: block/blk-map.c:57:31: warning: incorrect type in argument 2 (different address spaces) block/blk-map.c:57:31: expected void *addr block/blk-map.c:57:31: got void [noderef] *ubuf However blk_rq_map_kern() needs one more local variable to handle it. Signed-off-by: Namhyung Kim Signed-off-by: Jens Axboe commit 37efb03fbd0935f5f85a0538c46b53be5cf40504 Author: Gerrit Renker Date: Tue Sep 14 20:21:29 2010 +0200 dccp ccid-3: Simplify and consolidate tx_parse_options This simplifies and consolidates the TX option-parsing code: 1. The Loss Intervals option is not currently used, so dead code related to this option is removed. I am aware of no plans to support the option, but if someone wants to implement it (e.g. for inter-op tests), it is better to start afresh than having to also update currently unused code. 2. The Loss Event and Receive Rate options have a lot of code in common (both are 32 bit, both have same length etc.), so this is consolidated. 3. The test against GSR is not necessary, because - on first loading CCID3, ccid_new() zeroes out all fields in the socket; - ccid3_hc_tx_packet_recv() treats 0 and ~0U equivalently, due to pinv = opt_recv->ccid3or_loss_event_rate; if (pinv == ~0U || pinv == 0) hctx->p = 0; - as a result, the sequence number field is removed from opt_recv. Signed-off-by: Gerrit Renker commit d2c726309d88df3c5568486e4b5b9e4c3150903f Author: Gerrit Renker Date: Tue Sep 14 20:18:00 2010 +0200 dccp ccid-3: remove buggy RTT-sampling history lookup This removes the RTT-sampling function tfrc_tx_hist_rtt(), since 1. it suffered from complex passing of return values (the return value both indicated successful lookup while the value doubled as RTT sample); 2. when for some odd reason the sample value equalled 0, this triggered a bug warning about "bogus Ack", due to the ambiguity of the return value; 3. on a passive host which has not sent anything the TX history is empty and thus will lead to unwanted "bogus Ack" warnings such as ccid3_hc_tx_packet_recv: server(e7b7d518): DATAACK with bogus ACK-28197148 ccid3_hc_tx_packet_recv: server(e7b7d518): DATAACK with bogus ACK-26641606. The fix is to replace the implicit encoding by performing the steps manually. Furthermore, the "bogus Ack" warning has been removed, since it can actually be triggered due to several reasons (network reordering, old packet, (3) above), hence it is not very useful. Signed-off-by: Gerrit Renker commit 20cbd3e120a0c20bebe420e1fed0e816730bb988 Author: Gerrit Renker Date: Tue Sep 14 20:16:59 2010 +0200 dccp ccid-3: A lower bound for the inter-packet scheduling algorithm This fixes a subtle bug in the calculation of the inter-packet gap and shows that t_delta, as it is currently used, is not needed. The algorithm from RFC 5348, 8.3 below continually computes a send time t_nom, which is initialised with the current time t_now; t_gran = 1E6 / HZ specifies the scheduling granularity, s the packet size, and X the sending rate: t_distance = t_nom - t_now; // in microseconds t_delta = min(t_ipi, t_gran) / 2; // `delta' parameter in microseconds if (t_distance >= t_delta) { reschedule after (t_distance / 1000) milliseconds; } else { t_ipi = s / X; // inter-packet interval in usec t_nom += t_ipi; // compute the next send time send packet now; } Problem: -------- Rescheduling requires a conversion into milliseconds (sk_reset_timer()). The highest jiffy resolution with HZ=1000 is 1 millisecond, so using a higher granularity does not make much sense here. As a consequence, values of t_distance < 1000 are truncated to 0. This issue has so far been resolved by using instead if (t_distance >= t_delta + 1000) reschedule after (t_distance / 1000) milliseconds; This is unnecessarily large, a lower bound is t_delta' = max(t_delta, 1000). And it implies a further simplification: a) when HZ >= 500, then t_delta <= t_gran/2 = 10^6/(2*HZ) <= 1000, so that t_delta' = MAX(1000, t_delta) = 1000 (constant value); b) when HZ < 500, then t_delta = 1/2*MIN(rtt, t_ipi, t_gran) <= t_gran/2, so that 1000 <= t_delta' <= t_gran/2. The maximum error of using a constant t_delta in (b) is less than half a jiffy. Fix: ---- The patch replaces t_delta with a constant, whose value depends on CONFIG_HZ, changing the above algorithm to: if (t_distance >= t_delta') reschedule after (t_distance / 1000) milliseconds; where t_delta' = 10^6/(2*HZ) if HZ < 500, and t_delta' = 1000 otherwise. Signed-off-by: Gerrit Renker commit 635c17c2b2b4e5cd34f5dcba19d751b4e58533c2 Author: Namhyung Kim Date: Wed Sep 15 10:04:30 2010 +0900 kprobes: Add sparse context annotations This removes following warnings when build with C=1 warning: context imbalance in 'kretprobe_hash_lock' - wrong count at exit warning: context imbalance in 'kretprobe_table_lock' - wrong count at exit warning: context imbalance in 'kretprobe_hash_unlock' - unexpected unlock warning: context imbalance in 'kretprobe_table_unlock' - unexpected unlock Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-6-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 6abded71d730322df96c5b7f4ab952ffd5a0080d Author: Namhyung Kim Date: Wed Sep 15 10:04:29 2010 +0900 kprobes: Remove __dummy_buf Remove __dummy_buf which is needed for kallsyms_lookup only. use kallsysm_lookup_size_offset instead. Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-5-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 6376b2297502e72255b7eb2893c6044ad5a7b5f4 Author: Namhyung Kim Date: Wed Sep 15 10:04:28 2010 +0900 kprobes: Make functions static Make following (internal) functions static to make sparse happier :-) * get_optimized_kprobe: only called from static functions * kretprobe_table_unlock: _lock function is static * kprobes_optinsn_template_holder: never called but holding asm code Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-4-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 05662bdb64c746079de7ac4dc4fb4caa5e8e119f Author: Namhyung Kim Date: Wed Sep 15 10:04:27 2010 +0900 kprobes: Verify jprobe entry point Verify jprobe's entry point is a function entry point using kallsyms' offset value. Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-3-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit edbaadbe42b0b790618ec49d29626223529d8195 Author: Namhyung Kim Date: Wed Sep 15 10:04:26 2010 +0900 kprobes: Remove redundant address check Remove call to kernel_text_address() in register_jprobes() because it is called right after in register_kprobe(). Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-2-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 38a81da2205f94e8a2a834b51a6b99c91fc7c2e8 Author: Matt Helsley Date: Mon Sep 13 13:01:20 2010 -0700 perf events: Clean up pid passing The kernel perf event creation path shouldn't use find_task_by_vpid() because a vpid exists in a specific namespace. find_task_by_vpid() uses current's pid namespace which isn't always the correct namespace to use for the vpid in all the places perf_event_create_kernel_counter() (and thus find_get_context()) is called. The goal is to clean up pid namespace handling and prevent bugs like: https://bugzilla.kernel.org/show_bug.cgi?id=17281 Instead of using pids switch find_get_context() to use task struct pointers directly. The syscall is responsible for resolving the pid to a task struct. This moves the pid namespace resolution into the syscall much like every other syscall that takes pid parameters. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: Signed-off-by: Ingo Molnar commit 2ebd4ffb6d0cb877787b1e42be8485820158857e Author: Matt Helsley Date: Mon Sep 13 13:01:19 2010 -0700 perf events: Split out task search into helper Split out the code which searches for non-exiting tasks into its own helper. Creating this helper not only makes the code slightly more readable it prepares to move the search out of find_get_context() in a subsequent commit. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: <561205417b450b8a4bf7488374541d64b4690431.1284407762.git.matthltc@us.ibm.com> Signed-off-by: Ingo Molnar commit d958077d007d98125766d11e82da2fd6497b91d6 Author: Matt Helsley Date: Mon Sep 13 13:01:18 2010 -0700 hw breakpoints: Fix pid namespace bug Hardware breakpoints can't be registered within pid namespaces because tsk->pid is passed rather than the pid in the current namespace. (See https://bugzilla.kernel.org/show_bug.cgi?id=17281 ) This is a quick fix demonstrating the problem but is not the best method of solving the problem since passing pids internally is not the best way to avoid pid namespace bugs. Subsequent patches will show a better solution. Much thanks to Frederic Weisbecker for doing the bulk of the work finding this bug. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: Signed-off-by: Ingo Molnar commit 64a48d90149bb7007275fac13eaa4cb8d8ce12ea Author: Matt Fleming Date: Mon Sep 13 20:17:29 2010 +0100 perf, sh: Fix patch merge foul-up 3f6da390 ("perf: Rework and fix the arch CPU-hotplug hooks") introduced this breakage. sh_pmu_setup() is missing an opening curly brace. Signed-off-by: Peter Zijlstra LKML-Reference: <20100913191729.GA6440@console-pimps.org> Signed-off-by: Ingo Molnar commit 65175c07653534294257f75baa03a36edad86870 Author: Michael Cree Date: Sun Sep 12 17:37:24 2010 +1200 alpha: Fix HW performance counters to be stopped properly Also fix a few compile errors due to undefined and duplicated variables. Signed-off-by: Michael Cree Signed-off-by: Peter Zijlstra LKML-Reference: <1284269844-23251-1-git-send-email-mcree@orcon.net.nz> Signed-off-by: Ingo Molnar commit d9ca07a05ce1c42ac9717e54eaea4546a3a80978 Author: Stephane Eranian Date: Tue Sep 14 15:34:01 2010 +0200 watchdog: Avoid kernel crash when disabling watchdog In case you boot with the watchdog disabled, i.e., nowatchdog, then, if you try to disable it via /proc/sys/kernel/watchdog, you get a kernel crash. The reason is that you are trying to cancel a hrtimer which has never been initialized. This patch fixes this by skipping execution of watchdog_disable_all_cpus() when the watchdog is marked disabled from boot. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra LKML-Reference: <4c8f7a23.cae9d80a.2c11.0bb4@mx.google.com> Signed-off-by: Ingo Molnar commit 3aabae7d9dfaed60effe93662f02c19bafc18537 Merge: 79e406d 57c072c Author: Ingo Molnar Date: Wed Sep 15 10:27:31 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 21a4591794c82c1a73f9d45d6400f878648261e3 Author: andrew hendry Date: Tue Sep 14 13:32:03 2010 +0000 X.25 remove bkl in connect Connect already has socket locking. Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit 141646ce56735cedb2336b3cd21364287f0aa4c7 Author: Andrew Hendry Date: Tue Sep 14 20:38:54 2010 -0700 X.25 remove bkl in accept Accept already has socket locking. [ Extend socket locking over TCP_LISTEN state test. -DaveM ] Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit 90c27297a9bfb8ea11c0e3f73ad90c4c66e8501e Author: andrew hendry Date: Tue Sep 14 13:31:38 2010 +0000 X.25 remove bkl in bind Accept updates socket values in 3 lines so wrapped with lock_sock. Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit 25aa4efe4feb4150fe613169795df505c5018f2b Author: andrew hendry Date: Tue Sep 14 13:31:16 2010 +0000 X.25 remove bkl in listen Listen updates socket values and needs lock_sock. Signed-off-by: Andrew Hendry Signed-off-by: David S. Miller commit 55b1804c678e679e1018671bd40b583eab124689 Author: Joe Perches Date: Mon Sep 13 18:24:01 2010 +0000 net/irda: Use static const char * const where possible Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 030bda0d416babd0cf34e584086f815b1c9d417c Author: Joe Perches Date: Mon Sep 13 18:23:55 2010 +0000 drivers/net/wireless: Use static const char * const where possible Signed-off-by: Joe Perches Acked-by: Ivo van Doorn Signed-off-by: David S. Miller commit 99101d3d8900dd3fc3cac44859ab8a380e1e553f Author: Joe Perches Date: Mon Sep 13 18:23:54 2010 +0000 drivers/net/pcmcia: Use static const char * const where possible Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 6fa59c9da82adcc7d63a2776969548e2b45448e0 Author: Joe Perches Date: Mon Sep 13 18:23:53 2010 +0000 drivers/net: Use static const char * const where possible Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 6f68ad7fbb421df0aa3c267768245b2e86a91f74 Author: Joe Perches Date: Mon Sep 13 18:23:52 2010 +0000 drivers/isdn: Use static const char * const where possible Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 79e406d7b00ab2b261ae32a59f266fd3b7af6f29 Author: Steven Rostedt Date: Tue Sep 14 22:19:46 2010 -0400 tracing: Remove leftover FTRACE_ENABLE/DISABLE_MCOUNT enums The enums for FTRACE_ENABLE_MCOUNT and FTRACE_DISABLE_MCOUNT were used as commands to ftrace_run_update_code(). But these commands were used by the old nasty ftrace daemon that has long been slain. This is a clean up patch to remove the references to these enums and simplify the code a little. Reported-by: Wu Zhangjin Signed-off-by: Steven Rostedt commit b304d0441a4118fadd4c3f16e4dc600c271030b5 Author: Steven Rostedt Date: Tue Sep 14 18:58:33 2010 -0400 tracing: Do not trace in irq when funcgraph-irq option is zero When the function graph tracer funcgraph-irq option is zero, disable tracing in IRQs. This makes the option have two effects. 1) When reading the trace file, do not display the functions that happen in interrupt context (when detected) 2) [*new*] When recording a trace, skip those that are detected to be in interrupt by the 'in_irq()' function Note, in_irq() is updated at irq_enter() and irq_exit(). There are still functions that are recorded by the function graph tracer that is in interrupt context but outside the irq_enter/exit() routines. Signed-off-by: Steven Rostedt commit 2bd16212b8eb86f9574e78d6605a5ba9e9aa8c4e Author: Jiri Olsa Date: Tue Sep 7 16:53:44 2010 +0200 tracing: Add funcgraph-irq option for function graph tracer. It's handy to be able to disable the irq related output and not to have to jump over each irq related code, when you have no interrest in it. The option is by default enabled, so there's no change to current behaviour. It affects only the final output, so all the irq related data stay in the ring buffer. Signed-off-by: Jiri Olsa LKML-Reference: <20100907145344.GC1912@jolsa.brq.redhat.com> Signed-off-by: Steven Rostedt commit 068e8a30320e33b1f8d15df9eaef84f04258f96d Author: Jean Delvare Date: Sun Sep 12 22:45:39 2010 +0000 e1000e: Simplify MSI interrupt testing The code is quite convoluted, simplify it. This also avoids calling e1000_request_irq() without testing the value it returned, which was bad. Signed-off-by: Jean Delvare Cc: Bruce Allan Cc: Jeff Kirsher Acked-by: Jeff Kirsher Signed-off-by: David S. Miller commit 04a344069052d94b4ea1f95d930cbfa39b4ca292 Author: Phil Carmody Date: Tue Sep 14 13:35:39 2010 -0700 [IA64] unwind - optimise linked-list searches for modules It's clear from the comment in the code about keeping the kernel's unwind table at the front of the list that some attention has been paid to access patterns. Tests on other architectures have shown that a move-to-front optimisation improves searches dramatically. Signed-off-by: Phil Carmody Signed-off-by: Tony Luck commit 747584be04bb98a856bab5cd1bfe56d341881b83 Author: Phil Carmody Date: Tue Sep 14 13:34:43 2010 -0700 [IA64] unwind: remove preprocesser noise, and correct comment The expression in the comment was mis-bracketted. There was also no need to introduce a coding-style breaking macro for a single use, so just made it a static const. Signed-off-by: Phil Carmody Signed-off-by: Tony Luck commit 78381c41776572cb642a485219c5d7651f198fbd Author: John W. Linville Date: Tue Sep 14 16:26:44 2010 -0400 wl1271: remove warnings in wl1271_sdio_set_power These were introduced in "wl1271: sdio: claim host only when doing IO" drivers/net/wireless/wl12xx/wl1271_sdio.c: In function ‘wl1271_sdio_set_power’: drivers/net/wireless/wl12xx/wl1271_sdio.c:193: warning: ‘return’ with a value, in function returning void drivers/net/wireless/wl12xx/wl1271_sdio.c:195: warning: ‘return’ with a value, in function returning void drivers/net/wireless/wl12xx/wl1271_sdio.c:186: warning: unused variable ‘func’ Signed-off-by: John W. Linville commit a2c1e3dad516618cb0fbfb1a62c36d0b0744573a Author: Johannes Berg Date: Tue Sep 14 21:34:14 2010 +0200 mac80211: match only assigned bss in sta_info_get_bss sta_info_get_bss() is used to match STA pointers for VLAN/AP interfaces, but if the same station is also added to multiple other interfaces it will erroneously match because both pointers are NULL, fix this by ignoring NULL pointers here. Reported-by: Ben Greear Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 364734fafbba0c3133e482db78149b9a823ae7a5 Author: Felix Fietkau Date: Tue Sep 14 20:22:44 2010 +0200 ath9k_hw: remove useless hw capability flags Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 3ae74c33c4f799f6bf6d67240a94a0814a8f1944 Author: Felix Fietkau Date: Tue Sep 14 18:38:26 2010 +0200 ath9k_hw: handle rx key miss If AR_KeyMiss is set in the rx descriptor and AR_RxFrameOK is unset, the hardware could not locate a valid key during a decryption attempt. In this case, the frame must not be reported as decrypted, otherwise mac80211 sees only random garbage. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 2944f45d9db851e186774df7c9cbf075f4a585c6 Author: Felix Fietkau Date: Tue Sep 14 18:37:20 2010 +0200 mac80211: add a note about iterating interfaces during add_interface() Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 31a01645c0c7b46d7f74777cd2a66ddb2a22bbd9 Author: Felix Fietkau Date: Tue Sep 14 18:37:19 2010 +0200 ath9k: fix BSSID mask calculation At the time the .add_interface driver op is called, the interface has not been marked as running yet, so ieee80211_iterate_active_interfaces will not pass it to the iterator function. Because of this, the calculated BSSID mask is wrong, which breaks multi-BSS operation. Additionally, the current way of comparing all addresses against each other is pointless, as the hardware only uses the hardware MAC address and the BSSID mask for matching the destination address, so all the address array reallocation is completely unnecessary. This patch simplifies the logic by setting the initial mask bytes to 0xff and removing all bits in the iterator call that don't match the hardware MAC address. It also calls the iterator for the vif that was passed to add_interface() Signed-off-by: Felix Fietkau Tested-by: Ben Greear Signed-off-by: John W. Linville commit 4a0e8ecca4eeed38d4b3b7a317a3aaab4dd3cacd Author: Rajkumar Manoharan Date: Tue Sep 14 14:35:55 2010 +0530 ath9k_htc: Fix CPU usage issue during scan period The CPU consumption during the scan period is high, since the register write go over Interrupt endpoint. On downloading the firmware to the target, the USB descriptors are 'patched' to change the type of the endpoints from Interrupt to Bulk. With this fix, the CPU usage during a scan run comes down to acceptable levels. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit cc0de6536e8b70d61948128a9cbf86920066c53d Author: Rajkumar Manoharan Date: Tue Sep 14 13:07:28 2010 +0530 ath9k_htc: Fix memory leak on WMI event handler ath9k_wmi_ctrl_rx is racy with ath9k_wmi_tasklet on event notification due to which the wmi_skb may be overwritten which leads to memory leak. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 3a160a5b5fc7d45fa2f869b23f8fcd27a4c05f8f Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:45 2010 +0200 iwlwifi: apply settings when finishing scan Even is someone else complete scanning in mac80211, apply rxon and tx power settings if gets scan complete notification from hardware. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit 7cf24421292d92556d53630e6973b34324c94103 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:44 2010 +0200 iwlwifi: use IWL_DEBUG_SCAN for debug scanning Replace IWL_DEBUG_{INFO,HC,RC} to IWL_DEBUG_SCAN in iwl-scan.c file. Add some more IWL_DEBUG_SCAN messages. This will allow to fully debug scanning using only IWL_DL_SCAN flag. Also start one message sentence with capital letter, since that convention in iwl-scan.c file. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 74d81b259d6c8493f066e34c939cb6fb7d3129e5 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:43 2010 +0200 iwlwifi: cleanup scan initiate check Remove redundant checks and use iwl_is_ready_rf(). Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit edeb78a7fa838b7fb9c2043680bd8da7cb5cb0e5 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:42 2010 +0200 mac80211: wait for scan work complete before restarting hw This is needed to avoid warning in ieee80211_restart_hw about hardware scan in progress. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit e7e16b90b477a07d17af37dceb2e8af1ddbd9712 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:41 2010 +0200 iwlwifi: do not force complete scan too early Currently we force scan complete at the end of iwl_scan_cancel_timeout function. This cause race condition when we can get a new scan request from mac80211 and complete it by iwl_bg_complete from older scan. Change code to force scan complete only when really needed: device goes down, interface is removed or scan timeout occurs. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit 6bd1758d978f917dc0804f44e3528ef1a80d9d43 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:40 2010 +0200 iwlwifi: assure we complete scan in scan_abort and scan_check works Assure we complete scan in mac80211 when we abort scanning (scan_abort work) or scan timeout occurs (scan_check work). Currently iwl_scan_cancel_timeout() procedure force scan finish in mac80211 at the end of timeout loop, so we can use it in proper work functions. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi Guy Signed-off-by: John W. Linville commit f5354c17dc29681c241f2774f3ef9478fb586673 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:39 2010 +0200 iwlwifi: force scan complete after timeout If we do not get notification from hardware about scan complete, after timeout do mac80211 scan completion anyway. This assure we end scan in case of firmware hung. Patch fix one of the causes of wdev_cleanup_work warning reported at https://bugzilla.redhat.com/show_bug.cgi?id=593566 Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit 02d8c14b590f583fd6e8c16fe779f845845effd9 Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:38 2010 +0200 iwlwifi: rewrite scan completion Assure (partially) we call ieee80211_scan_completed() only once when scan was requested from mac80211. Code path that first clear STATUS_SCANNING bit is responsible to call ieee80211_scan_completed(). Before the call, we check if mac80211 really request the scan. Still persist some cases when we behave wrong, that will be addressed in the next patches. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit e693a802f06f538b711333a32a83e2732dc4773d Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:37 2010 +0200 iwlwifi: rework iwl_scan_cancel_timeout Since on timeout version of iwl_scan_cancel procedure we can sleep, do not have to schedule abort_scan work to begin and perform scanning, can do this directly. Also now, as we do not queue abort_scan from restart work anymore, we can queue abort_scan to priv->workqueue. Don't drop mutex when waiting for scan complete. Use STATUS_HW_SCAN bit to check if scanning is currently pending, because STATUS_SCANNING will be cleared only with priv->mutex taken. Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit cd44600fdd89832c0bc898189270a81be0db01cd Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:36 2010 +0200 iwlwifi: report scan completion when abort fail When we are not able to send abort command to firmware, notify mac80211 that we complete scan, as we will newer do it lately. Check for all possible errors that low level sending command procedure does not check, to assure we catch all failures cases. Patch fix one of the causes of wdev_cleanup_work warning reported at https://bugzilla.redhat.com/show_bug.cgi?id=593566 Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit d745d472afcbc6354ebfee008123894a7f37e97e Author: Stanislaw Gruszka Date: Mon Sep 13 14:46:35 2010 +0200 iwlwifi: cancel scan when down the device Always cancel scan when stooping device and scan is currently pending, we should newer have scan running after down device. To assure we start scan cancel from restart work we have to schedule abort_scan to different workqueue than priv->workqueue. Patch fix not cancel scanning when restarting firmware, what is one of the causes of wdev_cleanup_work warning (together with permanent network connection lost) reported at https://bugzilla.redhat.com/show_bug.cgi?id=593566 Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit d5926d9d6a183d109060f68c0b96ea2b33c15377 Author: Johannes Berg Date: Mon Sep 13 14:46:34 2010 +0200 iwlwifi: move scan completed flags handling Move the scan completed flags handling so that we can notify mac80211 about aborted scans with the correct status. Also queue the scan_completed work before the BT status update so that it won't see the bits still set (unless a new scan was started in which case that's fine.) Signed-off-by: Johannes Berg Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit 3eecce527c7434dfd16517ce08b49632c8a26717 Author: Johannes Berg Date: Mon Sep 13 14:46:33 2010 +0200 iwlwifi: unify scan start checks Rather than duplicating all the checks and even in case of errors accepting the scan request from mac80211, we can push the checks to the caller and in all error cases reject the scan request right away (rather than accepting and then saying it was aborted). Signed-off-by: Johannes Berg Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit b5be3efc34294cc34e305903df6a388950e8d1f3 Author: Johannes Berg Date: Mon Sep 13 14:46:32 2010 +0200 iwlwifi: remove unused conf variables There are a number of conf variables that are unused, remove them. Signed-off-by: Johannes Berg Signed-off-by: Stanislaw Gruszka Acked-by: Wey-Yi W Guy Signed-off-by: John W. Linville commit 740c1aa3b01251c3c324743f395621749b099065 Author: Steve deRosier Date: Sat Sep 11 20:01:31 2010 -0700 mac80211: Fix dangling pointer in ieee80211_xmit hdr pointer is left dangling after call to ieee80211_skb_resize. This can cause guards around mesh path selection to fail. Signed-off-by: Steve deRosier Signed-off-by: John W. Linville commit a1e567c83f541432e687142570215b75bebb1338 Author: Bill Jordan Date: Fri Sep 10 11:22:32 2010 -0400 nl80211: Uninitialized variable There is a path in nl80211_set_wiphy where result is tested but uninitialized. I am hitting this path when I attempt: sh# iw dev wlan0 set channel 10 command failed: Unknown error 1069727332 (-1069727332) Signed-off-by: William Jordan Signed-off-by: John W. Linville commit 942623166df3256821e8451273bc07737745e3cb Author: Nikitas Angelinas Date: Wed Sep 8 22:29:53 2010 +0100 net/wireless: use ARRAY_SIZE macro in radiotap.c Replace sizeof(rtap_namespace_sizes) / sizeof(rtap_namespace_sizes[0]) with ARRAY_SIZE(rtap_namespace_sizes) in net/wireless/radiotap.c Signed-off-by: Nikitas Angelinas Signed-off-by: John W. Linville commit bbce80e1101526f7a616e75a0d77b57f4062c62d Author: Nikitas Angelinas Date: Wed Sep 8 22:25:42 2010 +0100 drivers/net/wireless/ath/ath9k: use ARRAY_SIZE macro in ani.c Replace (sizeof(ofdm_level_table)/sizeof(ofdm_level_table[0]) with ARRAY_SIZE(ofdm_level_table), and (sizeof(cck_level_table)/ sizeof(cck_level_table[0]) with ARRAY_SIZE(cck_level_table) in drivers/net/wireless/ath/ath9k/ani.c Signed-off-by: Nikitas Angelinas Signed-off-by: John W. Linville commit 516c6e1f52a09fb2e7024101db3f0375f65670df Author: Fabio Rossi Date: Wed Sep 8 22:37:41 2010 +0200 ath5k: avoid unneeded calibration error messages Don't generate calibration errors messages when not needed. Signed-off-by: Fabio Rossi Acked-by: Bruno Randolf Signed-off-by: John W. Linville commit 65b7fc97473656eb35b6b58a22c7cef4a99d9e35 Author: Helmut Schaa Date: Wed Sep 8 20:57:40 2010 +0200 rt2x00: fix oops in rt2x00lib_txdone with rt61pci Fix a typo introduced in "rt2x00: Add helper function for reporting tx status" that results in an oops in rt2x00lib_txdone. Reported-by: Pavel Roskin Signed-off-by: Helmut Schaa Acked-by: Gertjan van Wingerde Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 6646505de03b2ae85de09fd3b8d383ab816a19f9 Author: Helmut Schaa Date: Wed Sep 8 20:57:10 2010 +0200 rt2x00: Enable missing interrupts in rt61pci We're handling both, the CSR_BEACON_DONE and the CSR_TWAKEUP interrupts in rt61pci. However, these interrupts are masked out by default. Fix this. Found via pure code inspection. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 93149cf87bdd511db86d709a6db7ed09f1b8ba99 Author: Helmut Schaa Date: Wed Sep 8 20:56:52 2010 +0200 rt2x00: Mask out unused interrupts in rt2800pci We don't use all available interrupts in rt2800pci. Mask out all unused interrupts to avoid waking up without having anything to do. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 0204464329c17ba6d293e1899f71223599a0e582 Author: Helmut Schaa Date: Wed Sep 8 20:56:32 2010 +0200 rt2x00: Check for specific changed flags when updating the erp config Previously rt2x00 was always updating all erp related config variables even though mac80211 might only have changed one. Hence, pass the changed flags to the config_erp driver callback so that the driver can limit the changes to the correct values. This fixes an issue in AP mode where the beacon interval is not initialized (and thus zero) but still sent to the hardware causing an interrupt storm on rt2800pci hanging the system. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 47ee3eb1359a5444efd9f529e3d28c02e8e405e7 Author: Helmut Schaa Date: Wed Sep 8 20:56:04 2010 +0200 rt2x00: Initialize AMPDU_BA_WINSIZE register Since we're not using the AMPDU_BA_WINSIZE register to force the BlockAck window size (we specify it in every TXWI) we should initialize it to 0. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 85f4d6488cba35d3bb58833edbcb28faaffdd37c Author: Lars Ericsson Date: Wed Sep 8 20:55:36 2010 +0200 rt2x00: Antenna diversity does not work in 2.6.35 The test if antenna diversity is at all enabled uses a local variable 'flags' to prepare the test condition, but uses 'ant->flags' when the test is evaluated. The effect is that the diversity evaluation will never start. I can see two solutions, use the 'flag' in the test condition or revert the local flag change. My attached patch took alternative two. Then the evaluation start but it will still not switch antenna. The problem is a code section in rt2x00lib_config_antenna (). The effect of that code section is that any change the diversity function perform will be effectively shorten and no antenna selection command issued. The attached patch will filter out any ANTENNA_SW_DIVERSITY setting but forward all other Signed-off-by: Lars Ericsson Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 58d7e0f37cfc5b4f473d437024a03d874e5969a3 Author: Rajkumar Manoharan Date: Wed Sep 8 15:57:12 2010 +0530 ath9k_hw: Support fastcc for AR7010 To reduce scan time, enable fastcc for AR7010 (fastcc == fast channel change -- JWL) Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 49063a0d0b65e40ece846a744cb10cbdf295515d Author: Ohad Ben-Cohen Date: Tue Sep 7 04:24:21 2010 +0300 wl1271: sdio: claim host only when doing IO Do not maintain a persistent sdio_claim_host state. Instead, claim host before doing IO and release host soon after. This fixes several mmc deadlock scenarios, e.g. during suspend/resume. Signed-off-by: Ohad Ben-Cohen Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 1d7e1e6b1b8ed456e7678130ad17086a5f5b3286 Author: Christian Lamparter Date: Mon Sep 6 01:10:25 2010 +0200 carl9170: Makefile, Kconfig files and MAINTAINERS Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 00c4da27a4219385cfe6a3054ddf3195c9e3c30e Author: Christian Lamparter Date: Mon Sep 6 01:09:49 2010 +0200 carl9170: firmware parser and debugfs code Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit a84fab3cbfdc427e7d366f1cc844f27b2084c26c Author: Christian Lamparter Date: Mon Sep 6 01:09:20 2010 +0200 carl9170: 802.11 rx/tx processing and usb backend Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 319da621d5c4e9bd8c34feeb200e864e87d91fe7 Author: Christian Lamparter Date: Mon Sep 6 01:08:38 2010 +0200 carl9170: PHY/RF and MAC routines Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit aae9af605a41cb3e9bbad15df72076423a22f903 Author: Christian Lamparter Date: Mon Sep 6 01:06:57 2010 +0200 carl9170: Register maps, tx/rx descriptor formats and eeprom layout Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit fe8ee9ad80b28382111f0aab01690b09982e5691 Author: Christian Lamparter Date: Mon Sep 6 00:48:55 2010 +0200 carl9170: mac80211 glue and command interface Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 57c072c7113f54f9512624d6c665db6184448782 Author: Steven Rostedt Date: Tue Sep 14 11:21:11 2010 -0400 tracing: Fix reading of set_ftrace_filter across lists If we do: # cd /sys/kernel/debug # echo 'do_IRQ:traceon schedule:traceon sys_write:traceon' > \ set_ftrace_filter # cat set_ftrace_filter We get the following output: #### all functions enabled #### sys_write:traceon:unlimited schedule:traceon:unlimited do_IRQ:traceon:unlimited This outputs two lists. One is the fact that all functions are currently enabled for function tracing, the other has three probed functions, which happen to have 'traceon' as their commands. Currently, when reading the first list (functions enabled) the seq_file code will receive a "NULL" from the t_next() function causing it to exit early. This makes "read()" from userspace stop reading the code at this boarder. Although read is allowed to do this, some (broken) applications might consider this an end of file and stop early. This patch adds the start of the second list to t_next() when it finishes the first list. It is a simple change and gives the set_ftrace_filter file nicer reading ability. Signed-off-by: Steven Rostedt commit 98c4fd046f07156ca6055677e8f03d4280be16c1 Author: Steven Rostedt Date: Fri Sep 10 11:47:43 2010 -0400 tracing: Keep track of set_ftrace_filter position and allow lseek again This patch keeps track of the index within the elements of set_ftrace_filter and if the position goes backwards, it nicely resets and starts from the beginning again. This allows for lseek and pread to work properly now. Signed-off-by: Steven Rostedt commit 4aeb69672d011fac5c8df671f3ca89f7987c104e Author: Steven Rostedt Date: Thu Sep 9 10:00:28 2010 -0400 tracing: Replace typecasted void pointer in set_ftrace_filter code The set_ftrace_filter uses seq_file and reads from two lists. The pointer returned by t_next() can either be of type struct dyn_ftrace or struct ftrace_func_probe. If there is a bug (there was one) the wrong pointer may be used and the reference can cause an oops. This patch makes t_next() and friends only return the iterator structure which now has a pointer of type struct dyn_ftrace and struct ftrace_func_probe. The t_show() can now test if the pointer is NULL or not and if the pointer exists, it is guaranteed to be of the correct type. Now if there's a bug, only wrong data will be shown but not an oops. Cc: Chris Wright Signed-off-by: Steven Rostedt commit 2bccfffd1538f3523847583213567e2f7ce00926 Author: Steven Rostedt Date: Thu Sep 9 08:43:22 2010 -0400 tracing: Do not reset *pos in set_ftrace_filter After the filtered functions are read, the probed functions are read from the hash in set_ftrace_filter. When the hashed probed functions are read, the *pos passed in is reset. Instead of modifying the pos given to the read function, just record the pos where the filtered functions ended and subtract from that. Signed-off-by: Steven Rostedt commit 7740191cd909b75d75685fb08a5d1f54b8a9d28b Author: Mathieu Desnoyers Date: Mon Sep 13 17:47:00 2010 -0400 sched: Fix string comparison in /proc/sched_features Fix incorrect handling of the following case: INTERACTIVE INTERACTIVE_SOMETHING_ELSE The comparison only checks up to each element's length. Changelog since v1: - Embellish using some Rostedtisms. [ mingo: ^^ == smaller and cleaner ] Signed-off-by: Mathieu Desnoyers Reviewed-by: Steven Rostedt Cc: Cc: Peter Zijlstra Cc: Tony Lindgren LKML-Reference: <20100913214700.GB16118@Krystal> Signed-off-by: Ingo Molnar commit 8dcbdc742fec9e6c542ff9cb599d2ee620753d07 Author: San Mehat Date: Tue Sep 14 08:48:01 2010 +0200 block: block_dump: Add number of sectors to debug output Signed-off-by: San Mehat Signed-off-by: Linus Walleij Signed-off-by: Jens Axboe commit bc0ed0be10a4925efa7b81a84af53f12fbdbcb4e Author: Andy Shevchenko Date: Sun Sep 12 08:16:26 2010 +0000 uwb: use '%pM' format to print MAC address Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 251415808306a19be93ec93268e2985f10d3db8b Author: Dmitry Kravkov Date: Sun Sep 12 05:48:28 2010 +0000 bnx2x: Spread rx buffers between allocated queues Default number of rx buffers will be divided equally between allocated queues. This will decrease amount of pre-allocated buffers on systems with multiple CPUs. User can override this behavior with ethtool -G. Minimum amount of rx buffers per queue set to 128. Reported-by: Eric Dumazet Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 441993da47777d961300c070fe1210600af48ad8 Author: Ondrej Zary Date: Sat Sep 11 05:40:16 2010 +0000 cx82310_eth: allow empty URBs Empty received URBs are currently counted as errors but the device sends them sometimes as part of regular traffic - so remove this check. Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller commit 7dbfdc2390afc4e244817ab26d5a1b987b0c0669 Author: Ondrej Zary Date: Sat Sep 11 05:39:57 2010 +0000 cx82310_eth: check usb_string() return value for error Fix that usb_string() return value is not checked for error (negative value). Also change the ignore message a bit and lower its level to info. Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller commit d81e27cf4e2a5050245f9962539292ea2c9e2206 Author: Joe Perches Date: Sat Sep 11 19:10:56 2010 +0000 drivers/net/skfp: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 70ce679be6f7fd8ff24d4b7007e2c0e430587945 Author: Andreas Schwab Date: Sat Sep 11 01:12:34 2010 +0000 net/cxgb3: remove undefined operations Modifying an object twice without an intervening sequence point is undefined. Signed-off-by: Andreas Schwab Signed-off-by: David S. Miller commit 1570475a477b46cb16b2a0dd73c06974c8d2b550 Author: Andreas Schwab Date: Sat Sep 11 01:08:58 2010 +0000 net/de4x5: remove undefined operations Modifying an object twice without an intervening sequence point is undefined. Signed-off-by: Andreas Schwab Signed-off-by: David S. Miller commit 61a21455ee27dccdd286f61aea611da5e70b47bf Author: Denis Kirjanov Date: Fri Sep 10 23:23:13 2010 +0000 sundance: Add power management hooks This patch to adds support for PM hooks into sundance driver Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 83b6b1f5d13414d0cb5c4f0a567a6aec0af073bd Author: Eric Dumazet Date: Fri Sep 10 07:00:25 2010 +0000 flow: better memory management Allocate hash tables for every online cpus, not every possible ones. NUMA aware allocations. Dont use a full page on arches where PAGE_SIZE > 1024*sizeof(void *) misc: __percpu , __read_mostly, __cpuinit annotations flow_compare_t is just an "unsigned long" Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit efbc2d7cfa67a9753cd45eb7eee8c9ad10c8b74c Author: Ben Hutchings Date: Mon Sep 13 04:14:49 2010 +0000 sfc: Fix order of channel_name array dimensions Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 637bbdc5b83615ef9f45f50399d1c7f27473c713 Author: Dave Young Date: Mon Sep 13 20:19:03 2010 +0800 sched: Remove unused PF_ALIGNWARN flag PF_ALIGNWARN is not implemented and it is for 486 as the comment. It is not likely someone will implement this flag feature. So here remove this flag and leave the valuable 0x00000001 for future use. Signed-off-by: Dave Young Cc: Peter Zijlstra Cc: Linus Torvalds LKML-Reference: <20100913121903.GB22238@darkstar> Signed-off-by: Ingo Molnar commit 469917ce8717b9f8c5298bf279fa138859baab8d Author: Arnaldo Carvalho de Melo Date: Mon Sep 13 10:25:04 2010 -0300 perf ui browser: Don't use windows, slang is enough They are useless and take away precious columns and lines, so stop using windows. One more step in removing newt code, that after all is not being useful at all for the coalescing TUI model in perf. Suggested-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Tom Zanussi LKML-Reference: <20100822082003.GB7365@infradead.org> Signed-off-by: Arnaldo Carvalho de Melo commit 0c67b40872326a5340cab51d79a192a5fbaeb484 Author: Peter Zijlstra Date: Mon Sep 13 11:15:58 2010 +0200 perf: Fix free_event() With the context rework stuff we can actually end up freeing an event before it gets attached to a context. Reported-by: Cyrill Gorcunov Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit cde8e88498c8de69271fcb6d4dd974979368fa67 Author: Peter Zijlstra Date: Mon Sep 13 11:06:55 2010 +0200 perf: Sanitize the RCU logic Simplify things and simply synchronize against two RCU variants for PMU unregister -- we don't care about performance, its module unload if anything. Reported-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra Cc: Paul E. McKenney LKML-Reference: Signed-off-by: Ingo Molnar commit b0b2072df3b544f56b90173c2cde7a374c51546b Author: Stephane Eranian Date: Fri Sep 10 13:28:01 2010 +0200 perf_events: Fix BTS interrupt handling to avoid being dazed by NMI (v2) Fix a bug introduced with commit de725de and the change in the meaning of the return value of intel_pmu_handle_irq(). With the current code, when you are using the BTS, you get 'dazed by NMI' each time the BTS buffer fills up. BTS does interrupt on the PMU vector, thus NMI. You need to take this into account in the return value of the function. This version fixes initial patch which was missing changes to perf_event_intel_ds.c. Signed-off-by: Stephane Eranian Acked-by: Don Zickus Cc: peterz@infradead.org Cc: paulus@samba.org Cc: davem@davemloft.net Cc: fweisbec@gmail.com Cc: perfmon2-devel@lists.sf.net Cc: eranian@gmail.com Cc: robert.richter@amd.com LKML-Reference: <4c8a1686.aae9d80a.5aa4.5e35@mx.google.com> Signed-off-by: Ingo Molnar commit 0ea05ce7fd0c1286759933933764aacd12f6ac3a Author: David S. Miller Date: Sun Sep 12 12:06:00 2010 -0700 bna: Check for NULL before deref in bnad_cb_tx_cleanup Reported-by: Jiri Slaby Signed-off-by: David S. Miller commit d0ed0c32662e756e7daf85e70a5a27a9c1111331 Author: Joe Perches Date: Sat Sep 11 22:10:54 2010 -0700 x86: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Cc: Jiri Kosina LKML-Reference: Signed-off-by: Ingo Molnar commit 743e015dcbb428bf8454cf7d78272b4a76dd3c4b Author: Wey-Yi Guy Date: Sat Sep 4 09:00:14 2010 -0700 iwlwifi: remove code repetition Move the duplicated code into single static function. Signed-off-by: Wey-Yi Guy commit 8f1d968721f9b3d4ff364bef0f33eb9697a6a7ee Author: Wey-Yi Guy Date: Fri Sep 3 11:42:04 2010 -0700 iwlwifi: make sure runtime calibration is enabled after association Clear the "start calib" flag only for new association, The flag will be set in post_associate function to trigger the runtime calibration. Set this flag to "0" will stop the runtime sensitivity calibration Signed-off-by: Wey-Yi Guy commit ea196fdbb982150c19854f90773cb8b9bf331049 Author: Johannes Berg Date: Fri Sep 3 06:30:55 2010 -0700 iwlwifi: fix and describe iwl_adjust_beacon_interval The iwl_adjust_beacon_interval function is a bit of black magic, so add comments to it describing what it does. Also, in the case when there's no beacon interval set, program the default into the device (instead of adjusting, which results in the max) since using the max in that case interacts badly with dual-mode/PAN parameters. Also update the PAN parameters accordingly and use the same constant as here. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit f1f270b25c6ece9ff65f7ad970850338a198d52f Author: Johannes Berg Date: Fri Sep 3 06:31:26 2010 -0700 iwlwifi: improve timing handling with dual-mode In dual-mode, a number of scenarios need to be considered, and the firmware can be very picky about them. Adjust the timing (most importantly the beacon interval) according to the different modes. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 763cc3bf5c2ae189a929fce54759c5bd94b8ba16 Author: Johannes Berg Date: Fri Sep 3 06:32:21 2010 -0700 iwlwifi: avoid sending too many commands When the PAN context is unused, there's no need to continually update it in the device. So track which contexts are active (with the special case that the WLAN context is always active ...) and only send their commands to the device when needed. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit c6abdc0dc3440b9b6ae00a59c3560ab2160c7c7d Author: Wey-Yi Guy Date: Wed Sep 1 17:10:51 2010 -0700 iwlwifi: allow configure protection mode Even driver use rts/cts protection mode for aggregation packets by default. Allow the protection mode to be configure through debugfs Signed-off-by: Wey-Yi Guy commit 2a3aeb44f555b2b51bbe58792e8ab172a69172c5 Author: Johannes Berg Date: Mon Aug 30 06:13:42 2010 -0700 iwlwifi: implement beacon interval change When the beacon interval needs to be changed, all we need to do is send updated timing to the device. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 27eafdda7714d5b189c175e71ab22c72c90ba93e Author: Johannes Berg Date: Mon Aug 30 06:12:00 2010 -0700 iwlwifi: fix PAN parameters while scanning When only the PAN side was active, we gave no time to the WLAN context, which is OK unless we are scanning, which always happens on the WLAN context. Fix this. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 6e6ebf4befa75ebdf28130d0135f3ad3aadc02f8 Author: Wey-Yi Guy Date: Fri Aug 27 10:41:37 2010 -0700 iwlwifi: remember the last uCode sysassert error code When sysassert happen, uCode will report the error code, driver dump the information to dmesg. Here also remember the last error code for future reference. Signed-off-by: Wey-Yi Guy commit cf6da94acb1e158c8efe0d184ac757829fbf9632 Author: Tomas Winkler Date: Mon Aug 23 14:00:54 2010 -0700 iwlwifi: fix default LQ table in 5.2 band The default LQ is filled decreasingly using iwl_get_prev_ieee_rate from a starting rate. Since the starting rate is already the lowest one for a specific band it should be actually filled evenly with the starting rate: 1M and 6M for 5.2GHZ and 2.4GH respectively. The bug is that for for A or G-only it decreases to CCK rates which are not supported. iwl_get_prev_ieee_rate function is just not band aware. This affects broadcast station which lq table is not updated by rs algorithm G-only scenario is not treated by this patch iwl_get_prev_ieee_rate is removed completely as it is not used in other contexts Signed-off-by: Tomas Winkler Signed-off-by: Wey-Yi Guy commit 823108a056c52a83c32ca199a57566a36fad4d19 Author: Yinghai Lu Date: Sat Sep 11 00:08:42 2010 -0700 powerpc, memblock: Fix memblock API change fallout Fix memblock API change fallout in the WII code. Signed-off-by: Yinghai Lu Cc: linux-mm@kvack.org Cc: Benjamin Herrenschmidt LKML-Reference: <4C8B2AFA.2000705@kernel.org> Signed-off-by: Ingo Molnar commit da5ab11cdfdf496448e0e9cdbbc2dfe207a96c94 Author: Michal Simek Date: Sat Sep 11 00:07:06 2010 -0700 memblock, microblaze: Fix memblock API change fallout Adopt Microblaze to the memblock API changes, to fix this build failure: CC arch/microblaze/mm/init.o arch/microblaze/mm/init.c: In function 'mm_cmdline_setup': arch/microblaze/mm/init.c:236: error: 'struct memblock_type' has no member named 'region' ... Signed-off-by: Yinghai Lu Cc: linux-mm@kvack.org Cc: Stephen Rothwell Cc: Benjamin Herrenschmidt LKML-Reference: <4C8B2A9A.1040303@kernel.org> Signed-off-by: Ingo Molnar commit 351e5a703ad994405bd900da330823d3b4a372e0 Author: Venkatesh Pallipadi Date: Fri Sep 10 15:55:50 2010 -0700 x86, mtrr: Support mtrr lookup for range spanning across MTRR range mtrr_type_lookup [start:end] looked up the resultant MTRR type for that range, based on fixed and all variable MTRR ranges. It did check for multiple MTRR var ranges overlapping [start:end] and returned the net type. However, if the [start:end] range spanned across any var MTRR range, mtrr_type_lookup would return an error return of 0xFE. This was based on typical usage of mtrr_type_lookup in PAT mapping, where region being mapped would not normally span across MTRR ranges and also trying to keep the code simple. Mark recently reported the problem with this limitation. When there are two continguous MTRR's of type "writeback" and if there is a memory mapping over a region starting in one MTRR range and ending in another MTRR range, such mapping will fallback to "uncached" due to the above limitation. Change below adds support for such lookups spanning multiple MTRR ranges. We now have a wrapper mtrr_type_lookup that dynamically splits such a region into smaller chunks that fit within one MTRR range and does a __mtrr_type_lookup on it and combine the results later. Reported-by: Mark Langsdorf Signed-off-by: Venkatesh Pallipadi LKML-Reference: <1284159350-19841-3-git-send-email-venki@google.com> Reviewed-by: Suresh Siddha Signed-off-by: H. Peter Anvin commit a7f07cfbaa1dd5bf9e615948f280c92e7928e6f7 Author: Venkatesh Pallipadi Date: Fri Sep 10 15:55:49 2010 -0700 x86, mtrr: Refactor MTRR type overlap check code Move the MTRR type overlap check into a new function. No functional change in this patch. Just making it easier to add multiple region overlap check in the following patch. Signed-off-by: Venkatesh Pallipadi LKML-Reference: <1284159350-19841-2-git-send-email-venki@google.com> Reviewed-by: Suresh Siddha Signed-off-by: H. Peter Anvin commit 9ca7f8762299bb391c11a81c844224216e925b5c Author: stephen hemminger Date: Wed Sep 8 09:16:28 2010 +0000 pkt_sched: remov unnecessary bh_disable Now that est_tree_lock is acquired with BH protection, the other call is unnecessary. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit a034ee3cca5726b14107f281f4bed1c0fd44472a Author: Eric Dumazet Date: Thu Sep 9 23:32:28 2010 +0000 fib: cleanups Use rcu_dereference_rtnl() helper Change hard coded constants in fib_flag_trans() 7 -> RTN_UNREACHABLE 8 -> RTN_PROHIBIT Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 4642610c77b345130d6b5a08c75d23ad98601fd5 Author: Ben Hutchings Date: Fri Sep 10 06:42:33 2010 +0000 sfc: Allow changing the DMA ring sizes dynamically via ethtool This requires some reorganisation of channel setup and teardown to ensure that we can always roll-back a failed change. Based on work by Steve Hodgson Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit ecc910f520ba8f22848982ee816ad75c449b805d Author: Steve Hodgson Date: Fri Sep 10 06:42:22 2010 +0000 sfc: Make the dmaq size a run-time setting (rather than compile-time) - Allow the ring size to be specified in non power-of-two sizes (for instance to limit the amount of receive buffers). - Automatically size the event queue. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 8313aca38b3937947fffebca6e34bac8e24300c8 Author: Ben Hutchings Date: Fri Sep 10 06:41:57 2010 +0000 sfc: Allocate each channel separately, along with its RX and TX queues This will allow for reallocation of channel structures and rings. Change module parameter separate_tx_channels to be read-only, since we now require its value to be constant. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit f7d12cdcbb28207b3bdcf4affbf3935e4c015d03 Author: Ben Hutchings Date: Fri Sep 10 06:41:47 2010 +0000 sfc: Refactor channel and queue lookup and iteration In preparation for changes to the way channels and queue structures are allocated, revise the macros and functions used to look up and iterator over them. - Replace efx_for_each_tx_queue() with iteration over channels then TX queues - Replace efx_for_each_rx_queue() with iteration over channels then RX queues (with one exception, shortly to be removed) - Introduce efx_get_{channel,rx_queue,tx_queue}() functions to look up channels and queues by index - Introduce efx_channel_get_{rx,tx}_queue() functions to look up a channel's queues Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit ba1e8a35b77f3bc7d109696dbd2a7fd5af208b62 Author: Ben Hutchings Date: Fri Sep 10 06:41:36 2010 +0000 sfc: Abstract channel and index lookup for RX queues Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 58758aa505edc5b8f8393cee45b54c7485d76de5 Author: Ben Hutchings Date: Fri Sep 10 06:41:26 2010 +0000 sfc: Allocate DMA and event rings using GFP_KERNEL Currently we allocate DMA descriptor rings and event rings using pci_alloc_consistent() which selects non-blocking behaviour from the page allocator (GFP_ATOMIC). This is unnecessary, and since we currently allocate a single contiguous block for each ring (up to 32 pages!) these allocations are likely to fail if there is any significant memory pressure. Use dma_alloc_coherent() and GFP_KERNEL instead. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit e42de26249c88a00715ea686993192546d07133e Author: Ben Hutchings Date: Fri Sep 10 06:41:19 2010 +0000 sfc: Fix failure paths in efx_probe_port() Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 7db8e8ec3995a1dc2bfadd8ac97e9024013db9c3 Author: Ben Hutchings Date: Fri Sep 10 06:41:12 2010 +0000 sfc: Remove declarations of functions that no longer exist Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 80485d3441fc26aff5ddb2bf44baf7a61e1909b4 Author: Ben Hutchings Date: Fri Sep 10 06:41:06 2010 +0000 sfc: Accumulate RX_NODESC_DROP count in rx_dropped, not rx_over_errors rx_over_errors appears to be intended as a count of packets that overflow a packet buffer in the NIC. Given that we implement a cut-through receive path, this should always be 0. rx_dropped appears to be the correct counter for packets dropped due to lack of host buffers. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 1cdc2cfc8af6d1045c844b9e24a7910b57232065 Author: Ben Hutchings Date: Fri Sep 10 06:41:00 2010 +0000 sfc: Use MCDI RX_BAD_FCS_PKTS count as MAC rx_bad count Calculating rx_bad as rx_packets - rx_good is unnecessary and incorrect, since rx_good does not include control frames (e.g. pause frames) and rx_packets does. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 175b79f0632544d62aae72e5496c14e3e3ff2ae7 Author: Christof Schmitt Date: Fri Sep 10 20:50:40 2010 +0200 zfcp: Report scatter gather limit for DIX protection information When sending DIX integrity segments with an I/O request, the restriction for the maximum number of segments is still the same for the zfcp hardware. Report the new sg_prot_tablesize for the SCSI host, so that the number of integrity segments plus the number of data segments is not larger than the hardware limit. This results in using half of the hardware segments for integrity data and the other half for regular data. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: Jens Axboe commit 13f05c8d8e98bbdce89158bfdb2e380940695a88 Author: Martin K. Petersen Date: Fri Sep 10 20:50:10 2010 +0200 block/scsi: Provide a limit on the number of integrity segments Some controllers have a hardware limit on the number of protection information scatter-gather list segments they can handle. Introduce a max_integrity_segments limit in the block layer and provide a new scsi_host_template setting that allows HBA drivers to provide a value suitable for the hardware. Add support for honoring the integrity segment limit when merging both bios and requests. Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit c8bf1336824ebd698d37b71763e1c43190f2229a Author: Martin K. Petersen Date: Fri Sep 10 20:07:38 2010 +0200 Consolidate min_not_zero We have several users of min_not_zero, each of them using their own definition. Move the define to kernel.h. Signed-off-by: Martin K. Petersen Signed-off-by: Jens Axboe commit 5e98d492406818e6a94c0ba54c61f59d40cefa4a Author: Goldwyn Rodrigues Date: Mon Jun 28 10:04:32 2010 -0500 Track negative entries v3 Track negative dentries by recording the generation number of the parent directory in d_fsdata. The generation number for the parent directory is recorded in the inode_info, which increments every time the lock on the directory is dropped. If the generation number of the parent directory and the negative dentry matches, there is no need to perform the revalidate, else a revalidate is forced. This improves performance in situations where nodes look for the same non-existent file multiple times. Thanks Mark for explaining the DLM sequence. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit b4d693fcc5fe99ed211addb5c6a0f8398f0b266e Author: Tao Ma Date: Mon Aug 16 16:58:21 2010 +0800 ocfs2: Cache system inodes of other slots. Durring orphan scan, if we are slot 0, and we are replaying orphan_dir:0001, the general process is that for every file in this dir: 1. we will iget orphan_dir:0001, since there is no inode for it. we will have to create an inode and read it from the disk. 2. do the normal work, such as delete_inode and remove it from the dir if it is allowed. 3. call iput orphan_dir:0001 when we are done. In this case, since we have no dcache for this inode, i_count will reach 0, and VFS will have to call clear_inode and in ocfs2_clear_inode we will checkpoint the inode which will let ocfs2_cmt and journald begin to work. 4. We loop back to 1 for the next file. So you see, actually for every deleted file, we have to read the orphan dir from the disk and checkpoint the journal. It is very time consuming and cause a lot of journal checkpoint I/O. A better solution is that we can have another reference for these inodes in ocfs2_super. So if there is no other race among nodes(which will let dlmglue to checkpoint the inode), for step 3, clear_inode won't be called and for step 1, we may only need to read the inode for the 1st time. This is a big win for us. So this patch will try to cache system inodes of other slots so that we will have one more reference for these inodes and avoid the extra inode read and journal checkpoint. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit a33f13efe05192e7a805018a2ce2b2afddd04057 Author: Joel Becker Date: Mon Aug 16 12:10:17 2010 -0700 libfs: Fix shift bug in generic_check_addressable() generic_check_addressable() erroneously shifts pages down by a block factor when it should be shifting up. To prevent overflow, we shift blocks down to pages. Signed-off-by: Joel Becker commit 3bdb8efd94a73bb137e3315cd831cbc874052b4b Author: Patrick J. LoPresti Date: Thu Jul 22 15:05:57 2010 -0700 OCFS2: Allow huge (> 16 TiB) volumes to mount The OCFS2 developers have already done all of the hard work to allow volumes larger than 16 TiB. But there is still a "sanity check" in fs/ocfs2/super.c that prevents the mounting of such volumes, even when the cluster size and journal options would allow it. This patch replaces that sanity check with a more sophisticated one to mount a huge volume provided that (a) it is addressable by the raw word/address size of the system (borrowing a test from ext4); (b) the volume is using JBD2; and (c) the JBD2_FEATURE_INCOMPAT_64BIT flag is set on the journal. I factored out the sanity check into its own function. I also moved it from ocfs2_initialize_super() down to ocfs2_check_volume(); any earlier, and the journal will not have been initialized yet. This patch is one of a pair, and it depends on the other ("JBD2: Allow feature checks before journal recovery"). I have tested this patch on small volumes, huge volumes, and huge volumes without 64-bit block support in the journal. All of them appear to work or to fail gracefully, as appropriate. Signed-off-by: Patrick LoPresti Signed-off-by: Joel Becker commit e5f4d3394a52ac351f1a479fe136d92fa5228eff Author: Peter Zijlstra Date: Fri Sep 10 17:38:06 2010 +0200 perf: Fix perf_init_event() We ought to return -ENOENT when non of the registered PMUs recognise the requested event. This fixes a boot crash that occurs if no PMU is available but the NMI watchdog tries to register an event. Reported-by: Ingo Molnar Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 1113e1b504f6e8d4364c0b73c9097828067d4617 Author: Patrick J. LoPresti Date: Thu Jul 22 15:04:16 2010 -0700 JBD2: Allow feature checks before journal recovery Before we start accessing a huge (> 16 TiB) OCFS2 volume, we need to confirm that its journal supports 64-bit offsets. In particular, we need to check the journal's feature bits before recovering the journal. This is not possible with JBD2 at present, because the journal superblock (where the feature bits reside) is not loaded from disk until the journal is recovered. This patch loads the journal superblock in jbd2_journal_check_used_features() if it has not already been loaded, allowing us to check the feature bits before journal recovery. Signed-off-by: Patrick LoPresti Cc: linux-ext4@vger.kernel.org Acked-by: "Theodore Ts'o" Signed-off-by: Joel Becker commit 30ca22c70e3ef0a96ff84de69cd7e8561b416cb2 Author: Patrick J. LoPresti Date: Thu Jul 22 15:03:41 2010 -0700 ext3/ext4: Factor out disk addressability check As part of adding support for OCFS2 to mount huge volumes, we need to check that the sector_t and page cache of the system are capable of addressing the entire volume. An identical check already appears in ext3 and ext4. This patch moves the addressability check into its own function in fs/libfs.c and modifies ext3 and ext4 to invoke it. [Edited to -EINVAL instead of BUG_ON() for bad blocksize_bits -- Joel] Signed-off-by: Patrick LoPresti Cc: linux-ext4@vger.kernel.org Acked-by: Andreas Dilger Signed-off-by: Joel Becker commit 729963a1ff8d069d05dab6a024bfd59805ac622c Merge: 17ae521 6ea4843 Author: Joel Becker Date: Fri Sep 10 08:41:04 2010 -0700 Merge branch 'cow_readahead' of git://oss.oracle.com/git/tma/linux-2.6 into merge-2 commit 17ae521158d6fe89cfdd00a9990aa40d02e81391 Author: Tao Ma Date: Mon Aug 2 11:02:14 2010 +0800 ocfs2: Remove obsolete comments before ocfs2_start_trans. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit f9c57ada32ea3f2e12600cf274035fff063b2e0f Author: Tao Ma Date: Mon Aug 2 11:02:13 2010 +0800 ocfs2: Remove unused old_id in ocfs2_commit_cache. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit 4c38881f87c21ada5609a4065cb10e3e74da0d6e Author: Jan Kara Date: Thu Aug 5 20:32:46 2010 +0200 ocfs2: Remove ocfs2_sync_inode() ocfs2_sync_inode() is used only from ocfs2_sync_file(). But all data has already been written before calling ocfs2_sync_file() and ocfs2 doesn't use inode's private_list for tracking metadata buffers thus sync_mapping_buffers() is superfluous as well. Signed-off-by: Jan Kara Acked-by: Mark Fasheh Signed-off-by: Joel Becker commit 83fd9c7f65634ac440a6b9b7a63ba562f213ac60 Author: Goldwyn Rodrigues Date: Thu Jun 10 17:21:36 2010 -0500 Reorganize data elements to reduce struct sizes Thanks for the comments. I have incorportated them all. CONFIG_OCFS2_FS_STATS is enabled and CONFIG_DEBUG_LOCK_ALLOC is disabled. Statistics now look like - ocfs2_write_ctxt: 2144 - 2136 = 8 ocfs2_inode_info: 1960 - 1848 = 112 ocfs2_journal: 168 - 160 = 8 ocfs2_lock_res: 336 - 304 = 32 ocfs2_refcount_tree: 512 - 472 = 40 Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit 95fa859a268fd7d9bae6f2d4d095e3f61100ac1b Author: Tao Ma Date: Wed Jun 9 16:48:59 2010 +0800 ocfs2: Remove obscure error handling in direct_write. In ocfs2, actually we don't allow any direct write pass i_size, see the function ocfs2_prepare_inode_for_write. So we don't need the bogus simple_setsize. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit 3c3f20c9813391ba4004764072989744395cf405 Author: Tao Ma Date: Tue Jun 1 13:58:13 2010 +0800 ocfs2: Add some trace log for orphan scan. Now orphan scan worker has no trace log, so it is very hard to tell whether it is finished or blocked. So add 2 mlog trace log so that we can tell whether the current orphan scan worker is blocked or not. It does help when I analyzed a orphan scan bug. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8 Author: Tristan Ye Date: Sat May 22 16:26:33 2010 +0800 Ocfs2: Add new OCFS2_IOC_INFO ioctl for ocfs2 v8. The reason why we need this ioctl is to offer the none-privileged end-user a possibility to get filesys info gathering. We use OCFS2_IOC_INFO to manipulate the new ioctl, userspace passes a structure to kernel containing an array of request pointers and request count, such as, * From userspace: struct ocfs2_info_blocksize oib = { .ib_req = { .ir_magic = OCFS2_INFO_MAGIC, .ir_code = OCFS2_INFO_BLOCKSIZE, ... } ... } struct ocfs2_info_clustersize oic = { ... } uint64_t reqs[2] = {(unsigned long)&oib, (unsigned long)&oic}; struct ocfs2_info info = { .oi_requests = reqs, .oi_count = 2, } ret = ioctl(fd, OCFS2_IOC_INFO, &info); * In kernel: Get the request pointers from *info*, then handle each request one bye one. Idea here is to make the spearated request small enough to guarantee a better backward&forward compatibility since a small piece of request would be less likely to be broken if filesys on raw disk get changed. Currently, the following 7 requests are supported per the requirement from userspace tool o2info, and I believe it will grow over time:-) OCFS2_INFO_CLUSTERSIZE OCFS2_INFO_BLOCKSIZE OCFS2_INFO_MAXSLOTS OCFS2_INFO_LABEL OCFS2_INFO_UUID OCFS2_INFO_FS_FEATURES OCFS2_INFO_JOURNAL_SIZE This ioctl is only specific to OCFS2. Signed-off-by: Tristan Ye Signed-off-by: Joel Becker commit cee010ec5211b96f33c5c2208f5c14ebb04b634a Author: Peter Zijlstra Date: Fri Sep 10 12:51:54 2010 +0200 perf: Ensure we call add_event_to_ctx() with the right locks held Even though we call it from the inherit path, where the child is not yet accessible, we need to hold ctx->lock, add_event_to_ctx() assumes IRQs are disabled. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 0edd55faea7c8081bc826234b917501738a6218f Author: Christoph Hellwig Date: Wed Aug 18 05:29:23 2010 -0400 block: remove the BH_Eopnotsupp flag This flag was only set for barrier buffers, which we don't submit anymore. Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 8c5553678237b7121355108e03c36086037d8975 Author: Christoph Hellwig Date: Wed Aug 18 05:29:22 2010 -0400 block: remove the BLKDEV_IFL_BARRIER flag Remove support for barriers on discards, which is unused now. Also remove the DISCARD_NOBARRIER I/O type in favour of just setting the rw flags up locally in blkdev_issue_discard. tj: Also remove DISCARD_SECURE and use REQ_SECURE directly. Signed-off-by: Christoph Hellwig Acked-by: Mike Snitzer Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 31725e65c7214b52b607eba705fc4f306be4d5a5 Author: Christoph Hellwig Date: Wed Aug 18 05:29:21 2010 -0400 block: remove the WRITE_BARRIER flag It's unused now. Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 349f429eec36cb743fee20f4c193ecde97a3ed2e Author: Christoph Hellwig Date: Wed Aug 18 05:29:20 2010 -0400 swap: do not send discards as barriers The swap code already uses synchronous discards, no need to add I/O barriers. tj: superflous newlines removed. Signed-off-by: Christoph Hellwig Acked-by: Hugh Dickins Tested-by: Nigel Cunningham Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit e045db80d07250312500b2ed707b84dc703189d6 Author: Christoph Hellwig Date: Wed Aug 18 05:29:19 2010 -0400 fat: do not send discards as barriers fat already uses synchronous discards, no need to add I/O barriers. Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 61002f7db33c7d064cddcdab680fb750fa43d8fd Author: Christoph Hellwig Date: Wed Aug 18 05:29:18 2010 -0400 ext4: do not send discards as barriers ext4 already uses synchronous discards, no need to add I/O barriers. Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 9c35575bbe6b1dd4914a5323c8df8b3159edcc75 Author: Christoph Hellwig Date: Wed Aug 18 05:29:17 2010 -0400 jbd2: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for journal commits and remove the EOPNOTSUPP detection for barriers. Signed-off-by: Christoph Hellwig Acked-by: Jan Kara Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit f73bee49855fe968e87af18e44f2d17e1e675e74 Author: Jan Kara Date: Wed Aug 18 15:56:56 2010 +0200 jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier Currently JBD2 relies blkdev_issue_flush() draining the queue when ASYNC_COMMIT feature is set. This property is going away so make JBD2 wait for buffers it needs on its own before submitting the cache flush. Signed-off-by: Jan Kara Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 4524451ef7e88c64a868a8f5a0b49bda73beb2a3 Author: Christoph Hellwig Date: Wed Aug 18 05:29:16 2010 -0400 jbd: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for journal commits and remove the EOPNOTSUPP detection for barriers. Signed-off-by: Christoph Hellwig Acked-by: Jan Kara Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit f8c131f5b6ffc899a70b30e541f367d47f89691c Author: Christoph Hellwig Date: Wed Aug 18 05:29:15 2010 -0400 nilfs2: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for log writes, remove the EOPNOTSUPP detection for barriers and stop setting the barrier flag for discards. tj: nilfs is now fixed to wait for discard completion. Updated this patch accordingly and dropped warning about it. Signed-off-by: Christoph Hellwig Acked-by: Ryusuke Konishi Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 7cd33ad23ec41d685902159be8b2c6552fab8bd0 Author: Christoph Hellwig Date: Wed Aug 18 05:29:14 2010 -0400 reiserfs: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for log writes and remove the EOPNOTSUPP detection for barriers. Note that reiserfs had a fairly different code path for barriers before as it wa the only filesystem actually making use of them. The new code always uses the old non-barrier codepath and just sets the WRITE_FLUSH_FUA explicitly for the journal commits. Signed-off-by: Christoph Hellwig Acked-by: Jan Kara Acked-by: Chris Mason Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit f1e4d518c3beddf67f7722f3548eda0ec7006204 Author: Christoph Hellwig Date: Wed Aug 18 05:29:13 2010 -0400 gfs2: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for log writes, remove the EOPNOTSUPP detection for barriers and stop setting the barrier flag for discards. Signed-off-by: Christoph Hellwig Acked-by: Steven Whitehouse Acked-by: Bob Peterson Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit c3b9a62c8f932f32a733d6b628f61f3f28345727 Author: Christoph Hellwig Date: Wed Aug 18 05:29:12 2010 -0400 btrfs: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for log writes, remove the EOPNOTSUPP detection for barriers and stop setting the barrier flag for discards. Signed-off-by: Christoph Hellwig Acked-by: Chris Mason Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 80f6c29d8a758650d5c9eac05074b4b3e8c266df Author: Christoph Hellwig Date: Wed Aug 18 05:29:11 2010 -0400 xfs: replace barriers with explicit flush / FUA usage Switch to the WRITE_FLUSH_FUA flag for log writes and remove the EOPNOTSUPP detection for barriers. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 2cf6d26a354ab6362e301b5a323832b02867df47 Author: Christoph Hellwig Date: Wed Aug 18 05:29:10 2010 -0400 block: pass gfp_mask and flags to sb_issue_discard We'll need to get rid of the BLKDEV_IFL_BARRIER flag, and to facilitate that and to make the interface less confusing pass all flags explicitly. Signed-off-by: Christoph Hellwig Acked-by: Mike Snitzer Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit b372d360df6deaf79a58a02fa0cc0d7e0aa3e92f Author: Mike Snitzer Date: Wed Sep 8 18:07:01 2010 +0200 dm: convey that all flushes are processed as empty Rename __clone_and_map_flush to __clone_and_map_empty_flush for added clarity. Simplify logic associated with REQ_FLUSH conditionals. Introduce a BUG_ON() and add a few more helpful comments to the code so that it is clear that all flushes are empty. Cleanup __split_and_process_bio() so that an empty flush isn't processed by a 'sector_count' focused while loop. Signed-off-by: Mike Snitzer Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 05447420f99c1c44063c7f00054667c022cc1365 Author: Kiyoshi Ueda Date: Wed Sep 8 18:07:01 2010 +0200 dm: fix locking context in queue_io() Now queue_io() is called from dec_pending(), which may be called with interrupts disabled, so queue_io() must not enable interrupts unconditionally and must save/restore the current interrupts status. Signed-off-by: Kiyoshi Ueda Signed-off-by: Jun'ichi Nomura Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 6a8736d10cb413be95ea443ba40f25c93f4ef9b2 Author: Tejun Heo Date: Wed Sep 8 18:07:00 2010 +0200 dm: relax ordering of bio-based flush implementation Unlike REQ_HARDBARRIER, REQ_FLUSH/FUA doesn't mandate any ordering against other bio's. This patch relaxes ordering around flushes. * A flush bio is no longer deferred to workqueue directly. It's processed like other bio's but __split_and_process_bio() uses md->flush_bio as the clone source. md->flush_bio is initialized to empty flush during md initialization and shared for all flushes. * As a flush bio now travels through the same execution path as other bio's, there's no need for dedicated error handling path either. It can use the same error handling path in dec_pending(). Dedicated error handling removed along with md->flush_error. * When dec_pending() detects that a flush has completed, it checks whether the original bio has data. If so, the bio is queued to the deferred list w/ REQ_FLUSH cleared; otherwise, it's completed. * As flush sequencing is handled in the usual issue/completion path, dm_wq_work() no longer needs to handle flushes differently. Now its only responsibility is re-issuing deferred bio's the same way as _dm_request() would. REQ_FLUSH handling logic including process_flush() is dropped. * There's no reason for queue_io() and dm_wq_work() write lock dm->io_lock. queue_io() now only uses md->deferred_lock and dm_wq_work() read locks dm->io_lock. * bio's no longer need to be queued on the deferred list while a flush is in progress making DMF_QUEUE_IO_TO_THREAD unncessary. Drop it. This avoids stalling the device during flushes and simplifies the implementation. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 29e4013de7ad950280e4b220894986866697d419 Author: Tejun Heo Date: Wed Sep 8 18:07:00 2010 +0200 dm: implement REQ_FLUSH/FUA support for request-based dm This patch converts request-based dm to support the new REQ_FLUSH/FUA. The original request-based flush implementation depended on request_queue blocking other requests while a barrier sequence is in progress, which is no longer true for the new REQ_FLUSH/FUA. In general, request-based dm doesn't have infrastructure for cloning one source request to multiple targets, but the original flush implementation had a special mostly independent path which can issue flushes to multiple targets and sequence them. However, the capability isn't currently in use and adds a lot of complexity. Moreoever, it's unlikely to be useful in its current form as it doesn't make sense to be able to send out flushes to multiple targets when write requests can't be. This patch rips out special flush code path and deals handles REQ_FLUSH/FUA requests the same way as other requests. The only special treatment is that REQ_FLUSH requests use the block address 0 when finding target, which is enough for now. * added BUG_ON(!dm_target_is_valid(ti)) in dm_request_fn() as suggested by Mike Snitzer Signed-off-by: Tejun Heo Acked-by: Mike Snitzer Tested-by: Kiyoshi Ueda Signed-off-by: Jens Axboe commit d87f4c14f27dc82d215108d8392a7d26687148a1 Author: Tejun Heo Date: Fri Sep 3 11:56:19 2010 +0200 dm: implement REQ_FLUSH/FUA support for bio-based dm This patch converts bio-based dm to support REQ_FLUSH/FUA instead of now deprecated REQ_HARDBARRIER. * -EOPNOTSUPP handling logic dropped. * Preflush is handled as before but postflush is dropped and replaced with passing down REQ_FUA to member request_queues. This replaces one array wide cache flush w/ member specific FUA writes. * __split_and_process_bio() now calls __clone_and_map_flush() directly for flushes and guarantees all FLUSH bio's going to targets are zero ` length. * It's now guaranteed that all FLUSH bio's which are passed onto dm targets are zero length. bio_empty_barrier() tests are replaced with REQ_FLUSH tests. * Empty WRITE_BARRIERs are replaced with WRITE_FLUSHes. * Dropped unlikely() around REQ_FLUSH tests. Flushes are not unlikely enough to be marked with unlikely(). * Block layer now filters out REQ_FLUSH/FUA bio's if the request_queue doesn't support cache flushing. Advertise REQ_FLUSH | REQ_FUA capability. * Request based dm isn't converted yet. dm_init_request_based_queue() resets flush support to 0 for now. To avoid disturbing request based dm code, dm->flush_error is added for bio based dm while requested based dm continues to use dm->barrier_error. Lightly tested linear, stripe, raid1, snap and crypt targets. Please proceed with caution as I'm not familiar with the code base. Signed-off-by: Tejun Heo Cc: dm-devel@redhat.com Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 3a2edd0d6ddbd5fa3b389ea6db811285415ce6c8 Author: Tejun Heo Date: Fri Sep 3 11:56:18 2010 +0200 block: make __blk_rq_prep_clone() copy most command flags Currently __blk_rq_prep_clone() copies only REQ_WRITE and REQ_DISCARD. There's no reason to omit other command flags and REQ_FUA needs to be copied to implement FUA support in request-based dm. REQ_COMMON_MASK which specifies flags to be copied from bio to request already identifies all the command flags. Define REQ_CLONE_MASK to be the same as REQ_COMMON_MASK for clarity and make __blk_rq_prep_clone() copy all flags in the mask. Signed-off-by: Tejun Heo Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe commit e9c7469bb4f502dafc092166201bea1ad5fc0fbf Author: Tejun Heo Date: Fri Sep 3 11:56:18 2010 +0200 md: implment REQ_FLUSH/FUA support This patch converts md to support REQ_FLUSH/FUA instead of now deprecated REQ_HARDBARRIER. In the core part (md.c), the following changes are notable. * Unlike REQ_HARDBARRIER, REQ_FLUSH/FUA don't interfere with processing of other requests and thus there is no reason to mark the queue congested while FLUSH/FUA is in progress. * REQ_FLUSH/FUA failures are final and its users don't need retry logic. Retry logic is removed. * Preflush needs to be issued to all member devices but FUA writes can be handled the same way as other writes - their processing can be deferred to request_queue of member devices. md_barrier_request() is renamed to md_flush_request() and simplified accordingly. For linear, raid0 and multipath, the core changes are enough. raid1, 5 and 10 need the following conversions. * raid1: Handling of FLUSH/FUA bio's can simply be deferred to request_queues of member devices. Barrier related logic removed. * raid5: Queue draining logic dropped. FUA bit is propagated through biodrain and stripe resconstruction such that all the updated parts of the stripe are written out with FUA writes if any of the dirtying writes was FUA. preread_active_stripes handling in make_request() is updated as suggested by Neil Brown. * raid10: FUA bit needs to be propagated to write clones. linear, raid0, 1, 5 and 10 tested. Signed-off-by: Tejun Heo Reviewed-by: Neil Brown Signed-off-by: Jens Axboe commit 7bc9fddab074d6bb630344e1969e28d20b140621 Author: Tejun Heo Date: Fri Sep 3 11:56:18 2010 +0200 lguest: replace VIRTIO_F_BARRIER support with VIRTIO_F_FLUSH support VIRTIO_F_BARRIER is deprecated. Replace it with VIRTIO_F_FLUSH support. Signed-off-by: Tejun Heo Cc: Rusty Russell Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 02c42b7a68695c2c3e3fecf9f6b9a4ea43abe52f Author: Tejun Heo Date: Fri Sep 3 11:56:18 2010 +0200 virtio_blk: drop REQ_HARDBARRIER support Remove now unused REQ_HARDBARRIER support. virtio_blk already supports REQ_FLUSH and the usefulness of REQ_FUA for virtio_blk is questionable at this point, so there's nothing else to do to support new REQ_FLUSH/FUA interface. Signed-off-by: Tejun Heo Cc: Michael S. Tsirkin Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 6259f28459a9de820f47a9ece4ffa22d4596a9af Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block/loop: implement REQ_FLUSH/FUA support Deprecate REQ_HARDBARRIER and implement REQ_FLUSH/FUA instead. Also, instead of checking file->f_op->fsync() directly, look at the value of vfs_fsync() and ignore -EINVAL return. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit d391a2dda2f1c993f094bdb3a8a342c5e0546553 Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: use REQ_FLUSH in blkdev_issue_flush() Update blkdev_issue_flush() to use new REQ_FLUSH interface. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 04ccc65cd1f57aee861708e08cd2272c5a0d088c Author: Christoph Hellwig Date: Fri Sep 3 11:56:17 2010 +0200 block: update documentation for REQ_FLUSH / REQ_FUA Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 09d60c701b64b509f328cac72970eb894f485b9e Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: make sure FSEQ_DATA request has the same rq_disk as the original rq->rq_disk and bio->bi_bdev->bd_disk may differ if a request has passed through remapping drivers. FSEQ_DATA request incorrectly followed bio->bi_bdev->bd_disk ending up being issued w/ mismatching rq_disk. Make it follow orig_rq->rq_disk. Signed-off-by: Tejun Heo Reported-by: Kiyoshi Ueda Tested-by: Kiyoshi Ueda Signed-off-by: Jens Axboe commit 47f70d5a6ca78c40a1c799d43506efbfed914f7b Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: kick queue after sequencing REQ_FLUSH/FUA While completing a request from a REQ_FLUSH/FUA sequence, another request can be pushed to the request queue. If a driver tests elv_queue_empty() before completing a request and runs the queue again only if the queue wasn't empty, this may lead to hang. Please note that most drivers either kick the queue unconditionally or test queue emptiness after completing the current request and don't have this problem. This patch removes this possibility by making REQ_FLUSH/FUA sequence code kick the queue if the queue was empty before completing a request from REQ_FLUSH/FUA sequence. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 337238be1bf52e1242f940fc6fe83fb395e55057 Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: initialize flush request with WRITE_FLUSH instead of REQ_FLUSH init_flush_request() only set REQ_FLUSH when initializing flush requests making them READ requests. Use WRITE_FLUSH instead. Signed-off-by: Tejun Heo Reported-by: Mike Snitzer Signed-off-by: Jens Axboe commit cde4c406d8fb051c5aafc917643adbb9dbd0abc2 Author: Christoph Hellwig Date: Fri Sep 3 11:56:17 2010 +0200 block: simplify queue_next_fseq We need to call blk_rq_init and elv_insert for all cases in queue_next_fseq, so take these calls into common code. Also move the end_io initialization from queue_flush into queue_next_fseq and rename queue_flush to init_flush_request now that it's old name doesn't apply anymore. Signed-off-by: Christoph Hellwig Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 1e87901e189c8f01750d67485009fe3827c691bf Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: filter flush bio's in __generic_make_request() There are a number of make_request based drivers which don't support cache flushes. Filter out flush bio's in __generic_make_request() so that they don't have to worry about them. All FLUSH/FUA requests with data are converted to regular IO requests and empty ones are completed immediately. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 4fed947cb311e5aa51781d316cefca836352f6ce Author: Tejun Heo Date: Fri Sep 3 11:56:17 2010 +0200 block: implement REQ_FLUSH/FUA based interface for FLUSH/FUA requests Now that the backend conversion is complete, export sequenced FLUSH/FUA capability through REQ_FLUSH/FUA flags. REQ_FLUSH means the device cache should be flushed before executing the request. REQ_FUA means that the data in the request should be on non-volatile media on completion. Block layer will choose the correct way of implementing the semantics and execute it. The request may be passed to the device directly if the device can handle it; otherwise, it will be sequenced using one or more proxy requests. Devices will never see REQ_FLUSH and/or FUA which it doesn't support. Also, unlike the original REQ_HARDBARRIER, REQ_FLUSH/FUA requests are never failed with -EOPNOTSUPP. If the underlying device doesn't support FLUSH/FUA, the block layer simply make those noop. IOW, it no longer distinguishes between writeback cache which doesn't support cache flush and writethrough/no cache. Devices which have WB cache w/o flush are very difficult to come by these days and there's nothing much we can do anyway, so it doesn't make sense to require everyone to implement -EOPNOTSUPP handling. This will simplify filesystems and block drivers as they can drop -EOPNOTSUPP retry logic for barriers. * QUEUE_ORDERED_* are removed and QUEUE_FSEQ_* are moved into blk-flush.c. * REQ_FLUSH w/o data can also be directly passed to drivers without sequencing but some drivers assume that zero length requests don't have rq->bio which isn't true for these requests requiring the use of proxy requests. * REQ_COMMON_MASK now includes REQ_FLUSH | REQ_FUA so that they are copied from bio to request. * WRITE_BARRIER is marked deprecated and WRITE_FLUSH, WRITE_FUA and WRITE_FLUSH_FUA are added. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit dd4c133f387c48f526022860ad70354637a80f4c Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: rename barrier/ordered to flush With ordering requirements dropped, barrier and ordered are misnomers. Now all block layer does is sequencing FLUSH and FUA. Rename them to flush. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 8839a0e055d9abd6c011d533373a8dd266cad011 Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: rename blk-barrier.c to blk-flush.c Without ordering requirements, barrier and ordering are minomers. Rename block/blk-barrier.c to block/blk-flush.c. Rename of symbols will follow. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit 28e7d1845216538303bb95d679d8fd4de50e2f1a Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: drop barrier ordering by queue draining Filesystems will take all the responsibilities for ordering requests around commit writes and will only indicate how the commit writes themselves should be handled by block layers. This patch drops barrier ordering by queue draining from block layer. Ordering by draining implementation was somewhat invasive to request handling. List of notable changes follow. * Each queue has 1 bit color which is flipped on each barrier issue. This is used to track whether a given request is issued before the current barrier or not. REQ_ORDERED_COLOR flag and coloring implementation in __elv_add_request() are removed. * Requests which shouldn't be processed yet for draining were stalled by returning -EAGAIN from blk_do_ordered() according to the test result between blk_ordered_req_seq() and blk_blk_ordered_cur_seq(). This logic is removed. * Draining completion logic in elv_completed_request() removed. * All barrier sequence requests were queued to request queue and then trckled to lower layer according to progress and thus maintaining request orders during requeue was necessary. This is replaced by queueing the next request in the barrier sequence only after the current one is complete from blk_ordered_complete_seq(), which removes the need for multiple proxy requests in struct request_queue and the request sorting logic in the ELEVATOR_INSERT_REQUEUE path of elv_insert(). * As barriers no longer have ordering constraints, there's no need to dump the whole elevator onto the dispatch queue on each barrier. Insert barriers at the front instead. * If other barrier requests come to the front of the dispatch queue while one is already in progress, they are stored in q->pending_barriers and restored to dispatch queue one-by-one after each barrier completion from blk_ordered_complete_seq(). Signed-off-by: Tejun Heo Cc: Christoph Hellwig Signed-off-by: Jens Axboe commit dd831006d5be7f74c3fe7aef82380c51c3637960 Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: misc cleanups in barrier code Make the following cleanups in preparation of barrier/flush update. * blk_do_ordered() declaration is moved from include/linux/blkdev.h to block/blk.h. * blk_do_ordered() now returns pointer to struct request, with %NULL meaning "try the next request" and ERR_PTR(-EAGAIN) "try again later". The third case will be dropped with further changes. * In the initialization of proxy barrier request, data direction is already set by init_request_from_bio(). Drop unnecessary explicit REQ_WRITE setting and move init_request_from_bio() above REQ_FUA flag setting. * add_request() is collapsed into __make_request(). These changes don't make any functional difference. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 9cbbdca44ae1a6f512ea1e2be11ced8bbb9d430a Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: remove spurious uses of REQ_HARDBARRIER REQ_HARDBARRIER is deprecated. Remove spurious uses in the following users. Please note that other than osdblk, all other uses were already spurious before deprecation. * osdblk: osdblk_rq_fn() won't receive any request with REQ_HARDBARRIER set. Remove the test for it. * pktcdvd: use of REQ_HARDBARRIER in pkt_generic_packet() doesn't mean anything. Removed. * aic7xxx_old: Setting MSG_ORDERED_Q_TAG on REQ_HARDBARRIER is spurious. Removed. * sas_scsi_host: Setting TASK_ATTR_ORDERED on REQ_HARDBARRIER is spurious. Removed. * scsi_tcq: The ordered tag path wasn't being used anyway. Removed. Signed-off-by: Tejun Heo Acked-by: Boaz Harrosh Cc: James Bottomley Cc: Peter Osterlund Signed-off-by: Jens Axboe commit 4913efe456c987057e5d36a3f0a55422a9072cae Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: deprecate barrier and replace blk_queue_ordered() with blk_queue_flush() Barrier is deemed too heavy and will soon be replaced by FLUSH/FUA requests. Deprecate barrier. All REQ_HARDBARRIERs are failed with -EOPNOTSUPP and blk_queue_ordered() is replaced with simpler blk_queue_flush(). blk_queue_flush() takes combinations of REQ_FLUSH and FUA. If a device has write cache and can flush it, it should set REQ_FLUSH. If the device can handle FUA writes, it should also set REQ_FUA. All blk_queue_ordered() users are converted. * ORDERED_DRAIN is mapped to 0 which is the default value. * ORDERED_DRAIN_FLUSH is mapped to REQ_FLUSH. * ORDERED_DRAIN_FLUSH_FUA is mapped to REQ_FLUSH | REQ_FUA. Signed-off-by: Tejun Heo Acked-by: Boaz Harrosh Cc: Christoph Hellwig Cc: Nick Piggin Cc: Michael S. Tsirkin Cc: Jeremy Fitzhardinge Cc: Chris Wright Cc: FUJITA Tomonori Cc: Geert Uytterhoeven Cc: David S. Miller Cc: Alasdair G Kergon Cc: Pierre Ossman Cc: Stefan Weinhuber Signed-off-by: Jens Axboe commit 6958f145459ca7ad9715024de97445addacb8510 Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block: kill QUEUE_ORDERED_BY_TAG Nobody is making meaningful use of ORDERED_BY_TAG now and queue draining for barrier requests will be removed soon which will render the advantage of tag ordering moot. Kill ORDERED_BY_TAG. The following users are affected. * brd: converted to ORDERED_DRAIN. * virtio_blk: ORDERED_TAG path was already marked deprecated. Removed. * xen-blkfront: ORDERED_TAG case dropped. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Cc: Nick Piggin Cc: Michael S. Tsirkin Cc: Jeremy Fitzhardinge Cc: Chris Wright Signed-off-by: Jens Axboe commit 589d7ed02ade0d06a3510da2e15a7edfdb2ef3d8 Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 block/loop: queue ordered mode should be DRAIN_FLUSH loop implements FLUSH using fsync but was incorrectly setting its ordered mode to DRAIN. Change it to DRAIN_FLUSH. In practice, this doesn't change anything as loop doesn't make use of the block layer ordered implementation. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 0da2f50944976e890ccc9436ab88c0da87788d02 Author: Tejun Heo Date: Fri Sep 3 11:56:16 2010 +0200 ide: remove unnecessary blk_queue_flushing() test in do_ide_request() Unplugging from a request function doesn't really help much (it's already in the request_fn) and soon block layer will be updated to mix barrier sequence with other commands, so there's no need to treat queue flushing any differently. ide was the only user of blk_queue_flushing(). Remove it. Signed-off-by: Tejun Heo Cc: Christoph Hellwig Acked-by: David S. Miller Signed-off-by: Jens Axboe commit fcfb5c0ce11fe474cd6b4f7e83e0cc25f220d911 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:35 2010 -0500 cciss: remove some superfluous tests from cciss_bigpassthru() Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 0c9f5ba7cb7435ea4b99599de4af0729f0740647 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:30 2010 -0500 cciss: factor out cciss_big_passthru Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit f32f125b1c14dcde49ec415ec941af750433251e Author: Stephen M. Cameron Date: Thu Aug 26 13:56:25 2010 -0500 cciss: factor out cciss_passthru Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 0894b32c5c1444d25f3e988cf03415ce8dfc5142 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:20 2010 -0500 cciss: factor out cciss_getluninfo Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit c525919ddf0b10ff0e1f528dd50d90edfdee4797 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:15 2010 -0500 cciss: factor out cciss_getdrivver Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 8a4f7fbfdd76a304c8f04dde6b8fd0e5c50bbe76 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:10 2010 -0500 cciss: factor out cciss_getfirmver Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit d18dfad4e2bf6c2d2c5c104d882b14b9fee71b14 Author: Stephen M. Cameron Date: Thu Aug 26 13:56:05 2010 -0500 cciss: factor out cciss_getbustypes Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 93c74931131d3a7af3a6aa18aab0d39978b5d3b5 Author: Stephen M. Cameron Date: Thu Aug 26 13:55:59 2010 -0500 cciss: factor out cciss_getheartbeat Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 4f43f32cd3f65cfee5f30d7e6be55854cf33809b Author: Stephen M. Cameron Date: Thu Aug 26 13:55:54 2010 -0500 cciss: factor out cciss_setnodename Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 252161094255ffdc277b8a0e5e12b0a8ff67b10f Author: Stephen M. Cameron Date: Thu Aug 26 13:55:49 2010 -0500 cciss: factor out cciss_getnodename Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 4c800eed9a46f7b6a469d24e7e6051b23e62bb69 Author: Stephen M. Cameron Date: Thu Aug 26 13:55:44 2010 -0500 cciss: factor out cciss_setintinfo Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 576e661c658ab7d2a15cc12d5b8a1600db81ec0a Author: Stephen M. Cameron Date: Thu Aug 26 13:55:39 2010 -0500 cciss: factor out cciss_getintinfo Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 0a25a5aee727c4a56c7d39e0e595947b02ee2696 Author: Stephen M. Cameron Date: Thu Aug 26 13:55:34 2010 -0500 cciss: factor out cciss_getpciinfo Signed-off-by: Stephen M. Cameron Signed-off-by: Jens Axboe commit 9329ba9704f6bd51a735982e0d4a3eed72c3294f Author: Tejun Heo Date: Fri Sep 10 11:01:56 2010 +0200 percpu: update comments to reflect that percpu allocations are always zero-filled Signed-off-by: Tejun Heo Reported-by: Stephane Eranian commit 677243d7494d09bfa782425f063a6013de53c35b Author: Brian Gerst Date: Thu Sep 9 18:17:26 2010 +0200 percpu: Optimize __get_cpu_var() Redefine __get_cpu_var() using this_cpu_ptr() which can be arch-optimized. Signed-off-by: Brian Gerst Signed-off-by: Tejun Heo commit db7829c6cc32f3c0c9a324118d743acb1abff081 Author: Brian Gerst Date: Thu Sep 9 18:17:26 2010 +0200 x86, percpu: Optimize this_cpu_ptr Allow arches to implement __this_cpu_ptr, and provide an x86 version. Before: movq $foo, %rax movq %gs:this_cpu_off, %rdx addq %rdx, %rax After: movq $foo, %rax addq %gs:this_cpu_off, %rax The benefit is doing it in one less instruction and not clobbering a temporary register. tj: * Beefed up the comment a bit and renamed in-macro temp variable to match neighboring macros. * Folded fix for const pointer case found in linux-next. * Fixed sparse notation. Signed-off-by: Brian Gerst Signed-off-by: Tejun Heo commit fc1481a956181d0360d3eb129965302489895a1b Author: Tejun Heo Date: Fri Sep 10 10:49:37 2010 +0200 percpu: clear memory allocated with the km allocator Percpu allocator should clear memory before returning it but the km allocator forgot to do it. Fix it. Signed-off-by: Tejun Heo Reported-by: Peter Zijlstra Acked-by: Peter Zijlstra commit e548833df83c3554229eff0672900bfe958b45fd Merge: cbd9da7 053d8f6 Author: David S. Miller Date: Thu Sep 9 22:27:33 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: net/mac80211/main.c commit cbd9da7be869f676afc204e1a664163778c770bd Author: Nikitas Angelinas Date: Wed Sep 8 11:20:37 2010 +0000 drivers/net/bnx2x: use ARRAY_SIZE macro in bnx2x_main.c Replace sizeof(bnx2x_parity_mask)/(sizeof(bnx2x_parity_mask[0]) with ARRAY_SIZE(bnx2x_parity_mask) in drivers/net/bnx2x/bnx2x_main.c Signed-off-by: Nikitas Angelinas Signed-off-by: David S. Miller commit dc99839cf600518ed1f20e47522fe7f629387078 Author: Florian Fainelli Date: Wed Sep 8 11:11:59 2010 +0000 au1000-eth: change multi-line comments style Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit d0e7cb5d401695809ba8c980124ab1d8c66efc8b Author: Florian Fainelli Date: Wed Sep 8 11:15:13 2010 +0000 au1000-eth: remove volatiles, switch to I/O accessors Remove all the volatile keywords where they were used, switch to using the proper readl/writel accessors. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 49a42c080fbba9e99b4339763dd7771569ee38c3 Author: Florian Fainelli Date: Wed Sep 8 11:11:49 2010 +0000 au1000-eth: fix asm -> linux headers inclusion Replace asm/io.h and asm/cpu.h wih linux/io.h and linux/cpu.h Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 215e17be9f390e787cf9b9e5c9020d298b41d513 Author: Florian Fainelli Date: Wed Sep 8 11:11:45 2010 +0000 au1000-eth: fix bad printk usages Use pr_(info|err) and pr_cont where required instead of calls to printk. Add missing pr_fmt to the driver. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 18b8e15b0433ac682138ce5d03157ddc28bdf350 Author: Florian Fainelli Date: Wed Sep 8 11:11:40 2010 +0000 au1000-eth: fix all but one "line over 80 characters warnings" One line has not been changed because it would not improve readability. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit ec7eabdde2cc3e71fa71f979bd3448c45122a4a8 Author: Florian Fainelli Date: Wed Sep 8 11:11:31 2010 +0000 au1000-eth: stylistic fixes This patch fixes the following checkpatch.pl warnings: - spaces after tabs - space between function and arguments - one-line statement braces - tabs instead of spaces Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 3441592b34121a38047ed6680f0ed9b9017de9cf Author: Florian Fainelli Date: Wed Sep 8 11:11:25 2010 +0000 au1000-eth: typedefs removal Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit b2abd4c033c3965ce670841dfb401f5f166222d5 Author: Paul Gortmaker Date: Wed Sep 8 13:31:24 2010 +0000 tipc: Optimize handling excess content on incoming messages Remove code that trimmed excess trailing info from incoming messages arriving over an Ethernet interface. TIPC now ignores the extra info while the message is being processed by the node, and only trims it off if the message is retransmitted to another node. (This latter step is done to ensure the extra info doesn't cause the sk_buff to exceed the outgoing interface's MTU limit.) The outgoing buffer is guaranteed to be linear. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit fb621bac21fc315af9f66a754b7abe26ded3f260 Author: Eric Dumazet Date: Wed Sep 8 22:48:31 2010 +0000 ixgbevf: remove private net_device_stats Use the net_device provided net_device_stats structure. Remove ixgbevf_get_stats() now its not needed. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 49d61e2390c92bd226fc395a6165eb5a65ae4de6 Author: Eric Dumazet Date: Thu Sep 9 05:33:43 2010 +0000 tunnels: missing rcu_assign_pointer() xfrm4_tunnel_register() & xfrm6_tunnel_register() should use rcu_assign_pointer() to make sure previous writes (to handler->next) are committed to memory before chain insertion. deregister functions dont need a particular barrier. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit f39234d60617d37818b30991e6794643ce220296 Author: Namhyung Kim Date: Wed Sep 8 03:48:48 2010 +0000 net/core: add lock context change annotations in net/core/sock.c __lock_sock() and __release_sock() releases and regrabs lock but were missing proper annotations. Add it. This removes following warning from sparse. (Currently __lock_sock() does not emit any warning about it but I think it is better to add also.) net/core/sock.c:1580:17: warning: context imbalance in '__release_sock' - unexpected unlock Signed-off-by: Namhyung Kim Signed-off-by: David S. Miller commit a700d8be733bd593ea4797dfde17aed4f35213c0 Author: Namhyung Kim Date: Wed Sep 8 03:48:47 2010 +0000 net/core: remove address space warnings on verify_iovec() move_addr_to_kernel() and copy_from_user() requires their argument as __user pointer but were missing proper markups. Add it. This removes following warnings from sparse. net/core/iovec.c:44:52: warning: incorrect type in argument 1 (different address spaces) net/core/iovec.c:44:52: expected void [noderef] *uaddr net/core/iovec.c:44:52: got void *msg_name net/core/iovec.c:55:34: warning: incorrect type in argument 2 (different address spaces) net/core/iovec.c:55:34: expected void const [noderef] *from net/core/iovec.c:55:34: got struct iovec *msg_iov Signed-off-by: Namhyung Kim Signed-off-by: David S. Miller commit cf0ac2b8a759fecbefd80f890c6dbe80ba65fd95 Merge: f27e21a 905d64c Author: David S. Miller Date: Thu Sep 9 14:58:11 2010 -0700 Merge branch 'for-davem' of git://oss.oracle.com/git/agrover/linux-2.6 commit b2b57fe053c9cf8b8af5a0e826a465996afed0ff Author: Brian Gerst Date: Fri Sep 3 21:17:19 2010 -0400 x86, fpu: Merge fpu_save_init() Make 64-bit use the 32-bit version of fpu_save_init(). Remove unused clear_fpu_state(). Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-13-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 58a992b9cbaf449aeebd3575c3695a9eb5d95b5e Author: Brian Gerst Date: Fri Sep 3 21:17:18 2010 -0400 x86-32, fpu: Rewrite fpu_save_init() Rewrite fpu_save_init() to prepare for merging with 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-12-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit eec73f813ab0954253e5e2168119c4555f83f07d Author: Brian Gerst Date: Fri Sep 3 21:17:17 2010 -0400 x86, fpu: Remove PSHUFB_XMM5_* macros The PSHUFB_XMM5_* macros are no longer used. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-11-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 8eb91a577d7763d21628f6761045328784b1911c Author: Brian Gerst Date: Fri Sep 3 21:17:16 2010 -0400 x86, fpu: Remove unnecessary ifdefs from i387 code. Remove ifdefs for code that the compiler can optimize away on 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-10-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit a334fe43d85f570ae907acf988a053c5eff78d6e Author: Brian Gerst Date: Fri Sep 3 21:17:15 2010 -0400 x86-32, fpu: Remove math_emulate stub check_fpu() in bugs.c halts boot if no FPU is found and math emulation isn't enabled. Therefore this stub will never be used. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-9-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 820241356d6aa9a895fc10def15794a5a5bfcd98 Author: Brian Gerst Date: Fri Sep 3 21:17:14 2010 -0400 x86-64, fpu: Simplify constraints for fxsave/fxtstor Use the "R" constraint (legacy register) instead of listing all the possible registers. Clean up the comments as well. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-8-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 10c11f304986a1f84201c2261a428701f9d2dffc Author: Brian Gerst Date: Fri Sep 3 21:17:13 2010 -0400 x86-64, fpu: Fix %cs value in convert_from_fxsr() While %ds still contains the userspace selector, %cs is KERNEL_CS at this point. Always get %cs from pt_regs even for the current task. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-7-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit a4d4fbc7735bba6654b20f859135f9d3f8fe7f76 Author: Brian Gerst Date: Fri Sep 3 21:17:12 2010 -0400 x86-64, fpu: Disable preemption when using TS_USEDFPU Consolidates code and fixes the below race for 64-bit. commit 9fa2f37bfeb798728241cc4a19578ce6e4258f25 Author: torvalds Date: Tue Sep 2 07:37:25 2003 +0000 Be a lot more careful about TS_USEDFPU and preemption We had some races where we testecd (or set) TS_USEDFPU together with sequences that depended on the setting (like clearing or setting the TS flag in %cr0) and we could be preempted in between, which screws up the FPU state, since preemption will itself change USEDFPU and the TS flag. This makes it a lot more explicit: the "internal" low-level FPU functions ("__xxxx_fpu()") all require preemption to be disabled, and the exported "real" functions will make sure that is the case. One case - in __switch_to() - was switched to the non-preempt-safe internal version, since the scheduler itself has already disabled preemption. BKrev: 3f5448b5WRiQuyzAlbajs3qoQjSobw Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-6-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit bfd946cb891800d408decaae268a3480775178a3 Author: Brian Gerst Date: Fri Sep 3 21:17:11 2010 -0400 x86, fpu: Merge __save_init_fpu() __save_init_fpu() is identical for 32-bit and 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-5-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 51115d4d45700fc7c08306f7ba6e68551f526ae5 Author: Brian Gerst Date: Fri Sep 3 21:17:10 2010 -0400 x86, fpu: Merge tolerant_fwait() Commit e2e75c91 merged the math exception handler, allowing both 32-bit and 64-bit to handle math exceptions from kernel mode. Switch to using the 64-bit version of tolerant_fwait() without fnclex, which simply ignores the exception if one is still pending from userspace. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-4-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 6ac8bac2684235f4caf22a410549c582aa7327d6 Author: Brian Gerst Date: Fri Sep 3 21:17:09 2010 -0400 x86, fpu: Merge fpu_init() Make fpu_init() handle 32-bit setup. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-3-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 2df7a6e9e8e67c19e5fe2eac3f2d2223b7bb4a7b Author: Brian Gerst Date: Fri Sep 3 21:17:08 2010 -0400 x86: Use correct type for %cr4 %cr4 is 64-bit in 64-bit mode (although the upper 32-bits are currently reserved). Use unsigned long for the temporary variable to get the right size. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-2-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 78d16341facf829a71b6f7c68ec5511b9c168060 Author: James Smart Date: Tue Aug 31 22:27:31 2010 -0400 [SCSI] scsi_transport_fc: fix blocked bsg request when fc object deleted When an rport is "blocked" and a bsg request is received, the bsg request gets placed on the queue but the queue stalls. If the fc object is then deleted - the bsg queue never restarts and keeps the reference on the object, and stops the overall teardown. This patch restarts the bsg queue on teardown and drains any pending requests, allowing the teardown to succeed. Signed-off-by: Carl Lajeunesse Signed-off-by: James Smart Signed-off-by: James Bottomley commit 91978465b1e5f89025cd43cd2102943160ec6dee Author: Christof Schmitt Date: Mon Aug 30 10:55:09 2010 +0200 [SCSI] zfcp: Reorder registration of initial SCSI device Make sure that the rport registration did complete and then register SCSI device directly. Otherwise the unit_enqueue would race with the call to zfcp_scsi_queue_unit_register. Reviewed-by: Swen Schillig Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 634651fab36dc8d7c3b1a1aa14f9ec1e29de9f0f Author: Wayne Boyer Date: Fri Aug 27 14:45:07 2010 -0700 [SCSI] ipr: reverse the isr optimization changes The isr optimization patch that was submitted a few months ago exposed problems with receiving and handling spurious HRRQ interrutps. commit 64ffdb762241c0a9c0c8fac7ea92aa0ba1529334 Author: Wayne Boyer Date: Wed May 19 11:56:13 2010 -0700 [SCSI] ipr: improve interrupt service routine performance That patch is reverted with this one. A new patch will be submitted once the issue is better understood and properly handled in the driver. Signed-off-by: Wayne Boyer Acked-by: Brian King Signed-off-by: James Bottomley commit 6014759c929b4ce8c068810b8d05f31969df5897 Author: Martin K. Petersen Date: Thu Aug 19 11:49:00 2010 -0400 [SCSI] scsi_debug: Update thin provisioning support The previous thin provisioning support was not very user friendly because it depended on all the relevant options being set on the command line. Implement support for the Thin Provisioning VPD page from SBC3 r24 and add module options for TPU (UNMAP) and TPWS (WRITE SAME (16) with UNMAP bit). This allows us to have sane default and to enable thin provisioning with a simple tpu=1 or tpws=1 on the command line depending on whether we want UNMAP or WRITE SAME behavior. Signed-off-by: Martin K. Petersen Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 47259658ed9fad837541b738f9375d38022daa14 Author: Randy Dunlap Date: Wed Aug 18 09:28:43 2010 -0700 [SCSI] fix kconfig dependency warnings related to SCSI_SAS_ATTRS Fix kconfig dependency warnings in scsi/Kconfig: warning: (SCSI_SAS_LIBSAS && SCSI || SCSI_MPT2SAS && SCSI_LOWLEVEL && PCI && SCSI || FUSION_SAS && FUSION && PCI && SCSI) selects SCSI_SAS_ATTRS which has unmet direct dependencies (SCSI && BLK_DEV_BSG) Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley commit 0caeb91c8d9ae6398bfe46ce70892e965353f613 Author: Dan Carpenter Date: Tue Aug 17 13:54:57 2010 +0200 [SCSI] pm8001: handle allocation failures Return -ENOMEM if the allocations fail. Signed-off-by: Dan Carpenter Acked-by: Jack Wang Signed-off-by: James Bottomley commit e6d4ef450965af5a3753184d36ef9db7a3242950 Author: Randy Dunlap Date: Sat Aug 14 13:05:41 2010 -0700 [SCSI] iscsi transport: fix kernel-doc notation Fix typo in scsi_transport_iscsi.c kernel-doc notation: Warning(drivers/scsi/scsi_transport_iscsi.c:548): No description found for parameter 'cmd' Signed-off-by: Randy Dunlap Acked-by: Mike Christie Signed-off-by: James Bottomley commit 3b8fad3e2f5f69bfd8e42d099ca8582fb2342edf Author: Frederic Weisbecker Date: Wed Sep 8 14:26:00 2010 +0200 irq: Fix circular headers dependency asm-generic/hardirq.h needs asm/irq.h which might include linux/interrupt.h as in the sparc 32 case. At this point we need irq_cpustat generic definitions, but those are included later in asm-generic/hardirq.h. Then delay a bit the inclusion of irq.h from asm-generic/hardirq.h, it doesn't need to be included early. This fixes: include/linux/interrupt.h: In function '__raise_softirq_irqoff': include/linux/interrupt.h:414: error: implicit declaration of function 'local_softirq_pending' include/linux/interrupt.h:414: error: lvalue required as left operand of assignment Reported-by: Ingo Molnar Signed-off-by: Frederic Weisbecker Cc: Lai Jiangshan Cc: Koki Sanagi Cc: mathieu.desnoyers@efficios.com Cc: rostedt@goodmis.org Cc: nhorman@tuxdriver.com Cc: scott.a.mcmillan@intel.com Cc: eric.dumazet@gmail.com Cc: kaneshige.kenji@jp.fujitsu.com Cc: davem@davemloft.net Cc: izumi.taku@jp.fujitsu.com Cc: kosaki.motohiro@jp.fujitsu.com LKML-Reference: <20100908122557.GA5310@nowhere> Signed-off-by: Ingo Molnar commit 4e231c7962ce711c7d8c2a4dc23ecd1e8fc28363 Author: Peter Zijlstra Date: Thu Sep 9 21:01:59 2010 +0200 perf: Fix up delayed_put_task_struct() I missed a perf_event_ctxp user when converting it to an array. Pull this last user into perf_event.c as well and fix it up. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 8af3c153baf95374eff20a37f00c59a295b52756 Author: Miroslav Lichvar Date: Tue Sep 7 16:43:46 2010 +0200 ntp: Clamp PLL update interval Clamp update interval to reduce PLL gain with low sampling rate (e.g. intermittent network connection) to avoid instability. The clamp roughly corresponds to the loop time constant, it's 8 * poll interval for SHIFT_PLL 2 and 32 * poll interval for SHIFT_PLL 4. This gives good results without affecting the gain in normal conditions where ntpd skips only up to seven consecutive samples. Signed-off-by: Miroslav Lichvar Acked-by: john stultz LKML-Reference: <1283870626-9472-1-git-send-email-mlichvar@redhat.com> Signed-off-by: Thomas Gleixner commit 1b9a644fece117cfa5474a2388d6b89d1baf8ddf Author: Peter Zijlstra Date: Tue Sep 7 18:32:22 2010 +0200 perf: Optimize context ops Assuming we don't mix events of different pmus onto a single context (with the exeption of software events inside a hardware group) we can now assume that all events on a particular context belong to the same pmu, hence we can disable the pmu for the entire context operations. This reduces the amount of hardware writes. The exception for swevents comes from the fact that the sw pmu disable is a nop. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 89a1e18731959e9953fae15ddc1a983eb15a4f19 Author: Peter Zijlstra Date: Tue Sep 7 17:34:50 2010 +0200 perf: Provide a separate task context for swevents Since software events are always schedulable, mixing them up with hardware events (who are not) can lead to funny scheduling oddities. Giving them their own context solves this. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 8dc85d547285668e509f86c177bcd4ea055bcaaf Author: Peter Zijlstra Date: Thu Sep 2 16:50:03 2010 +0200 perf: Multiple task contexts Provide the infrastructure for multiple task contexts. A more flexible approach would have resulted in more pointer chases in the scheduling hot-paths. This approach has the limitation of a static number of task contexts. Since I expect most external PMUs to be system wide, or at least node wide (as per the intel uncore unit) they won't actually need a task context. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit eb184479874238393ac186c4e054d24311c34aaa Author: Peter Zijlstra Date: Tue Sep 7 15:55:13 2010 +0200 perf: Clean up perf_event_context allocation Unify the two perf_event_context allocation sites. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 97dee4f3206622f31396dede2b5ddb8670458f56 Author: Peter Zijlstra Date: Tue Sep 7 15:35:33 2010 +0200 perf: Move some code around Move all inherit code near each other. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 108b02cfce04ee90b0a07ee0b104baffd39f5934 Author: Peter Zijlstra Date: Mon Sep 6 14:32:03 2010 +0200 perf: Per-pmu-per-cpu contexts Allocate per-cpu contexts per pmu. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit b5ab4cd563e7ab49b27957704112a8ecade54e1f Author: Peter Zijlstra Date: Mon Sep 6 16:32:21 2010 +0200 perf: Per cpu-context rotation timer Give each cpu-context its own timer so that it is a self contained entity, this eases the way for per-pmu-per-cpu contexts as well as provides the basic infrastructure to allow different rotation times per pmu. Things to look at: - folding the tick and these TICK_NSEC timers - separate task context rotation Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit b28ab83c595e767f2028276b7398d17f2253cec0 Author: Peter Zijlstra Date: Mon Sep 6 14:48:15 2010 +0200 perf: Remove the swevent hash-table from the cpu context Separate the swevent hash-table from the cpu_context bits in preparation for per pmu cpu contexts. This keeps the swevent hash a global entity. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit c3f00c70276d8ae82578c8b773e2db657f69a478 Author: Peter Zijlstra Date: Wed Aug 18 14:37:15 2010 +0200 perf: Separate find_get_context() from event initialization Separate find_get_context() from the event allocation and initialization so that we may make find_get_context() depend on the event pmu in a later patch. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 15ac9a395a753cb28c674e7ea80386ffdff21785 Author: Peter Zijlstra Date: Mon Sep 6 15:51:45 2010 +0200 perf: Remove the sysfs bits Neither the overcommit nor the reservation sysfs parameter were actually working, remove them as they'll only get in the way. Signed-off-by: Peter Zijlstra Cc: paulus LKML-Reference: Signed-off-by: Ingo Molnar commit a4eaf7f14675cb512d69f0c928055e73d0c6d252 Author: Peter Zijlstra Date: Wed Jun 16 14:37:10 2010 +0200 perf: Rework the PMU methods Replace pmu::{enable,disable,start,stop,unthrottle} with pmu::{add,del,start,stop}, all of which take a flags argument. The new interface extends the capability to stop a counter while keeping it scheduled on the PMU. We replace the throttled state with the generic stopped state. This also allows us to efficiently stop/start counters over certain code paths (like IRQ handlers). It also allows scheduling a counter without it starting, allowing for a generic frozen state (useful for rotating stopped counters). The stopped state is implemented in two different ways, depending on how the architecture implemented the throttled state: 1) We disable the counter: a) the pmu has per-counter enable bits, we flip that b) we program a NOP event, preserving the counter state 2) We store the counter state and ignore all read/overflow events Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit fa407f35e0298d841e4088f95a7f9cf6e725c6d5 Author: Peter Zijlstra Date: Thu Jun 24 12:35:12 2010 +0200 perf: Shrink hw_perf_event Use hw_perf_event::period_left instead of hw_perf_event::remaining and win back 8 bytes. Signed-off-by: Peter Zijlstra Cc: paulus Cc: Frederic Weisbecker LKML-Reference: Signed-off-by: Ingo Molnar commit ad5133b7030d04ce7701aa7cbe98f561347c79c2 Author: Peter Zijlstra Date: Tue Jun 15 12:22:39 2010 +0200 perf: Default PMU ops Provide default implementations for the pmu txn methods, this allows us to remove some conditional code. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 33696fc0d141bbbcb12f75b69608ea83282e3117 Author: Peter Zijlstra Date: Mon Jun 14 08:49:00 2010 +0200 perf: Per PMU disable Changes perf_disable() into perf_pmu_disable(). Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 24cd7f54a0d47e1d5b3de29e2456bfbd2d8447b7 Author: Peter Zijlstra Date: Fri Jun 11 17:32:03 2010 +0200 perf: Reduce perf_disable() usage Since the current perf_disable() usage is only an optimization, remove it for now. This eases the removal of the __weak hw_perf_enable() interface. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 9ed6060d286b1eb55974d09080f442f809408c42 Author: Peter Zijlstra Date: Fri Jun 11 17:36:35 2010 +0200 perf: Unindent labels Fixup random annoying style bits. Signed-off-by: Peter Zijlstra Cc: paulus LKML-Reference: Signed-off-by: Ingo Molnar commit b0a873ebbf87bf38bf70b5e39a7cadc96099fa13 Author: Peter Zijlstra Date: Fri Jun 11 13:35:08 2010 +0200 perf: Register PMU implementations Simple registration interface for struct pmu, this provides the infrastructure for removing all the weak functions. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 51b0fe39549a04858001922919ab355dee9bdfcf Author: Peter Zijlstra Date: Fri Jun 11 13:35:57 2010 +0200 perf: Deconstify struct pmu sed -ie 's/const struct pmu\>/struct pmu/g' `git grep -l "const struct pmu\>"` Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 4cb14bc8c54f8489251d5cba8328cb410ead0cea Author: Heiko Carstens Date: Tue Aug 31 10:28:18 2010 +0200 topology, s390: Add z11 cpu topology support Use the extended cpu topology information that z11 machines provide to improve the scheduler's decision making. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.604956770@de.ibm.com> Signed-off-by: Ingo Molnar commit b40d8ed4e42c79f8ed1cf345eed0888f4a2f0678 Author: Heiko Carstens Date: Tue Aug 31 10:28:17 2010 +0200 topology/sysfs: Provide book id and siblings attributes Create attributes: /sys/devices/system/cpu/cpuX/topology/book_id /sys/devices/system/cpu/cpuX/topology/book_siblings which show the book id and the book siblings of a cpu. Unlike the attributes for SMT and MC these attributes are only present if CONFIG_SCHED_BOOK is set. There is no reason to pollute sysfs for every architecture with unused attributes. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.435648457@de.ibm.com> Signed-off-by: Ingo Molnar commit 01a08546af311c065f34727787dd0cc8dc0c216f Author: Heiko Carstens Date: Tue Aug 31 10:28:16 2010 +0200 sched: Add book scheduling domain On top of the SMT and MC scheduling domains this adds the BOOK scheduling domain. This is useful for NUMA like machines which do not have an interface which tells which piece of memory is attached to which node or where the hardware performs striping. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.253053798@de.ibm.com> Signed-off-by: Ingo Molnar commit f269893c575167447cc9f6d1867e639fb5b6f0c5 Author: Heiko Carstens Date: Tue Aug 31 10:28:15 2010 +0200 sched: Merge cpu_to_core_group functions Merge and simplify the two cpu_to_core_group variants so that the resulting function follows the same pattern like cpu_to_phys_group. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082843.953617555@de.ibm.com> Signed-off-by: Ingo Molnar commit 2aa61274efb9f532deaebc9812675a27af1994cb Merge: 359d510 5e11637 Author: Ingo Molnar Date: Thu Sep 9 20:40:06 2010 +0200 Merge branch 'perf/urgent' into perf/core Merge reason: Pick up pending fixes before applying dependent new changes. Signed-off-by: Ingo Molnar commit 3c9a024fde58b08745680863859d1483def64f74 Author: Tejun Heo Date: Thu Sep 9 18:00:15 2010 +0200 percpu: fix build breakage on s390 and cleanup build configuration tests Commit bbddff05 (percpu: use percpu allocator on UP too) incorrectly excluded pcpu_build_alloc_info() on SMP configurations which use generic setup_per_cpu_area() like s390. The config ifdefs are becoming confusing. Fix and clean it up by, * Move pcpu_build_alloc_info() right on top of its two users - pcpu_{embed|page}_first_chunk() which are already in CONFIG_SMP block. * Define BUILD_{EMBED|PAGE}_FIRST_CHUNK which indicate whether each first chunk function needs to be included and use them to control inclusion of the three functions to reduce confusion. Signed-off-by: Tejun Heo Reported-by: Sachin Sant commit 37a2f9f30a360fb03522d15c85c78265ccd80287 Author: Cliff Wickman Date: Wed Sep 8 10:14:27 2010 -0500 x86, kdump: Change copy_oldmem_page() to use cached addressing The copy of /proc/vmcore to a user buffer proceeds much faster if the kernel addresses memory as cached. With this patch we have seen an increase in transfer rate from less than 15MB/s to 80-460MB/s, depending on size of the transfer. This makes a big difference in time needed to save a system dump. Signed-off-by: Cliff Wickman Acked-by: "Eric W. Biederman" Cc: kexec@lists.infradead.org Cc: # as far back as it would apply LKML-Reference: Signed-off-by: Ingo Molnar commit f27e21a813e2c4ca74b30a5443602e75b146db9b Author: Stephen Hemminger Date: Wed Sep 8 21:32:12 2010 -0700 atlx: make strings const Signed-off-by: Stephen Hemminger Acked-by: Chris Snook Signed-off-by: David S. Miller commit e0386005ff2a729998735e10769d99e1acbc2dd1 Author: Eric Dumazet Date: Wed Sep 8 21:31:35 2010 -0700 net: inet_add_protocol() can use cmpxchg() Use cmpxchg() to get rid of spinlocks in inet_add_protocol() and friends. inet_protos[] & inet6_protos[] are moved to read_mostly section Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 92e32eaee288ee2e838fe76680cbaeaea25643c6 Author: Ondrej Zary Date: Wed Sep 8 21:29:20 2010 -0700 cxacru: ignore cx82310_eth devices Ignore ADSL routers, which can have the same vendor and product IDs as ADSL modems but should be handled by the cx82310_eth driver. This intentionally ignores device IDs that aren't currently handled by cx82310_eth. There may be other device IDs that perhaps shouldn't be claimed by cxacru. Signed-off-by: Ondrej Zary Signed-off-by: Simon Arlott Signed-off-by: David S. Miller commit 905d64c89e2a9d71d0606904b7c3908633db6072 Author: Andy Grover Date: Wed Sep 8 18:03:54 2010 -0700 RDS: Remove dead struct from rds.h flows are an obsolete date type. Signed-off-by: Andy Grover commit a46f561b774d90d8616473d56696e7d44fa1c9f1 Author: Andy Grover Date: Wed Aug 25 09:34:10 2010 -0700 RDS: rds.h: Replace u_int[size]_t with uint[size]_t Replace e.g. u_int32_t types with the more common uint32_t. Reported-by: Matthew Wilcox Signed-off-by: Andy Grover commit fd128dfa50cfc4f2959dc4aa5d7468d33b988332 Author: Andy Grover Date: Wed Aug 25 09:32:17 2010 -0700 RDS: Add rds.h to exported headers list Also, a number of changes were made based on the assumption that rds.h wasn't exported, so roll these back. Signed-off-by: Andy Grover commit 20c72bd5f5f902e5a8745d51573699605bf8d21c Author: Andy Grover Date: Wed Aug 25 05:51:28 2010 -0700 RDS: Implement masked atomic operations Add two CMSGs for masked versions of cswp and fadd. args struct modified to use a union for different atomic op type's arguments. Change IB to do masked atomic ops. Atomic op type in rds_message similarly unionized. Signed-off-by: Andy Grover commit 59f740a6aeb2cde2f79fe0df38262d4c1ef35cd8 Author: Zach Brown Date: Tue Aug 3 13:52:47 2010 -0700 RDS/IB: print string constants in more places This prints the constant identifier for work completion status and rdma cm event types, like we already do for IB event types. A core string array helper is added that each string type uses. Signed-off-by: Zach Brown commit 4518071ac1bcb76c64a55a3fddb39fb3d39add41 Author: Zach Brown Date: Fri Jul 23 10:37:33 2010 -0700 RDS: cancel connection work structs as we shut down Nothing was canceling the send and receive work that might have been queued as a conn was being destroyed. Signed-off-by: Zach Brown commit ffcec0e110c198717eb0f6ac000c1e5397db9451 Author: Zach Brown Date: Fri Jul 23 10:36:58 2010 -0700 RDS: don't call rds_conn_shutdown() from rds_conn_destroy() rds_conn_shutdown() can return before the connection is shut down when it encounters an existing state that it doesn't understand. This lets rds_conn_destroy() then start tearing down the conn from under paths that are still using it. It's more reliable the shutdown work and wait for krdsd to complete the shutdown callback. This stopped some hangs I was seeing where krdsd was trying to shut down a freed conn. Signed-off-by: Zach Brown commit 5adb5bc65f93e52341c3fc9d03d4030dd375e256 Author: Zach Brown Date: Fri Jul 23 10:32:31 2010 -0700 RDS: have sockets get transport module references Right now there's nothing to stop the various paths that use rs->rs_transport from racing with rmmod and executing freed transport code. The simple fix is to have binding to a transport also hold a reference to the transport's module, removing this class of races. We already had an unused t_owner field which was set for the modular transports and which wasn't set for the built-in loop transport. Signed-off-by: Zach Brown commit 77510481c0c3980c8979ed236d63e59221fb8ce5 Author: Zach Brown Date: Wed Jul 21 15:13:25 2010 -0700 RDS: remove old rs_transport comment rs_transport is now also used by the rdma paths once the socket is bound. We don't need this stale comment to tell us what cscope can. Signed-off-by: Zach Brown commit fe8ff6b58f040dd52d2db45972db8e0301847f1c Author: Zach Brown Date: Fri Jul 23 10:30:45 2010 -0700 RDS: lock rds_conn_count decrement in rds_conn_destroy() rds_conn_destroy() can race with all other modifications of the rds_conn_count but it was modifying the count without locking. Signed-off-by: Zach Brown commit ea819867b788728aca60717e4fdacb3df771f670 Author: Zach Brown Date: Thu Jul 15 12:34:33 2010 -0700 RDS/IB: protect the list of IB devices The RDS IB device list wasn't protected by any locking. Traversal in both the get_mr and FMR flushing paths could race with additon and removal. List manipulation is done with RCU primatives and is protected by the write side of a rwsem. The list traversal in the get_mr fast path is protected by a rcu read critical section. The FMR list traversal is more problematic because it can block while traversing the list. We protect this with the read side of the rwsem. Signed-off-by: Zach Brown commit 1bde04a63d532c2540d6fdee0a661530a62b1686 Author: Zach Brown Date: Wed Jul 14 14:01:21 2010 -0700 RDS/IB: print IB event strings as well as their number It's nice to not have to go digging in the code to see which event occurred. It's easy to throw together a quick array that maps the ib event enums to their strings. I didn't see anything in the stack that does this translation for us, but I also didn't look very hard. Signed-off-by: Zach Brown commit 8576f374ac9537674e3cccb0a9d43fa2b7ebbf5b Author: Chris Mason Date: Mon Jul 19 17:06:46 2010 -0700 RDS: flush fmrs before allocating new ones Flushing FMRs is somewhat expensive, and is currently kicked off when the interrupt handler notices that we are getting low. The result of this is that FMR flushing only happens from the interrupt cpus. This spreads the load more effectively by triggering flushes just before we allocate a new FMR. Signed-off-by: Chris Mason commit b4e1da3c9a0ac9b01f45a8578b7347e3a31f9fb8 Author: Chris Mason Date: Mon Jul 19 17:02:41 2010 -0700 RDS: properly use sg_init_table This is only needed to keep debugging code from bugging. Signed-off-by: Chris Mason commit f046011cd73c372267befd10242988eb744649fe Author: Zach Brown Date: Wed Jul 14 13:55:35 2010 -0700 RDS/IB: track signaled sends We're seeing bugs today where IB connection shutdown clears the send ring while the tasklet is processing completed sends. Implementation details cause this to dereference a null pointer. Shutdown needs to wait for send completion to stop before tearing down the connection. We can't simply wait for the ring to empty because it may contain unsignaled sends that will never be processed. This patch tracks the number of signaled sends that we've posted and waits for them to complete. It also makes sure that the tasklet has finished executing. Signed-off-by: Zach Brown commit ef87b7ea39a91906218a262686bcb8bad8b6b46e Author: Zach Brown Date: Fri Jul 9 12:26:20 2010 -0700 RDS: remove __init and __exit annotation The trivial amount of memory saved isn't worth the cost of dealing with section mismatches. Signed-off-by: Zach Brown commit c20f5b9633bb0953bd2422f0f1430a2028cdbd0a Author: Andy Grover Date: Wed Jul 7 16:46:26 2010 -0700 RDS/IB: Use SLAB_HWCACHE_ALIGN flag for kmem_cache_create() We are *definitely* counting cycles as closely as DaveM, so ensure hwcache alignment for our recv ring control structs. Signed-off-by: Andy Grover commit d455ab64096b9a86849c7315c53e595330842db6 Author: Zach Brown Date: Tue Jul 6 15:04:34 2010 -0700 RDS/IB: always process recv completions The recv refill path was leaking fragments because the recv event handler had marked a ring element as free without freeing its frag. This was happening because it wasn't processing receives when the conn wasn't marked up or connecting, as can be the case if it races with rmmod. Two observations support always processing receives in the callback. First, buildup should only post receives, thus triggering recv event handler calls, once it has built up all the state to handle them. Teardown should destroy the CQ and drain the ring before tearing down the state needed to process recvs. Both appear to be true today. Second, this test was fundamentally racy. There is nothing to stop rmmod and connection destruction from swooping in the moment after the conn state was sampled but before real receive procesing starts. Signed-off-by: Zach Brown commit 80c51be56ffa257d3177f0d750d90be65d30c22f Author: Zach Brown Date: Tue Jul 6 15:08:48 2010 -0700 RDS: return to a single-threaded krdsd We were seeing very nasty bugs due to fundamental assumption the current code makes about concurrent work struct processing. The code simpy isn't able to handle concurrent connection shutdown work function execution today, for example, which is very much possible once a multi-threaded krdsd was introduced. The problem compounds as additional work structs are added to the mix. krdsd is no longer perforance critical now that send and receive posting and FMR flushing are done elsewhere, so the safest fix is to move back to the single threaded krdsd that the current code was built around. Signed-off-by: Zach Brown commit 515e079dab19cf774d1eec6e5f4ed65509e31ef1 Author: Zach Brown Date: Tue Jul 6 15:09:56 2010 -0700 RDS/IB: create a work queue for FMR flushing This patch moves the FMR flushing work in to its own mult-threaded work queue. This is to maintain performance in preparation for returning the main krdsd work queue back to a single threaded work queue to avoid deep-rooted concurrency bugs. This is also good because it further separates FMRs, which might be removed some day, from the rest of the code base. Signed-off-by: Zach Brown commit 8aeb1ba6630ffd44001ae9833842794df0107676 Author: Zach Brown Date: Fri Jun 25 14:58:16 2010 -0700 RDS/IB: destroy connections on rmmod IB connections were not being destroyed during rmmod. First, recently IB device removal callback was changed to disconnect connections that used the removing device rather than destroying them. So connections with devices during rmmod were not being destroyed. Second, rds_ib_destroy_nodev_conns() was being called before connections are disassociated with devices. It would almost never find connections in the nodev list. We first get rid of rds_ib_destroy_conns(), which is no longer called, and refactor the existing caller into the main body of the function and get rid of the list and lock wrappers. Then we call rds_ib_destroy_nodev_conns() *after* ib_unregister_client() has removed the IB device from all the conns and put the conns on the nodev list. The result is that IB connections are destroyed by rmmod. Signed-off-by: Zach Brown commit 24fa163a4bae74b3378d30e1bc776568cfca8121 Author: Zach Brown Date: Fri Jun 25 14:59:49 2010 -0700 RDS/IB: wait for IB dev freeing work to finish during rmmod The RDS IB client removal callback can queue work to drop the final reference to an IB device. We have to make sure that this function has returned before we complete rmmod or the work threads can try to execute freed code. Signed-off-by: Zach Brown commit b6fb0df12db6c8b6bbcc7b5c9459b3bbf5f0cee6 Author: Andy Grover Date: Wed Jun 23 18:06:30 2010 -0700 RDS/IB: Make ib_recv_refill return void Signed-off-by: Andy Grover commit fbf4d7e3d03587a983ee4e536251ea6c1c848ec2 Author: Andy Grover Date: Fri Jun 11 16:24:42 2010 -0700 RDS: Remove unused XLIST_PTR_TAIL and xlist_protect() Not used. Signed-off-by: Andy Grover commit c9455d9996ba84af1f534c7e3944ea6f35d2fc54 Author: Andy Grover Date: Fri Jun 11 15:18:51 2010 -0700 RDS: whitespace commit 7a0ff5dbdd0b4cb7ea8764da9d78f4bb2eebaf31 Author: Chris Mason Date: Fri Jun 11 11:26:02 2010 -0700 RDS: use delayed work for the FMR flushes Using a delayed work queue helps us make sure a healthy number of FMRs have queued up over the limit. It makes for a large improvement in RDMA iops. Signed-off-by: Chris Mason commit eabb732279f1a41ac9d066aeb56973ae505c4cbc Author: Chris Mason Date: Fri Jun 11 11:18:57 2010 -0700 rds: more FMRs are faster When we add more FMRs, we flush them less often and so we go faster. Signed-off-by: Chris Mason commit 6fa70da6081bbcf948801fd5ee0be4d222298a43 Author: Chris Mason Date: Fri Jun 11 11:17:59 2010 -0700 rds: recycle FMRs through lockless lists FRM allocation and recycling is performance critical and fairly lock intensive. The current code has a per connection lock that all processes bang on and it becomes a major bottleneck on large systems. This changes things to use a number of cmpxchg based lists instead, allowing us to go through the whole FMR lifecycle without locking inside RDS. Zach Brown pointed out that our usage of cmpxchg for xlist removal is racey if someone manages to remove and add back an FMR struct into the list while another CPU can see the FMR's address at the head of the list. The second CPU might assume the list hasn't changed when in fact any number of operations might have happened in between the deletion and reinsertion. This commit maintains a per cpu count of CPUs that are currently in xlist removal, and establishes a grace period to make sure that nobody can see an entry we have just removed from the list. Signed-off-by: Chris Mason commit 0f4b1c7e89e699f588807a914ec6e6396c851a72 Author: Zach Brown Date: Fri Jun 4 14:41:41 2010 -0700 rds: fix rds_send_xmit() serialization rds_send_xmit() was changed to hold an interrupt masking spinlock instead of a mutex so that it could be called from the IB receive tasklet path. This broke the TCP transport because its xmit method can block and masks and unmasks interrupts. This patch serializes callers to rds_send_xmit() with a simple bit instead of the current spinlock or previous mutex. This enables rds_send_xmit() to be called from any context and to call functions which block. Getting rid of the c_send_lock exposes the bare c_lock acquisitions which are changed to block interrupts. A waitqueue is added so that rds_conn_shutdown() can wait for callers to leave rds_send_xmit() before tearing down partial send state. This lets us get rid of c_senders. rds_send_xmit() is changed to check the conn state after acquiring the RDS_IN_XMIT bit to resolve races with the shutdown path. Previously both worked with the conn state and then the lock in the same order, allowing them to race and execute the paths concurrently. rds_send_reset() isn't racing with rds_send_xmit() now that rds_conn_shutdown() properly ensures that rds_send_xmit() can't start once the conn state has been changed. We can remove its previous use of the spinlock. Finally, c_send_generation is redundant. Callers can race to test the c_flags bit by simply retrying instead of racing to test the c_send_generation atomic. Signed-off-by: Zach Brown commit 501dcccdb7a2335cde07d4acb56e636182d62944 Author: Zach Brown Date: Fri Jun 4 14:25:27 2010 -0700 rds: block ints when acquiring c_lock in rds_conn_message_info() conn->c_lock is acquired in interrupt context. rds_conn_message_info() is called from user context and was acquiring c_lock without blocking interrupts, leading to possible deadlocks. Signed-off-by: Zach Brown commit 671202f3491cccdb267f88ad59ba0635aeb2a22e Author: Zach Brown Date: Fri Jun 4 14:26:32 2010 -0700 rds: remove unused rds_send_acked_before() rds_send_acked_before() wasn't blocking interrupts when acquiring c_lock from user context but nothing calls it. Rather than fix its use of c_lock we just remove the function. Signed-off-by: Zach Brown commit 037f18a3074753991656189a091a5fa371999107 Author: Chris Mason Date: Wed May 26 21:45:06 2010 -0700 RDS: use friendly gfp masks for prefill When prefilling the rds frags, we end up doing a lot of allocations. We're not in atomic context here, and so there's no reason to dip into atomic reserves. This changes the prefills to use masks that allow waiting. Signed-off-by: Chris Mason commit 33244125871734ebc0d8d147680a0d7e99385e0b Author: Chris Mason Date: Wed May 26 22:05:37 2010 -0700 RDS/IB: Add caching of frags and incs This patch is based heavily on an initial patch by Chris Mason. Instead of freeing slab memory and pages, it keeps them, and funnels them back to be reused. The lock minimization strategy uses xchg and cmpxchg atomic ops for manipulation of pointers to list heads. We anchor the lists with a pointer to a list_head struct instead of a static list_head struct. We just have to carefully use the existing primitives with the difference between a pointer and a static head struct. For example, 'list_empty()' means that our anchor pointer points to a list with a single item instead of meaning that our static head element doesn't point to any list items. Original patch by Chris, with significant mods and fixes by Andy and Zach. Signed-off-by: Chris Mason Signed-off-by: Andy Grover Signed-off-by: Zach Brown commit fc24f78085e8771670af42f2b8929b16a0c98a22 Author: Andy Grover Date: Tue May 25 11:20:09 2010 -0700 RDS/IB: Remove ib_recv_unmap_page() All it does is call unmap_sg(), so just call that directly. The comment above unmap_page also may be incorrect, so we shouldn't hold on to it, either. Signed-off-by: Andy Grover commit 3427e854e1a0e76be8b3d75fc0fa878f59b43693 Author: Andy Grover Date: Mon May 24 20:28:49 2010 -0700 RDS: Assume recv->r_frag is always NULL in refill_one() refill_one() should never be called on a recv struct that doesn't need a new r_frag allocated. Add a WARN and remove conditional around r_frag alloc code. Also, add a comment to explain why r_ibinc may or may not need refilling. Signed-off-by: Andy Grover commit 0b088e003ccf316a76c51be5dec2d70b93be3be8 Author: Andy Grover Date: Mon May 24 20:12:41 2010 -0700 RDS: Use page_remainder_alloc() for recv bufs Instead of splitting up a page into RDS_FRAG_SIZE chunks ourselves, ask rds_page_remainder_alloc() to do it. While it is possible PAGE_SIZE > FRAG_SIZE, on x86en it isn't, so having duplicate "carve up a page into buffers" code seems excessive. The other modification this spawns is the use of a single struct scatterlist in rds_page_frag instead of a bare page ptr. This causes verbosity to increase in some places, and decrease in others. Finally, I decided to unify the lifetimes and alloc/free of rds_page_frag and its page. This is a nice simplification in itself, but will be extra-nice once we come to adding cmason's recycling patch. Signed-off-by: Andy Grover commit fc19de38be924728fea76026c0d1a6c4b6156084 Author: Zach Brown Date: Mon May 24 13:16:57 2010 -0700 RDS/IB: disconnect when IB devices are removed Currently IB device removal destroys connections which are associated with the device. This prevents connections from being re-established when replacement devices are added. Instead we'll queue shutdown work on the connections as their devices are removed. When we see that devices are added we triger connection attempts on all connections that don't currently have a device. The result is that RDS sockets can resume device-independent work (bcopy, not RDMA) across IB device removal and restoration. Signed-off-by: Zach Brown commit f3c6808d3d8513db2b0543538fc35c25a60fe7a7 Author: Zach Brown Date: Mon May 24 13:14:36 2010 -0700 RDS: introduce rds_conn_connect_if_down() A few paths had the same block of code to queue a connection's connect work if it was in the right state. Let's move this in to a helper function. Signed-off-by: Zach Brown commit 3e0249f9c05cb77b66f7f09644ca9ca208d991a9 Author: Zach Brown Date: Tue May 18 15:48:51 2010 -0700 RDS/IB: add refcount tracking to struct rds_ib_device The RDS IB client .remove callback used to free the rds_ibdev for the given device unconditionally. This could race other users of the struct. This patch adds refcounting so that we only free the rds_ibdev once all of its users are done. Many rds_ibdev users are tied to connections. We give the connection a reference and change these users to reference the device in the connection instead of looking it up in the IB client data. The only user of the IB client data remaining is the first lookup of the device as connections are built up. Incrementing the reference count of a device found in the IB client data could race with final freeing so we use an RCU grace period to make sure that freeing won't happen until those lookups are done. MRs need the rds_ibdev to get at the pool that they're freed in to. They exist outside a connection and many MRs can reference different devices from one socket, so it was natural to have each MR hold a reference. MR refs can be dropped from interrupt handlers and final device teardown can block so we push it off to a work struct. Pool teardown had to be fixed to cancel its pending work instead of deadlocking waiting for all queued work, including itself, to finish. MRs get their reference from the global device list, which gets a reference. It is left unprotected by locks and remains racy. A simple global lock would be a significant bottleneck. More scalable (complicated) locking should be done carefully in a later patch. Signed-off-by: Zach Brown commit 89bf9d4158b5a1b6bd00960eb2e47601ec8cc138 Author: Zach Brown Date: Tue May 18 15:44:50 2010 -0700 RDS/IB: get the xmit max_sge from the RDS IB device on the connection rds_ib_xmit_rdma() was calling ib_get_client_data() to get at the rds_ibdevice just to get the max_sge for the transmit. This patch instead has it get it directly off the rds_ibdev which is stored on the connection. The current code won't free the rds_ibdev until all the IB connections that use it are freed. So it's safe to reference the rds_ibdev this way. In the future it also makes it easier to support proper reference counting of the rds_ibdev struct. As an additional bonus, this gets rid of the performance hit of calling in to the IB stack to look up the rds_ibdev. The current implementation in the IB stack acquires an interrupt blocking spinlock to protect the registration of client callback data. Signed-off-by: Zach Brown commit a46ca94e7fb2c93a59e08b42fd77d8c478fda5fc Author: Zach Brown Date: Mon May 24 13:14:59 2010 -0700 RDS/IB: rds_ib_cm_handle_connect() forgot to unlock c_cm_lock rds_ib_cm_handle_connect() could return without unlocking the c_conn_lock if rds_setup_qp() failed. Rather than adding another imbalanced mutex_unlock() to this error path we only unlock the mutex once as we exit the function, reducing the likelyhood of making this same mistake in the future. We remove the previous mulitple return sites, leaving one unambigious return path. Signed-off-by: Zach Brown commit 1cc2228c599f173d77000a250bf0541294e1a7be Author: Chris Mason Date: Tue May 11 16:15:35 2010 -0700 rds: Fix reference counting on the for xmit_atomic and xmit_rdma This makes sure we have the proper number of references in rds_ib_xmit_atomic and rds_ib_xmit_rdma. We also consistently drop references the same way for all message types as the IOs end. Signed-off-by: Chris Mason commit bcf50ef2ce3c5d8f2fe995259da16677898cb300 Author: Chris Mason Date: Tue May 11 15:15:15 2010 -0700 rds: use RCU to protect the connection hash The connection hash was almost entirely RCU ready, this just makes the final couple of changes to use RCU instead of spinlocks for everything. Signed-off-by: Chris Mason commit abf454398c2ebafc629ebb8b149f5a752c79e919 Author: Chris Mason Date: Tue May 11 15:14:52 2010 -0700 RDS: use locking on the connection hash list rds_conn_destroy really needs locking while it changes the connection hash. Signed-off-by: Chris Mason commit c9e65383a20d9a656db70efbf67e57f8115ad776 Author: Chris Mason Date: Tue May 11 15:14:16 2010 -0700 rds: Fix RDMA message reference counting The RDS send_xmit code was trying to get fancy with message counting and was dropping the final reference on the RDMA messages too early. This resulted in memory corruption and oopsen. The fix here is to always add a ref as the parts of the message passes through rds_send_xmit, and always drop a ref as the parts of the message go through completion handling. Signed-off-by: Chris Mason commit 7e3f2952eeb1a0fe2aa9882fd1705a88f9d89b35 Author: Chris Mason Date: Tue May 11 15:11:11 2010 -0700 rds: don't let RDS shutdown a connection while senders are present This is the first in a long line of patches that tries to fix races between RDS connection shutdown and RDS traffic. Here we are maintaining a count of active senders to make sure the connection doesn't go away while they are using it. Signed-off-by: Chris Mason commit 38a4e5e61344490f18241333d7b1b368a3a38748 Author: Chris Mason Date: Tue May 11 15:09:45 2010 -0700 rds: Use RCU for the bind lookup searches The RDS bind lookups are somewhat expensive in terms of CPU time and locking overhead. This commit changes them into a faster RCU based hash tree instead of the rbtrees they were using before. On large NUMA systems it is a significant improvement. Signed-off-by: Chris Mason commit e4c52c98e04937ea87b0979a81354d0040d284f9 Author: Andy Grover Date: Fri Apr 23 10:49:53 2010 -0700 RDS/IB: add _to_node() macros for numa and use {k,v}malloc_node() Allocate send/recv rings in memory that is node-local to the HCA. This significantly helps performance. Signed-off-by: Andy Grover commit 4a81802b5e5e0b059627d7173c917711cf35e668 Author: Andy Grover Date: Fri Apr 23 11:04:21 2010 -0700 RDS/IB: Remove unused variable in ib_remove_addr() Signed-off-by: Andy Grover commit 764f2dd92f5cd308d1c4372b33fea2b265c093f5 Author: Chris Mason Date: Thu Apr 22 21:59:15 2010 -0400 rds: rcu-ize rds_ib_get_device() rds_ib_get_device is called very often as we turn an ip address into a corresponding device structure. It currently take a global spinlock as it walks different lists to find active devices. This commit changes the lists over to RCU, which isn't very complex because they are not updated very often at all. Signed-off-by: Chris Mason commit c83188dcd76b1f0c17c31b4bbd8de57c634b19f8 Author: Chris Mason Date: Wed Apr 21 13:09:28 2010 -0700 rds: per-rm flush_wait waitq This removes a global waitqueue used to wait for rds messages and replaces it with a waitqueue inside the rds_message struct. The global waitqueue turns into a global lock and significantly bottlenecks operations on large machines. Signed-off-by: Chris Mason commit 976673ee1b92d939168c8c1fbad3e16c45caa545 Author: Chris Mason Date: Wed Apr 21 13:04:43 2010 -0700 rds: switch to rwlock on bind_lock The bind_lock is almost entirely readonly, but it gets hammered during normal operations and is a major bottleneck. This commit changes it to an rwlock, which takes it from 80% of the system time on a big numa machine down to much lower numbers. A better fix would involve RCU, which is done in a later commit Signed-off-by: Chris Mason commit ce47f52f42e69d48d1b63fa618fce9cd7ffa9417 Author: Andy Grover Date: Thu Apr 15 17:19:29 2010 -0700 RDS: Update comments in rds_send_xmit() Update comments to reflect changes in previous commit. Keeping as separate commits due to different authorship. Signed-off-by: Andy Grover commit 9e29db0e3645cafa980e68a9c717a761448389e1 Author: Chris Mason Date: Thu Apr 15 16:38:14 2010 -0400 RDS: Use a generation counter to avoid rds_send_xmit loop rds_send_xmit is required to loop around after it releases the lock because someone else could done a trylock, found someone working on the list and backed off. But, once we drop our lock, it is possible that someone else does come in and make progress on the list. We should detect this and not loop around if another process is actually working on the list. This patch adds a generation counter that is bumped every time we get the lock and do some send work. If the retry notices someone else has bumped the generation counter, it does not need to loop around and continue working. Signed-off-by: Chris Mason Signed-off-by: Andy Grover commit acfcd4d4ec4ed8cb504f96d4fabb7a94029b362b Author: Andy Grover Date: Wed Mar 31 18:56:25 2010 -0700 RDS: Get pong working again Call send_xmit() directly from pong() Set pongs as op_active Signed-off-by: Andy Grover commit a40aa9233aa22d69212d02f92e5b607bd4d658f4 Author: Andy Grover Date: Mon Mar 29 17:10:01 2010 -0700 RDS: Do wait_event_interruptible instead of wait_event Can't see a reason not to allow signals to interrupt the wait. Signed-off-by: Andy Grover commit fcc5450c6386526034edc437e4cb2c67a6fdd7e9 Author: Andy Grover Date: Mon Mar 29 17:08:49 2010 -0700 RDS: Remove send_quota from send_xmit() The purpose of the send quota was really to give fairness when different connections were all using the same workq thread to send backlogged msgs -- they could only send so many before another connection could make progress. Now that each connection is pushing the backlog from its completion handler, they are all guaranteed to make progress and the quota isn't needed any longer. A thread *will* have to send all previously queued data, as well as any further msgs placed on the queue while while c_send_lock was held. In a pathological case a single process can get roped into doing this for long periods while other threads get off free. But, since it can only do this until the transport reports full, this is a bounded scenario. Signed-off-by: Andy Grover commit 51e2cba8b5936c13b40f0fa11aa4e84683dbc751 Author: Andy Grover Date: Mon Mar 29 17:47:30 2010 -0700 RDS: Move atomic stats from general to ib-specific area Signed-off-by: Andy Grover commit ab1a6926f589c51e7a57ce7544d85272c4acc854 Author: Andy Grover Date: Mon Mar 29 16:52:12 2010 -0700 RDS: rds_message_unmapped() doesn't need to check if queue active If the queue has nobody on it, then wake_up does nothing. Signed-off-by: Andy Grover commit cf4b7389ee812817deeb11da1422004e01b50646 Author: Andy Grover Date: Mon Mar 29 16:50:54 2010 -0700 RDS: Fix locking in send on m_rs_lock Do not nest m_rs_lock under c_lock Disable interrupts in {rdma,atomic}_send_complete Signed-off-by: Andy Grover commit f2ec76f288118fb18449402d75383212cbcb6762 Author: Andy Grover Date: Mon Mar 29 16:46:46 2010 -0700 RDS: Use NOWAIT in message_map_pages() Can no longer block, so use NOWAIT. Signed-off-by: Andy Grover commit 2fa57129df61bf3fb7d90c5486fe15df94091f61 Author: Andy Grover Date: Mon Mar 29 16:45:40 2010 -0700 RDS: Bypass workqueue when queueing cong updates Now that rds_send_xmit() does not block, we can call it directly instead of going through the helper thread. Signed-off-by: Andy Grover commit a7d3a281483684f77e350b045af7f80a149fc4c7 Author: Andy Grover Date: Mon Mar 29 16:20:18 2010 -0700 RDS: Call rds_send_xmit() directly from sendmsg() rds_sendmsg() is calling the send worker function to send the just-queued datagrams, presumably because it wants the behavior where anything not sent will re-call the send worker. We now ensure all queued datagrams are sent by retrying from the send completion handler, so this isn't needed any more. Signed-off-by: Andy Grover commit 2ad8099b58f274dc23bc866ca259d7e5db87fa1a Author: Andy Grover Date: Tue Mar 23 17:48:04 2010 -0700 RDS: rds_send_xmit() locking/irq fixes rds_message_put() cannot be called with irqs off, so move it after irqs are re-enabled. Spinlocks throughout the function do not to use _irqsave because the lock of c_send_lock at top already disabled irqs. Signed-off-by: Andy Grover commit 049ee3f500954176a87f22e6ee3e98aecb1b8958 Author: Andy Grover Date: Tue Mar 23 17:39:07 2010 -0700 RDS: Change send lock from a mutex to a spinlock This change allows us to call rds_send_xmit() from a tasklet, which is crucial to our new operating model. * Change c_send_lock to a spinlock * Update stats fields "sem_" to "_lock" * Remove unneeded rds_conn_is_sending() About locking between shutdown and send -- send checks if the connection is up. Shutdown puts the connection into DISCONNECTING. After this, all threads entering send will exit immediately. However, a thread could be *in* send_xmit(), so shutdown acquires the c_send_lock to ensure everyone is out before proceeding with connection shutdown. Signed-off-by: Andy Grover commit f17a1a55fb672d7f64be7f2e940ef5669e5efa0a Author: Andy Grover Date: Thu Mar 18 17:19:52 2010 -0700 RDS: Refill recv ring directly from tasklet Performance is better if we use allocations that don't block to refill the receive ring. Since the whole reason we were kicking out to the worker thread was so we could do blocking allocs, we no longer need to do this. Remove gfp params from rds_ib_recv_refill(); we always use GFP_NOWAIT. Signed-off-by: Andy Grover commit 77dd550e5547846604ff6f90c4dc6bba4414e485 Author: Andy Grover Date: Mon Mar 22 15:22:04 2010 -0700 RDS: Stop supporting old cong map sending method We now ask the transport to give us a rm for the congestion map, and then we handle it normally. Previously, the transport defined a function that we would call to send a congestion map. Convert TCP and loop transports to new cong map method. Signed-off-by: Andy Grover commit e32b4a70495aac6a612e13f4c21db09dd756ff2c Author: Andy Grover Date: Wed Mar 3 19:25:21 2010 -0800 RDS/IB: Do not wait for send ring to be empty on conn shutdown Now that we are signaling send completions much less, we are likely to have dirty entries in the send queue when the connection is shut down (on rmmod, for example.) These are cleaned up a little further down in conn_shutdown, but if we wait on the ring_empty_wait for them, it'll never happen, and we hand on unload. Signed-off-by: Andy Grover commit ff3d7d36134ef7138803734fdbf91cc986ea7976 Author: Andy Grover Date: Mon Mar 1 14:03:09 2010 -0800 RDS: Perform unmapping ops in stages Previously, RDS would wait until the final send WR had completed and then handle cleanup. With silent ops, we do not know if an atomic, rdma, or data op will be last. This patch handles any of these cases by keeping a pointer to the last op in the message in m_last_op. When the TX completion event fires, rds dispatches to per-op-type cleanup functions, and then does whole-message cleanup, if the last op equalled m_last_op. This patch also moves towards having op-specific functions take the op struct, instead of the overall rm struct. rds_ib_connection has a pointer to keep track of a a partially- completed data send operation. This patch changes it from an rds_message pointer to the narrower rm_data_op pointer, and modifies places that use this pointer as needed. Signed-off-by: Andy Grover commit aa0a4ef4ac3a3c5ffa35e32520bfbc0922ef3630 Author: Andy Grover Date: Tue Apr 13 12:00:35 2010 -0700 RDS: Make sure cmsgs aren't used in improper ways It hasn't cropped up in the field, but this code ensures it is impossible to issue operations that pass an rdma cookie (DEST, MAP) in the same sendmsg call that's actually initiating rdma or atomic ops. Disallowing this perverse-but-technically-allowed usage makes silent RDMA heuristics slightly easier. Signed-off-by: Andy Grover commit 2c3a5f9abb1dc5efdab8ba9a568b1661c65fd1e3 Author: Andy Grover Date: Mon Mar 1 16:10:40 2010 -0800 RDS: Add flag for silent ops. Do atomic op before RDMA Add a flag to the API so users can indicate they want silent operations. This is needed because silent ops cannot be used with USE_ONCE MRs, so we can't just assume silent. Also, change send_xmit to do atomic op before rdma op if both are present, and centralize the hairy logic to determine if we want to attempt silent, or not. Signed-off-by: Andy Grover commit 7e3bd65ebfd5d6cd76b8b979920c632d6e6b4b2a Author: Andy Grover Date: Mon Mar 1 16:04:59 2010 -0800 RDS: Move some variables around for consistency Also, add a comment. Signed-off-by: Andy Grover commit 940786eb0a0faf3f30898a1cc7c1540d54c1aff6 Author: Andy Grover Date: Fri Feb 19 18:04:58 2010 -0800 RDS: queue failure notifications for dropped atomic ops When dropping ops in the send queue, we notify the client of failed rdma ops they asked for notifications on, but not atomic ops. It should be for both. Signed-off-by: Andy Grover commit ee4c7b47e46a9dea789aadb8279c8505f755b3ee Author: Andy Grover Date: Wed Feb 3 19:41:52 2010 -0800 RDS: Add a warning if trying to allocate 0 sgs rds_message_alloc_sgs() only works when nents is nonzero. Signed-off-by: Andy Grover commit 372cd7dedfd1ea93a9ae8d9c282e910dc1b76773 Author: Andy Grover Date: Wed Feb 3 19:40:32 2010 -0800 RDS: Do not set op_active in r_m_copy_from_user(). Do not allocate sgs for data for 0-length datagrams Set data.op_active in rds_sendmsg() instead of rds_message_copy_from_user(). Signed-off-by: Andy Grover commit 5b2366bd2835919e2e6a836e837eab4a9274bd46 Author: Andy Grover Date: Wed Feb 3 19:36:44 2010 -0800 RDS: Rewrite rds_send_xmit Simplify rds_send_xmit(). Send a congestion map (via xmit_cong_map) without decrementing send_quota. Move resetting of conn xmit variables to end of loop. Update comments. Implement a special case to turn off sending an rds header when there is an atomic op and no other data. Signed-off-by: Andy Grover commit 6c7cc6e4694dc464ae884332f2a322973497e3cf Author: Andy Grover Date: Wed Jan 27 18:04:18 2010 -0800 RDS: Rename data op members prefix from m_ to op_ For consistency. Signed-off-by: Andy Grover commit f8b3aaf2ba8ca9e27b47f8bfdff07c8b968f2c05 Author: Andy Grover Date: Mon Mar 1 14:11:53 2010 -0800 RDS: Remove struct rds_rdma_op A big changeset, but it's all pretty dumb. struct rds_rdma_op was already embedded in struct rm_rdma_op. Remove rds_rdma_op and put its members in rm_rdma_op. Rename members with "op_" prefix instead of "r_", for consistency. Of course this breaks a lot, so fixup the code accordingly. Signed-off-by: Andy Grover commit d0ab25a83c4a08cd98b73a37d3f4c069f7b4f50b Author: Andy Grover Date: Wed Jan 27 16:15:48 2010 -0800 RDS: purge atomic resources too in rds_message_purge() Add atomic_free_op function, analogous to rdma_free_op, and call it in rds_message_purge(). Signed-off-by: Andy Grover commit 4324879df06ba4db01a0b455af2d003f117e6aa3 Author: Andy Grover Date: Wed Jan 27 16:07:30 2010 -0800 RDS: Inline rdma_prepare into cmsg_rdma_args cmsg_rdma_args just calls rdma_prepare and does a little arg checking -- not quite enough to justify its existence. Plus, it is the only caller of rdma_prepare(). Signed-off-by: Andy Grover commit 241eef3e2f51fe4ad50abacd7f79c4e2d468197e Author: Andy Grover Date: Tue Jan 19 21:25:26 2010 -0800 RDS: Implement silent atomics Signed-off-by: Andy Grover commit d37c9359056f4f07b37e59810f0ece1031e280b2 Author: Andy Grover Date: Tue Jan 19 18:14:56 2010 -0800 RDS: Move loop-only function to loop.c Also, try to better-document the locking around the rm and its m_inc in loop.c. Signed-off-by: Andy Grover commit c8de3f1005e8359ea07083e37f3f993646e1adba Author: Andy Grover Date: Fri Jan 15 15:55:26 2010 -0800 RDS/IB: Make all flow control code conditional on i_flowctl Maybe things worked fine with the flow control code running even in the non-flow-control case, but making it explicitly conditional helps the non-fc case be easier to read. Signed-off-by: Andy Grover commit 1d34f175712b59ad292ecbbaa8fc05402a1fd8ed Author: Andy Grover Date: Thu Jan 14 15:08:33 2010 -0800 RDS: Remove unsignaled_bytes sysctl Removed unsignaled_bytes sysctl and code to signal based on it. I believe unsignaled_wrs is more than sufficient for our purposes. Signed-off-by: Andy Grover commit da5a06cef5724737af4315715632f0a07dd5e116 Author: Andy Grover Date: Thu Jan 14 12:18:11 2010 -0800 RDS: rewrite rds_ib_xmit Now that the header always goes first, it is possible to simplify rds_ib_xmit. Instead of having a path to handle 0-byte dgrams and another path to handle >0, these can both be handled in one path. This lets us eliminate xmit_populate_wr(). Rename sent to bytes_sent, to differentiate better from other variable named "send". Signed-off-by: Andy Grover commit 919ced4ce7d6ac62dd5be62d8993fe22a527d53a Author: Andy Grover Date: Wed Jan 13 16:32:24 2010 -0800 RDS/IB: Remove ib_[header/data]_sge() functions These functions were to cope with differently ordered sg entries depending on RDS 3.0 or 3.1+. Now that we've dropped 3.0 compatibility we no longer need them. Also, modify usage sites for these to refer to sge[0] or [1] directly. Reorder code to initialize header sgs first. Signed-off-by: Andy Grover commit 6f3d05db0da0b874afd2dd229bed715133532f8d Author: Andy Grover Date: Wed Jan 13 16:29:37 2010 -0800 RDS/IB: Remove dead code Signed-off-by: Andy Grover commit f147dd9ecabf23fd63d2562ffe64252a0453ecde Author: Andy Grover Date: Wed Jan 13 15:50:09 2010 -0800 RDS/IB: Disallow connections less than RDS 3.1 RDS 3.0 connections (in OFED 1.3 and earlier) put the header at the end. 3.1 connections put it at the head. The code has significant added complexity in order to handle both configurations. In OFED 1.6 we can drop this and simplify the code by only supporting "header-first" configuration. This patch checks the protocol version, and if prior to 3.1, does not complete the connection. Signed-off-by: Andy Grover commit 9c030391e8741695ff6114703e4edccccb634479 Author: Andy Grover Date: Tue Jan 12 14:43:06 2010 -0800 RDS/IB: eliminate duplicate code both atomics and rdmas need to convert ib-specific completion codes into RDS status codes. Rename rds_ib_rdma_send_complete to rds_ib_send_complete, and have it take a pointer to the function to call with the new error code. Signed-off-by: Andy Grover commit 809fa148a29467954280fe8b7f97c92403f6293c Author: Andy Grover Date: Tue Jan 12 14:41:46 2010 -0800 RDS: inc_purge() transport function unused - remove it Signed-off-by: Andy Grover commit 6200ed7799d9225f363f157ab61f1566cfd80e19 Author: Andy Grover Date: Tue Jan 12 10:53:05 2010 -0800 RDS: Whitespace Tidy up some whitespace issues. Signed-off-by: Andy Grover commit d22faec22c2ab2364fd8fc3c8159b0b5b28b0fd1 Author: Andy Grover Date: Tue Jan 12 10:52:28 2010 -0800 RDS: Do not mask address when pinning pages This does not appear to be necessary. Signed-off-by: Andy Grover commit 40589e74f7ba855f3a887c9d4abe9d100c5b039c Author: Andy Grover Date: Tue Jan 12 10:50:48 2010 -0800 RDS: Base init_depth and responder_resources on hw values Instead of using a constant for initiator_depth and responder_resources, read the per-QP values when the device is enumerated, and then use these values when creating the connection. Signed-off-by: Andy Grover commit 15133f6e67d8d646d0744336b4daa3135452cb0d Author: Andy Grover Date: Tue Jan 12 14:33:38 2010 -0800 RDS: Implement atomic operations Implement a CMSG-based interface to do FADD and CSWP ops. Alter send routines to handle atomic ops. Add atomic counters to stats. Add xmit_atomic() to struct rds_transport Inline rds_ib_send_unmap_rdma into unmap_rm Signed-off-by: Andy Grover commit a63273d4992603979ddb181b6a8f07082839b39f Author: Andy Grover Date: Tue Jan 12 14:19:32 2010 -0800 RDS: Clear up some confusing code in send_remove_from_sock The previous code was correct, but made the assumption that if r_notifier was non-NULL then either r_recverr or r_notify was true. Valid, but fragile. Changed to explicitly check r_recverr (shows up in greps for recverr now, too.) Signed-off-by: Andy Grover commit f4dd96f7b27743e568cec519eff0f951c56833c6 Author: Andy Grover Date: Tue Jan 12 14:17:31 2010 -0800 RDS: make sure all sgs alloced are initialized rds_message_alloc_sgs() now returns correctly-initialized sg lists, so calleds need not do this themselves. Signed-off-by: Andy Grover commit ff87e97a9d70c9ae133d3d3d7792b26ab85f4297 Author: Andy Grover Date: Tue Jan 12 14:13:15 2010 -0800 RDS: make m_rdma_op a member of rds_message This eliminates a separate memory alloc, although it is now necessary to add an "r_active" flag, since it is no longer to use the m_rdma_op pointer as an indicator of if an rdma op is present. rdma SGs allocated from rm sg pool. rds_rm_size also gets bigger. It's a little inefficient to run through CMSGs twice, but it makes later steps a lot smoother. Signed-off-by: Andy Grover commit 21f79afa5fda2820671a8f64c3d0e43bb118053b Author: Andy Grover Date: Tue Jan 12 12:57:27 2010 -0800 RDS: fold rdma.h into rds.h RDMA is now an intrinsic part of RDS, so it's easier to just have a single header. Signed-off-by: Andy Grover commit fc445084f185cdd877bec323bfe724a361e2292a Author: Andy Grover Date: Tue Jan 12 12:56:06 2010 -0800 RDS: Explicitly allocate rm in sendmsg() r_m_copy_from_user used to allocate the rm as well as kernel buffers for the data, and then copy the data in. Now, sendmsg() allocates the rm, although the data buffer alloc still happens in r_m_copy_from_user. SGs are still allocated with rm, but now r_m_alloc_sgs() is used to reserve them. This allows multiple SG lists to be allocated from the one rm -- this is important once we also want to alloc our rdma sgl from this pool. Signed-off-by: Andy Grover commit 3ef13f3c22aaea28aff383cb0883481d24885456 Author: Andy Grover Date: Tue Jan 12 12:37:17 2010 -0800 RDS: cleanup/fix rds_rdma_unuse First, it looks to me like the atomic_inc is wrong. We should be decrementing refcount only once here, no? It's already being done by the mr_put() at the end. Second, simplify the logic a bit by bailing early (with a warning) if !mr. Signed-off-by: Andy Grover commit e779137aa76d38d5c33a98ed887092ae4e4f016f Author: Andy Grover Date: Tue Jan 12 12:15:02 2010 -0800 RDS: break out rdma and data ops into nested structs in rds_message Clearly separate rdma-related variables in rm from data-related ones. This is in anticipation of adding atomic support. Signed-off-by: Andy Grover commit 8690bfa17aea4c42da1bcf90a7af93d161eca624 Author: Andy Grover Date: Tue Jan 12 11:56:44 2010 -0800 RDS: cleanup: remove "== NULL"s and "!= NULL"s in ptr comparisons Favor "if (foo)" style over "if (foo != NULL)". Signed-off-by: Andy Grover commit 2dc393573430f853e56e25bf4b41c34ba2aa8fd6 Author: Andy Grover Date: Fri Jun 11 13:49:13 2010 -0700 RDS: move rds_shutdown_worker impl. to rds_conn_shutdown This fits better in connection.c, rather than threads.c. Signed-off-by: Andy Grover commit 9de0864cf55927a7383b5ba6e48834ff3ef053de Author: Andy Grover Date: Mon Mar 29 16:50:54 2010 -0700 RDS: Fix locking in send on m_rs_lock Do not nest m_rs_lock under c_lock Disable interrupts in {rdma,atomic}_send_complete Signed-off-by: Andy Grover commit 7c82eaf00ec7d460932be9314b29997006b799b6 Author: Andy Grover Date: Fri Feb 19 18:01:41 2010 -0800 RDS: Rewrite rds_send_drop_to() for clarity This function has been the source of numerous bugs; it's just too complicated. Simplified to nest spinlocks cleanly within the second loop body, and kick out early if there are no rms to drop. This will be a little slower because conn lock is grabbed for each entry instead of "caching" the lock across rms, but this should be entirely irrelevant to fastpath performance. Signed-off-by: Andy Grover commit 35b52c70534cb7193b218ec12efe6bc595312097 Author: Tina Yang Date: Thu Apr 1 14:09:00 2010 -0700 RDS: Fix corrupted rds_mrs On second look at this bug (OFED #2002), it seems that the collision is not with the retransmission queue (packet acked by the peer), but with the local send completion. A theoretical sequence of events (from time t0 to t3) is thought to be as follows, Thread #1 t0: sock_release rds_release rds_send_drop_to /* wait on send completion */ t2: rds_rdma_drop_keys() /* destroy & free all mrs */ Thread #2 t1: rds_ib_send_cq_comp_handler rds_ib_send_unmap_rm rds_message_unmapped /* wake up #1 @ t0 */ t3: rds_message_put rds_message_purge rds_mr_put /* memory corruption detected */ The problem with the rds_rdma_drop_keys() is it could remove a mr's refcount more than its due (i.e. repeatedly as long as it still remains in the tree (mr->r_refcount > 0)). Theoretically it should remove only one reference - reference by the tree. /* Release any MRs associated with this socket */ while ((node = rb_first(&rs->rs_rdma_keys))) { mr = container_of(node, struct rds_mr, r_rb_node); if (mr->r_trans == rs->rs_transport) mr->r_invalidate = 0; rds_mr_put(mr); } I think the correct way of doing it is to remove the mr from the tree and rds_destroy_mr it first, then a rds_mr_put() to decrement its reference count by one. Whichever thread holds the last reference will free the mr via rds_mr_put(). Signed-off-by: Tina Yang Signed-off-by: Andy Grover commit 9e2effba2c16fc3bd47da605116485afe01e0be0 Author: Andy Grover Date: Fri Mar 12 16:22:32 2010 -0800 RDS: Fix BUG_ONs to not fire when in a tasklet in_interrupt() is true in softirqs. The BUG_ONs are supposed to check for if irqs are disabled, so we should use BUG_ON(irqs_disabled()) instead, duh. Signed-off-by: Andy Grover commit 2b1b8edfe229b1832134827c6948d0b70029e965 Author: Greg Rose Date: Tue Sep 7 21:36:04 2010 +0000 ixgbevf: Removed unneeded HW struct members The VF has no flash and can only do memory mapped I/O. Signed-off-by: Greg Rose Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 7ca647bdad0110a47edc44c48f8e646fdac87922 Author: Joe Perches Date: Tue Sep 7 21:35:40 2010 +0000 drivers/net/ixgbe/ixgbe_main.c: Add ixgbe_psum Reduce indentation in a couple of places Add static function ixgbe_psum Add temporary for adapter->stats Signed-off-by: Joe Perches Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit c7689578f52bbe258693996f2251b276445f87ce Author: Joe Perches Date: Tue Sep 7 21:35:17 2010 +0000 drivers/net/ixgbe/ixgbe_main.c: Use pr_ Did not add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt because no printk in this module used message prefixing. Signed-off-by: Joe Perches Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit e8e9f6966ab1977df05c894a50d7eca7d013c2a2 Author: Joe Perches Date: Tue Sep 7 21:34:53 2010 +0000 drivers/net/ixgbe/ixgbe_main.c: Checkpatch cleanups Whitespace cleanups. Move inline keyword after function type declarations. Signed-off-by: Joe Perches Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 933d41f1f2b6d5e7bcc0782ad0eeaac983a79592 Author: Alexander Duyck Date: Tue Sep 7 21:34:29 2010 +0000 ixgbe: fix TX ring enable issues seen when VMDQ is enabled The ordering of operations was messed up in the init and as a result when VMDQ was enabled we were trying to enable TX rings before setting the VFTE bits. This resulted in a ring that appeared to fail to enable when in fact it was blocked because the VFTE bits were cleared after the reset. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit a1c3ed4c9ca01dded8d511a1d1daf271fbae8d89 Author: Frank Blaschka Date: Tue Sep 7 21:14:42 2010 +0000 qeth: NAPI support for l2 and l3 discipline This patch adds NAPI support to the qeth layer 2 and layer 3 discipline. It is important to understand that we can not enable/disable IRQs as usual, we have to use the corresponding new QDIO interface. Also to not overdraw the budget we have to stop and restart buffer processing at any point during processing a bulk of QDIO buffers. Having the driver NAPI enabled it is possible to turn on GRO for the layer 3 discipline. Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit 81d53749416995538f830c8e4d3fbaf1769b9375 Author: Mike Frysinger Date: Tue Sep 7 21:14:41 2010 +0000 Kconfig: have CCWGROUP depend on CLAW Since the claw code calls ccwgroup_remove_ccwdev(), we need to make sure CCWGROUP is enabled when CLAW is enabled. Otherwise we hit fun undefined references at build time: ERROR: "ccwgroup_remove_ccwdev" [drivers/s390/net/claw.ko] undefined! ERROR: "ccwgroup_probe_ccwdev" [drivers/s390/net/claw.ko] undefined! ERROR: "ccwgroup_driver_register" [drivers/s390/net/claw.ko] undefined! ERROR: "ccwgroup_driver_unregister" [drivers/s390/net/claw.ko] undefined! ERROR: "ccwgroup_create_from_string" [drivers/s390/net/claw.ko] undefined! Signed-off-by: Mike Frysinger Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit 963a9fd22d7e5b50806f619ef8d047fd9398f105 Author: Joe Perches Date: Tue Sep 7 21:14:40 2010 +0000 qeth: Use %pI6 Format an ipv6 address using vsprintf extensions. Signed-off-by: Joe Perches Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit d36deae75011a7890f0e730dd0f867c64081cb50 Author: Jan Glauber Date: Tue Sep 7 21:14:39 2010 +0000 qdio: extend API to allow polling Extend the qdio API to allow polling in the upper-layer driver. This is needed by qeth to use NAPI. To use the new interface the upper-layer driver must specify the queue_start_poll(). This callback is used to signal the upper-layer driver that is has initiative and must process the inbound queue by calling qdio_get_next_buffers(). If the upper-layer driver wants to stop polling it calls qdio_start_irq(). Since adapter interrupts are not completely stoppable qdio implements a software bit QDIO_QUEUE_IRQS_DISABLED to safely disable interrupts for an input queue. The old interface is preserved and will be used as is by zfcp. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller commit e508be174ad36b0cf9b324cd04978c2b13c21502 Author: Jesse Brandeburg Date: Tue Sep 7 21:01:12 2010 +0000 e1000: fix Tx hangs by disabling 64-bit DMA Several users report issues with 32-bit adapters when plugged into PCI slots in machines with >= 4GB ram. In particular AMD systems with HyperTransport to PCI bridges seem to trigger the issue, but it isn't limited to only them. This issue is not easily reproducible here, yet still continues to occur in the field. For e1000 on PCI devices, just disable DMA addresses over the 4GB boundary when in PCI (not PCI-X) mode, to prevent the issue from continuing to pop up. The performance impact for this is negligible. The code was refactored to move the init of the hw struct to its own function. This allows the init to be called very early in probe, which then allows using hw-> members for this fix. A slight refactor to the DMA mask code was done for minor correctness based on the instructions in DMA-API-HOWTO. Signed-off-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit a6e0fc8514d41dfdd98b1d15cacc432cf040f8af Author: Eric Dumazet Date: Wed Sep 8 14:15:32 2010 -0700 net: introduce rcu_dereference_rtnl We use rcu_dereference_check(p, rcu_read_lock_held() || lockdep_rtnl_is_held()) several times in network stack. More usages to come too, so its time to create a helper. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a7a4f1c1a52912eb8b3bd4d8f628d83a8b5d69dd Author: Andy Shevchenko Date: Tue Sep 7 05:14:30 2010 +0000 drivers: isdn: capi: use simple_strtol to convert numbers Signed-off-by: Andy Shevchenko Cc: Karsten Keil Cc: Tilman Schmidt Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit fb8621bb6c040a25ac2fc246653859f841a1f53d Author: Namhyung Kim Date: Tue Sep 7 03:55:00 2010 +0000 net: remove address space warnings in net/socket.c Casts __kernel to __user pointer require __force markup, so add it. Also sock_get/setsockopt() takes @optval and/or @optlen arguments as user pointers but were taking kernel pointers, use new variables 'uoptval' and/or 'uoptlen' to fix it. These remove following warnings from sparse: net/socket.c:1922:46: warning: cast adds address space to expression () net/socket.c:3061:61: warning: incorrect type in argument 4 (different address spaces) net/socket.c:3061:61: expected char [noderef] *optval net/socket.c:3061:61: got char *optval net/socket.c:3061:69: warning: incorrect type in argument 5 (different address spaces) net/socket.c:3061:69: expected int [noderef] *optlen net/socket.c:3061:69: got int *optlen net/socket.c:3063:67: warning: incorrect type in argument 4 (different address spaces) net/socket.c:3063:67: expected char [noderef] *optval net/socket.c:3063:67: got char *optval net/socket.c:3064:45: warning: incorrect type in argument 5 (different address spaces) net/socket.c:3064:45: expected int [noderef] *optlen net/socket.c:3064:45: got int *optlen net/socket.c:3078:61: warning: incorrect type in argument 4 (different address spaces) net/socket.c:3078:61: expected char [noderef] *optval net/socket.c:3078:61: got char *optval net/socket.c:3080:67: warning: incorrect type in argument 4 (different address spaces) net/socket.c:3080:67: expected char [noderef] *optval net/socket.c:3080:67: got char *optval Signed-off-by: Namhyung Kim Signed-off-by: David S. Miller commit e3634169bcc0cce33c815865d62ab378739f7389 Author: Joe Perches Date: Tue Sep 7 05:55:38 2010 +0000 include/net/raw.h: Convert raw_seq_private macro to inline Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit aeb9c7d618264dcf6eea39142fefee096c3b09e2 Author: Andre Przywara Date: Mon Sep 6 15:14:20 2010 +0200 x86, kvm: add new AMD SVM feature bits The recently updated CPUID specification names new SVM feature bits. Add them to the list of reported features. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-5-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit 6d886fd042634c0d3312bace63a5d0c541b721dc Author: Andre Przywara Date: Mon Sep 6 15:14:19 2010 +0200 x86, cpu: Fix allowed CPUID bits for KVM guests The AMD extensions to AVX (FMA4, XOP) work on the same YMM register set as AVX, so they are safe for guests to use, as long as AVX itself is allowed. Add F16C and AES on the way for the same reasons. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-4-git-send-email-andre.przywara@amd.com> Acked-by: Avi Kivity Signed-off-by: H. Peter Anvin commit 33ed82fb6c5f032151f7e9f1ac7b667f78f426b8 Author: Andre Przywara Date: Mon Sep 6 15:14:18 2010 +0200 x86, cpu: Update AMD CPUID feature bits AMD's public CPUID specification has been updated and some bits have got names. Add them to properly describe new CPU features. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-3-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit 7ef8aa72ab176e0288f363d1247079732c5d5792 Author: Andre Przywara Date: Mon Sep 6 15:14:17 2010 +0200 x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit The AMD SSE5 feature set as-it has been replaced by some extensions to the AVX instruction set. Thus the bit formerly advertised as SSE5 is re-used for one of these extensions (XOP). Although this changes the /proc/cpuinfo output, it is not user visible, as there are no CPUs (yet) having this feature. To avoid confusion this should be added to the stable series, too. Cc: stable@kernel.org [.32.x .34.x, .35.x] Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-2-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit cc28a20e77b261eb4e80c84abd621e810302f435 Author: Ondrej Zary Date: Sat Sep 4 02:39:34 2010 +0000 introduce cx82310_eth: Conexant CX82310-based ADSL router USB ethernet driver This patch introduces cx82310_eth driver - driver for USB ethernet port of ADSL routers based on Conexant CX82310 chips. Such routers usually have ethernet port(s) too which are bridged together with the USB ethernet port, allowing the USB-connected machine to communicate to the network (and also internet through the ADSL, of course). This is my first driver, so please check thoroughly. As there's no protocol documentation, it was done with usbsnoop dumps from Windows driver, some parts (the commands) inspired by cxacru driver and also other usbnet drivers. The driver passed my testing - some real work and also pings sized from 0 to 65507 B. The only problem I found is the ifconfig error counter. When I return 0 (or 1 but empty skb) from rx_fixup(), usbnet increases the error counter although it's not an error condition (because packets can cross URB boundaries). Maybe the usbnet should be fixed to allow rx_fixup() to return empty skbs (or some other value, e.g. 2)? The USB ID of my device is 0x0572:0xcb01 which conflicts with some ADSL modems using cxacru driver (they probably use the same chipset but simpler firmware). The modems seem to use bDeviceClass 0 and iProduct "ADSL USB MODEM", my router uses bDeviceClass 255 and iProduct "USB NET CARD". The driver matches only devices with class 255 and checks for the iProduct string during init. I already posted a patch for the cxacru driver to ignore these devices. Signed-off-by: Ondrej Zary Signed-off-by: David S. Miller commit 6febfca98f25c7ee5c3ff7fc85e048bf82230ad5 Author: Changli Gao Date: Fri Sep 3 23:12:37 2010 +0000 net: rps: add the shortcut for one rps_cpus When there is only one rps_cpus, skb_get_rxhash() can be eliminated. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 65040c33ee8d0199ab7686402bffdbf9e1e26cbe Author: Diego Elio 'Flameeyes' PettenĂČ Date: Fri Sep 3 03:47:03 2010 +0000 sctp: implement SIOCINQ ioctl() (take 3) This simple patch copies the current approach for SIOCINQ ioctl() from DCCP into SCTP so that the userland code working with SCTP can use a similar interface across different protocols to know how much space to allocate for a buffer. Signed-off-by: Diego Elio PettenĂČ Signed-off-by: David S. Miller commit bbddff0545878a8649c091a9dd7c43ce91516734 Author: Tejun Heo Date: Fri Sep 3 18:22:48 2010 +0200 percpu: use percpu allocator on UP too On UP, percpu allocations were redirected to kmalloc. This has the following problems. * For certain amount of allocations (determined by PERCPU_DYNAMIC_EARLY_SLOTS and PERCPU_DYNAMIC_EARLY_SIZE), percpu allocator can be used before the usual kernel memory allocator is brought online. On SMP, this is used to initialize the kernel memory allocator. * percpu allocator honors alignment upto PAGE_SIZE but kmalloc() doesn't. For example, workqueue makes use of larger alignments for cpu_workqueues. Currently, users of percpu allocators need to handle UP differently, which is somewhat fragile and ugly. Other than small amount of memory, there isn't much to lose by enabling percpu allocator on UP. It can simply use kernel memory based chunk allocation which was added for SMP archs w/o MMUs. This patch removes mm/percpu_up.c, builds mm/percpu.c on UP too and makes UP build use percpu-km. As percpu addresses and kernel addresses are always identity mapped and static percpu variables don't need any special treatment, nothing is arch dependent and mm/percpu.c implements generic setup_per_cpu_areas() for UP. Signed-off-by: Tejun Heo Reviewed-by: Christoph Lameter Acked-by: Pekka Enberg commit 6abad5acac09921f4944af77d3860f82d49f528d Author: Tejun Heo Date: Fri Sep 3 18:22:47 2010 +0200 percpu: reduce PCPU_MIN_UNIT_SIZE to 32k In preparation of enabling percpu allocator for UP, reduce PCPU_MIN_UNIT_SIZE to 32k. On UP, the first chunk doesn't have to include static percpu variables and chunk size can be smaller which is important as UP percpu allocator will use contiguous kernel memory to populate chunks. PCPU_MIN_UNIT_SIZE also determines the maximum supported allocation size but 32k should still be enough. Signed-off-by: Tejun Heo Reviewed-by: Christoph Lameter commit 4f8b02b4e5c6896e073bed736136d420bd44b627 Author: Tejun Heo Date: Fri Sep 3 18:22:47 2010 +0200 vmalloc: pcpu_get/free_vm_areas() aren't needed on UP These functions are used only by percpu memory allocator on SMP. Don't build them on UP. Signed-off-by: Tejun Heo Cc: Nick Piggin Reviewed-by: Chrsitoph Lameter commit 19852e59002fbba1c2c6ba0f154095a37ad2ac03 Author: Will Deacon Date: Fri Sep 3 10:44:33 2010 +0100 ARM: 6358/1: hw-breakpoint: add HAVE_HW_BREAKPOINT to Kconfig If we're targetting a v6 or v7 core and have at least software perf events available, then automatically add support for hardware breakpoints. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit 864232fa1a2f8dfe003438ef0851a56722740f3e Author: Will Deacon Date: Fri Sep 3 10:42:55 2010 +0100 ARM: 6357/1: hw-breakpoint: add new ptrace requests for hw-breakpoint interaction For debuggers to take advantage of the hw-breakpoint framework in the kernel, it is necessary to expose the API calls via a ptrace interface. This patch exposes the hardware breakpoints framework as a collection of virtual registers, accesible using PTRACE_SETHBPREGS and PTRACE_GETHBPREGS requests. The breakpoints are stored in the debug_info struct of the running thread. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit f81ef4a920c8e1af75adf9f15042c2daa49d3cb3 Author: Will Deacon Date: Fri Sep 3 10:41:08 2010 +0100 ARM: 6356/1: hw-breakpoint: add ARM backend for the hw-breakpoint framework The hw-breakpoint framework in the kernel requires architecture-specific support in order to install, remove, validate and manage hardware breakpoints. This patch adds initial support for this framework to the ARM architecture, but restricts the number of watchpoints to a single resource to get around the fact that the Data Fault Address Register is unknown when a watchpoint debug exception is taken. On cores with v7 debug, the Kernel can handle breakpoint and watchpoint exceptions occuring from userspace. Older cores require clients to handle the exception themselves by registering an appropriate overflow handler or, in the case of ptrace, handling the raised SIGTRAP. The memory-mapped extended debug interface is unsupported due to its unreliability in real implementations. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit 3a4b5dca53aecb16db9e007d782b2d1e757e941a Author: Will Deacon Date: Fri Sep 3 10:39:59 2010 +0100 ARM: 6355/1: hw-breakpoint: add mechanism for hooking into prefetch aborts On ARM processors with hardware breakpoint and watchpoint support, triggering these events results in a debug exception. These manifest as prefetch and data aborts respectively. arch/arm/mm/fault.c already provides hook_fault_code for hooking into data aborts dependent on the DFSR. This patch adds a new function, hook_ifault_code for hooking into prefetch aborts in the same manner. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit ed2d372c0738386b8a184a6a6bea9c16df6ffb68 Author: Christian Dietrich Date: Mon Sep 6 16:37:05 2010 +0200 sched: Remove unnecessary #ifdef CONFIG_SMP The CONFIG_SMP ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Cleanup only, no functional effect. Signed-off-by: Christian Dietrich Cc: vamos-dev@i4.informatik.uni-erlangen.de Cc: Peter Zijlstra Cc: Mike Galbraith Cc: Tejun Heo LKML-Reference: <7a3a39ef3f765a4473cb026b1f204059568a7098.1283782701.git.qy03fugy@stud.informatik.uni-erlangen.de> Signed-off-by: Ingo Molnar commit 0f1cf415f00286a38f5ce35b459342dbfc895b50 Author: Christian Dietrich Date: Mon Sep 6 16:36:18 2010 +0200 x86: Remove unnecessary #ifdef ACPI/X86_IO_ACPI The ACPI/X86_IO_ACPI ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Cleanup only, no functional effect. Signed-off-by: Christian Dietrich Acked-by: Borislav Petkov Cc: vamos-dev@i4.informatik.uni-erlangen.de LKML-Reference: Signed-off-by: Ingo Molnar commit 2edae08e5b75269855fef3c74fe4292c066e7c33 Author: Eric Dumazet Date: Mon Sep 6 18:46:39 2010 +0000 r8169: add gro support - Use napi_gro_receive() and vlan_gro_receive() - Enable GRO by default Tested on a RTL8111/8168 adapter Signed-off-by: Eric Dumazet Acked-by: Francois Romieu Signed-off-by: David S. Miller commit c936335e7ac24d1751543e2007a89e3eb649cc2a Author: Yaniv Rosner Date: Tue Sep 7 11:41:26 2010 +0000 bnx2x: Update bnx2x version to 1.52.53-6 Note that the date format was fixed. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 7f02c4ad2182ee7820edecbaf6c510728ee8bbb3 Author: Yaniv Rosner Date: Tue Sep 7 11:41:23 2010 +0000 bnx2x: Change LED scheme for dual-media Change LED scheme for dual-media Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit a22f078867ef362e35c54055878168e6613ff743 Author: Yaniv Rosner Date: Tue Sep 7 11:41:20 2010 +0000 bnx2x: Add dual-media changes Add required changes in order to support dual-media boards. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit de6eae1f42eae736548f293570fd867bd37c3bdd Author: Yaniv Rosner Date: Tue Sep 7 11:41:13 2010 +0000 bnx2x: Organize PHY functions Group all PHY specific functions together to have an organized code Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit c18aa15d08a2d1a5c7624a21747b1b03c2c1dcfd Author: Yaniv Rosner Date: Tue Sep 7 11:41:07 2010 +0000 bnx2x: Apply logic changes for the new scheme Make the needed changes for the new scheme especially around PHY initialization, and link detection. - The get_emac_base function was changed to enable setting different MAC access setting for each PHY based of external configuration. - As a part of the dual-media preparation, the save_spirom_version was modified to accept a PHY specific version address to be saved in the shmem. This will enable to save more than single spirom version in different locations. - The test_link function was changed also as a preparation for the dual-media upcoming changes - Duplicate initialization logic was removed from the link_setting_status and link_initialize functions Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit d90d96baf0cc044bcdedc9ee9e925b5937865673 Author: Yaniv Rosner Date: Tue Sep 7 11:41:04 2010 +0000 bnx2x: Move common function into aggregated function Move all PHY specific logic from bnx2x_main into bnx2x_link. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 7aa0711f32bf911add9e2ced165f8006864f973e Author: Yaniv Rosner Date: Tue Sep 7 11:41:01 2010 +0000 bnx2x: Adjust flow-control with the new scheme Flow control implementation is split to be done in each PHY function. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 62b29a5dd0930e0c956b6740f32d5b3bbaf20136 Author: Yaniv Rosner Date: Tue Sep 7 11:40:58 2010 +0000 bnx2x: Adjust alignment of split PHY functions In previous patch, common PHY functions were split in simple way to allow easy diff. This patch comes to align code in the new functions. In addition, the non-production BCM8072 PHY was removed. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit b7737c9be9d3e894d1a4375c52f5f47789475f26 Author: Yaniv Rosner Date: Tue Sep 7 11:40:54 2010 +0000 bnx2x: Split PHY functions Move the code into PHY oriented functions, and for that a new structure is defines for each PHY which contain PHY properties and its own functions. This also enables to encapsulate all PHY specific operations into the PHY functions. During initialization, the PHYs will be probed by the "bnx2x_phy_probe" function to detect which PHYs exist on-board, and configure them accordingly. Note that the ext_phy_reset implementation was incorporated in the ext_phy_init since it is actually part of the PHY initialization procedure. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit e10bc84d0e96adff7569161e7d825074a119be36 Author: Yaniv Rosner Date: Tue Sep 7 11:40:50 2010 +0000 bnx2x: Unify PHY attributes Start building the infrastructure for dual media by adding new component of PHY which will be used all along the function. Modify function to work with this component instead of the link_params. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 269cddd44e3588d1c50a7ec055b78de4d6c72cb6 Author: Steven Whitehouse Date: Tue Sep 7 14:17:10 2010 -0500 dlm: Fix dlm lock status block comment in dlm.h There is only one place in the dlm where the sb_status is set and that is queue_cast(). Tracing back the callers of that function shows that the listed set of return values is out of date, so here are an updated set. Signed-off-by: Steven Whitehouse Signed-off-by: David Teigland commit 950094cb06f3cfd75338d8c197d1d3924724b1a8 Author: Julia Lawall Date: Sun Sep 5 21:00:26 2010 +0200 drivers/net/wireless/iwlwifi/iwl-agn.c: Fix return value from an unsigned function The function has an unsigned return type, but returns a negative constant to indicate an error condition. Another error condition in the same function is indicated by returning 0, and indeed the only call to the function checks for 0 to detect errors, so the return of a negative value it converted to a return of 0. A sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @exists@ identifier f; constant C; @@ unsigned f(...) { <+... * return -C; ...+> } // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit f4bbf922f39696ed5517ac91a823e4120cb649d0 Author: Michael BĂŒsch Date: Sun Sep 5 00:55:38 2010 +0200 p54spi: Add error message for eeprom failure This adds an error message for the eeprom request failure case. This way it's easier for the user to figure out what went wrong. Signed-off-by: Michael BĂŒsch Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit c2ba33424600e742f4d44ba2237024e6322a00fa Author: Rajkumar Manoharan Date: Fri Sep 3 16:00:00 2010 +0530 ath9k_hw: Restore ANI registers to default during partial reset for AR9271 For AR9271 chips, if partial reset is done while scanning, the cycpwrThr1 will be set to maximum. This causes the degrade in DL throughput. So restore the ANI registers to default during the partial reset. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 7cf1f2dd7de98e9a18536ab885d28ecb57e76cb1 Author: Rajkumar Manoharan Date: Fri Sep 3 12:41:28 2010 +0530 ath9k_htc: Enable fastcc for HTC devices. By enabling fastcc, the scan time reduced to half. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 102885a5d114abad8f9d4101f94ce5b28c232231 Author: Vasanthakumar Thiagarajan Date: Thu Sep 2 01:34:43 2010 -0700 ath9k: Implement an algorithm for Antenna diversity and combining This algorithm chooses the best main and alt lna out of LNA1, LNA2, LNA1+LNA2 and LNA1-LNA2 to improve rx for single chain chips(AR9285). This would greatly improve rx when there is only one antenna is connected with AR9285. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 21cc630f47d8589a42d563e89be4c631edbe8716 Author: Vasanthakumar Thiagarajan Date: Thu Sep 2 01:34:42 2010 -0700 ath9k_hw: Add functions to get/set antenna diversity configuration Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 754dc53641e0038cd4fd3574b1f5b3c7239f73ce Author: Vasanthakumar Thiagarajan Date: Thu Sep 2 01:34:41 2010 -0700 ath9k_hw: Add capability flag for Antenna diversity and combining feature This is enabled only for ar9285. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: John W. Linville commit 7a374d8eeb1140c08d215de7a181e595ca606196 Author: Stephen Hemminger Date: Wed Sep 1 18:17:21 2010 -0700 airo: make strings const Make read/only data structures const. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: John W. Linville commit b6f45c2c03c1d858233cb0c35471dcb6cb213cdf Author: Stephen Hemminger Date: Wed Sep 1 18:16:22 2010 -0700 ray_cs: make data const Make the startup and other data parameters that are read/only const. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: John W. Linville commit 359d5106a2ff4ffa2ba129ec8f54743c341dabfc Author: Koki Sanagi Date: Mon Aug 23 18:47:09 2010 +0900 perf: Add a script to show packets processing Add a perf script which shows packets processing and processed time. It helps us to investigate networking or network devices. If you want to use it, install perf and record perf.data like following. If you set script, perf gathers records until it ends. If not, you must Ctrl-C to stop recording. And if you want a report from record, If you use some options, you can limit the output. Option is below. tx: show only tx packets processing rx: show only rx packets processing dev=: show processing on this device debug: work with debug mode. It shows buffer status. For example, if you want to show received packets processing associated with eth4, 106133.171439sec cpu=0 irq_entry(+0.000msec irq=24:eth4) | softirq_entry(+0.006msec) | |---netif_receive_skb(+0.010msec skb=f2d15900 len=100) | | | skb_copy_datagram_iovec(+0.039msec 10291::10291) | napi_poll_exit(+0.022msec eth4) This perf script helps us to analyze the processing time of a transmit/receive sequence. Signed-off-by: Koki Sanagi Acked-by: David S. Miller Cc: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet Cc: Tom Zanussi LKML-Reference: <4C72439D.3040001@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit 07dc22e7295f25526f110d704655ff0ea7687420 Author: Koki Sanagi Date: Mon Aug 23 18:46:12 2010 +0900 skb: Add tracepoints to freeing skb This patch adds tracepoint to consume_skb and add trace_kfree_skb before __kfree_skb in skb_free_datagram_locked and net_tx_action. Combinating with tracepoint on dev_hard_start_xmit, we can check how long it takes to free transmitted packets. And using it, we can calculate how many packets driver had at that time. It is useful when a drop of transmitted packet is a problem. sshd-6828 [000] 112689.258154: consume_skb: skbaddr=f2d99bb8 Signed-off-by: Koki Sanagi Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C724364.50903@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit cf66ba58b5cb8b1526e9dd2fb96ff8db048d4d44 Author: Koki Sanagi Date: Mon Aug 23 18:45:02 2010 +0900 netdev: Add tracepoints to netdev layer This patch adds tracepoint to dev_queue_xmit, dev_hard_start_xmit, netif_rx and netif_receive_skb. These tracepoints help you to monitor network driver's input/output. -0 [001] 112447.902030: netif_rx: dev=eth1 skbaddr=f3ef0900 len=84 -0 [001] 112447.902039: netif_receive_skb: dev=eth1 skbaddr=f3ef0900 len=84 sshd-6828 [000] 112447.903257: net_dev_queue: dev=eth4 skbaddr=f3fca538 len=226 sshd-6828 [000] 112447.903260: net_dev_xmit: dev=eth4 skbaddr=f3fca538 len=226 rc=0 Signed-off-by: Koki Sanagi Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C72431E.3000901@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit 3e4b10d7a4d2a78af64f8096dc7cdb3bebd65adb Author: Neil Horman Date: Mon Aug 23 18:43:51 2010 +0900 napi: Convert trace_napi_poll to TRACE_EVENT This patch converts trace_napi_poll from DECLARE_EVENT to TRACE_EVENT to improve the usability of napi_poll tracepoint. -0 [001] 241302.750777: napi_poll: napi poll on napi struct f6acc480 for device eth3 -0 [000] 241302.852389: napi_poll: napi poll on napi struct f5d0d70c for device eth1 The original patch is below: http://marc.info/?l=linux-kernel&m=126021713809450&w=2 [ sanagi.koki@jp.fujitsu.com: And add a fix by Steven Rostedt: http://marc.info/?l=linux-kernel&m=126150506519173&w=2 ] Signed-off-by: Neil Horman Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C7242D7.4050009@jp.fujitsu.com> Signed-off-by: Koki Sanagi Signed-off-by: Frederic Weisbecker commit 2bf2160d8805de64308e2e7c3cd97813cb58ed2f Author: Lai Jiangshan Date: Mon Aug 23 18:42:48 2010 +0900 irq: Add tracepoint to softirq_raise Add a tracepoint for tracing when softirq action is raised. This and the existing tracepoints complete softirq's tracepoints: softirq_raise, softirq_entry and softirq_exit. And when this tracepoint is used in combination with the softirq_entry tracepoint we can determine the softirq raise latency. Signed-off-by: Lai Jiangshan Acked-by: Mathieu Desnoyers Acked-by: Neil Horman Cc: David Miller Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C724298.4050509@jp.fujitsu.com> [ factorize softirq events with DECLARE_EVENT_CLASS ] Signed-off-by: Koki Sanagi Signed-off-by: Frederic Weisbecker commit 8c893a5545ca772744376295690723dcb0b47d96 Author: Vasiliy Kulikov Date: Sun Sep 5 22:33:04 2010 +0400 UBIFS: check return code of pnode_lookup Function pnode_lookup may return ERR_PTR(...). Check for it. Signed-off-by: Vasiliy Kulikov Signed-off-by: Artem Bityutskiy commit 0e54c8992a35ab8126e8a7661007ddc1745a2597 Author: Vasiliy Kulikov Date: Sun Sep 5 22:33:00 2010 +0400 UBIFS: check return code of ubifs_lpt_lookup Function ubifs_lpt_lookup may return ERR_PTR(...). Check for it. [Tweaked by Artem Bityutskiy] Signed-off-by: Vasiliy Kulikov Signed-off-by: Artem Bityutskiy commit fe8e0c25cad28e8858ecfa5863333c70685a6811 Author: Alexander van Heukelum Date: Mon Sep 6 20:53:42 2010 +0200 x86, 32-bit: Align percpu area and irq stacks to THREAD_SIZE The irq stacks, located in the percpu-area, need to be THREAD_SIZE aligned. Add the infrastucture to align percpu variables to larger-than-pagesize amounts within the percpu area, and use it to specify the alignment for the irq stacks. Also align the percpu area itself to THREAD_SIZE. This should make irq stacks work with 8K THREAD_SIZE. Signed-off-by: Alexander van Heukelum Cc: Tejun Heo Cc: hch@lst.de LKML-Reference: <1283799222.15941.1393621887@webmail.messagingengine.com> Signed-off-by: Ingo Molnar commit db40980fcdb560d7992b0511df16cdd3f7e381f3 Author: Eric Dumazet Date: Mon Sep 6 11:13:50 2010 +0000 net: poll() optimizations No need to test twice sk->sk_shutdown & RCV_SHUTDOWN Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit d61702f1273b71c2809365a7806d7fe84fd77f15 Author: Yevgeny Petrilin Date: Sun Sep 5 22:20:24 2010 +0000 mlx4_en: Fixed Ethtool statistics report The values didn't match the title after removing the LRO statistics in commit fa37a9586f92051de03a13e55e5ec3880bb6783e Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit ebc872c7bd7155bcc7db2343155729d13bf4a2ee Author: Yevgeny Petrilin Date: Sun Sep 5 22:20:11 2010 +0000 mlx4_en: Consider napi_get_frags() failure. If failed to get skb frags using napi_get_frags(), the packet is dropped. Reported-by: Eric Dumazet Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit f6c9322c3a0cd50a6996094327347c87cd2f4bd8 Author: Joe Perches Date: Sun Sep 5 22:08:09 2010 +0000 net/caifcaif_dev.c: Use netdev_ Convert pr_("%s" ..., (struct netdev *)->name ...) to netdev_((struct netdev *), ...) Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit b31fa5bad576cd8180a5ad70c648333b44320d44 Author: Joe Perches Date: Sun Sep 5 21:31:11 2010 +0000 net/caif: Use pr_fmt This patch standardizes caif message logging prefixes. Add #define pr_fmt(fmt) KBUILD_MODNAME ":%s(): " fmt, __func__ Add missing "\n"s to some logging messages Convert pr_warning to pr_warn This changes the logging message prefix from CAIF: to caif: for all uses but caif_socket.c and chnl_net.c. Those now use their filename without extension. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit a0ece28539d49c9bdcc6da0bbb26771dceb57581 Author: Julia Lawall Date: Sun Sep 5 09:00:23 2010 +0000 drivers/atm/firestream.c: Fix unsigned return type The function has an unsigned return type, but returns a negative constant to indicate an error condition. The result of calling the function is always stored in a variable of type (signed) int, and thus unsigned can be dropped from the return type. A sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @exists@ identifier f; constant C; @@ unsigned f(...) { <+... * return -C; ...+> } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 29af9309dba25077f711f5f975977714bc43a0c3 Author: Julia Lawall Date: Sun Sep 5 09:00:21 2010 +0000 net/9p/trans_fd.c: Fix unsigned return type The function has an unsigned return type, but returns a negative constant to indicate an error condition. The result of calling the function is always stored in a variable of type (signed) int, and thus unsigned can be dropped from the return type. A sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @exists@ identifier f; constant C; @@ unsigned f(...) { <+... * return -C; ...+> } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit e04c4dc87c4af296982ff44123e064d483e826c4 Author: Christian Dietrich Date: Mon Sep 6 04:36:25 2010 +0000 drivers/net: Removing undead ifdef CHELSIO_T1_1G The CHELSIO_T1_1G ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Signed-off-by: Christian Dietrich Signed-off-by: David S. Miller commit 49d70c4856acfce943fab35fc199b3074961313f Author: Joe Perches Date: Sat Sep 4 22:21:05 2010 +0000 drivers/net/jme: Use pr_ Add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt Convert jeprintk to pr_err Remove jeprintk macro define Remove periods from end of logging messages Coalesce format strings Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit f417f5e4ba79a08e992c79a4bb84c8a8c5062017 Author: Dan Carpenter Date: Sat Sep 4 08:33:03 2010 +0000 isdn: cleanup: make buffer smaller This showed up in my audit because we use strcpy() to copy "ds" into a 32 character buffer inside the isdn_tty_dial() function. But it turns out that we only ever use the first 32 characters so it's OK. I have changed the declaration to make the static checkers happy. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 017d79ef0073fdb170dcf185dc4c2456a304d659 Author: Dan Carpenter Date: Sat Sep 4 08:38:59 2010 +0000 isdn: potential buffer overflows cs->ics.parm.setup.phone is a 32 character array. In each of these cases we're copying from a 35 character array into a 32 character array so we should use strlcpy() instead of strcpy(). Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit ca1cef3a3a8af961f504abfcf9e13dac088e1ad1 Author: Jiri Slaby Date: Sat Sep 4 02:08:41 2010 +0000 NET: bna, fix lock imbalance bnad_set_rx_mode omit to unlock bna_lock on one fail path. Fix that. Signed-off-by: Jiri Slaby Cc: Debashis Dutt Cc: Rasesh Mody Cc: David S. Miller Signed-off-by: David S. Miller commit e8f7f43a4ad451ecfb2689985f99a9e276a08bba Author: Julia Lawall Date: Sat Sep 4 00:12:43 2010 +0000 drivers/net/fs_enet/fs_enet-main.c: Add of_node_put to avoid memory leak In this case, a device_node structure is stored in another structure that is then freed without first decrementing the reference count of the device_node structure. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ expression x; identifier f; position p1,p2; @@ x@p1->f = \(of_find_node_by_path\|of_find_node_by_name\|of_find_node_by_phandle\|of_get_parent\|of_get_next_parent\|of_get_next_child\|of_find_compatible_node\|of_match_node\|of_find_node_by_type\|of_find_node_with_property\|of_find_matching_node\|of_parse_phandle\|of_node_get\)(...); ... when != of_node_put(x) kfree@p2(x) @script:python@ p1 << r.p1; p2 << r.p2; @@ cocci.print_main("call",p1) cocci.print_secs("free",p2) // Signed-off-by: Julia Lawall Acked-by: Wolfram Sang Signed-off-by: David S. Miller commit 1fd63041c49c5c6ed1fe58b7bccc2de462d51e2b Author: Eric Dumazet Date: Thu Sep 2 23:09:32 2010 +0000 net: pskb_expand_head() optimization pskb_expand_head() blindly takes references on fragments before calling skb_release_data(), potentially releasing these references. We can add a fast path, avoiding these atomic operations, if we own the last reference on skb->head. Based on a previous patch from David Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9d348af47656a65a697ff55a53daf294ea4d5662 Author: Santiago Leon Date: Fri Sep 3 18:29:53 2010 +0000 ibmveth: Update module information and version Add an entry to the MAINTAINERS file for ibmveth, clean up the copyright and add all authors. Change the name of the module to reflect the product name over the last number of years. Considering all the changes we have made, bump the driver version. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit c22960977ad4b01dc608579e0865eac3b2bc9ce8 Author: Santiago Leon Date: Fri Sep 3 18:29:47 2010 +0000 ibmveth: Remove some unnecessary include files These files probably came across from the skeleton driver. Remove them. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 6485911a5c04c328939113528805f15b90ae28cf Author: Santiago Leon Date: Fri Sep 3 18:29:41 2010 +0000 ibmveth: Convert driver specific assert to BUG_ON We had a driver specific assert function which wasn't enabled most of the time. Convert them to BUG_ON and enable them all the time. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit be35ae9e08dbbc70f1cd50de8639627fa501692d Author: Santiago Leon Date: Fri Sep 3 18:29:36 2010 +0000 ibmveth: Return -EINVAL on all ->probe errors We had a few cases where we returned success on error. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit f148f61d89995660e8aa20a2784ecd9c7f25e2a6 Author: Santiago Leon Date: Fri Sep 3 18:29:30 2010 +0000 ibmveth: Coding style fixes Fix most of the kernel coding style issues in ibmveth. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 517e80e6786974651d460a11bb066eab2628ddf1 Author: Santiago Leon Date: Fri Sep 3 18:29:25 2010 +0000 ibmveth: Some formatting fixes IbmVethNumBufferPools -> IBMVETH_NUM_BUFF_POOLS Also change IBMVETH_MAX_MTU -> IBMVETH_MIN_MTU, it refers to the minimum size not the maximum. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 21c2decea0f52980a34c79167fe69df3a84d2788 Author: Santiago Leon Date: Fri Sep 3 18:29:19 2010 +0000 ibmveth: Convert driver specific error functions to netdev_err Use netdev_err to standardise the error output. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit c43ced18a515bef29166f22c01a6d9062aa3008e Author: Santiago Leon Date: Fri Sep 3 18:29:14 2010 +0000 ibmveth: Convert driver specific debug to netdev_dbg Use netdev_dbg to standardise the debug output. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit e295fe83755213fb5991be577485525a7453213c Author: Santiago Leon Date: Fri Sep 3 18:29:08 2010 +0000 ibmveth: Remove redundant function prototypes These functions appear before their use, so we can remove the redundant prototypes. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 003212cc599cdc006de486e28c1f6b327bcb9808 Author: Santiago Leon Date: Fri Sep 3 18:29:03 2010 +0000 ibmveth: Convert to netdev_alloc_skb We were using alloc_skb which doesn't create any headroom. Change it to use netdev_alloc_skb to match most other drivers. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit d2684b516020c162b2852a2171ec588713c6cec0 Author: Santiago Leon Date: Fri Sep 3 18:28:58 2010 +0000 ibmveth: remove procfs code We export all the driver specific statistics via ethtool, so there is no need to duplicate this in procfs. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit ab78df75cac4d90b5b5471af795a64141243c02a Author: Santiago Leon Date: Fri Sep 3 18:28:52 2010 +0000 ibmveth: Enable IPv6 checksum offload This patch enables TCP checksum offload support for IPv6 on ibmveth. This completely eliminates the generation and checking of the checksum for IPv6 packets that are completely virtual and never touch a physical network. A basic TCPIPV6_STREAM netperf run showed a ~30% throughput improvement when an MTU of 64000 was used. This featured is enabled by default, as is the case for IPv4 checksum offload. When checksum offload is enabled the driver will negotiate IPv4 and IPv6 offload with the firmware separately and enable what is available. As long as either IPv4 or IPv6 offload is supported and enabled the device will report that checksum offload is enabled. The device stats, available through ethtool, will display which checksum offload features are supported/enabled by firmware. Performance testing against a stock kernel shows no regression for IPv4 or IPv6 in terms of throughput or processor utilization with checksum disabled or enabled. Signed-off-by: Robert Jennings Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit bc4c6f54e4e9971717d84c630acef0c7c3c75a97 Author: Santiago Leon Date: Fri Sep 3 18:28:47 2010 +0000 ibmveth: Remove duplicate checksum offload setup code Remove code in the device probe function where we set up the checksum offload feature and replace it with a call to an existing function that is doing the same. This is done to clean up the driver in preparation of adding IPv6 checksum offload support. Signed-off-by: Robert Jennings Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 0c26b6775f36ce447722e8752bc3a006ec832df3 Author: Santiago Leon Date: Fri Sep 3 18:28:41 2010 +0000 ibmveth: Add optional flush of rx buffer On some machines we can improve the bandwidth by ensuring rx buffers are not in the cache. Add a module option that is disabled by default that flushes rx buffers on insertion. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 6e8ab30ec677925e8999a9f5bdb028736d22d48c Author: Santiago Leon Date: Fri Sep 3 18:28:36 2010 +0000 ibmveth: Add scatter-gather support ibmveth can scatter gather up to 6 segments. If we go over this then we have no option but to call skb_linearize, like other drivers with similar limitations do. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit f89e49e79f839dbe79364ec6cd7e2274ad11b120 Author: Anton Blanchard Date: Mon Sep 6 18:21:41 2010 -0700 ibmveth: Use lighter weight read memory barrier in ibmveth_poll We want to order the read in ibmveth_rxq_pending_buffer and the read of ibmveth_rxq_buffer_valid which are both cacheable memory. smp_rmb() is good enough for this. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit 8d86c61ae41d9068fd5e5cc01a4abd53c4fe3ab5 Author: Santiago Leon Date: Fri Sep 3 18:28:25 2010 +0000 ibmveth: Add rx_copybreak For small packets, create a new skb and copy the packet into it so we avoid tearing down and creating a TCE entry. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit c08cc3ccebd46dce44d13a8ce81d249e687eeb8a Author: Santiago Leon Date: Fri Sep 3 18:28:20 2010 +0000 ibmveth: Add tx_copybreak Use the existing bounce buffer if we send a buffer under a certain size. This saves the overhead of a TCE map/unmap. I can't see any reason for the wmb() in the bounce buffer case, if we need a barrier it will be before we call h_send_logical_lan but we have nothing in the common case. Remove it. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit e8cb7eb473ac47703282db6f90b4926f31cdf376 Author: Santiago Leon Date: Fri Sep 3 18:28:15 2010 +0000 ibmveth: Remove LLTX The ibmveth adapter needs locking in the transmit routine to protect the bounce_buffer but it sets LLTX and forgets to add any of its own locking. Just remove the deprecated LLTX option. Remove the stats lock in the process. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit c033a6d1390bb6cc0c11c3b4137b856dfd8cb7c8 Author: Santiago Leon Date: Fri Sep 3 18:28:09 2010 +0000 ibmveth: batch rx buffer replacement At the moment we try and replenish the receive ring on every rx interrupt. We even have a pool->threshold but aren't using it. To limit the maximum latency incurred when refilling, change the threshold from 1/2 to 7/8 and reduce the largest rx pool from 768 buffers to 512 which should be more than enough. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit a613f581489aff23189c4945aec9567f6663b0c6 Author: Santiago Leon Date: Fri Sep 3 18:28:04 2010 +0000 ibmveth: Remove integer divide caused by modulus Replace some modulus operators with an increment and compare to avoid an integer divide. Signed-off-by: Anton Blanchard Signed-off-by: Santiago Leon Signed-off-by: David S. Miller commit a5d31e0faf025ca8f64b85fc6938b702105725b7 Author: Denis Kirjanov Date: Fri Sep 3 10:05:41 2010 +0000 ns83820: Use predefined autoneg constants Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 3c083edc6d0d53a050672b15e3594d07d81b42e5 Author: Denis Kirjanov Date: Fri Sep 3 10:05:40 2010 +0000 ns83820: Add copper device settings Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 7457e911c72eb0041b007943b0a29aab5a1c4a39 Author: Denis Kirjanov Date: Fri Sep 3 10:05:39 2010 +0000 ns83820: Remove unused have_optical variable. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit d1fb62796cdac6899ebd4319e4a610684db063e9 Author: Allan Stephens Date: Fri Sep 3 08:33:42 2010 +0000 tipc: Fix misleading error code when enabling Ethernet bearers Cause TIPC to return EAGAIN if it is unable to enable a new Ethernet bearer because one or more recently disabled Ethernet bearers are temporarily consuming resources during shut down. (The previous error code, EDQUOT, is now returned only if all available Ethernet bearer data structures are fully enabled at the time the request to enable an additional bearer is received.) Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 9fbfca013176f9b90d186f3b446fd93e4d972b25 Author: Allan Stephens Date: Fri Sep 3 08:33:40 2010 +0000 tipc: Ensure outgoing messages on Ethernet have sufficient headroom Add code to expand the headroom of an outgoing TIPC message if the sk_buff has insufficient room to hold the header for the associated Ethernet device. This change is necessary to ensure that messages TIPC does not create itself (eg. incoming messages that are being routed to another node) do not cause problems, since TIPC has no control over the amount of headroom available in such messages. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 5d9c54c1e9ececcf7e99c4f014f9bec7ee3a7def Author: Allan Stephens Date: Fri Sep 3 08:33:39 2010 +0000 tipc: Minor optimizations to name table translation code Optimizes TIPC's name table translation code to avoid unnecessary manipulation of the node address field of the resulting port id when name translation fails. This change is possible because a valid port id cannot have a reference field of zero, so examining the reference only is sufficient to determine if the translation was successful. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit dcfc5d787a24b9a20be3e18e3dbbab5280d35e38 Author: stephen hemminger Date: Thu Sep 2 14:29:35 2010 +0000 wan: make read-only data const Change several wan drivers to make strings and other initialize only parameters const. Compile tested only (with no new warnings) Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit adea1ac7effbddbe60a9de6d63462bfe79289e59 Author: Eric Dumazet Date: Sun Sep 5 20:04:05 2010 -0700 r8169: fix rx checksum offload While porting GRO to r8169, I found this driver has a bug in its rx path. All skbs given to network stack had their ip_summed set to CHECKSUM_NONE, while hardware said they had correct TCP/UDP checksums. The reason is driver sets skb->ip_summed on the original skb before the copy eventually done by copybreak. The fresh skb gets the ip_summed = CHECKSUM_NONE value, forcing network stack to recompute checksum, and preventing my GRO patch to work. Fix is to make the ip_summed setting after skb copy. Note : rx_copybreak current value is 16383, so all frames are copied... Signed-off-by: Eric Dumazet Acked-by: Francois Romieu Signed-off-by: David S. Miller commit bcc5b6d3233688a5179f445ef06a28e055c5873a Author: Saurav Kashyap Date: Fri Sep 3 15:20:57 2010 -0700 [SCSI] qla2xxx: AER Support-Return recovered from mmio_enable function for 82XX. Return recovered from pci_mmio_enabled function if it is 82XX. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 58548cb51a824276c34a3227a4917d2e2ded0daa Author: Giridhar Malavali Date: Fri Sep 3 15:20:56 2010 -0700 [SCSI] qla2xxx: Increase SG table size to support large IO size per scsi command. The sg table size is increased from 128 to 1024 to support multiple sg lists and number of sg elements per scsi command. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 3fadb80b0f39b193caafeed615a219aae57279fe Author: Giridhar Malavali Date: Fri Sep 3 15:20:55 2010 -0700 [SCSI] qla2xxx: Clear local references of rport on device loss timeout notification from FC transport. The clearing of local references to rport was blocked when abort is active. This code clears the local references unconditionaly upon device loss timeout callback from FC transport. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit b1d46989c12ec4d93f274ca8378bb1a6014d244a Author: Madhuranath Iyengar Date: Fri Sep 3 15:20:54 2010 -0700 [SCSI] qla2xxx: Handle MPI timeout indicated by AE8002 In case the MPI times out, the FW issues an async event AE8002 to indicate this to every FCoE function. The FC/FCoE driver is required to handle this, by doing a soft reset and issuing a Write MPI register mailbox command to reset the MPI. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit bddd2d65a48c492d3e585e65df0be89c58b4acda Author: Lalit Chandivade Date: Fri Sep 3 15:20:53 2010 -0700 [SCSI] qla2xxx: Update to AER support, do early abort commands. Currently the IOs are returned back in slot reset, this could be late and can cause error handler to invoke. If error handler invokes, eh_abort fails and escalate to device/bus/host resets causing issues. The commands need to be returned back to upper layer in io_error_detected. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 77e334d240aa0a771f861656d639ea13e9fc6569 Author: Giridhar Malavali Date: Fri Sep 3 15:20:52 2010 -0700 [SCSI] qla2xxx: Cleanup some dead-code and make some functions static. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 35e0cbd4b282e541d05ca21694beb26c087bb49e Author: Giridhar Malavali Date: Fri Sep 3 15:20:51 2010 -0700 [SCSI] qla2xxx: Return proper fabric name based on device state. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit a5b36321918b3a1295748b77c62976c167233eec Author: Lalit Chandivade Date: Fri Sep 3 15:20:50 2010 -0700 [SCSI] qla2xxx: Added AER support for ISP82xx. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 6dbdda4d596f201b8a82a276a0c0b50ef2b899e8 Author: Giridhar Malavali Date: Fri Sep 3 15:20:49 2010 -0700 [SCSI] qla2xxx: Pass first 64 bytes of MBX information when vendor commands fail. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit c9afb9a24db2e673971e790ee4c1bac55708f333 Author: Giridhar Malavali Date: Fri Sep 3 15:20:48 2010 -0700 [SCSI] qla2xxx: Don't issue set or get port param MBC if port is not online. Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley commit 592091c0e21655bfbdf68741dd5a920c2ac2bbe6 Author: Jin Dongming Date: Tue Aug 31 09:13:33 2010 +0900 therm_throt.c: Trivial printk message fix for a unsuitable abbreviation of 'thermal' In unexpected_thermal_interrupt(), "LVT TMR interrupt" is used in error message. I don't think TMR is a suitable abbreviation for thermal. 1.TMR has been used in IA32 Architectures Software Developer's Manual, and is the abbreviation for Trigger Mode Register. 2.There is not an standard abbreviation "TMR" defined for thermal in IA32 Architectures Software Developer's Manual. 3.Though we could understand it as Thermal Monitor Register, it is easy to be misunderstood as a *TIMER* interrupt also. I think this patch will fix it. Signed-off-by: Jin Dongming Reviewed-by: Jean Delvare Cc: Brown Len Cc: Hidetoshi Seto Cc: Fenghua Yu LKML-Reference: <4C7C492D.5020704@np.css.fujitsu.com> Signed-off-by: Ingo Molnar commit e3b3e6246726cd05950677ed843010b8e8c5884c Author: Mike Christie Date: Wed Aug 11 11:06:25 2010 -0500 [SCSI] scsi/block: increase flush/sync timeout We have been seeing the flush request timeout with a wide range of hardware from tgt+iser to FC targets from a major vendor. After discussions about if the value should be configurable and what the best value should be, this patch just increases the flush/sync cache timeout to 1 minute. 2 minutes was determined to be too long, and making it configurable was troublesome for users. This patch was made over Linus's tree. It is not made over scsi-misc or scsi-rc-fixes, because Linus's had block layer changes that my patch was built over. Signed-off-by: Mike Christie Acked-by: Jens Axboe Signed-off-by: James Bottomley commit 1c1acab0367d88ad5da2b9db2efdf2699113ec88 Author: Julia Lawall Date: Wed Aug 11 12:11:24 2010 +0200 [SCSI] drivers/message/fusion: Return -ENOMEM on memory allocation failure In this code, 0 is returned on memory allocation failure, even though other failures return -ENOMEM or other similar values. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression ret; expression x,e1,e2,e3; @@ ret = 0 ... when != ret = e1 *x = \(kmalloc\|kcalloc\|kzalloc\)(...) ... when != ret = e2 if (x == NULL) { ... when != ret = e3 return ret; } // Signed-off-by: Julia Lawall Acked-by: "Desai, Kashyap" Signed-off-by: James Bottomley commit fc91961ce520ed7faa32aa01d0f7a82601bc4796 Author: Eddie Wai Date: Thu Aug 12 16:44:31 2010 -0700 [SCSI] bnx2i: Updated version to bnx2i-2.1.3 Also updated maintainer info. Signed-off-by: Eddie Wai Signed-off-by: James Bottomley commit 250ae982e2864aa0e06a09137382f44e58b51683 Author: Eddie Wai Date: Thu Aug 12 16:44:30 2010 -0700 [SCSI] bnx2i: Added chip cleanup for the remove module path In the case when an ep_connect request is interrupted due to route request stall, if the iSCSI daemon is terminated by the user, the chip will be left in a state which will not get cleaned up upon module removal. Upon module reload, when the same context id is used for a new connection, chip panic would occur. This patch adds chip cleanup in the module removal path. Signed-off-by: Eddie Wai Acked-by: Benjamin Li Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 2c2255e08dee510c68d641195f83d40899897c65 Author: Eddie Wai Date: Thu Aug 12 16:44:29 2010 -0700 [SCSI] bnx2i: Recouple the CFC delete cleanup with cm_abort/close completion Specific to the Broadcom 10g chipset, the CFC delete operation must be coupled with the cm_abort/close with does the SRC delete/terminate offload operation prior. Signed-off-by: Eddie Wai Reviewed-by: Michael Chan Acked-by: Benjamin Li Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit c47b401230895edc94abe2c342811a2171375dbe Author: Eddie Wai Date: Fri Aug 13 09:33:27 2010 -0700 [SCSI] bxn2i: Added support for other TMFs besides ABORT_TASK Expanded the TMF request routine to support other TMFs such as LUN RESET, etc. Signed-off-by: Eddie Wai Reviewed-by: Anil Veerabhadrappa Reviewed-by: Benjamin Li Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 39304072ac401015ee3c0fbfa724574dbedb46b5 Author: Eddie Wai Date: Thu Aug 12 16:44:27 2010 -0700 [SCSI] bnx2i: Fixed a protocol violation on nopout responses According to RFC3720, nopout packet sent in response to unsolicited nopin packet requesting a response must retain the TTT of the requester. Signed-off-by: Eddie Wai Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit a87b04de66eec66a728fb65c70a8bf8bb4d1eb48 Author: Wayne Boyer Date: Tue Aug 10 09:13:00 2010 -0700 [SCSI] ipr: Driver version 2.5.1 Bump the driver version. Signed-off-by: Wayne Boyer Signed-off-by: James Bottomley commit 46d7456324766cd291d7ccd5b4927cbd3c28fb1b Author: Wayne Boyer Date: Wed Aug 11 07:15:17 2010 -0700 [SCSI] ipr: fix resource address formatting and add attribute for device ID This patch fixes a resource address formatting problem where the first byte was being zeroed out. Also, the device ID is now made available as a sysfs attribute. Signed-off-by: Wayne Boyer Acked-by: Brian King Signed-off-by: James Bottomley commit 6f7efaabefebfbc523ea9776e3663a2d81b86399 Author: kxie@chelsio.com Date: Mon Aug 16 20:55:53 2010 -0700 [SCSI] cxgb3i: change cxgb3i to use libcxgbi Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 7b36b6e03b0d6cee0948593a6a11841a457695b9 Author: kxie@chelsio.com Date: Mon Aug 16 20:55:53 2010 -0700 [SCSI] cxgb4i v5: iscsi driver Added cxgb4i iSCSI driver. This patch implements the cxgb4i iscsi connection acceleration for the open-iscsi initiator. The cxgb4i driver offers the iscsi PDU based offload: - digest insertion and verification - payload direct-placement into host memory buffer. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit 9ba682f01e2ffe47e6ea47fcc6cdfe39d7a71571 Author: kxie@chelsio.com Date: Mon Aug 16 20:55:53 2010 -0700 [SCSI] libcxgbi: common library for cxgb3i and cxgb4i [PATCH v5 1/3] libcxgbi: common library for cxgb3i and cxgb4i From: Karen Xie Extracts common functions to libcxgbi. Signed-off-by: Karen Xie Reviewed-by: Mike Christie Signed-off-by: James Bottomley commit ec21b3b0dbbaf5965f6b508cb6b48d9fe5bb6ab5 Author: Dan Carpenter Date: Sun Aug 8 00:15:17 2010 +0200 [SCSI] lpfc: change spin_lock_irq() to spin_lock() In lpfc_cleanup_pending_mbox() we already have IRQs disabled so we don't need to disable them again. Also in lpfc_sli_intr_handler() there is a typo where it has spin_unlock_irq() instead of just spin_unlock(). Signed-off-by: Dan Carpenter Acked-by: James Smart Signed-off-by: James Bottomley commit 7968f1944c9d6c83683e87fd2ede977ccfd29285 Author: Julia Lawall Date: Thu Aug 5 22:19:36 2010 +0200 [SCSI] drivers/scsi: Adjust confusing if indentation Outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Acked-by: Nick Cheng Signed-off-by: James Bottomley commit da99e307aa508fba6fbedc3699e7df64e284d2c5 Author: Mike Christie Date: Fri Aug 6 03:02:41 2010 -0500 [SCSI] ibmvfc: do not reset dev_loss_tmo in slave callout This fixes a bug where the driver was resetting the rport dev_loss_tmo when devices were added by adding support for the get_host_def_dev_loss_tmo callout. Patch has only been compile tested. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 8196a934eea3810be6243b307b336136d63bbc48 Author: Mike Christie Date: Fri Aug 6 03:02:40 2010 -0500 [SCSI] fnic: do not reset dev_loss_tmo in slave callout This fixes a bug where the driver was resetting the rport dev_loss_tmo when devices were added by adding support for the get_host_def_dev_loss_tmo callout. Patch has only been compile tested. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 143beaa811aa3cfc4ae8b4a2092f232ad78b33da Author: Mike Christie Date: Fri Aug 6 03:02:39 2010 -0500 [SCSI] lpfc: do not reset dev_loss_tmo in slave callout This fixes a bug where the driver was resetting the rport dev_loss_tmo when devices were added by adding support for the get_host_def_dev_loss_tmo callout. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit a74bdf4661441d79a700f7ab3fc6d225ea2cf409 Author: Mike Christie Date: Fri Aug 6 03:02:38 2010 -0500 [SCSI] qla2xxx: do not reset dev_loss_tmo in slave callout This fixes a bug where the driver was resetting the rport dev_loss_tmo when devices were added by adding support for the get_host_def_dev_loss_tmo callout. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit b8ef3204f460912a46659cdc74d237adbe705053 Author: Mike Christie Date: Fri Aug 6 03:02:37 2010 -0500 [SCSI] fc class: add fc host default default dev loss setting This patch adds a fc_host setting to store the default dev_loss_tmo. It is used if the driver has a callack to get the value from the LLD. If the callback is not set, then we use the fc class module default value. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit d9fadd7ba99a67030783a212bcb17d11f0678433 Author: Andreas Herrmann Date: Thu Sep 2 15:37:10 2010 +0200 x86, AMD: Remove needless CPU family check (for L3 cache info) Old 32-bit AMD CPUs (all w/o L3 cache) should always return 0 for cpuid_edx(0x80000006). For unknown reason the 32-bit implementation differed from the 64-bit implementation. See commit 67cddd94799 ("i386: Add L3 cache support to AMD CPUID4 emulation"). The current check is the result of the x86 merge. Signed-off-by: Andreas Herrmann Cc: Andi Kleen LKML-Reference: <20100902133710.GA5449@loge.amd.com> Signed-off-by: Ingo Molnar commit 1b13fe6a6e9986dbc079cbb05090be75edbffa5d Author: Borislav Petkov Date: Fri Sep 3 18:39:41 2010 +0200 AGP: Warn when GATT memory cannot be set to UC This is one of those paranoid checks which should at least tell us that something is about to go haywire after we've disabled GART table walk probes which is done by default now on AMD. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-4-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit 260133ab658bd2b80e07832a878e00405e19ff43 Author: Borislav Petkov Date: Fri Sep 3 18:39:40 2010 +0200 x86, GART: Disable GART table walk probes Current code tramples over bit F3x90[6] which can be used to disable GART table walk probes. However, this bit should be set for performance reasons (speed up GART table walks). We are allowed to do that since we put GART tables in UC memory later anyway. Make it so. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-3-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit 57ab43e33122ffdc2eebca5d6de035699f0a8c06 Author: Borislav Petkov Date: Fri Sep 3 18:39:39 2010 +0200 x86, GART: Remove superfluous AMD64_GARTEN There is a GARTEN so use that and drop the duplicate. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-2-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit f7322f8f05f5755252e96d772fdcf9ca4304dc69 Author: Wey-Yi Guy Date: Mon Aug 23 15:24:49 2010 -0700 iwlagn: open/close envlope to force move BT state machine In uCode, BT state machine need to receive open envlope command before perform calibration; followed by close envlope command to move to next stage. Since Linux has two separated uCode, one for init and the second one for runtime; we use open envlope commands for init uCode to indicate we are ready to perform calibration operation. But for runtime uCode, we are not doing any init calibration, so we issue open/close envlope commands to force uCode move to "BT COEX ON" state. Signed-off-by: Wey-Yi Guy commit 55bc3228ccef255041d697fe55dcc7fe4b37feb6 Author: Casey Leedom Date: Thu Sep 2 13:07:32 2010 +0000 cxgb3: Avoid flush_workqueue() deadlock. Don't call flush_workqueue() on the cxgb3 Work Queue in cxgb_down() when we're being called from the fatal error task ... which is executing on the cxgb3 Work Queue. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller commit aa476321022ac6c3cb8ebfd1736555ccf61da276 Author: Casey Leedom Date: Thu Sep 2 13:07:31 2010 +0000 cxgb3: Leave interrupts for fatal errors asserted in common code. Platform code needs to deal with them now. Signed-off-by: Dimitris Michailidis Signed-off-by: Casey Leedom Signed-off-by: David S. Miller commit e05e6a397c65ac9a31ce799cf85157f2d85f45b7 Author: Casey Leedom Date: Thu Sep 2 13:07:30 2010 +0000 cxgb3: Set FATALPERREN. Signed-off-by: Dimitris Michailidis Signed-off-by: Casey Leedom Signed-off-by: David S. Miller commit 96e4a387528cfe806fbdf7b022a6c3f103af4ae1 Author: Casey Leedom Date: Thu Sep 2 13:07:29 2010 +0000 cxgb3: Add register bit definition for Fatal Parity Error. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller commit 52ee7a04a0f88815a71acdc604a854fb30dcbe45 Author: Eric Dumazet Date: Fri Sep 3 06:27:08 2010 +0000 net: remove two kmemcheck annotations __alloc_skb() uses a memset() to clear all the beginning of skb, including bitfields contained in 'flags1' & 'flags2'. We dont need any more to use kmemcheck_annotate_bitfield() on these fields. However, we still need it for the clone part, which is not cleared. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 1a18abaa87c4c68a13c2ffcace39a078605b980a Author: Eric Dumazet Date: Fri Sep 3 03:52:43 2010 +0000 tulip: use integrated netdev stats struct tulip_private is a bit large (order-1 allocation even on 32bit arch), try to shrink it, remove its net_device_stats field. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit ae8abfa00efb8ec550f772cbd1e1854977d06212 Author: Thomas Graf Date: Fri Sep 3 05:47:30 2010 +0000 ipv6: Update ip-sysctl.txt documentation for recent changes to accept_ra and forwarding Documentation for recent changes to the tunables accept_ra and forwarding. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller commit c3bccac2fa76f1619dfe4fb7b9bee69de7f066d8 Author: Thomas Graf Date: Fri Sep 3 03:04:20 2010 +0000 ipv6: add special mode forwarding=2 to send RS while configured as router Similar to accepting router advertisement, the IPv6 stack does not send router solicitations if forwarding is enabled. This patch enables this behavior to be overruled by setting forwarding to the special value 2. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller commit 65e9b62d4503849b10bedfc29bff0473760cc597 Author: Thomas Graf Date: Fri Sep 3 02:59:14 2010 +0000 ipv6: add special mode accept_ra=2 to accept RA while configured as router The current IPv6 behavior is to not accept router advertisements while forwarding, i.e. configured as router. This does make sense, a router is typically not supposed to be auto configured. However there are exceptions and we should allow the current behavior to be overwritten. Therefore this patch enables the user to overrule the "if forwarding enabled then don't listen to RAs" rule by setting accept_ra to the special value of 2. An alternative would be to ignore the forwarding switch alltogether and solely accept RAs based on the value of accept_ra. However, I found that if not intended, accepting RAs as a router can lead to strange unwanted behavior therefore we it seems wise to only do so if the user explicitely asks for this behavior. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller commit 314dd2a05340fffbe217c5e40ec6c3bd1d07bf89 Author: Steven Whitehouse Date: Fri Sep 3 10:07:48 2010 -0500 dlm: Don't send callback to node making lock request when "try 1cb" fails When converting a lock, an lkb is in the granted state and also being used to request a new state. In the case that the conversion was a "try 1cb" type which has failed, and if the new state was incompatible with the old state, a callback was being generated to the requesting node. This is incorrect as callbacks should only be sent to all the other nodes holding blocking locks. The requesting node should receive the normal (failed) response to its "try 1cb" conversion request only. This was discovered while debugging a performance problem on GFS2, however this fix also speeds up GFS as well. In the GFS2 case the performance gain is over 10x for cases of write activity to an inode whose glock is cached on another, idle (wrt that glock) node. (comment added, dct) Signed-off-by: Steven Whitehouse Tested-by: Abhijith Das Signed-off-by: David Teigland commit 1c5f50ee347daea013671f718b70cd6bf497bef9 Author: Wu Fengguang Date: Fri Sep 3 17:04:07 2010 +0800 x86, mm: fix uninitialized addr in kernel_physical_mapping_init() This re-adds the lost chunk in commit 9b861528a80. Reported-by: Stephen Rothwell Signed-off-by: Wu Fengguang Cc: Peter Zijlstra Cc: Haicheng Li Cc: Andi Kleen LKML-Reference: <20100903090407.GA19771@localhost> Signed-off-by: Ingo Molnar commit 7fe977dab356fbd7e86aa10bf83891761107c57c Author: Jan Beulich Date: Thu Sep 2 14:01:58 2010 +0100 i386: Make kernel_execve() suitable for stack unwinding The explicit saving and restoring of %ebx was confusing stack unwind data consumers, and it is plain unnecessary to do this within the asm(), since that was only introduced for PIC user mode consumers of the original _syscall3() macro this was derived from. Signed-off-by: Jan Beulich Cc: Arnd Bergmann LKML-Reference: <4C7FBC660200007800013F95@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit df5d1874ce1a1f0e0eceff4fa3a9d45620243a68 Author: Jan Beulich Date: Thu Sep 2 14:07:16 2010 +0100 x86: Use {push,pop}{l,q}_cfi in more places ... plus additionally introduce {push,pop}f{l,q}_cfi. All in the hope that the code becomes better readable this way (it gets quite a bit smaller in any case). Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBDA40200007800013FAF@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit a34107b5577968dc53cf9c2195c7c2d4a2caf9ce Author: Jan Beulich Date: Thu Sep 2 14:04:16 2010 +0100 i386: Add unwind directives to syscall ptregs stubs When these stubs are actual functions (i.e. having a return instruction) and have stack manipulation instructions in them, they should also be annotated to allow unwinding through them. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBCF00200007800013F99@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit b1cccb1bb01dc1cb89f58723a58c3d4988d44d94 Author: Jan Beulich Date: Thu Sep 2 13:55:11 2010 +0100 x86-64: Use symbolics instead of raw numbers in entry_64.S ... making the code a little less fragile. Also use pushq_cfi instead of raw CFI annotations in two more places, and add two missing annotations after stack pointer adjustments which got modified here anyway. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBACF0200007800013F6A@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit 1f130a783a796f147b080c594488b566c86007d0 Author: Jan Beulich Date: Thu Sep 2 13:54:32 2010 +0100 x86-64: Adjust frame type at paranoid_exit: As this isn't an exception or interrupt entry point, it doesn't have any of the hardware provide frame layouts active. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBAA80200007800013F67@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit e6b04b6b5a3182ae36cf9a69f1aaaee432edc8ad Author: Jan Beulich Date: Thu Sep 2 13:52:45 2010 +0100 x86-64: Fix unwind annotations in syscall stubs With the return address removed from the stack, these should really refer to their caller's register state. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBA3D0200007800013F61@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit bc8acf2c8c3e43fcc192762a9f964b3e9a17748b Author: Eric Dumazet Date: Thu Sep 2 13:07:41 2010 -0700 drivers/net: avoid some skb->ip_summed initializations fresh skbs have ip_summed set to CHECKSUM_NONE (0) We can avoid setting again skb->ip_summed to CHECKSUM_NONE in drivers. Introduce skb_checksum_none_assert() helper so that we keep this assertion documented in driver sources. Change most occurrences of : skb->ip_summed = CHECKSUM_NONE; by : skb_checksum_none_assert(skb); Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 81a294c44e973dc7182e4733421b7cb2daba3c29 Author: Paul E. McKenney Date: Mon Aug 30 09:52:50 2010 -0700 rcu: fix _oddness handling of verbose stall warnings CONFIG_RCU_CPU_STALL_VERBOSE depends on CONFIG_TREE_PREEMPT_RCU, but rcu_bootup_announce_oddness() complains if CONFIG_RCU_CPU_STALL_VERBOSE is not set even in the case of CONFIG_TREE_RCU. This commit therefore fixes rcu_bootup_announce_oddness() to avoid insisting on impossibilities. Reported-by: Guy Martin Signed-off-by: Paul E. McKenney commit 7162f6691e9d39d8d866574687cddb3f1ec65d72 Merge: 250e061 78ab952 Author: David S. Miller Date: Thu Sep 2 12:45:44 2010 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 250e061e1d3e26600236a3dd9172e7f5f5916c00 Author: Eric Dumazet Date: Thu Sep 2 12:45:02 2010 -0700 bna: fix stats handling get_stats() method incorrectly clears a global array before folding various stats. This can break SNMP applications. Switch to 64 bit flavor to work on a user supplied buffer, and provide 64bit counters even on 32bit arches. Fix a bug in bnad_netdev_hwstats_fill(), for rx_fifo_errors, missing a folding (only the last counter was taken into account) Signed-off-by: Eric Dumazet Acked-by: Rasesh Mody Signed-off-by: David S. Miller commit 78ab952717b62c0ba6ca7f7a27eaa0486685e45f Merge: 3e502e6 85f72bc Author: John W. Linville Date: Thu Sep 2 13:30:07 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem commit deffd77759e3ceb936f0760cc54a213881577a83 Author: Changli Gao Date: Thu Sep 2 03:56:51 2010 +0000 net: arp: code cleanup Clean the code up according to Documentation/CodingStyle. Don't initialize the variable dont_send in arp_process(). Remove the temporary varialbe flags in arp_state_to_flags(). Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit c07b68e841bd737e2ebeb57268d251c89ccc5010 Author: Eric Dumazet Date: Thu Sep 2 03:53:46 2010 +0000 net: dev_add_pack() & __dev_remove_pack() changes Add a small helper ptype_head() to get the head to manipulate dev_add_pack() & __dev_remove_pack() can use a spinlock without blocking BH, since softirq use RCU, and these functions are run from process context only. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit c68839963426d42bdb2c915b435f9860d060e645 Author: Peter Meerwald Date: Thu Sep 2 04:06:24 2010 +0000 net: Improve comments in include/linux/phy.h Correct state range of PHY bus addresses (i.e. 0-31) in comment, make spelling of PHY consistent in comments. Signed-off-by: Peter Meerwald Signed-off-by: David S. Miller commit 8ed2163ff3b6abc5143d46dea73e523b22a6f987 Author: Julian Anastasov Date: Wed Sep 1 22:19:14 2010 +0000 ipvs: use pkts for SCTP too Use correctly the in_pkts packet counter also for SCTP Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 95f4b45bc688b03107f5452ccda29496fc1b4ecf Author: Eric Dumazet Date: Thu Sep 2 09:19:32 2010 -0700 net: another last_rx round Kill last_rx use in l2tp and two net drivers Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit fd0d67d62def64ed5aa57f99d247e2b3d5eff8c5 Author: Uwe Kleine-König Date: Thu Sep 2 16:13:35 2010 +0100 ARM: 6347/2: nomadik: move nmk_gpio_probe to .devinit.text This fixes a section mismatch reported by modpost: WARNING: arch/arm/plat-nomadik/built-in.o(.data+0x100): Section mismatch in reference from the variable nmk_gpio_driver to the function .init.text:nmk_gpio_probe() The variable nmk_gpio_driver references the function __init nmk_gpio_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, According to Rabin VINCENT the alternative to use platform_driver_probe won't work because the "platform devices are not yet registered when nmk_gpio_init() is called." Acked-by: Rabin Vincent Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 9e978f096241e303c10cf6e6dc80dce41ef41b92 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:20 2010 +0100 ARM: 6351/1: s3c64xx: don't put smartq_bl_init in .init.text This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2498): Section mismatch in reference from the variable smartq_backlight_data to the function .init.text:smartq_bl_init() The variable smartq_backlight_data references the function __init smartq_bl_init() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit d684f640639d7be8efb7b324294830d9bcbf15f9 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:22 2010 +0100 ARM: 6350/1: s3c64xx: don't put smartq5_leds in .init.data This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2814): Section mismatch in reference from the variable smartq5_led_data to the (unknown reference) .init.data:(unknown) The variable smartq5_led_data references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 495c7b8e64811e8117eca472c6f90dccda039dc4 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:19 2010 +0100 ARM: 6348/1: s3c64xx: don't put smartq7_leds in .init.data This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2c1c): Section mismatch in reference from the variable smartq7_led_data to the (unknown reference) .init.data:(unknown) The variable smartq7_led_data references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 6720db7cc592b2148e0d88a7d76dc0532f3d266c Author: Rabin Vincent Date: Thu Sep 2 11:28:48 2010 +0100 ARM: 6354/1: nomadik-gpio: allow control of sleep mode direction and pull up DB8500v2 allows control of direction and pull up/down configuration in sleep mode, instead of switching the pin to input with pull up/down enabled. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 7e3f7e59ccc6ed8b243de9941ffd09d2ad7a5b9c Author: Rabin Vincent Date: Thu Sep 2 11:28:05 2010 +0100 ARM: 6353/1: nomadik-gpio: add SLPM register handing for DB8500v2 The SLPM register enables/disables wakeup detection on DB8500v2. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit e3726fcf263adf764a4f1b9428082837662a41c4 Author: Linus Walleij Date: Thu Aug 19 12:36:01 2010 +0100 ARM: 6336/1: U8500 PRCMU driver Add an initial driver for communicating with the Power, Reset and Clock Management Unit (PRCMU) firmware in U8500. This initial version supports AB8500 communication only. Signed-off-by: Mattias Nilsson Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 008f8a2f7ff4d63559b7ba7a6f7073efef9b1e08 Author: Hanumath Prasad Date: Thu Aug 19 12:06:32 2010 +0100 ARM: 6335/1: ux500: mop500: register eMMC devices Acked-by: Linus Walleij Signed-off-by: Hanumath Prasad Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 1c833abc1f8c056f562ccf4d57a69514d338cc35 Author: Hanumath Prasad Date: Thu Aug 19 12:06:10 2010 +0100 ARM: 6334/1: ux500: add DB8500 SD/MMC platform devices Acked-by: Linus Walleij Signed-off-by: Hanumath Prasad Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f946738ca882c365a963043de471f45e91ab0a95 Author: Linus Walleij Date: Thu Aug 19 10:27:49 2010 +0100 ARM: 6331/1: ux500 cpu/SoC version macros v2 This patch adds support for checking if the digital baseband (DB) System-on-Chip (aka "cpu) ASIC hardware version is 1.0, 1.1 or 2.0. We print the result in the bootlog, the functions are then used for runtime decisions based on hardware version. Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 5333a3de3cdd739ec4f6d501f5f6d09bab7ff919 Author: Phil Carmody Date: Thu Aug 19 15:20:37 2010 +0100 ARM: 6341/1: unwind - optimise linked-list searches for modules With several sections per module, and dozens of modules, the searches down the linked list of sections would dominate the lookup time, dwarfing any savings from the binary search within the section. A simple move-to-front optimisation exploits the commonality of the code paths taken, and in simple real-world tests reduces the number of steps in the search to barely more than 1. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 09e56a2d076c2afb2a1932ae4283e10ef2d26ef3 Author: Phil Carmody Date: Thu Aug 19 15:19:04 2010 +0100 ARM: 6340/1: module - additional unwind tables for exit/devexit sections Without these, exit functions cannot be stack-traced, so to speak. This implies that module unloads that perform allocations (don't laugh) will cause noisy warnings on the console when kmemleak is enabled, as it presumes that all code's call chains are traceable. Similarly, BUGs and WARN_ONs will give additional console spam. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit e5f7772eec3ec342ecfe686ab8330ef538af134b Author: Phil Carmody Date: Thu Aug 19 15:16:37 2010 +0100 ARM: 6339/1: module - simplify unwind table handling The various sections are all dealt with similarly, so factor out that common behaviour. (Incorporating Peter Huewe's fix.) Cc: Peter Huewe Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 5793432628ad76f93ae4d31c23fb1c26e3d8b525 Author: Phil Carmody Date: Thu Aug 19 15:10:24 2010 +0100 ARM: 6338/1: module - simplify code with temporaries Less to read. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 80be7a7f642719bf99fc49692fc77d6333f51a73 Author: Rabin Vincent Date: Tue Aug 10 19:58:17 2010 +0100 ARM: 6320/1: ftrace: enable dynamic ftrace Dynamic ftrace for ARM has been disabled since 07c4cc1cdaa08f ("ftrace: disable dynamic ftrace for all archs that use daemon"). Now that the code has been updated, re-enable it. Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 72dc43a9eb123d2742bd413c80dbeab0c588f622 Author: Rabin Vincent Date: Tue Aug 10 19:52:35 2010 +0100 ARM: 6319/1: ftrace: add Thumb-2 support to dynamic ftrace Handle the different nop and call instructions for Thumb-2. Also, we need to adjust the recorded mcount_loc addresses because they have the lsb set. Cc: Catalin Marinas Acked-by: Steven Rostedt [recordmcount.pl change] Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 3b6c223b1b97ad60bbb0f4efda57d649414ac2a2 Author: Rabin Vincent Date: Tue Aug 10 19:43:28 2010 +0100 ARM: 6318/1: ftrace: fix and update dynamic ftrace This adds mcount recording and updates dynamic ftrace for ARM to work with the new ftrace dyamic tracing implementation. It also adds support for the mcount format used by newer ARM compilers. With dynamic tracing, mcount() is implemented as a nop. Callsites are patched on startup with nops, and dynamically patched to call to the ftrace_caller() routine as needed. Acked-by: Steven Rostedt [recordmcount.pl change] Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f9810a82536e0c730c57844753e6c08cc7f77881 Author: Rabin Vincent Date: Tue Aug 10 19:39:20 2010 +0100 ARM: 6317/1: ftrace: pass KBUILD_CFLAGS to record_mcount.pl On ARM, we have two ABIs, and the ABI used is controlled via a config option. Object files built with one ABI can't be merged with object files built with the other ABI. So, record_mcount.pl needs to use the same compiler flags as the kernel when generating the object file with the mcount locations. Ensure this by passing CFLAGS to the script. Acked-by: Steven Rostedt Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit a3ba87a614992500cf2c47e6f788e74a971ce91f Author: Rabin Vincent Date: Tue Aug 10 19:37:21 2010 +0100 ARM: 6316/1: ftrace: add Thumb-2 support Fix the mcount routines to build and run on a kernel built with the Thumb-2 instruction set by correcting the following errors using the fixes suggested by Catalin Marinas: - Problem: The following assembler errors appear at the "adr r0, ftrace_stub" instruction: entry-common.S: Assembler messages: entry-common.S:179: Error: invalid immediate for address calculation (value = 0x00000004) Fix: The errors don't occur with a non-global symbol, so use one. - Problem: The "mov lr, pc" does not set the lsb when storing the pc in lr. The called function returns with "bx lr", and the mode changes to ARM. Fix: Add a label on the return address and use "adr lr, BSYM(label)". We don't modify the old mcount because it won't be built when using Thumb-2. Acked-by: Catalin Marinas Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 72fa62fa5dff0e2e06491dd99c429adb137f299b Author: Rabin Vincent Date: Tue Aug 10 19:33:52 2010 +0100 ARM: 6315/1: ftrace: add ENDPROC annotations When building as Thumb-2, the ".type foo, %function" annotation in ENDPROC seems to be required in order for the assembly routines to be recognized as Thumb-2 code. If the ENDPROC annotations are not present, calls to these routines are generated as BLX instead of BL. Acked-by: Catalin Marinas Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 09bfafac3e237415cc4b6adde49f9f28b3a42659 Author: Rabin Vincent Date: Tue Aug 10 19:32:37 2010 +0100 ARM: 6314/1: ftrace: allow build without frame pointers on ARM With a new enough GCC, ARM function tracing can be supported without the need for frame pointers. This is essential for Thumb-2 support, since frame pointers aren't available then. Acked-by: Catalin Marinas Acked-by: Steven Rostedt Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 7e9501fdecdee8151938e624b41978307cadddd2 Author: Rabin Vincent Date: Tue Aug 10 19:20:53 2010 +0100 ARM: 6312/1: ftrace: allow building without frame pointers With current gcc, compiling with both -pg and -fomit-frame-pointer is not allowed. However, -pg can be used to build without actually specifying -fno-omit-frame-pointer, upon which the default behaviour for the target will be used. On ARM, it is not possible to build a Thumb-2 kernel with -fno-omit-frame-pointer (FRAME_POINTERS depends on !THUMB2_KERNEL). In order to support ftrace for Thumb-2, we need to be able to allow a combination of FUNCTION_TRACER and !FRAME_POINTER. We do this by omitting -fomit-frame-pointer if ftrace is enabled. Acked-by: Frederic Weisbecker Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit cd64d1697cf079bb8a67766e36e88ced38498933 Author: Sean MacLennan Date: Wed Sep 1 07:21:21 2010 +0000 powerpc: mtmsrd not defined Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro. Only enable ldstfp when CONFIG_PPC_FPU is set. Signed-off-by: Sean MacLennan Signed-off-by: Benjamin Herrenschmidt commit 025c0186a0357b0bd92039a927a07860e8be4205 Author: Sean MacLennan Date: Wed Sep 1 07:21:21 2010 +0000 powerpc: Fix incorrect .stabs entry for copy_32.S Signed-off-by: Sean MacLennan Signed-off-by: Benjamin Herrenschmidt commit 0d35e1620d2882d74faed90d9ac457bf6c7a0886 Author: Matthew McClintock Date: Tue Aug 31 13:24:44 2010 +0000 powerpc/mm: Assume first cpu is boot_cpuid not 0 arch/powerpc/mm/mmu_context_nohash.c assumes the boot cpu will always have smp_processor_id() == 0. This patch fixes that assumption Signed-off-by: Matthew McClintock Signed-off-by: Benjamin Herrenschmidt commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 Author: Ian Munsie Date: Wed Aug 25 18:50:28 2010 +0000 powerpc: Wire up direct socket system calls This patch wires up the various socket system calls on PowerPC so that userspace can call them directly, rather than by going through the multiplexed socketcall system call. Signed-off-by: Ian Munsie Signed-off-by: Benjamin Herrenschmidt commit 7cf9bac559d233ff3a7fdbbdc4fc4c184abc5f59 Author: Julia Lawall Date: Tue Aug 31 05:48:58 2010 +0000 powerpc/chrp/nvram.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_type. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1,E2; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node |of_find_node_by_type |of_find_node_with_property |of_find_matching_node |of_parse_phandle )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> ( E2 = x; | of_node_put(x); ) // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 182f30e4b9f6e26d565eb432d1140a487c64fa17 Author: Julia Lawall Date: Sat Aug 28 23:52:46 2010 +0000 powerpc/cell: Add of_node_put to avoid memory leak Add calls to of_node_put in the error handling code following calls to of_find_node_by_path and of_find_node_by_phandle. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 0373721b19217c85c8c9435b79f0bac88fec9f26 Author: Julia Lawall Date: Sat Aug 28 23:52:43 2010 +0000 powerpc/powermac/pfunc_core.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_phandle. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit a8e25c61546bdc30d936bc0f4fd3a7cb594490c5 Author: Julia Lawall Date: Sat Aug 28 23:52:45 2010 +0000 powerpc/maple: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 1f7aac6eb585f92756603341cb1d770c797c4867 Author: Julia Lawall Date: Sat Aug 28 23:52:40 2010 +0000 powerpc/via-pmu-led.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 8fb07c0444c37caa39a8df7c70a694c6211f2f57 Author: Benjamin Herrenschmidt Date: Mon Aug 30 19:24:18 2010 +0000 powerpc/dart_iommu: Support for 64-bit iommu bypass window on PCIe The PCI-Express bus off the U4/CPC945 bridge supports direct DMA to all of memory, bypassing the DART iommu, for 64-bit capable devices. This adds support for it on Bimini and Apple Quad G5's in order to improve DMA performances of cards using that slot (the x16 graphics slot). Tested with an Intel ixgbe 10GE card. Signed-off-by: Benjamin Herrenschmidt commit 5b6e9ff6deb703b95fb355bb66d86096c1a2df09 Author: Benjamin Herrenschmidt Date: Mon Aug 30 19:23:52 2010 +0000 powerpc/dma: Add optional platform override of dma_set_mask() Some platforms may want to override dma_set_mask() to take into account some specific "features" such as the availability of a direct-map window in addition to an iommu. Signed-off-by: Benjamin Herrenschmidt commit cab175f9fa2973f0deb1580fca3c966fe1d3981e Author: Denis Kirjanov Date: Fri Aug 27 03:49:11 2010 +0000 powerpc: Use is_32bit_task() helper to test 32-bit binary This patch removes all explicit tests for the TIF_32BIT flag Signed-off-by: Denis Kirjanov Signed-off-by: Benjamin Herrenschmidt commit 05d77ac90c0d260ae18decd70507dc4f5b71a2cb Author: Andreas Schwab Date: Sat Aug 21 11:43:20 2010 +0000 powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} Neither lfs nor stfs touch the fpscr, so remove the restore/save of it around them. Signed-off-by: Andreas Schwab Signed-off-by: Benjamin Herrenschmidt commit 872e439a45ed4a4bd499bc55cb0dffa74027f749 Author: Paul Mackerras Date: Tue Aug 31 01:59:53 2010 +0000 powerpc/pseries: Re-enable dispatch trace log userspace interface Since the cpu accounting code uses the hypervisor dispatch trace log now when CONFIG_VIRT_CPU_ACCOUNTING = y, the previous commit disabled access to it via files in the /sys/kernel/debug/powerpc/dtl/ directory in that case. This restores those files. To do this, we now have a hook that the cpu accounting code will call as it processes each entry from the hypervisor dispatch trace log. The code in dtl.c now uses that to fill up its ring buffer, rather than having the hypervisor fill the ring buffer directly. This also fixes dtl_file_read() to handle overflow conditions a bit better and adds a spinlock to ensure that race conditions (multiple processes opening or reading the file concurrently) are handled correctly. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit cf9efce0ce3136fa076f53e53154e98455229514 Author: Paul Mackerras Date: Thu Aug 26 19:56:43 2010 +0000 powerpc: Account time using timebase rather than PURR Currently, when CONFIG_VIRT_CPU_ACCOUNTING is enabled, we use the PURR register for measuring the user and system time used by processes, as well as other related times such as hardirq and softirq times. This turns out to be quite confusing for users because it means that a program will often be measured as taking less time when run on a multi-threaded processor (SMT2 or SMT4 mode) than it does when run on a single-threaded processor (ST mode), even though the program takes longer to finish. The discrepancy is accounted for as stolen time, which is also confusing, particularly when there are no other partitions running. This changes the accounting to use the timebase instead, meaning that the reported user and system times are the actual number of real-time seconds that the program was executing on the processor thread, regardless of which SMT mode the processor is in. Thus a program will generally show greater user and system times when run on a multi-threaded processor than on a single-threaded processor. On pSeries systems on POWER5 or later processors, we measure the stolen time (time when this partition wasn't running) using the hypervisor dispatch trace log. We check for new entries in the log on every entry from user mode and on every transition from kernel process context to soft or hard IRQ context (i.e. when account_system_vtime() gets called). So that we can correctly distinguish time stolen from user time and time stolen from system time, without having to check the log on every exit to user mode, we store separate timestamps for exit to user mode and entry from user mode. On systems that have a SPURR (POWER6 and POWER7), we read the SPURR in account_system_vtime() (as before), and then apportion the SPURR ticks since the last time we read it between scaled user time and scaled system time according to the relative proportions of user time and system time over the same interval. This avoids having to read the SPURR on every kernel entry and exit. On systems that have PURR but not SPURR (i.e., POWER5), we do the same using the PURR rather than the SPURR. This disables the DTL user interface in /sys/debug/kernel/powerpc/dtl for now since it conflicts with the use of the dispatch trace log by the time accounting code. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 93c22703efa72c7527dbd586d1951c1f4a85fd70 Author: Paul Mackerras Date: Thu Aug 12 20:18:48 2010 +0000 powerpc: Dynamically allocate most lppaca structs This arranges for the lppaca structs for most cpus to be dynamically allocated in the same manner as the paca structs. If we don't include support for legacy iSeries, only the first lppaca is statically allocated; the rest are dynamically allocated. If we include legacy iSeries support, then we statically allocate the first 64 lppaca structs, since the iSeries hypervisor requires that the lppaca structs be present in the data section of the kernel image, but legacy iSeries supports at most 64 cpus. With CONFIG_NR_CPUS, the kernel image size for a typical pSeries config went from: text data bss dec hex filename 9524478 4734564 8469944 22728986 15ad11a ../test-1024/vmlinux to: text data bss dec hex filename 9524482 3751508 8469944 21745934 14bd10e ../test-1024/vmlinux a reduction of 983052 bytes overall. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 8154c5d22d91cd16bd9985b0638c8957e4688d0e Author: Paul Mackerras Date: Thu Aug 12 20:18:15 2010 +0000 powerpc: Abstract indexing of lppaca structs Currently we have the lppaca structs as a simple array of NR_CPUS entries, taking up space in the data section of the kernel image. In future we would like to allocate them dynamically, so this abstracts out the accesses to the array, making it easier to change how we locate the lppaca for a given cpu in future. Specifically, lppaca[cpu] changes to lppaca_of(cpu). Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit e1f0ece113fe028593b6869fe191a991322c5d85 Author: Michael Neuling Date: Tue Aug 10 20:02:05 2010 +0000 powerpc: Move arch_sd_sibling_asym_packing() to smp.c Simple cleanup by moving arch_sd_sibling_asym_packing from process.c to smp.c to save an #ifdef CONFIG_SMP No functionality change. Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit 28b549905b239357db7c249e261857c1716db05a Author: Anton Blanchard Date: Tue Aug 24 13:15:28 2010 +0000 powerpc: Check end of stack canary at oops time Add a check for the stack canary when we oops, similar to x86. This should make it clear that we overran our stack: Unable to handle kernel paging request for data at address 0x24652f63700ac689 Faulting instruction address: 0xc000000000063d24 Thread overran stack, or stack corrupted Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit f89451fbd2b9f28f5ff156154989599ec062354b Author: Anton Blanchard Date: Wed Aug 11 01:40:27 2010 +0000 powerpc: Feature nop out reservation clear when stcx checks address The POWER architecture does not require stcx to check that it is operating on the same address as the larx. This means it is possible for an an exception handler to execute a larx, get a reservation, decide not to do the stcx and then return back with an active reservation. If the interrupted code was in the middle of a larx/stcx sequence the stcx could incorrectly succeed. All recent POWER CPUs check the address before letting the stcx succeed so we can create a CPU feature and nop it out. As Ben suggested, we can only do this in our syscall path because there is a remote possibility some kernel code gets interrupted by an exception that ends up operating on the same cacheline. Thanks to Paul Mackerras and Derek Williams for the idea. To test this I used a very simple null syscall (actually getppid) testcase at http://ozlabs.org/~anton/junkcode/null_syscall.c I tested against 2.6.35-git10 with the following changes against the pseries_defconfig: CONFIG_VIRT_CPU_ACCOUNTING=n CONFIG_AUDIT=n CONFIG_PPC_4K_PAGES=n CONFIG_PPC_64K_PAGES=y CONFIG_FORCE_MAX_ZONEORDER=9 CONFIG_PPC_SUBPAGE_PROT=n CONFIG_FUNCTION_TRACER=n CONFIG_FUNCTION_GRAPH_TRACER=n CONFIG_IRQSOFF_TRACER=n CONFIG_STACK_TRACER=n to remove the overhead of virtual CPU accounting, syscall auditing and the ftrace mcount tracers. 64kB pages were enabled to minimise TLB misses. POWER6: +8.2% POWER7: +7.0% Another suggestion was to use a larx to something in the L1 instead of a stcx. This was almost as fast as removing the larx on POWER6, but only 3.5% faster on POWER7. We can use this to speed up the reservation clear in our exception exit code. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit 8c77391475bc3284a380fc46aaf0bcf26bde3ae6 Author: Anton Blanchard Date: Mon Aug 2 20:11:36 2010 +0000 powerpc: Add 64bit csum_and_copy_to_user This adds the equivalent of csum_and_copy_from_user for the receive side so we can copy and checksum in one pass. It is modelled on the generic checksum routine. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit fdd374b62ca4df144c0138359dcffa83df7a0ea8 Author: Anton Blanchard Date: Mon Aug 2 20:09:52 2010 +0000 powerpc: Optimise 64bit csum_partial_copy_generic and add csum_and_copy_from_user We use the same core loop as the new csum_partial, adding in the stores and exception handling code. To keep things simple we do all the exception fixup in csum_and_copy_from_user. This wrapper function is modelled on the generic checksum code and is careful to always calculate a complete checksum even if we only copied part of the data to userspace. To test this I forced checksumming on over loopback and ran socklib (a simple TCP benchmark). On a POWER6 575 throughput improved by 19% with this patch. If I forced both the sender and receiver onto the same cpu (with the hope of shifting the benchmark from being cache bandwidth limited to cpu limited), adding this patch improved performance by 55% Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit 9b83ecb0a3cf1bf7ecf84359ddcfb9dd49646bf2 Author: Anton Blanchard Date: Mon Aug 2 20:08:34 2010 +0000 powerpc: Optimise 64bit csum_partial The main loop of csum_partial runs very slowly on recent POWER CPUs. After some analysis on both POWER6 and POWER7 I came up with routine below. First we get the source aligned to a double word, ignoring any odd alignment to keep things simple. Then we do 64 bytes at a time, with an entry and exit limb of a further 64 bytes. On both POWER6 and POWER7 this should be as fast as we can go since we are limited by the latency of the adde instructions. To test this I forced checksumming on over loopback and ran socklib (a simple TCP benchmark). On a POWER6 575 throughput improved by 11% with this patch. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit 3e502e63586920f219ed2590f69c1f5a8888cfa4 Author: David S. Miller Date: Wed Sep 1 18:35:59 2010 -0700 starfire: Temporary kludge to fix powerpc build. Add a dma_addr_t 64-bit case for powerpc with 64-bit phys addresses. Reported-by: Stephen Rothwell Signed-off-by: David S. Miller commit 0705c6f0e2d39333645bf77cf1efb94526ff1f82 Author: Gerrit Renker Date: Wed Sep 1 00:28:35 2010 +0000 tcp: update also tcp_output with regard to RFC 5681 Thanks to Ilpo Jarvinen, this updates also the initial window setting for tcp_output with regard to RFC 5681. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit fa50d6457691d5c2d8a3430abf950435ef129cf1 Author: stephen hemminger Date: Tue Aug 31 12:14:13 2010 +0000 net: make rx_queue sysfs_ops const Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 6267300e979e0fa912d871c7727c168bf3dbb37a Author: Huang Weiyi Date: Mon Aug 30 13:06:20 2010 +0000 pxa168_eth: remove duplicated #include Remove duplicated #include('s) in drivers/net/pxa168_eth.c Signed-off-by: Huang Weiyi Signed-off-by: David S. Miller commit 85f72bc839705294b32b6c16b491c0422f0a71b3 Author: John W. Linville Date: Wed Sep 1 16:12:28 2010 -0400 mac80211: only cancel software-based scans on suspend Otherwise the hardware scan handler could access an invalid scan request structure. The driver should cancel any pending hardware scans during the suspend process anyway, so also add a warning if the hardware scan is still pending when the device resumes. Signed-off-by: John W. Linville commit 6602cebb5bcac1fccf2850541f8bf9fcc8c86dee Author: Eric Dumazet Date: Wed Sep 1 05:25:10 2010 +0000 net: skbuff.c cleanup (skb->data - skb->head) can be changed by skb_headroom(skb) Remove some uses of NET_SKBUFF_DATA_USES_OFFSET, using (skb_end_pointer(skb) - skb->head) or (skb_tail_pointer(skb) - skb->head) : compiler does the right thing, and this is more readable for us ;) (struct skb_shared_info *) casts in pskb_expand_head() to help memcpy() to use aligned moves. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 86cac58b71227cc34a3d0e78f19585c0eff49ea3 Author: Eric Dumazet Date: Tue Aug 31 18:25:32 2010 +0000 skge: add GRO support - napi_gro_flush() is exported from net/core/dev.c, to avoid an irq_save/irq_restore in the packet receive path. - use napi_gro_receive() instead of netif_receive_skb() - use napi_gro_flush() before calling __napi_complete() - turn on NETIF_F_GRO by default - Tested on a Marvell 88E8001 Gigabit NIC Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit aed5029ead26fe47527d9e9f2052cf56b72543f0 Author: Julia Lawall Date: Tue Aug 31 07:44:00 2010 +0000 drivers/net/can/mscan/mpc5xxx_can.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_matching_node. This patch also moves the existing call to of_node_put after the call to iounmap in the error handling code, to make it possible to jump to of_node_put without doing iounmap. These appear to be disjoint operations, so the ordering doesn't matter. This patch furthermore changes the -ENODEV result in the error handling code for of_find_matching_node to a return of 0, as found in the error handling code for of_iomap, because the return type of the function is unsigned. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1,E2; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node |of_find_node_by_type |of_find_node_with_property |of_find_matching_node |of_parse_phandle )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> ( E2 = x; | of_node_put(x); ) // Signed-off-by: Julia Lawall Reviewed-by: Wolfram Sang Acked-by: Wolfgang Grandegger Signed-off-by: David S. Miller commit 1a9f28c8f94659a70f34f0f2ab12371c0745518d Author: Denis Kirjanov Date: Mon Aug 30 21:19:15 2010 +0000 ns83820: Use helper to disable chip interrupts Use helper routine to disable chip interrupts. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller commit 875168a9330d3aa6481ce62ce8fa77c7be0c75fb Author: Eric Dumazet Date: Mon Aug 30 11:07:25 2010 +0000 net: tunnels should use rcu_dereference tunnel4_handlers, tunnel64_handlers, tunnel6_handlers and tunnel46_handlers are protected by RCU, but we dont use appropriate rcu primitives to scan them. rcu_lock() is already held by caller. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 064270132602c6e11482439e0e257f208cae79c0 Author: Yaniv Rosner Date: Wed Sep 1 09:51:37 2010 +0000 bnx2x: Update version to 1.52.53-5 Update version to 1.52.53-5 Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 9a8a97e88ea893522779aecbc0ff3d7361f49c12 Author: Yaniv Rosner Date: Wed Sep 1 09:51:35 2010 +0000 bnx2x: Add BCM84823 to the supported PHYs Add BCM84823 to the supported PHYs Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit a1e4be39dc5a8d83102b835a3ee049f2a6057be9 Author: Yaniv Rosner Date: Wed Sep 1 09:51:33 2010 +0000 bnx2x: Change BCM848xx LED configuration Change 848xx LED configuration according to the new microcode (Boards were shipped with only with the new microcode) Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 6f4ca066bc08877647aff2a7d68e36d14d06cb16 Author: Yaniv Rosner Date: Wed Sep 1 09:51:30 2010 +0000 bnx2x: Remove unneeded setting of XAUI low power to BCM8727 Remove unneeded setting of XAUI low power to BCM8727. This was required only in older microcode which is not in the field. Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit ac4d944910d4d4e9cc520f304f2fa2eb54e9677c Author: Yaniv Rosner Date: Wed Sep 1 09:51:25 2010 +0000 bnx2x: Change BCM848xx configuration according to IEEE Change BCM848xx behavior to fit IEEE such that setting 10Mb/100Mb will use force speed, and setting 1Gb/10Gb will use auto-negotiation with the specific speed advertised Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 54c2fb785965a666a3e79dda16896801dfcf34e9 Author: Yaniv Rosner Date: Wed Sep 1 09:51:23 2010 +0000 bnx2x: Reset link before any new link settings Reset link before any new link settings to avoid potential link issue caused by previous link settings Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit eb80ce740a7e1deda5bedb9b5df876ce84ac5bc2 Author: Yaniv Rosner Date: Wed Sep 1 09:51:20 2010 +0000 bnx2x: Fix potential link issue In BCM8727 based boards In BCM8727 based boards, setting default 10G link speed after link was set to 1G may lead to link down issue. The problem was setting the right value, but to the wrong registers Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit 8ca60a68a9fd61b4cf31b48d9c365b07e5588bbe Author: Yaniv Rosner Date: Wed Sep 1 09:51:17 2010 +0000 bnx2x: Fix potential link issue of BCM8073/BCM8727 Fix potential link issue caused by insufficient delay time during SPIROM load of BCM8073/BCM8727 Signed-off-by: Yaniv Rosner Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit d807b3f728518d218fb2fe54c1227bc6d6f93efd Author: Amit Kumar Salecha Date: Tue Aug 31 17:17:53 2010 +0000 qlcnic: add cksum flag o New CKSUM flag added by fw to notify cksum is verified. o Update version to 5.0.9 Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 03c5d770c24cd673d105fbf1a9706ae838272091 Author: Amit Kumar Salecha Date: Tue Aug 31 17:17:52 2010 +0000 qlcnic: mac vlan learning support Hypervisor allows, two VM's interfaces to have same mac address. These VM's interfaces get differentiate with Vlan tag. This patch add support to learn and configure mac+vlan filter on device. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit b5e5492c0d49e2fd6f51961d03b8533435e5e7f5 Author: Amit Kumar Salecha Date: Tue Aug 31 17:17:51 2010 +0000 qlcnic: support mac learning Device eswitch need to configure with VM's mac address. Hypervisor doesn't provide any utility/callbacks to get VM's mac address. Unicast mac address filter improves performance and also provide packet loopback capability i.e communication between VM. Above features is by default off, can be turned on with module parameter 'mac_learn'. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 7373373d100e5aebe751af0b2609a9a01dad5ac1 Author: Rajesh Borundia Date: Tue Aug 31 17:17:50 2010 +0000 qlcnic: fix mac override capability o Rename mac_learning to mac_override o Added check in set_mac to return error if mac override is disabled. o Disabling mac_override only supported for Non priviledged functions. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit dcb50afff747d15fc2ffff762c08c325e4c229e5 Author: Rajesh Borundia Date: Tue Aug 31 17:17:49 2010 +0000 qlcnic: fix panic while using eth_hdr o skb->mac_header is not set, so machine panics while using function eth_hdr. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 7613c87b2d805acf7c882935d47aa84d1947656f Author: Rajesh Borundia Date: Tue Aug 31 17:17:48 2010 +0000 qlcnic: fix mac anti spoof policy o Allow enabling/disabling mac anti spoof policy only for Non privilege functions. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 174240a8efc441f01f2909ee167c0c15099c0212 Author: Rajesh Borundia Date: Tue Aug 31 17:17:47 2010 +0000 qlcnic: fix for setting default eswitch config o Default eswitch config was set, even before eswitch capabilty get detected. As a result setting default config was getting fail. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit da48e6c362d24d324f36a780d8566109e5f5a1d7 Author: Rajesh Borundia Date: Tue Aug 31 17:17:46 2010 +0000 qlcnic: fix mac addr read o Mac addr was read from flash for every fw reset for Non-priviledge function.It should be read only once. o Remove unnecessary get_mac_addr callback Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 2cffcdbf7670980d4d74e2daea8a6cc0729902b8 Author: Rajesh Borundia Date: Tue Aug 31 17:17:45 2010 +0000 qlcnic: add api version in reg dump o ethtool reg version bumped to 2 Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 4e70812b3dc32c76fa2fa3aa2c8221eaac87cd6f Author: Sony Chacko Date: Tue Aug 31 17:17:44 2010 +0000 qlcnic: backout firmware initialization update o Backing out "firmware initialization update" changes, commit-id "d4066833bb1b35fefb1dd45eb2b10659d46bf151". o fix heartbit spelling, it should be heartbeat Signed-off-by: Sony Chacko Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit f6195aa09e618d712f52bf4fa33b5293820eb93d Author: Steven Rostedt Date: Wed Sep 1 12:23:12 2010 -0400 ring-buffer: Place duplicate expression into a single function While discussing the strictness of the 80 character limit on the Kernel Summit Discussion mailing list, I showed examples that I broke that limit slightly with some algorithms. In discussing with John Linville, what looked better, I realized that two of the 80 char breaking culprits were an identical expression. As a clean up, this patch moves the identical expression into its own helper function and that is used instead. As a side effect, the offending code is now under the 80 character limit. :-) This clean up code also changes the expression from (A - B) - C to A - (B + C) This makes the code look a little nicer too. Cc: John W. Linville Signed-off-by: Steven Rostedt commit c9cf4a019cff198ee5638323e3b0ee18886467e8 Author: Cyrill Gorcunov Date: Wed Aug 25 22:23:34 2010 +0400 perf, x86, Pentium4: Add RAW events verification Implements verification of - Bits of ESCR EventMask field (meaningful bits in field are hardware predefined and others bits should be set to zero) - INSTR_COMPLETED event (it is available on predefined cpu model only) - Thread shared events (they should be guarded by "perf_event_paranoid" sysctl due to security reason). The side effect of this action is that PERF_COUNT_HW_BUS_CYCLES become a "paranoid" general event. Signed-off-by: Cyrill Gorcunov Tested-by: Lin Ming Cc: Frederic Weisbecker Cc: Peter Zijlstra LKML-Reference: <20100825182334.GB14874@lenovo> Signed-off-by: Ingo Molnar commit 14416c35b6b9975c9593d7ecc8382d1ecaa0b598 Author: Akinobu Mita Date: Tue Aug 31 23:00:09 2010 -0400 lockup_detector: Remove unused panic_notifier The panic notifer in lockup_detector just set did_panic to 1. But did_panic is not used anywhere so we can just remove it. Signed-off-by: Akinobu Mita Cc: peterz@infradead.org Cc: gorcunov@gmail.com Cc: fweisbec@gmail.com LKML-Reference: <1283310009-22168-4-git-send-email-dzickus@redhat.com> Signed-off-by: Don Zickus Signed-off-by: Ingo Molnar commit eac243355a99d6b9d41bbeba4fc83e7f735485f9 Author: Akinobu Mita Date: Tue Aug 31 23:00:08 2010 -0400 lockup_detector: Convert cpu notifier to return encapsulate errno value By the commit e6bde73b07edeb703d4c89c1daabc09c303de11f ("cpu-hotplug: return better errno on cpu hotplug failure"), the cpu notifier can return encapsulate errno value, resulting in more meaningful error codes for CPU hotplug failures. This converts the cpu notifier to return encapsulate errno value for the lockup_detector as well. Signed-off-by: Akinobu Mita Cc: peterz@infradead.org Cc: gorcunov@gmail.com Cc: fweisbec@gmail.com LKML-Reference: <1283310009-22168-3-git-send-email-dzickus@redhat.com> Signed-off-by: Don Zickus Signed-off-by: Ingo Molnar commit 74af4c7df35e6811eb3c50e398abafa5b3cabb75 Author: David S. Miller Date: Tue Aug 31 20:56:48 2010 -0700 stmmac: Fix another build warning. drivers/net/stmmac/dwmac100_core.c: In function 'dwmac100_dump_mac_regs': drivers/net/stmmac/dwmac100_core.c:47: warning: cast from pointer to integer of different size Reported-by: Stephen Rothwell Signed-off-by: David S. Miller commit 1639ab6f7831f056286c64d98e8e5eb04e3bacac Author: Eric Dumazet Date: Tue Aug 31 10:23:47 2010 +0000 gro: unexport tcp4_gro_receive and tcp4_gro_complete tcp4_gro_receive() and tcp4_gro_complete() dont need to be exported. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 4dc89133f49b8cfd77ba7e83f5960aed63aaa99e Author: Eric Dumazet Date: Tue Aug 31 07:40:16 2010 +0000 net: add a comment on netdev->last_rx As some driver authors seem to reintroduce dev->last_rx use, add a comment to strongly discourage this. Since commit 6cf3f41e6c0 (bonding, net: Move last_rx update into bonding recv logic), network drivers dont need to update last_rx themselves, unless they use this field to implement a timeout. Not updating last_rx helps not dirtying a cache line, improving performance in SMP. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit ba4fd9d8282f7f856f2287fe8be784d1dfdda28b Author: Eric Dumazet Date: Tue Aug 31 01:57:35 2010 +0000 pktgen: remove non used variable remove non used variable "queue" in pg_cleanup Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 72ed62f7c9f0abe11231d073195a722ee43d6ec1 Author: Jiri Pirko Date: Tue Aug 31 04:58:18 2010 +0000 vlan: Use vlan_dev_real_dev in vlan_hwaccel_do_receive [patch net-next-2.6] vlan: Use vlan_dev_real_dev in vlan_hwaccel_do_receive Use helper as in other places. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 46b93b74fc022885ab69dfc8e2af0562dd626638 Author: Steven Rostedt Date: Tue Aug 31 16:35:20 2010 -0400 tracing/lockdep: Fix dependency of TRACE_IRQFLAGS When CONFIG_IRQSOFF_TRACER is set and CONFIG_PROVE_LOCKING is not, we get the following error: $ make oldconfig scripts/kconfig/conf --oldconfig arch/x86/Kconfig warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING) warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING) This is because IRQSOFF_TRACER selects TRACE_IRQFLAGS but TRACE_IRQFLAGS has PROVE_LOCKING as a dependency. This code is incorrect, and this patch changes the TRACE_IRQFLAGS to be just a simple bool that does not depend or select anything. Instead both IRQSOFF_TRACER and PROVE_LOCKING select it. Reported-by: Richard Kennedy Signed-off-by: Steven Rostedt commit 01b38606bded44bf8b7ca42e8fe5f2cad5d28121 Author: RĂ©mi Denis-Courmont Date: Mon Aug 30 12:57:05 2010 +0000 Phonet: do not set POLLOUT in case of send buffer overflow Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 02ac3268a581639af241c254579160909373e12c Author: RĂ©mi Denis-Courmont Date: Mon Aug 30 12:57:04 2010 +0000 Phonet: correct sendmsg() error code from sock_alloc_send_skb() Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 1a98214feef2221cd7c24b17cd688a5a9d85b2ea Author: RĂ©mi Denis-Courmont Date: Mon Aug 30 12:57:03 2010 +0000 Phonet: restore flow control credits when sending fails Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: David S. Miller commit 18145c69349f2ab60c470798f83b3a2639e2a8d9 Author: John W. Linville Date: Mon Aug 30 15:12:02 2010 -0400 mac80211: cancel scan in ieee80211_restart_hw if software scan pending This function exists to clean-up after a hardware error or something similar. The restart is accomplished using the same infrastructure used to resume after a suspend. The suspend path cancels running scans, so it seems appropriate to do that here as well for software-based scans. If a hardware-based scan is pending, issue a warning message since this indicates that the drivers has failed to clean-up after itself. Signed-off-by: John W. Linville commit cd35a3912188d006f251fff1028d84e1d1649ca2 Author: Ivo van Doorn Date: Mon Aug 30 21:15:51 2010 +0200 rt2x00: Cleanup rt2x00usb_watchdog_reset_tx rt2x00usb_watchdog_reset_tx performs the same task as rt2x00usb_kill_tx_queue, with the only difference is that it waits for all entries to be returned to the driver and for all frames the status has been reported to mac80211. We can easily split this task by calling rt2x00usb_kill_tx_queue, sleep for a short period and invoke the TX status reporting function. By adding the sleep() to the kill_entry we make sure that even during shutdown we guarentee the entry has been killed when the function returns. To make this work correctly the interrupt handlers have to be updated to prevent checking for the RADIO_ENABLED flag too early which prevents the ownership of the entry to be reset. Additionally a check for the DEVICE_PRESENT flag is not required but is nice to prevent race conditions when the device was unplugged. Additionally rather then calling rt2x00usb_work_txdone() for status reporting we let the driver perform the TX status reporting first. If this is not sufficient then rt2x00usb_work_txdone() will still be used to cleanup the mess. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 652a9dd2a0c07251e328519cc23f1316ab13ed51 Author: Ivo van Doorn Date: Mon Aug 30 21:15:19 2010 +0200 rt2x00: Split watchdog check into a DMA and STATUS timeout The watchdog for rt2800usb triggers frequently causing all URB's to be canceled often enough to interrupt the normal TX flow. More research indicated that not the URB upload to the USB host were hanging, but instead the TX status reports. To correctly detect what is going on, we introduce Q_INDEX_DMA_DONE which is an index counter between Q_INDEX_DONE and Q_INDEX and indicates if the frame has been transfered to the device. This also requires the rt2x00queue timeout functions to be updated to differentiate between a DMA timeout (time between Q_INDEX and Q_INDEX_DMA_DONE timeout) and a STATUS timeout (time between Q_INDEX_DMA_DONE and Q_INDEX_DONE timeout) All Q_INDEX_DMA_DONE code was taken from the RFC from Helmut Schaa for the implementation for watchdog for rt2800pci. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 0e3afe5b20c4ccdeff5178c62b557a917945a828 Author: Ivo van Doorn Date: Mon Aug 30 21:14:56 2010 +0200 rt2x00: Correctly kill beacon queue USB devices upload their beacon and then automatically send it out every beacon interval. However when killing a TX queue we only kill the URB and not the actual transmission of the beacon. This will reset the Beacon register to prevent any beacons from being transmitted. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit e0540879db337b18ef7c580234038ff62c8cd381 Author: Ivo van Doorn Date: Mon Aug 30 21:14:38 2010 +0200 rt2x00: Set PWR_PIN_CFG during initialization Add PWR_PIN_CFG initialization for rt2800usb at the same point as rt2800pci. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit c600c826a6f4e35512955a5e9a22b0baa741b455 Author: Ivo van Doorn Date: Mon Aug 30 21:14:15 2010 +0200 rt2x00: Don't set unicast/BSSID masks when clearning MAC or BSSID When configuring the MAC_ADDR or MAC_BSSID with an empty address, the UNICAST_TO_ME_MASK and BSS_ID_MASK must also be reset to prevent invalid interpretation of the addresses. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit b9eca24209a59ef0a8c3cbbbb94b8c76d4b3aae3 Author: Ivo van Doorn Date: Mon Aug 30 21:13:54 2010 +0200 rt2x00: Wakeup hardware before loading firmware According to the legacy drivers the AUTOWAKEUP_CFG register must be reset to 0 before loading the firmware. Instead of during rt2800{pci,usb}_write_firmware it must actually be done in rt2800_load_firmware() before resetting the WPDMA_GLO_CFG and PWR_PIN_CFG registers. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 3613884d96b186f58a77af05122f84167604aad9 Author: Ivo van Doorn Date: Mon Aug 30 21:13:30 2010 +0200 rt2x00: Validate TX status results with current data entry Instead of printing a warning when the PID, ACK, or WCID of an entry don't match the TX status report, we should skip the entry to search for the entry which actually does match the TX status data. This reduces the number of watchdog errors on the TX queues for rt2800usb, and seems to improve the reliability of the TX flow a bit. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5ffddc498c700bb45ea55efc37746cb28d601766 Author: Ivo van Doorn Date: Mon Aug 30 21:13:08 2010 +0200 rt2x00: Add rt2800_wait_csr_ready Similar to rt2800_wait_wpdma_ready() we can add a function to waiting until the CSR is ready. This centralizes some additional code into rt2800lib. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 2035c0cf8f637e88cdd338c15570a7ad42afc552 Author: Helmut Schaa Date: Mon Aug 30 21:12:47 2010 +0200 rt2x00: Update rt2800 comments regarding AMPDU and PACKET_ID in TXWI Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit a908a743822d2eed2d8394bb607bb9db5934dcfc Author: Helmut Schaa Date: Mon Aug 30 21:12:24 2010 +0200 rt2x00: Rename txentry_desc.queue -> txentry_desc.qid Variables containing queue ids are called qid everywhere else, hence rename the queue field in txentry_desc to qid as well. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 56363ddeeed3afc5277ca227209773bc1042cc7b Author: Felix Fietkau Date: Sat Aug 28 18:21:21 2010 +0200 ath9k: fix spurious MIC failure reports According to the hardware documentation, the MIC failure bit is only valid if the frame was decrypted using a valid TKIP key and is not a fragment. In some setups I've seen hardware-reported MIC failures on an AP that was configured for CCMP only, so it's clear that additional checks are necessary. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 3653910714a4a9b19aadb202c24f7b1ae61d3556 Author: Julia Lawall Date: Sat Aug 28 17:41:06 2010 +0200 net/wireless: Remove double test The same expression is tested twice and the result is the same each time. The sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @expression@ expression E; @@ ( * E || ... || E | * E && ... && E ) // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 9df86e2e702c6d5547aced7f241addd2d698bb11 Author: Denis 'GNUtoo' Carikli Date: Fri Aug 27 23:48:19 2010 +0200 wl1251: Fix queue stopping/waking for TX path This patch was adapted from 06f7bc7db79fabe6b2ec16eff0f59e4acc21eb72 (from linus's linux-2.6 tree of kernel.org) here's the original message: The queue stopping/waking functionality was broken in a way that could cause huge latencies in TX transfers and even cause the TX to stall in the right circumstances. Correct these problems. Signed-off-by: Denis 'GNUtoo' Carikli Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 391a200a89bf85bd38f117f34898c24299e3d53d Author: Jouni Malinen Date: Fri Aug 27 22:22:00 2010 +0300 mac80211: Do not generate CQM events based on first Beacon frames The signal strength value in a single RX frame is not that reliable, so it is better to delay start of CQM events until there is a real average signal strength from more than a single Beacon frame available. Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 3ba06c6fbd651ed3377e584026d1c112b492cc8b Author: Jouni Malinen Date: Fri Aug 27 22:21:13 2010 +0300 mac80211: Fix signal strength average initialization for CQM events The ave_beacon_signal value uses 1/16 dB unit and as such, must be initialized with the signal level of the first Beacon frame multiplied by 16. This fixes an issue where the initial CQM events are reported incorrectly with a burst of events while the running average approaches the correct value after the incorrect initialization. This could cause user space -based roaming decision process to get quite confused at the moment when we would like to go through authentication and DHCP. Cc: stable@kernel.org Signed-off-by: Jouni Malinen Signed-off-by: John W. Linville commit 486699532e43460234cbebc19cbebd2755b67da3 Merge: 5b714c6 d0fe478 Author: John W. Linville Date: Tue Aug 31 14:12:19 2010 -0400 Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 commit 4cbe75be5c6ae86bdc7daec864eeb2dfd66f48bb Author: Robert Richter Date: Mon Aug 30 18:21:55 2010 +0200 oprofile, arm: initialize perf_event pointers with NULL The pointers must be NULL'ed to avoid double-freeing the pointers in rare cases during reinitialization. Signed-off-by: Robert Richter commit c7fd239a647ead1c336a051012d6bb96465ea8c6 Author: Will Deacon Date: Sun Aug 29 14:52:00 2010 -0400 ARM: oprofile: fix and simplify init/exit functions Now that oprofile_arch_exit is only called when the OProfile module is unloaded, it can assume that init completed successfully and not have to worry about double frees or releasing NULL perf events. This patch ensures that oprofile_arch_init fails gracefully on ARM and simplifies the exit code based on the above. Cc: Robert Richter Cc: Matt Fleming Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Will Deacon Signed-off-by: Robert Richter commit 979048e1f26190d16b5aea87166177f37e614439 Author: Will Deacon Date: Sun Aug 29 14:51:59 2010 -0400 oprofile: don't call arch exit code from init code on failure oprofile_init calls oprofile_arch_init to initialise the architecture-specific backend code. If this backend code returns failure, oprofile_arch_exit is called immediately, making it difficult to allocate and free resources correctly. This patch removes the oprofile_arch_exit call from oprofile_init, meaning that all architectures must ensure that oprofile_arch_init cleans up any mess it's made before returning an error. As far as I can tell, this only affects the code for ARM. Cc: Robert Richter Cc: Matt Fleming Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Will Deacon Signed-off-by: Robert Richter commit daab7fc734a53fdeaf844b7c03053118ad1769da Merge: 774ea0b 2bfc96a Author: Ingo Molnar Date: Tue Aug 31 09:45:21 2010 +0200 Merge commit 'v2.6.36-rc3' into x86/memblock Conflicts: arch/x86/kernel/trampoline.c mm/memblock.c Merge reason: Resolve the conflicts, update to latest upstream. Signed-off-by: Ingo Molnar commit 7ac41ccf47d82569d26f34beab1dec92cc3b6347 Author: Konrad Rzeszutek Wilk Date: Mon Aug 30 14:10:02 2010 -0400 x86, iommu: Fix IOMMU_INIT alignment rules This boot crash was observed: DMA-API: preallocated 32768 debug entries DMA-API: debugging enabled by kernel config BUG: unable to handle kernel paging request at 19da8955 IP: [] 0xf4ffffff *pde = 00000000 The crux of the failure was that even if we did not use any of the .iommu_table section, the linker would still insert it in the vmlinux file. This patch fixes that and also fixes the runtime crash where we would try to access the array. Reported-by: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk Cc: Joerg Roedel Cc: FUJITA Tomonori LKML-Reference: <1283191802-25086-1-git-send-email-konrad.wilk@oracle.com> Signed-off-by: Ingo Molnar commit 1f0f63885658889b3bcb8a08fbcb9532f8e536c9 Author: David S. Miller Date: Mon Aug 30 21:55:17 2010 -0700 stmmac: Fix build warnings. In file included from drivers/net/stmmac/stmmac_ethtool.c:30: drivers/net/stmmac/stmmac.h:111: warning: 'struct platform_device' declared inside parameter list drivers/net/stmmac/stmmac.h:111: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/stmmac/stmmac_main.c: In function 'stmmac_dvr_probe': drivers/net/stmmac/stmmac_main.c:1744: warning: cast from pointer to integer of different size In file included from drivers/net/stmmac/stmmac_mdio.c:31: drivers/net/stmmac/stmmac.h:111: warning: 'struct platform_device' declared inside parameter list drivers/net/stmmac/stmmac.h:111: warning: its scope is only this definition or declaration, which is probably not what you want drivers/net/stmmac/dwmac1000_core.c: In function 'dwmac1000_dump_regs': drivers/net/stmmac/dwmac1000_core.c:56: warning: cast from pointer to integer of different size Reported-by: Stephen Rothwell Signed-off-by: David S. Miller commit 3ff2cfa55fb35bb5ea4490fbc82bb3c6771c121b Author: Eric Dumazet Date: Mon Aug 30 10:27:10 2010 +0000 ipv6: struct xfrm6_tunnel in read_mostly section tunnel6_handlers chain being scanned for each incoming packet, make sure it doesnt share an often dirtied cache line. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6dcd814bd08bc7989f7f3eac9bbe8b20aec0182a Author: Eric Dumazet Date: Mon Aug 30 07:04:14 2010 +0000 net: struct xfrm_tunnel in read_mostly section tunnel4_handlers chain being scanned for each incoming packet, make sure it doesnt share an often dirtied cache line. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit c274f29120eff7852bb2370ae6f05f46de75edbc Author: Geert Uytterhoeven Date: Sun Aug 29 21:43:46 2010 +0000 net/m68k: Hydra Ethernet - print whole resource instead of start address resource_size_t changed from `unsigned long' to `phys_addr_t`, which is either `u32' or `u64'. Print the whole resource to remove the cast and to make it future-proof. Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller commit 3d5b99ae82f8742e3bb1f8634fd11ac36ea19ee1 Author: Gerrit Renker Date: Sun Aug 29 19:27:34 2010 +0000 TCP: update initial windows according to RFC 5681 This updates the use of larger initial windows, as originally specified in RFC 3390, to use the newer IW values specified in RFC 5681, section 3.1. The changes made in RFC 5681 are: a) the setting now is more clearly specified in units of segments (as the comments by John Heffner emphasized, this was not very clear in RFC 3390); b) for connections with 1095 < SMSS <= 2190 there is now a change: - RFC 3390 says that IW <= 4380, - RFC 5681 says that IW = 3 * SMSS <= 6570. Since RFC 3390 is older and "only" proposed standard, whereas the newer RFC 5681 is already draft standard, it seems preferable to use the newer IW variant. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 89858ad14307a398961a0f1414b04053c1475e4f Author: Gerrit Renker Date: Sun Aug 29 19:23:14 2010 +0000 dccp ccid-3: use per-route RTO or TCP RTO as fallback This makes RTAX_RTO_MIN also available to CCID-3, replacing the compile-time RTO lower bound with a per-route tunable value. The original Kconfig option solved the problem that a very low RTT (in the order of HZ) can trigger too frequent and unnecessary reductions of the sending rate. This tunable does not affect the initial RTO value of 2 seconds specified in RFC 5348, section 4.2 and Appendix B. But like the hardcoded Kconfig value, it allows to adapt to network conditions. The same effect as the original Kconfig option of 100ms is now achieved by > ip route replace to unicast 192.168.0.0/24 rto_min 100j dev eth0 (assuming HZ=1000). Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 4886fcad6e12572afbd230dfab1b268eace20d6d Author: Gerrit Renker Date: Sun Aug 29 19:23:13 2010 +0000 dccp ccid-2: Share TCP's minimum RTO code Using a fixed RTO_MIN of 0.2 seconds was found to cause problems for CCID-2 over 802.11g: at least once per session there was a spurious timeout. It helped to then increase the the value of RTO_MIN over this link. Since the problem is the same as in TCP, this patch makes the solution from commit "05bb1fad1cde025a864a90cfeb98dcbefe78a44a" "[TCP]: Allow minimum RTO to be configurable via routing metrics." available to DCCP. This avoids reinventing the wheel, so that e.g. the following works in the expected way now also for CCID-2: > ip route change 10.0.0.2 rto_min 800 dev ath0 Luckily this useful rto_min function was recently moved to net/tcp.h, which simplifies sharing code originating from TCP. Documentation also updated (plus minor whitespace fixes). Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 22b71c8f4f3db8df92f5e7b081c265bc56c0bd2f Author: Gerrit Renker Date: Sun Aug 29 19:23:12 2010 +0000 tcp/dccp: Consolidate common code for RFC 3390 conversion This patch consolidates initial-window code common to TCP and CCID-2: * TCP uses RFC 3390 in a packet-oriented manner (tcp_input.c) and * CCID-2 uses RFC 3390 in packet-oriented manner (RFC 4341). Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit d26eeb07fd02de31848b59d19687daff0e93532f Author: Gerrit Renker Date: Sun Aug 29 19:23:11 2010 +0000 dccp ccid-2: Remove wrappers around sk_{reset,stop}_timer() This removes the wrappers around the sk timer functions, since not much is gained from using them: the BUG_ON in start_rto_timer will never trigger since that function is called only if: * the RTO timer expires (rto_expire, and then timer_pending() is false); * in tx_packet_sent only if !timer_pending() (BUG_ON is redundant here); * previously in new_ack, after stopping the timer (timer_pending() false). Removing the wrappers also clears the way for eventually replacing the RTO timer with the icsk-retransmission-timer, as it is already part of the DCCP socket. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit d82b6f85c1d73340ef4a26bd0b247ac14610cd83 Author: Gerrit Renker Date: Sun Aug 29 19:23:10 2010 +0000 dccp ccid-2: Use u32 timestamps uniformly Since CCID-2 is de facto a mini implementation of TCP, it makes sense to share as much code as possible. Hence this patch aligns CCID-2 timestamping with TCP timestamping. This also halves the space consumption (on 64-bit systems). The necessary include file is already included by way of net/dccp.h. Redundant includes have been removed. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit dca43c75e7e545694a9dd6288553f55c53e2a3a3 Author: Jerry Chu Date: Fri Aug 27 19:13:28 2010 +0000 tcp: Add TCP_USER_TIMEOUT socket option. This patch provides a "user timeout" support as described in RFC793. The socket option is also needed for the the local half of RFC5482 "TCP User Timeout Option". TCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int, when > 0, to specify the maximum amount of time in ms that transmitted data may remain unacknowledged before TCP will forcefully close the corresponding connection and return ETIMEDOUT to the application. If 0 is given, TCP will continue to use the system default. Increasing the user timeouts allows a TCP connection to survive extended periods without end-to-end connectivity. Decreasing the user timeouts allows applications to "fail fast" if so desired. Otherwise it may take upto 20 minutes with the current system defaults in a normal WAN environment. The socket option can be made during any state of a TCP connection, but is only effective during the synchronized states of a connection (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, or LAST-ACK). Moreover, when used with the TCP keepalive (SO_KEEPALIVE) option, TCP_USER_TIMEOUT will overtake keepalive to determine when to close a connection due to keepalive failure. The option does not change in anyway when TCP retransmits a packet, nor when a keepalive probe will be sent. This option, like many others, will be inherited by an acceptor from its listener. Signed-off-by: H.K. Jerry Chu Signed-off-by: David S. Miller commit 9fbaf49c7f717740002d49eee1bbd03d89d8766a Author: Julia Lawall Date: Sat Aug 28 17:41:03 2010 +0200 x86, kmemcheck: Remove double test The opcodes 0x2e and 0x3e are tested for in the first Group 2 line as well. The sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @expression@ expression E; @@ ( * E || ... || E | * E && ... && E ) // Signed-off-by: Julia Lawall Reviewed-by: Pekka Enberg Cc: Vegard Nossum LKML-Reference: <1283010066-20935-5-git-send-email-julia@diku.dk> Signed-off-by: Ingo Molnar commit 3a8fa0ed3e1a8dc54f9297d2a2292b87e03e21b5 Author: Artem Bityutskiy Date: Sun Aug 22 21:27:30 2010 +0300 UBIFS: improve error reporting when reading bad node When an error happens during validation of read node, the typical situation is that the LEB we read is unmapped (due to some bug). It is handy to include the mapping status into the error message. Signed-off-by: Artem Bityutskiy commit 3bb66b47a4268a4419594b4c4aec58dbeb6b58d2 Author: Artem Bityutskiy Date: Sat Aug 7 10:06:11 2010 +0300 UBIFS: introduce list sorting debugging checks The UBIFS bug in the GC list sorting comparison functions inspired me to write internal debugging check functions which verify that the list of nodes is sorted properly. So, this patch implements 2 new debugging functions: o 'dbg_check_data_nodes_order()' - check order of data nodes list o 'dbg_check_nondata_nodes_order()' - check order of non-data nodes list The debugging functions are executed only if general UBIFS debugging checks are enabled. And they are compiled out if UBIFS debugging is disabled. Signed-off-by: Artem Bityutskiy commit 1a9476a77083354005750c9df45ba9d71ad12c8c Author: Artem Bityutskiy Date: Sun Aug 8 12:45:23 2010 +0300 UBIFS: fix assertion warnings in comparison function When running the integrity test ('integck' from mtd-utils) on current UBIFS on 2.6.35, I see that assertions in UBIFS 'list_sort()' comparison functions trigger sometimes, e.g.: UBIFS assert failed in data_nodes_cmp at 132 (pid 28311) My investigation showed that this happens when 'list_sort()' calls the 'cmp()' function with equivalent arguments. In this case, the 'struct list_head' parameter, passed to 'cmp()' is bogus, and it does not belong to any element in the original list. And this issue seems to be introduced by commit: commit 835cc0c8477fdbc59e0217891d6f11061b1ac4e2 Author: Don Mullis Date: Fri Mar 5 13:43:15 2010 -0800 It is easy to work around the issue by doing: if (a == b) return 0; in UBIFS. It works, but 'lib_sort()' should nevertheless be fixed. Although it is harmless to have this piece of code in UBIFS. This patch adds that code to both UBIFS 'cmp()' functions: 'data_nodes_cmp()' and 'nondata_nodes_cmp()'. Signed-off-by: Artem Bityutskiy commit ba2f48f70efcf4d82deafb2be327ed64b1f043a5 Author: Artem Bityutskiy Date: Sun Aug 22 07:10:12 2010 +0300 UBIFS: mark unused key objects as invalid When scanning the flash, UBIFS builds a list of flash nodes of type 'struct ubifs_scan_node'. Each scanned node has a 'snod->key' field. This field is valid for most of the nodes, but invalid for some node type, e.g., truncation nodes. It is safer to explicitly initialize such keys to something invalid, rather than leaving them initialized to all zeros, which has key type of UBIFS_INO_KEY. This patch introduces new "fake" key type UBIFS_INVALID_KEY and initializes unused 'snod->key' objects to this type. It also adds debugging assertions in the TNC code to make sure no one ever tries to look these nodes up in the TNC. Signed-off-by: Artem Bityutskiy commit 5b7a3a2e1b0cbc7d5410a8da60dac266a3e19268 Author: Artem Bityutskiy Date: Sun Aug 8 12:32:00 2010 +0300 UBIFS: do not write rubbish into truncation scanning node In the scanning code, in 'ubifs_add_snod()', we write rubbish into 'snod->key', because we assume that on-flash truncation nodes have a key, but they do not. If the other parts of UBIFS then mistakenly try to look-up the truncation node key (they should not do this, but may do because of a bug), we can succeed and corrupt TNC. It looks like we did have such a situation in 'sort_nodes()' in gc.c. Signed-off-by: Artem Bityutskiy commit 66576833f5396af34c52160b16d7b8573199282a Author: Artem Bityutskiy Date: Sun Aug 8 12:29:58 2010 +0300 UBIFS: improve assertion in node comparison functions Improve assertions in gc.c in the comparison functions for 'list_sort()': check key types _and_ node types. Signed-off-by: Artem Bityutskiy commit ab87118d717467cbcd9648692c2a9708d55193bc Author: Artem Bityutskiy Date: Sun Aug 8 12:25:33 2010 +0300 UBIFS: do not use key type in list_sort In comparison function for 'list_sort()' we use key type to distinguish between node types. However, we have a bit simper way to detect node type - 'snod->type'. This more logical to use, comparing to decoding key types. Also allows to get rid of 2 local variables. Signed-off-by: Artem Bityutskiy commit 44ec83b8bd05d323998031f141c310127721acae Author: Artem Bityutskiy Date: Sat Aug 7 08:44:13 2010 +0300 UBIFS: do not look up truncation nodes When moving nodes in GC, do not try to look up truncation nodes in TNC, because they do not exist there. This would be harmless, because the TNC look-up would fail, if we did not have bug 'ubifs_add_snod()' which reads garbage into 'snod->key'. But in any case, it is less error prone to explicitly ignore everything but inode, data, dentry and xentry nodes. Signed-off-by: Artem Bityutskiy commit e3408ad4cbed6ec6990efad4c2ef0856bcd3c712 Author: Artem Bityutskiy Date: Wed Aug 4 13:50:51 2010 +0300 UBIFS: fix assertion warning This patch fixes the following false assertion warning: UBIFS assert failed in data_nodes_cmp at 130 (pid 15107) The assertion was wrong because it did not take into account that the node can be an xentry. Signed-off-by: Artem Bityutskiy commit efe1881f5482f94f5e5e6cb74bf3ea72f2b5b9ce Author: Artem Bityutskiy Date: Wed Aug 4 14:06:06 2010 +0300 UBIFS: do not treat ENOSPC specially 'ubifs_garbage_collect_leb()' should never return '-ENOSPC', and if it does, this is an error. Thus, do not treat this error code specially. '-EAGAIN' is a special error code, but not '-ENOSPC'. Signed-off-by: Artem Bityutskiy commit 5ffef88ffeb730e1bf2da56a39a55e03d57a66c9 Author: Artem Bityutskiy Date: Wed Aug 4 10:14:47 2010 +0300 UBIFS: switch to RO mode after synchronizing In 'ubifs_garbage_collect()' on error path, we first switch to R/O mode, and then synchronize write-buffers (to make sure no data are lost). But the GC write-buffer synchronization will fail, because we are already in R/O mode. This patch re-orders this and makes sure we first synchronize the write-buffer, and then switch to R/O mode. Signed-off-by: Artem Bityutskiy commit 3449dafaf514f83de8d9a41f2c437a8803eea24d Merge: f2481f3 98ee74a Author: Ingo Molnar Date: Mon Aug 30 08:55:38 2010 +0200 Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core commit 409456b10f87b28303643fec37543103f9ada00c Author: Simon Horman Date: Sun Aug 29 21:57:55 2010 -0700 net: fix datapath typo Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 2c70b5196262f29b10eb1886293e0c2d75dc3dd9 Author: Stephen Rothwell Date: Sun Aug 29 17:04:53 2010 +0000 IPVS: include net/ip6_checksum.h for csum_ipv6_magic Fixes this build error: net/netfilter/ipvs/ip_vs_core.c: In function 'ip_vs_nat_icmp_v6': net/netfilter/ipvs/ip_vs_core.c:640: error: implicit declaration of function 'csum_ipv6_magic' Signed-off-by: Stephen Rothwell Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 2bc9e234658072145b63d1d364bac4c8e337c865 Author: Julia Lawall Date: Sat Aug 28 05:41:02 2010 +0000 drivers/net/atl1c: Remove double test The nic_type field is compared to athr_l2c twice. The sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @expression@ expression E; @@ ( * E || ... || E | * E && ... && E ) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 56543af9563d91c1c5596a7980b416389bdea071 Author: Akinobu Mita Date: Fri Aug 27 19:08:45 2010 +0000 starfire: use BUILD_BUG_ON for netdrv_addr_t Detect size mismatch for netdrv_addr_t at build time rather than checking at module load time. Signed-off-by: Akinobu Mita Cc: Ion Badulescu Cc: "David S. Miller" Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit d08336e9998b1004b2baad62325d34349a593137 Author: Akinobu Mita Date: Fri Aug 27 19:08:36 2010 +0000 starfire: use PCI_VDEVICE Signed-off-by: Akinobu Mita Cc: Ion Badulescu Cc: "David S. Miller" Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 6a499b242f7d1ebf13f5bc386e08e80603f79e2a Author: Akinobu Mita Date: Fri Aug 27 19:08:26 2010 +0000 phonet: use for_each_set_bit Replace open-coded loop with for_each_set_bit(). Signed-off-by: Akinobu Mita Cc: "David S. Miller" Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit e27cd4f8ca9dde7938f4f83ef75b6fae8d46dd5f Author: Akinobu Mita Date: Fri Aug 27 19:08:13 2010 +0000 mlx4: use bitmap library Replace loops calling set_bit() and clear_bit() with bitmap_set() and bitmap_clear(). Unlike loops calling set_bit() and clear_bit(), bitmap_set() and bitmap_clear() are not atomic. But this is ok. Because the bitmap operations are protected by bitmap->lock except for initialization of the bitmap in mlx4_bitmap_init(). Signed-off-by: Akinobu Mita Cc: Roland Dreier Cc: netdev@vger.kernel.org Cc: "David S. Miller" Signed-off-by: David S. Miller commit 762c29164e2850d8c5e4c258cef0077b2584d111 Author: Akinobu Mita Date: Fri Aug 27 16:41:56 2010 +0000 econet: kill unnecessary spin_lock_init() The spinlock aun_queue_lock is initialized statically. It is unnecessary to initialize by spin_lock_init() at module load time. This is detected by the semantic patch. // @def@ declarer name DEFINE_SPINLOCK; identifier spinlock; @@ DEFINE_SPINLOCK(spinlock); @@ identifier def.spinlock; @@ - spin_lock_init(&spinlock); // Signed-off-by: Akinobu Mita Cc: Julia Lawall Cc: "David S. Miller" Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller commit 034de00b06fe2b2c451f7435414f15c1b625e6b0 Author: Tobias Klauser Date: Thu Aug 26 22:12:08 2010 +0000 slip: Use net_device_stats from struct net_device Use net_device->stats for stats instead of private variable copies in struct slip. Use ndo_get_stat64 so the additions can be performed on a private destination buffer. Cc: Eric Dumazet Signed-off-by: Tobias Klauser Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 6f44d0337cc54a46e83b4c8a6195607e78fff71d Author: Konrad Rzeszutek Wilk Date: Fri Aug 27 14:19:33 2010 -0400 x86, doc: Adding comments about .iommu_table and its neighbors. Updating the linker section with comments about .iommu_table and some other ones that I know of. CC: Sam Ravnborg CC: H. Peter Anvin CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282933173-19960-1-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 774ea0bcb27f57b6fd521b3b6c43237782fed4b9 Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86: Remove old bootmem code Requested by Ingo, Thomas and HPA. The old bootmem code is no longer necessary, and the transition is complete. Remove it. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 6f2a75369e7561e800d86927ecd83c970996b21f Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve memblock_memory_size() will return memory size in memblock.memory.region. memblock_free_memory_size() will return free memory size in memblock.memory.region. So We can get exact reseved size in specified range. Set the size right after initmem_init(), because later bootmem API will get area above 16M. (except some fallback). Later after we remove the bootmem, We could call that just before paging_init(). Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit a587d2daebcd2bc159d4348b6a7b028950a6d803 Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86: Remove not used early_res code and some functions in e820.c that are not used anymore Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit a9ce6bc15100023b411f8117e53a016d61889800 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Replace e820_/_early string with memblock_ 1.include linux/memblock.h directly. so later could reduce e820.h reference. 2 this patch is done by sed scripts mainly -v2: use MEMBLOCK_ERROR instead of -1ULL or -1UL Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 72d7c3b33c980843e756681fb4867dc1efd62a76 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86: Use memblock to replace early_res 1. replace find_e820_area with memblock_find_in_range 2. replace reserve_early with memblock_x86_reserve_range 3. replace free_early with memblock_x86_free_range. 4. NO_BOOTMEM will switch to use memblock too. 5. use _e820, _early wrap in the patch, in following patch, will replace them all 6. because memblock_x86_free_range support partial free, we can remove some special care 7. Need to make sure that memblock_find_in_range() is called after memblock_x86_fill() so adjust some calling later in setup.c::setup_arch() -- corruption_check and mptable_update -v2: Move reserve_brk() early Before fill_memblock_area, to avoid overlap between brk and memblock_find_in_range() that could happen We have more then 128 RAM entry in E820 tables, and memblock_x86_fill() could use memblock_find_in_range() to find a new place for memblock.memory.region array. and We don't need to use extend_brk() after fill_memblock_area() So move reserve_brk() early before fill_memblock_area(). -v3: Move find_smp_config early To make sure memblock_find_in_range not find wrong place, if BIOS doesn't put mptable in right place. -v4: Treat RESERVED_KERN as RAM in memblock.memory. and they are already in memblock.reserved already.. use __NOT_KEEP_MEMBLOCK to make sure memblock related code could be freed later. -v5: Generic version __memblock_find_in_range() is going from high to low, and for 32bit active_region for 32bit does include high pages need to replace the limit with memblock.default_alloc_limit, aka get_max_mapped() -v6: Use current_limit instead -v7: check with MEMBLOCK_ERROR instead of -1ULL or -1L -v8: Set memblock_can_resize early to handle EFI with more RAM entries -v9: update after kmemleak changes in mainline Suggested-by: David S. Miller Suggested-by: Benjamin Herrenschmidt Suggested-by: Thomas Gleixner Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 301ff3e88ef9ff4bdb92f36a3e6170fce4c9dd34 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Use memblock_debug to control debug message print out Also let memblock_x86_reserve_range/memblock_x86_free_range could print out name if memblock=debug is specified will also print ther name when reserve_memblock_area/free_memblock_area are called. -v2: according to Ingo, put " if (memblock_debug) " in one place Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit e82d42be24bd5d75bf6f81045636e6ca95ab55f2 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Add memblock_x86_memory_in_range() It will return memory size in specified range according to memblock.memory.region Try to share some code with memblock_x86_free_memory_in_range() by passing get_free to __memblock_x86_memory_in_range(). -v2: Ben want _in_range in the name instead of size Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit b52c17ce854125700c4e19d4427d39bf2504ff63 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_free_memory_in_range() It will return free memory size in specified range. We can not use memory_size - reserved_size here, because some reserved area may not be in the scope of memblock.memory.region. Use memblock.memory.region subtracting memblock.reserved.region to get free range array. then count size of all free ranges. -v2: Ben insist on using _in_range Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit 6bcc8176d07f108da3b1af17fb2c0e82c80e948e Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_find_in_range_node() It can be used to find NODE_DATA for numa. Need to make sure early_node_map[] is filled before it is called, otherwise it will fallback to memblock_find_in_range(), with node range. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit edbe7d23b4482e7f33179290bcff3b1feae1c5f3 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 memblock: Add find_memory_core_early() According to node range in early_node_map[] with __memblock_find_in_range to find free range. Will be used by memblock_x86_find_in_range_node() memblock_x86_find_in_range_node will be used to find right buffer for NODE_DATA Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 88ba088c18457caaf8d2e5f8d36becc731a3d4f6 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_register_active_regions() and memblock_x86_hole_size() memblock_x86_register_active_regions() will be used to fill early_node_map, the result will be memblock.memory.region AND numa data memblock_x86_hole_size will be used to find hole size on memblock.memory.region with specified range. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 4d5cf86ce187c0d3a4cdf233ab0cc6526ccbe01f Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add get_free_all_memory_range() get_free_all_memory_range is for CONFIG_NO_BOOTMEM=y, and will be called by free_all_memory_core_early(). It will use early_node_map aka active ranges subtract memblock.reserved to get all free range, and those ranges will convert to slab pages. -v4: increase range size Signed-off-by: Yinghai Lu Cc: Jan Beulich Signed-off-by: H. Peter Anvin commit 9dc5d569c133819c1ce069ebb1d771c62de32580 Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_reserve_range/memblock_x86_free_range They are wrappers for core versions, which take start/end/name instead of base/size. This will make x86 conversion eaasier. could add more debug print out -v2: change get_max_mapped() to memblock.default_alloc_limit according to Michael Ellerman and Ben change to memblock_x86_reserve_range and memblock_x86_free_range according to Michael Ellerman -v3: call check_and_double after reserve/free, so could avoid to use find_memblock_area. Suggested by Michael Ellerman Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Cc: Michael Ellerman Signed-off-by: H. Peter Anvin commit 27de794365786b4cdc3461ed4e23af2a33f40612 Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_to_bootmem() memblock_x86_to_bootmem() will reserve memblock.reserved.region in bootmem after bootmem is set up. We can use it to with all arches that support memblock later. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit f88eff74aa848e58b1ea49768c0bbb874b31357f Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 bootmem, x86: Add weak version of reserve_bootmem_generic It will be used memblock_x86_to_bootmem converting It is an wrapper for reserve_bootmem, and x86 64bit is using special one. Also clean up that version for x86_64. We don't need to take care of numa path for that, bootmem can handle it how Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit fb74fb6db91abc3c1ceeb9d2c17b44866a12c63e Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_find_in_range_size() size is returned according free range. Will be used to find free ranges for early_memtest and memory corruption check Do not mess it up with lib/memblock.c yet. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 7950c407c0288b223a200c1bba8198941599ca37 Author: Yinghai Lu Date: Wed Aug 25 13:39:14 2010 -0700 memblock: Add memblock_free/reserve_reserved_regions() So we can avoid export memblock_reserved_init_regions() Suggested by Ben. -v2: use __init_memblock attribute Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit 5b714c6a3753dad0798a70a049e15c7f6bc9446b Author: Johannes Berg Date: Fri Aug 27 13:45:28 2010 +0200 mac80211: fix offchannel queue stop Somebody noticed this problem, and I outlined to them how to fix it, but haven't heard back from them. So while I was adding the state field I figured I could use it to fix it. The problem, as I understand it, is that when we go offchannel while the driver has a queue stopped, the driver will likely start draining the queue and then enable it while offchannel. This in turn will enable the interface queue, and that leads to transmitting data frames on the wrong channel. Fix this by keeping track of offchannel status per interface, and not enabling the interface queues on interfaces that are offchannel when the driver enables a queue. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c35d02705e9c2db90a89b29142046b4ffd5a76e5 Author: Johannes Berg Date: Fri Aug 27 12:35:59 2010 +0200 mac80211_hwsim: support runtime iftype changes Add the trivial support for runtime interface type changes to mac80211_hwsim for testing. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 34d4bc4d41d282a66dafe1b01a7d46bad468cefb Author: Johannes Berg Date: Fri Aug 27 12:35:58 2010 +0200 mac80211: support runtime interface type changes Add support to mac80211 for changing the interface type even when the interface is UP, if the driver supports it. To achieve this * add a new driver callback for switching, * split some of the interface up/down code out into new functions (do_open/do_stop), and * maintain an own __SDATA_RUNNING bit that will not be set during interface type, so that any other code doesn't use the interface. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 87490f6db38999fee7f6d3dbecc5b94730c7e010 Author: Johannes Berg Date: Fri Aug 27 12:35:57 2010 +0200 mac80211: split out concurrent vif checks Split the concurrent virtual interface checks into a new function that can be used to check for any given new interface type. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit bf533e0bfd77d9671adabdf134b1ac7f24bb0670 Author: Johannes Berg Date: Fri Aug 27 12:35:56 2010 +0200 mac80211: simplify zero address checks The libertas_tf special code for zero addresses is a bit too complex, it compares against a stack value instead of using is_zero_ether_addr() and tries to update all interfaces even if just the one that's being brought up needs to be changed. Additionally, the repeated check for a valid MAC address need only be done if we actually changed it on the fly. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 26a58456be40d8181b884eb5b4e61e3f73ba94e0 Author: Johannes Berg Date: Fri Aug 27 12:35:55 2010 +0200 mac80211: switch to ieee80211_sdata_running Since the introduction of ieee80211_sdata_running(), some new code was introduced that uses netif_running() instead. Switch all these instances over. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit b9dcf712d1fb98bf279fcd453a42a763b104961d Author: Johannes Berg Date: Fri Aug 27 12:35:54 2010 +0200 mac80211: clean up ifdown/cleanup paths There's a lot of redundant code in mac80211's interface cleanup/down, for example freeing AP beacons is done both when the interface is set DOWN as well as when it is torn down, of which only the former has any effect. Also, a bunch of things should be closer to where they matter, like the MLME timers that we should cancel when disassociating, rather than only when the interface is set DOWN. Clean up all this code. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit dd7c4d89730a1be2c1d361a8ae1f0fe9465ccf9c Author: Paul E. McKenney Date: Fri Aug 27 10:51:17 2010 -0700 rcu: performance fixes to TINY_PREEMPT_RCU callback checking This commit tightens up checks in rcu_preempt_check_callbacks() to avoid unnecessary special handling at rcu_read_unlock() time. Signed-off-by: Paul E. McKenney commit 2337db8db845ece2d4ab7673a343e285f1bfda85 Author: Johannes Berg Date: Fri Aug 27 13:36:49 2010 +0200 mac80211: use subqueue helpers There are subqueue helpers so that we don't need to get the TX queue and then wake/stop it, use those helpers. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit a621fa4d6a7fdf9d34938d2e129a72624833eeeb Author: Johannes Berg Date: Fri Aug 27 14:26:54 2010 +0300 mac80211: allow changing port control protocol Some vendor specified mechanisms for 802.1X-style functionality use a different protocol than EAP (even if EAP is vendor-extensible). Support this in mac80211 via the cfg80211 API for it. Signed-off-by: Johannes Berg Signed-off-by: Juuso Oikarinen Signed-off-by: John W. Linville commit c0692b8fe29fb4d4dad33487aabf3ed7e1e880c0 Author: Johannes Berg Date: Fri Aug 27 14:26:53 2010 +0300 cfg80211: allow changing port control protocol Some vendor specified mechanisms for 802.1X-style functionality use a different protocol than EAP (even if EAP is vendor-extensible). Allow setting the ethertype for the protocol when a driver has support for this. The default if unspecified is EAP, of course. Note: This is suitable only for station mode, not for AP implementation. Signed-off-by: Johannes Berg Signed-off-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 3ffc2a905b1faae4c0fe39d66f0752c3a4cbb3c7 Author: Johannes Berg Date: Fri Aug 27 14:26:52 2010 +0300 mac80211: allow vendor specific cipher suites Allow drivers to specify their own set of cipher suites to advertise vendor-specific ciphers. The driver is then required to implement hardware crypto offload for it. Signed-off-by: Johannes Berg Signed-off-by: Juuso Oikarinen Signed-off-by: John W. Linville commit 7d64b7cc1fc33bab24567903a93f699d11649c0b Author: Johannes Berg Date: Fri Aug 27 14:26:51 2010 +0300 cfg80211: allow vendor specific cipher suites cfg80211 currently rejects all cipher suites it doesn't know about for key length checking purposes. This can lead to inconsistencies when a driver advertises an algorithm that cfg80211 doesn't know about. Remove this rejection so drivers can specify any algorithm they like. Signed-off-by: Johannes Berg Signed-off-by: Juuso Oikarinen Signed-off-by: John W. Linville commit b49d09c5bf9a3261ae711ac3bb91e22c172db428 Author: Johannes Berg Date: Fri Aug 27 11:29:24 2010 +0200 cfg80211 docbook: remove erronous !A My previous patch erroneously included an !A line (for some checking I am working on) that isn't yet supported by the docbook tools, so remove it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit fe67470ddd075cb7d538de1570950da3c0f67e65 Author: Rajkumar Manoharan Date: Fri Aug 27 12:09:00 2010 +0530 ath9k_htc: Enable ANI in associated state only While scanning, ANI is triggered unnecessarily where sta is in unassociated state. And cancelling ani work in ath9k_htc_stop is not required. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville commit 0ec2f2724d7e457b91e5983d11db8adba9aad47e Author: Johannes Berg Date: Thu Aug 26 13:30:27 2010 +0200 wl12xx: remove unneeded locking With the scan callback now being callable from any context, these unlocks/locks can go away. This makes the code easier to understand, since callers of these functions must no longer be aware that the mutex may be dropped. As Stanislaw is working on iwlwifi scanning, I didn't change it to take advantage of the new mac80211 semantics. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 8789d459bc5e837bf37d261453df96ef54018d7b Author: Johannes Berg Date: Thu Aug 26 13:30:26 2010 +0200 mac80211: allow scan to complete from any context The ieee80211_scan_completed() function was a frequent source of potential deadlocks, since it is called by drivers but may call back into drivers, so drivers had to make sure to call it without any locks held, which frequently lead to more complex code in drivers. Avoid that problem by allowing the function to be called in any context, and queueing the actual work it does. Also update the documentation for it to indicate this. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5f33c92d188add2a22ec524c03e0ab097e303d52 Author: Johannes Berg Date: Thu Aug 26 13:30:25 2010 +0200 mac80211: remove unused scan expire define Since cfg80211 manages the BSS list completely, this define hasn't been used for a long time and will never be used again. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 93dbbcc45c364d62d58737fb9fe6d31085d6a999 Author: Vivek Natarajan Date: Wed Aug 25 19:34:52 2010 +0530 ath9k: Change the default LED pattern. All major Atheros customers require the led to be in continuous ON state rather than the blinking pattern. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit 53b1cf8a28c440fcb241f6fb84da71a7cb0f74f0 Author: Bob Copeland Date: Tue Aug 24 21:37:14 2010 -0400 ath5k: fix off-by-one in pilot magnitude mask If the symbol offset is 46, it will be counted in both the third and fourth bytes of the mask, and in this case the shift will be negative which can pollute high order bits in the mask. This may negatively impact OFDM symbol detection. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit df1c2986c4685776ed02802c170c7fb6f47d8218 Author: Dan Carpenter Date: Sat Aug 21 21:24:59 2010 +0200 ath5k: re-order one of the frees on unwind There was a small misordering here. In the original code, if we were to go to err_free_ah then it wouldn't free the irq. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit d0fe478c9f42dbc4916aa8d1d7a05d7f669d2209 Author: Johannes Berg Date: Mon Aug 23 10:46:58 2010 +0200 iwlwifi: allow using multiple contexts We're now ready to start using multiple contexts. We do this by keeping track of the valid interface types per context (exclusive [ibss] and normal) and checking which context is "free" when a new interface is added. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit bde4530e9d2fa013b5674e4c9b066ed6d87ab45c Author: Johannes Berg Date: Mon Aug 23 10:46:57 2010 +0200 iwlwifi: follow main beacon interval It is necessary that the PAN context always use the same beacon interval as the BSS context unless it is in dual-station mode, ie. the PAN context is a station as well, so implement that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit b01efe434bd6ea807eb72ba74fae11beab5c4c04 Author: Johannes Berg Date: Mon Aug 23 10:46:56 2010 +0200 iwlagn: always send RXON timing The PAN context requires also getting RXON timing when we send an unassociated RXON in some cases. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 47313e340ee6faa43d8ad8a509a00ed1584fb34d Author: Johannes Berg Date: Mon Aug 23 10:46:55 2010 +0200 iwlwifi: pass context to iwl_send_rxon_timing Sometimes we need to send RXON timing even when we don't have a virtual interface yet, so pass the context and allow passing one without a virtual interface pointer. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 52a02d1500e4cbb347006e407d1c0bd941eee7fc Author: Johannes Berg Date: Fri Aug 27 09:44:50 2010 -0700 iwlwifi: send PAN parameters In order for the microcode to be able to handle multiple interfaces, we need to give it the PAN parameters that state how to allocate the time between the two interfaces. Do this, and update it wherever necessary. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 08abc53cf4f7547ab3bc3957bc6e60c364a882c3 Author: Johannes Berg Date: Mon Aug 23 10:46:53 2010 +0200 iwlagn: send beacon before committing associated RXON Newer AGN microcode requires know the beacon before starting the AP so that it can start beaconing right away. Implement that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 2491fa42d9bdf26075765db5d091b5d7225ca636 Author: Johannes Berg Date: Mon Aug 23 10:46:52 2010 +0200 iwlagn: send RXON timing before associating The PAN functionality requires us to send the timing including a valid DTIM period to the microcode before associating, so request this data from mac80211 and send it to the device. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit e72f368be61d9835c98cd00ee1f330d28e2488ef Author: Johannes Berg Date: Mon Aug 23 10:46:51 2010 +0200 iwlagn: queue frames according to context Frames for different contexts need to be put on different queues, and multicast after DTIM frames have a special queue yet which also depends on the context, so put all this into the context. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 60744f62971cfa80cab36ab8c12afeae371fbe8b Author: Johannes Berg Date: Mon Aug 23 10:46:50 2010 +0200 iwlagn: remove iw_mode check for beacon Since we have the beacon context now, we no longer need to rely on iw_mode but can check the beacon context interface's type. However, that check must be in the work item instead due to locking constraints (mutex must be held when dereferencing beacon_ctx pointer). Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit ece9c4ee5e590f96d7221c746126eaafac15a60c Author: Johannes Berg Date: Mon Aug 23 10:46:49 2010 +0200 iwlagn: detect PAN capability Detect whether or not the ucode is PAN capable and adjust the valid contexts accordingly. To be able to do this, add the PAN context to the array as well. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 946ba30d61d47ee634a39d27b4d067b6418eaa08 Author: Johannes Berg Date: Mon Aug 23 10:46:48 2010 +0200 iwlwifi: add PAN API Define the new host commands and notifications REPLY_WIPAN_PARAMS REPLY_WIPAN_RXON REPLY_WIPAN_RXON_TIMING REPLY_WIPAN_RXON_ASSOC REPLY_WIPAN_QOS_PARAM REPLY_WIPAN_WEPKEY REPLY_WIPAN_P2P_CHANNEL_SWITCH REPLY_WIPAN_NOA_NOTIFICATION and their corresponding structures along with the PAN station flag, the PAN AP sta ID and new dev types for the second context. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 76d048151cf935281998b591e070581fc438e27e Author: Johannes Berg Date: Mon Aug 23 10:46:47 2010 +0200 iwlwifi: introduce beacon context Only one context can be beaconing at a time, but we need to track which one. Introduce a new variable priv->beacon_ctx to do that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 7e6a588601eb85feb10c7e8898f1f69c3b229a20 Author: Johannes Berg Date: Mon Aug 23 10:46:46 2010 +0200 iwlwifi: move HT configuration data into context A lot of HT configuration semantically belongs into the context, even if right now it will never be different between contexts. Move it so we're better prepared for future changes in mac80211. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 238d781d33dcd7941e7ab799c59156e5f7ebda9d Author: Johannes Berg Date: Mon Aug 23 10:46:45 2010 +0200 iwlwifi: add context pointer to station Sometimes we only pass around station pointers but need to find the context they belong to, so store it in there. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 770e13bdda27065e31b3ab4daa3a04b6429719a1 Author: Johannes Berg Date: Mon Aug 23 10:46:44 2010 +0200 iwlwifi: store default station flags in context Since the default context is initialised to zero, and the default flags are zero, no more code is needed to initialise them right now, but another context can have different default flags. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit c10afb6e844b7936092396f719b794c4d0038f27 Author: Johannes Berg Date: Mon Aug 23 10:46:43 2010 +0200 iwlwifi: make hw crypto context aware HW crypto needs to be aware of the context, and there are different command IDs for the WEP keys per context, so move the key tracking variables and command IDs into the context structure. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 2995bafafd4d9d2f840b51b0121997be09fb8b47 Author: Johannes Berg Date: Mon Aug 23 10:46:42 2010 +0200 iwlwifi: move AP sta ID to context Each context needs to use a different AP sta ID, so we need to move that into the context struct instead of hardcoding it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 95c38dd429712366739299579b0785625cba66d6 Author: Johannes Berg Date: Mon Aug 23 10:46:41 2010 +0200 iwlwifi: clamp scanning dwell time to all contexts The dwell time should at least fit into all context's beacon intervals. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 8bd413e611d4324f17e54a2a89b4d09216c22a37 Author: Johannes Berg Date: Mon Aug 23 10:46:40 2010 +0200 iwlwifi: move virtual interface pointer into context iwlwifi occasionally needs to find the virtual interface pointer to give it to mac80211, but right now it only keeps one. Move it into the context so that we can keep one pointer each. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit c90cbbbd78e45abbefd5e9e1c3c179d6126e3ddf Author: Johannes Berg Date: Mon Aug 23 10:46:39 2010 +0200 iwlwifi: add context into tx descriptor In status processing we'll need to find the context for a given frame, so add a context pointer to the TX info for each frame. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 8dfdb9d5757424f7018a643258065c4fc8e6a439 Author: Johannes Berg Date: Mon Aug 23 10:46:38 2010 +0200 iwlwifi: move QoS into context Since mac80211 doesn't currently enable/disable QoS per interface, we can't yet do it properly, but we can already prepare for it and move the QoS data and command ID into the context struct. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 8f2d3d2ae17855e396483724f152f223e6f01bfe Author: Johannes Berg Date: Mon Aug 23 10:46:37 2010 +0200 iwlwifi: contextify command sending Some commands will have different command IDs for different contexts, so we need to store those IDs in the context structure and use them instead of hardcoding the commands. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit dcef732c72fbe960de5069d3921bb6ce6847be58 Author: Johannes Berg Date: Fri Aug 27 08:55:52 2010 -0700 iwlwifi: contextify-stations-completely The microcode tracks stations per context, so the driver needs to do that as well for adding, deleting and restoring them, especially in the implicit removal case when we send an RXON. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit a194e3249baf954dc34c67cdad5b8bed36f49e72 Author: Johannes Berg Date: Fri Aug 27 08:53:46 2010 -0700 iwlwifi: contextify broadcast station The broadcast station ID is per context, so add a variable for the ID in the context and use it everywhere we previously hardcoded it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 751ca305d0e37f0d44b6a261e7db31aa6b60fbf4 Author: Johannes Berg Date: Mon Aug 23 10:46:34 2010 +0200 iwlwifi: define PAN queues/FIFOs PAN capable microcode has a different queue assignment (not just more queues for PAN) due to the way multicast is handled for AP mode. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 13bb9483e190b95b04b22280ec9efa6b48469fd6 Author: Johannes Berg Date: Mon Aug 23 10:46:33 2010 +0200 iwlwifi: prepare for PAN queue/fifo assignment PAN ucode will require a different queue assignment, in particular queue 9 instead of 4 should be used for commands. This is required because the ucode will stop/start queues 4 and 8 depending on the PAN state, since queue 8 will be used for PAN multicast (after DTIM). Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 246ed355221076884d225f9d8a4c30a048be8162 Author: Johannes Berg Date: Mon Aug 23 10:46:32 2010 +0200 iwlwifi: initial contextification In order to support multiple interfaces, we must move a lot of data into per-context structures so we can use the contexts the device offers. To start with, this makes a lot of code context-aware, more changes will move more things into the context structure. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 0fdf4d096102464e290d5ccaee8ad0cee7bd9e8a Author: Eric Dumazet Date: Thu Aug 26 22:03:53 2010 -0700 bnx2x: fix wrong return from bnx2x_trylock_hw_lock bnx2x_trylock_hw_lock() returns a bool : true if succeeded to acquire the lock. false in case of error. -EINVAL is not an acceptable value, since its promoted to true. Signed-off-by: Eric Dumazet Acked-by: Eilon Greenstein Signed-off-by: David S. Miller commit 40d0802b3eb47d57e2d57a5244a18cbbe9632e13 Author: Eric Dumazet Date: Thu Aug 26 22:03:08 2010 -0700 gro: __napi_gro_receive() optimizations compare_ether_header() can have a special implementation on 64 bit arches if CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is defined. __napi_gro_receive() and vlan_gro_common() can avoid a conditional branch to perform device match. On x86_64, __napi_gro_receive() has now 38 instructions instead of 53 As gcc-4.4.3 still choose to not inline it, add inline keyword to this performance critical function. Signed-off-by: Eric Dumazet CC: Herbert Xu Signed-off-by: David S. Miller commit 250ad8f55c06eb866cfb57f8d3ea6ff961a7d1d7 Author: David S. Miller Date: Thu Aug 26 20:32:02 2010 -0700 stmmac: Make time functionality depend upon RTC_HCTOSYS_DEVICE Based upon a report by Stephen Rothwell. Signed-off-by: David S. Miller commit 98ee74a75ca0f047e75400afa712f7bf08268b8e Merge: 7de5d89 5225c45 Author: Frederic Weisbecker Date: Fri Aug 27 02:28:40 2010 +0200 Merge branch 'perf/urgent' into perf/core Conflicts: tools/perf/util/callchain.h Merge reason: Fix a non-trivial conflict with latest fixes commit e132d8d3d2b4df0895fe73c9cfad53b3a5329edf Author: Sritej Velaga Date: Thu Aug 26 14:03:05 2010 +0000 qlcnic: PCI ID addition Added PCI ID to board info. Signed-off-by: Sritej Velaga Signed-off-by: Anirban Chakraborty Signed-off-by: David S. Miller commit 0866d96da02cccc3ca837d0d71687aba962b3f2f Author: Anirban Chakraborty Date: Thu Aug 26 14:02:52 2010 +0000 qlcnic: Fix driver load issue in FW hang If there is a FW hang when the driver loads, it can not determine the FW operational mode. Fix it by checking the FW state first before issuing any FW commands to determine its capabilities and thereby detecting driver operational mode. Signed-off-by: Anirban Chakraborty Signed-off-by: David S. Miller commit 8cfdce080722101a7fd2a1eff9763ca4008ec626 Author: Sony Chacko Date: Thu Aug 26 14:02:41 2010 +0000 qlcnic: Fix missing error codes In the original code, the error codes returned from some of the functions are not caught and sent up the caller chain. Fixed it here. Signed-off-by: Sony Chacko Signed-off-by: Anirban Chakraborty Signed-off-by: David S. Miller commit 660a293ea9be709b893d371fbc0328fcca33c33a Author: Shaohua Li Date: Tue Jul 27 16:06:28 2010 +0800 x86, mm: Make spurious_fault check explicitly check the PRESENT bit pte_present() returns true even present bit isn't set but _PAGE_PROTNONE (global bit) bit is set. While with CONFIG_DEBUG_PAGEALLOC, free pages have global bit set but present bit clear. This patch makes we could catch free pages access with CONFIG_DEBUG_PAGEALLOC enabled. [ hpa: added a comment in the code as a warning to janitors ] Signed-off-by: Shaohua Li LKML-Reference: <1280217988.32400.75.camel@sli10-desk.sh.intel.com> Signed-off-by: H. Peter Anvin commit ee1f284f38c8dfcbc7b656915a039dde016de7d3 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:05 2010 -0400 x86, iommu: Utilize the IOMMU_INIT macros functionality. We remove all of the sub-platform detection/init routines and instead use on the .iommu_table array of structs to call the .early_init if .detect returned a positive value. Also we can stop detecting other IOMMUs if the IOMMU used the _FINISH type macro. During the 'pci_iommu_init' stage, we call .init for the second-stage initialization if it was defined. Currently only SWIOTLB has this defined and it used to de-allocate the SWIOTLB if the other detected IOMMUs have deemed it unnecessary to use SWIOTLB. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-11-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: H. Peter Anvin commit 4db77ff3237a88ea74f691dd776e92b2f86a8f3f Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:04 2010 -0400 x86, VT-d: Make Intel VT-d IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | +-------+--------+---------------------+ / \ \ [detect_calgary] [gart_iommu_hole_init] [detect_intel_iommu] | [amd_iommu_detect] Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-10-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Jesse Barnes CC: David Woodhouse CC: Len Brown CC: Chris Wright CC: Yinghai Lu Signed-off-by: H. Peter Anvin commit 22e6daf41ba28ddc06295e42859b266f737b3e99 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:03 2010 -0400 x86, GART/AMD-VI: Make AMD GART and IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | +-------+--------+ / \ [detect_calgary] [gart_iommu_hole_init] | [amd_iommu_detect] Meaning that 'amd_iommu_detect' will be called after 'gart_iommu_hole_init'. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-9-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Joerg Roedel CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: H. Peter Anvin commit d2aa232f3d0b5a3e22f91b736fe68eddcf0d5ea3 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:02 2010 -0400 x86, calgary: Make Calgary IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | [detect_calgary] Meaning that 'detect_calgary' is going to be called after 'pci_swiotlb_detect'. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-8-git-send-email-konrad.wilk@oracle.com> CC: Muli Ben-Yehuda CC: "Jon D. Mason" CC: "Darrick J. Wong" CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit 5cb3a267939a223eb84692d229569d2ef493d7ca Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:01 2010 -0400 x86, xen-swiotlb: Make Xen-SWIOTLB use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] In other words, we set 'pci_xen_swiotlb_detect' to be the first detection to be run during start. CC: Fujita Tomonori Cc: Jeremy Fitzhardinge Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-7-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit c116c5457c46edb767df6f4e36d4905e3514ad37 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:00 2010 -0400 x86, swiotlb: Make SWIOTLB use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] And set the SWIOTLB IOMMU_INIT to utilize 'pci_swiotlb_init' for .init and 'pci_swiotlb_late_init' for .late_init. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-6-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit efa631c26d3bb1162b8f95008801db602217f52b Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:59 2010 -0400 x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. In 'pci_swiotlb_detect' we used to do two different things: a). If user provided 'iommu=soft' or 'swiotlb=force' we would set swiotlb=1 and return 1 (and forcing pci-dma.c to call pci_swiotlb_init() immediately). b). If 4GB or more would be detected and if user did not specify iommu=off, we would set 'swiotlb=1' and return whatever 'a)' figured out. We simplify this by splitting a) and b) in two different routines. CC: Fujita Tomonori Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-5-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 5bef80a4b826b9cee1c6aec7ecc371ec395260cc Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:58 2010 -0400 x86, iommu: Add proper dependency sort routine (and sanity check). We are using a very simple sort routine which sorts the .iommu_table array in the order of dependencies. Specifically each structure of iommu_table_entry has a field 'depend' which contains the function pointer to the IOMMU that MUST be run before us. We sort the array of structures so that the struct iommu_table_entry with no 'depend' field are first, and then the subsequent ones are the ones for which the 'depend' function has been already invoked (in other words, precede us). Using the kernel's version 'sort', which is a mergeheap is feasible, but would require making the comparison operator scan recursivly the array to satisfy the "heapify" process: setting the levels properly. The end result would much more complex than it should be an it is just much simpler to utilize this simple sort routine. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-4-git-send-email-konrad.wilk@oracle.com> CC: H. Peter Anvin CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit 480125ba49ba62be93beea37770f266846e077ab Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:57 2010 -0400 x86, iommu: Make all IOMMU's detection routines return a value. We return 1 if the IOMMU has been detected. Zero or an error number if we failed to find it. This is in preperation of using the IOMMU_INIT so that we can detect whether an IOMMU is present. I have not tested this for regression on Calgary, nor on AMD Vi chipsets as I don't have that hardware. CC: Muli Ben-Yehuda CC: "Jon D. Mason" CC: "Darrick J. Wong" CC: Jesse Barnes CC: David Woodhouse CC: Chris Wright CC: Yinghai Lu CC: Joerg Roedel CC: H. Peter Anvin CC: Fujita Tomonori Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-3-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 0444ad93ea2449963132d68753020a6a24d69895 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:56 2010 -0400 x86, iommu: Add IOMMU_INIT macros, .iommu_table section, and iommu_table_entry structure This patch set adds a mechanism to "modularize" the IOMMUs we have on X86. Currently the count of IOMMUs is up to six and they have a complex relationship that requires careful execution order. 'pci_iommu_alloc' does that today, but most folks are unhappy with how it does it. This patch set addresses this and also paves a mechanism to jettison unused IOMMUs during run-time. For details that sparked this, please refer to: http://lkml.org/lkml/2010/8/2/282 The first solution that comes to mind is to convert wholesale the IOMMU detection routines to be called during initcall time frame. Unfortunately that misses the dependency relationship that some of the IOMMUs have (for example: for AMD-Vi IOMMU to work, GART detection MUST run first, and before all of that SWIOTLB MUST run). The second solution would be to introduce a registration call wherein the IOMMU would provide its detection/init routines and as well on what MUST run before it. That would work, except that the 'pci_iommu_alloc' which would run through this list, is called during mem_init. This means we don't have any memory allocator, and it is so early that we haven't yet started running through the initcall_t list. This solution borrows concepts from the 2nd idea and from how MODULE_INIT works. A macro is provided that each IOMMU uses to define it's detect function and early_init (before the memory allocate is active), and as well what other IOMMU MUST run before us. Since most IOMMUs depend on having SWIOTLB run first ("pci_swiotlb_detect") a convenience macro to depends on that is also provided. This macro is similar in design to MODULE_PARAM macro wherein we setup a .iommu_table section in which we populate it with the values that match a struct iommu_table_entry. During bootup we will sort through the array so that the IOMMUs that MUST run before us are first elements in the array. And then we just iterate through them calling the detection routine and if appropiate, the init routines. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-2-git-send-email-konrad.wilk@oracle.com> CC: H. Peter Anvin CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: H. Peter Anvin commit 53f91dc1f76922375ad7957ef29f48986722532d Author: Changli Gao Date: Tue Aug 24 13:32:58 2010 +0000 net: use scnprintf() to avoid potential buffer overflow strlcpy() returns the total length of the string they tried to create, so we should not use its return value without any check. scnprintf() returns the number of characters written into @buf not including the trailing '\0', so use it instead here. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 145ce502e44b57c074c72cfdc855557e19026999 Author: Joe Perches Date: Tue Aug 24 13:21:08 2010 +0000 net/sctp: Use pr_fmt and pr_ Change SCTP_DEBUG_PRINTK and SCTP_DEBUG_PRINTK_IPADDR to use do { print } while (0) guards. Add SCTP_DEBUG_PRINTK_CONT to fix errors in log when lines were continued. Add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt Add a missing newline in "Failed bind hash alloc" Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 9b861528a8012e7bc4d1f7bae07395b225331477 Author: Haicheng Li Date: Fri Aug 20 17:50:16 2010 +0800 x86-64, mem: Update all PGDs for direct mapping and vmemmap mapping changes When memory hotplug-adding happens for a large enough area that a new PGD entry is needed for the direct mapping, the PGDs of other processes would not get updated. This leads to some CPUs oopsing like below when they have to access the unmapped areas. [ 1139.243192] BUG: soft lockup - CPU#0 stuck for 61s! [bash:6534] [ 1139.243195] Modules linked in: ipv6 autofs4 rfcomm l2cap crc16 bluetooth rfkill binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod video output sbs sbshc fan battery ac parport_pc lp parport joydev usbhid processor thermal thermal_sys container button rtc_cmos rtc_core rtc_lib i2c_i801 i2c_core pcspkr uhci_hcd ohci_hcd ehci_hcd usbcore [ 1139.243229] irq event stamp: 8538759 [ 1139.243230] hardirqs last enabled at (8538759): [] restore_args+0x0/0x30 [ 1139.243236] hardirqs last disabled at (8538757): [] __do_softirq+0x106/0x146 [ 1139.243240] softirqs last enabled at (8538758): [] __do_softirq+0x137/0x146 [ 1139.243245] softirqs last disabled at (8538743): [] call_softirq+0x1c/0x34 [ 1139.243249] CPU 0: [ 1139.243250] Modules linked in: ipv6 autofs4 rfcomm l2cap crc16 bluetooth rfkill binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod video output sbs sbshc fan battery ac parport_pc lp parport joydev usbhid processor thermal thermal_sys container button rtc_cmos rtc_core rtc_lib i2c_i801 i2c_core pcspkr uhci_hcd ohci_hcd ehci_hcd usbcore [ 1139.243284] Pid: 6534, comm: bash Tainted: G M 2.6.32-haicheng-cpuhp #7 QSSC-S4R [ 1139.243287] RIP: 0010:[] [] alloc_arraycache+0x35/0x69 [ 1139.243292] RSP: 0018:ffff8802799f9d78 EFLAGS: 00010286 [ 1139.243295] RAX: ffff8884ffc00000 RBX: ffff8802799f9d98 RCX: 0000000000000000 [ 1139.243297] RDX: 0000000000190018 RSI: 0000000000000001 RDI: ffff8884ffc00010 [ 1139.243300] RBP: ffffffff8100c34e R08: 0000000000000002 R09: 0000000000000000 [ 1139.243303] R10: ffffffff8246dda0 R11: 000000d08246dda0 R12: ffff8802599bfff0 [ 1139.243305] R13: ffff88027904c040 R14: ffff8802799f8000 R15: 0000000000000001 [ 1139.243308] FS: 00007fe81bfe86e0(0000) GS:ffff88000d800000(0000) knlGS:0000000000000000 [ 1139.243311] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1139.243313] CR2: ffff8884ffc00000 CR3: 000000026cf2d000 CR4: 00000000000006f0 [ 1139.243316] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1139.243318] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 1139.243321] Call Trace: [ 1139.243324] [] ? alloc_arraycache+0x29/0x69 [ 1139.243328] [] ? cpuup_callback+0x1b0/0x32a [ 1139.243333] [] ? notifier_call_chain+0x33/0x5b [ 1139.243337] [] ? __raw_notifier_call_chain+0x9/0xb [ 1139.243340] [] ? cpu_up+0xb3/0x152 [ 1139.243344] [] ? store_online+0x4d/0x75 [ 1139.243348] [] ? sysdev_store+0x1b/0x1d [ 1139.243351] [] ? sysfs_write_file+0xe5/0x121 [ 1139.243355] [] ? vfs_write+0xae/0x14a [ 1139.243358] [] ? sys_write+0x47/0x6f [ 1139.243362] [] ? system_call_fastpath+0x16/0x1b This patch makes sure to always replicate new direct mapping PGD entries to the PGDs of all processes, as well as ensures corresponding vmemmap mapping gets synced. V1: initial code by Andi Kleen. V2: fix several issues found in testing. V3: as suggested by Wu Fengguang, reuse common code of vmalloc_sync_all(). [ hpa: changed pgd_change from int to bool ] Originally-by: Andi Kleen Signed-off-by: Haicheng Li LKML-Reference: <4C6E4FD8.6080100@linux.intel.com> Reviewed-by: Wu Fengguang Reviewed-by: Andi Kleen Signed-off-by: H. Peter Anvin commit 6afb5157b9eba4092e2f0f54d24a3806409bdde5 Author: Haicheng Li Date: Wed May 19 17:42:14 2010 +0800 x86, mm: Separate x86_64 vmalloc_sync_all() into separate functions No behavior change. Move some of vmalloc_sync_all() code into a new function sync_global_pgds() that will be useful for memory hotplug. Signed-off-by: Haicheng Li LKML-Reference: <4C6E4ECD.1090607@linux.intel.com> Reviewed-by: Wu Fengguang Reviewed-by: Andi Kleen Signed-off-by: H. Peter Anvin commit dee06e4702b5a64b9ca81e650d66223c5b3e7f14 Author: Simon Horman Date: Thu Aug 26 02:54:31 2010 +0000 ipvs: switch to GFP_KERNEL allocations Switch from GFP_ATOMIC allocations to GFP_KERNEL ones in ip_vs_add_service() and ip_vs_new_dest(), as we hold a mutex and are allowed to sleep in this context. Signed-off-by: Eric Dumazet Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 4f72816ef07fdf49338ee0e6764a3961d552994a Author: Simon Horman Date: Thu Aug 26 02:54:30 2010 +0000 IPVS: convert __ip_vs_securetcp_lock to a spinlock Also rename __ip_vs_securetcp_lock to ip_vs_securetcp_lock. Spinlock conversion was suggested by Eric Dumazet. Acked-by: Eric Dumazet Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit bd144550489270a32a531e84a2b4bb6882096236 Author: Simon Horman Date: Thu Aug 26 02:54:29 2010 +0000 IPVS: convert __ip_vs_sched_lock to a spinlock Also rename __ip_vs_sched_lock to ip_vs_sched_lock. Acked-by: Eric Dumazet Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 8870f8427b8fe30b2684b9e569e5ce038faf41ac Author: Simon Horman Date: Thu Aug 26 13:21:26 2010 -0700 IPVS: ICMPv6 checksum calculation Cc: Xiaoyu Du Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 8301bb68c6bb9836889641a47443aeb97b763f6c Author: Rabin Vincent Date: Mon Aug 9 12:57:30 2010 +0100 ARM: 6310/1: mmci: support different FIFO sizes The Ux500 variant has a 32-word FIFO (TXFIFOEMPTY is asserted when it has 2 left) and TXFIFOHALFEMPTY is repurposed as TXFIFOBURSTWRITEABLE, with a burst being defined as 8-words. Likewise for RX. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 2971944582ff43b7dedbb460777052243ac9915a Author: Rabin Vincent Date: Mon Aug 9 12:54:43 2010 +0100 ARM: 6307/1: mmci: allow the card detect GPIO value not to be inverted On some platforms, the GPIO value from the gpio_cd pin doesn't need to be inverted to get it active high. Add a cd_invert platform data parameter and change existing platforms using GPIO for CD (only Realview) to enable it. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 8a891429d1879ae4f37f547ef5c2d68e19277e4a Author: Rasesh Mody Date: Wed Aug 25 23:00:27 2010 -0700 bna: Fixed build break for allyesconfig This is the patch to fix the build break caused by multiple definitions of symbols between Brocade's FC/FCOE driver(BFA) and 10G Networking Driver(BNA). Changes are: 1. locally used functions are made static 2. unused functions are removed 3. using unique namespaces for the function names that must be globally visible Signed-off-by: Debashis Dutt Signed-off-by: Rasesh Mody Signed-off-by: David S. Miller commit 9ea77bdb39b62c9bf9fd3cdd1c25a9420bccd380 Author: H. Peter Anvin Date: Wed Aug 25 16:38:20 2010 -0700 x86, bios: Make the x86 early memory reservation a kernel option Add a kernel command-line option so the x86 early memory reservation size can be adjusted at runtime instead of only at compile time. Suggested-by: Andrew Morton LKML-Reference: Signed-off-by: H. Peter Anvin commit ced1de4c9eeded664e5f1b21cfcb0fb70cc0cde3 Author: Denis Kirjanov Date: Tue Aug 24 23:57:55 2010 +0000 r6040: Free irq line on error path Free irq line on error path. Signed-off-by: Denis Kirjanov Acked-by: Florian Fainelli Signed-off-by: David S. Miller commit f0c54ace9b74ec52e57d3ea2ef99fb277667abf8 Author: Amerigo Wang Date: Wed Aug 25 00:23:39 2010 +0000 s2io: remove lro parameter Remove "lro" parameter of s2io driver. Signed-off-by: WANG Cong Cc: jon.mason@exar.com Acked-by: Jon Mason Signed-off-by: David S. Miller commit def824c0d4902d27c52f17d267af8bc648d29e16 Author: Ajit Khaparde Date: Wed Aug 25 00:32:56 2010 +0000 be2net: stats for packets received due to internal switching in ASIC. Counters for packets received due to internal switching are already available. This change will start displaying them in ethtool -S Signed-off-by: Ajit Khaparde Signed-off-by: David S. Miller commit 6d87f5c3ac5856bf1309700e2f15e2e7fcd3c578 Author: Ajit Khaparde Date: Wed Aug 25 00:32:33 2010 +0000 be2net: fix to dynamically generate MAC Address for VFs The BE ASIC/firmware doesnot reserve and assign MAC address for VFs. This results in the VF interfaces being created with MAC Address 0. The code change proposed takes the MAC address of PF to generate a seed. MAC Address for VFs are assigned incrementally starting from the seed. These addresses are programmed in the ASIC by the PF and the VF driver queries for the MAC address during its probe. Signed-off-by: Ajit Khaparde Signed-off-by: David S. Miller commit aa7c6e5fa08bb5014b6432a690d28748f11e93fc Author: stephen hemminger Date: Tue Aug 24 13:12:56 2010 +0000 bridge: avoid ethtool on non running interface If bridge port is offline, don't call ethtool to query speed. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit c5dadddb8c9d310bc263f671f19fe3ba90b329fe Author: Breno Leitao Date: Tue Aug 24 12:50:40 2010 +0000 qlge: Fix a deadlock when the interface is going down Currently qlge can deadlock when the interface is going down, and the mpi_port_cfg_work() is executing on another processor. It happens because unregister_netdev() holds the rtnl lock, and the mpi_port_cfg_work() also request this lock. Since unregiter_netdev() may wait mpi_port_cfg_work(), who also request the holding lock, it can cause an deadlock, displaying the following error: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. rmmod D 00000080c6c1d190 0 3993 2081 0x00008080 Call Trace: [c000000975f56ee0] [c0000000000152a0] .__switch_to+0x100/0x1d0 [c000000975f56f70] [c0000000005781b4] .schedule+0x3a4/0x8c0 [c000000975f570c0] [c000000000578e8c] .schedule_timeout+0x24c/0x350 [c000000975f571e0] [c000000000578a88] .wait_for_common+0x198/0x210 [c000000975f572c0] [c0000000000abbb4] .__cancel_work_timer+0x2c4/0x2e0 [c000000975f57400] [d0000000078e7a20] .ql_adapter_down+0x80/0x260 [qlge] [c000000975f574b0] [d0000000078e7d80] .qlge_close+0x70/0x130 [qlge] [c000000975f57540] [c000000000497ef8] .__dev_close+0x98/0xf0 [c000000975f575d0] [c000000000497f74] .dev_close+0x24/0x60 [c000000975f57650] [c000000000498080] .rollback_registered_many+0xd0/0x2b0 [c000000975f576f0] [c000000000498338] .rollback_registered+0x38/0x50 [c000000975f57780] [c0000000004983d8] .unregister_netdevice_queue+0x88/0xe0 [c000000975f57810] [c000000000498574] .unregister_netdev+0x24/0x40 [c000000975f57890] [d0000000078f6f38] .qlge_remove+0x3c/0x78 [qlge] [c000000975f57920] [c0000000002d9298] .pci_device_remove+0x48/0x90 [c000000975f579a0] [c000000000372850] .__device_release_driver+0xa0/0x130 [c000000975f57a30] [c000000000372a08] .driver_detach+0x128/0x150 [c000000975f57ad0] [c000000000371134] .bus_remove_driver+0xc4/0x1a0 [c000000975f57b70] [c00000000037357c] .driver_unregister+0x8c/0xd0 [c000000975f57c00] [c0000000002d968c] .pci_unregister_driver+0x5c/0x110 [c000000975f57ca0] [d0000000078f6ee4] .qlge_exit+0x1c/0x34 [qlge] Signed-off-by: Breno Leitao Signed-off-by: Ron Mercer Signed-off-by: David S. Miller commit 944c794d6437e5301c8769cb242c2b919a5acf59 Author: Stephen Hemminger Date: Tue Aug 24 13:08:10 2010 +0000 bridge: fix locking comment The carrier check is not called from work queue in current code. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit b2aff96327545aa5ceb25e3116be69c8b06de703 Author: Julia Lawall Date: Tue Aug 24 04:39:49 2010 +0000 net/netfilter/ipvs: Eliminate memory leak __ip_vs_service_get and __ip_vs_svc_fwm_get increment a reference count, so that reference count should be decremented before leaving the function in an error case. A simplified version of the semantic match that finds this problem is: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E; identifier f1; iterator I; @@ x = __ip_vs_service_get(...); <... when != x when != true (x == NULL || ...) when != if (...) { <+...x...+> } when != I (...) { <+...x...+> } ( x == NULL | x == E | x->f1 ) ...> * return ...; // Signed-off-by: Julia Lawall Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 8d34e7d6f38fce1c7e595404295494cd1eaba3eb Author: Julia Lawall Date: Tue Aug 24 04:38:33 2010 +0000 drivers/net/irda: Eliminate memory leak dev_alloc_skb allocates some memory, so that memory should be freed before leaving the function in an error case. Corrected some typos in a nearby comment as well. A simplified version of the semantic match that finds this problem is: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E; identifier f1; iterator I; @@ x = dev_alloc_skb(...); <... when != x when != true (x == NULL || ...) when != if (...) { <+...x...+> } when != I (...) { <+...x...+> } ( x == NULL | x == E | x->f1 ) ...> * return ...; // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 21ff2929edc89397cc4c621d3c3f842994640acd Author: Eric Dumazet Date: Tue Aug 24 04:18:13 2010 +0000 typhoon: fix a race in typhoon_do_get_stats Its important to store 'final' values in counters, not using them as temporary variables, or this might break some SNMP applications. Signed-off-by: Eric Dumazet Acked-by: David Dillow Signed-off-by: David S. Miller commit 884c06f4777c598ea7bf4fbc7557ff2fca066f63 Author: Dan Carpenter Date: Tue Aug 24 02:01:05 2010 +0000 plip: remove superflous return This return isn't reachable and it obscures the goto on the line before. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit ad01b7d480a4a135f974afd5c617c417e0b0542f Author: Giuseppe CAVALLARO Date: Mon Aug 23 20:40:42 2010 +0000 stmmac: make ioaddr 'void __iomem *' rather than unsigned long This avoids unnecessary casting and adds the ioaddr in the private structure. This patch also removes many warning when compile the driver. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit ac75791aa943c7953521cb4fa7728bf51f9abd2d Author: Giuseppe CAVALLARO Date: Mon Aug 23 20:40:41 2010 +0000 stmmac: remove dead option in the driver's Kconfig This patch removes the CPU_SUBTYPE_ST40 dependency in the driver's Kconfig. In fact, this option has been removed in the commit: f96691872439ab2071171d4531c4a95b5d493ae5 as reported by Christian Dietrich. Note that the driver remains tested on STM platforms, only. Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit 219dd1132a71875ef7097ac47f634d402478385c Author: Pawel Moll Date: Mon Aug 23 20:40:40 2010 +0000 stmmac: fix_mac_speed is called during 10/100<->1000 speed changes This patch modifies the stmmac_adjust_link() function so the fix_mac_speed() is called not only when link speed is changing between 10 and 100 Mbps (as required in RMII mode) but also for 1000 Mbps. Signed-off-by: Pawel Moll Signed-off-by: Giuseppe Cavallaro Signed-off-by: David S. Miller commit c6a056a349d10a6e879ca1be6067873b6feed259 Author: Eric Dumazet Date: Mon Aug 23 19:44:08 2010 +0000 bnx2x: small fix in stats handling Use a private variable to fold rx_dropped value, instead of shared destination buffer, as it might break SNMP applications. Signed-off-by: Eric Dumazet CC: Eilon Greenstein CC: Dmitry Kravkov Acked-By: Eilon Greenstein Signed-off-by: David S. Miller commit c061b18df0f1fe3f50fe451dbbdc9ede3c19701a Author: Joe Perches Date: Mon Aug 23 18:20:03 2010 +0000 drivers/net: Remove address use from assignments of function pointers "foo = &function" is more commonly written "foo = function" Done with coccinelle script: // @r@ identifier f; @@ f(...) { ... } @@ identifier r.f; @@ - &f + f // drivers/net/tehuti.c used a function and struct with the same name, the function was renamed. Compile tested x86 only. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 31018e068edb9eed740bec5cf14802c3c676c9ee Author: Amit Kumar Salecha Date: Wed Aug 25 04:03:05 2010 +0000 qlcnic: change reg name Change QLCNIC_CRB_DEV_REF_COUNT to QLCNIC_CRB_DRV_ACTIVE to match document. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit b18971d199cf35f68ffa22e4be1c477493fdb7e1 Author: Amit Kumar Salecha Date: Wed Aug 25 04:03:04 2010 +0000 qlcnic: fix fw recovery for PF Privilege function should wait for npar state to be operational before creating context. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 8cf61f890ac4c2a15acb24658feba13c9c838b52 Author: Amit Kumar Salecha Date: Wed Aug 25 04:03:03 2010 +0000 qlcnic: support port vlan id On NIC Partition capable adapter, Administrator can configure to tag packet with particular vlan id. Packet will be tagged and strip with that vlan id. Also if 'Tagging' flag is disable, other packet will be drop. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit e9a47700cb35bc84d4954f762a193b150722612e Author: Rajesh Borundia Date: Wed Aug 25 04:03:02 2010 +0000 qlcnic: eswitch config fixes o remove validation before deleting vlan id o Add missing 'break' while deleting vlan id. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit f2481f3df4521e731da36afe7f0fe19a5c93e46d Author: Tom Zanussi Date: Tue Aug 24 00:23:50 2010 -0500 perf tools: Fix linking errors with --as-needed flag External shared libraries should never be appended to the LDFLAGS as this messes the linking order. As EXTLIBS collects those libraries, it seems that perl and python libraries should also be appended to EXTLIBS. Also fix the broken linking order. This is a refresh of a patch by Ozan Çağlayan and improved by both Tom Zanussi and Kirill A. Shutemov. Cc: Ozan Çağlayan Tested-by: Kirill A. Shutemov Tested-by: Tom Zanussi LKML-Reference: <1282627430.28324.8.camel@tropicana> Signed-off-by: Tom Zanussi Signed-off-by: Arnaldo Carvalho de Melo commit acf01734b1747b1ec4be6f159aff579ea5f7f8e2 Author: Borislav Petkov Date: Wed Aug 25 18:28:23 2010 +0200 x86, tsc: Remove CPU frequency calibration on AMD 6b37f5a20c0e5c334c010a587058354215433e92 introduced the CPU frequency calibration code for AMD CPUs whose TSCs didn't increment with the core's P0 frequency. From F10h, revB onward, however, the TSC increment rate is denoted by MSRC001_0015[24] and when this bit is set (which should be done by the BIOS) the TSC increments with the P0 frequency so the calibration is not needed and booting can be a couple of mcecs faster on those machines. Besides, there should be virtually no machines out there which don't have this bit set, therefore this calibration can be safely removed. It is a shaky hack anyway since it assumes implicitly that the core is in P0 when BIOS hands off to the OS, which might not always be the case. Signed-off-by: Borislav Petkov LKML-Reference: <20100825162823.GE26438@aftab> Signed-off-by: H. Peter Anvin commit 90f18e63fbd005133624bf18a5e8b75c92e90f4d Author: Srikar Dronamraju Date: Wed Aug 25 19:13:29 2010 +0530 perf symbols: List symbols in a dso in ascending name order Given a dso, list the symbols in ascending name order. Needed for listing available symbols from perf probe. Cc: Ananth N Mavinakayanahalli Cc: Andrew Morton Cc: Christoph Hellwig Cc: "Frank Ch. Eigler" Cc: Frederic Weisbecker Cc: Jim Keniston Cc: Mark Wielaard Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Naren A Devaiah Cc: Oleg Nesterov Cc: "Paul E. McKenney" Cc: Randy Dunlap Cc: Srikar Dronamraju Cc: Steven Rostedt LKML-Reference: <20100825134329.5447.92261.sendpatchset@localhost6.localdomain6> Signed-off-by: Srikar Dronamraju Signed-off-by: Arnaldo Carvalho de Melo commit 3c916cc28ca31892d96215eaf99c1d592884961d Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 17:18:35 2010 -0300 perf hists browser: Introduce "expand/collapse all callchains" action When looking at a callchains enabled perf data file one can find it tiresome to start with all callchains collapsed and then to have to go one by one expanding them. So associate 'E' with "Expand all callchains" and 'C' with "Collapse all callchains". This way now one can have the top level view and then switch to/from having all callchains expanded. More work is needed to allow expanding just from one branch down to its leaves. Reported-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 163caed90203a7cab66326ce2be138715dc7c5da Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 16:30:03 2010 -0300 perf hists browser: Init the has_children fields just once Not everytime we show the callchains, removing duplicated initialization of this field. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 293db47f4753f5746e5aaa998ceb24dff662cf7e Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 16:05:36 2010 -0300 perf hists browser: replace rb_first() != NULL by !RB_EMPTY_ROOT() Its way too stupid to use rb_first() for just caching if there are children, use the cheaper RB_EMPTY_ROOT() instead. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit e569aa78ba01f7f66e016a4d57310fd041524d17 Merge: 4562487 268bae0 Author: John W. Linville Date: Wed Aug 25 14:51:42 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem Conflicts: drivers/net/wireless/libertas/if_sdio.c commit 903786a5626e7214d97b232bece88ee75e37d021 Author: Wey-Yi Guy Date: Tue Aug 24 07:27:56 2010 -0700 iwlwifi: fix compile error without debugging support Encounter compiler error when iwlwifi debugging support is disabled, fix it. This compiler error was introduced by the previous WiFi/BT coexist patchset. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 5eb5a52da6ef04604cf8faca43ec670f69f417d3 Author: Johannes Berg Date: Wed Aug 25 14:34:01 2010 +0200 mac80211: fix mesh advertisement When a mac80211-based driver advertises mesh mode support, this will be advertised to userspace. However, if mac80211 was compiled without mesh support, then that won't actually be true. Fix this by removing the bit for mesh if mesh isn't compiled in. Since this synchronizes what we advertise to cfg80211 and actually support, it means we can now rely on cfg80211's interface type checks and need not check again in mac80211. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 45f7e3116fad77e6dd15cb0e2eaccb7de7b806c9 Author: Christian Lamparter Date: Tue Aug 24 23:29:05 2010 +0200 p54: better rssi->dbm conversion for longbow phys This patch should fix the dodgy signal and noise value reports for most longbow (p54spi) users: e.g.: (an older tcpdump extract) > 2.0 Mb/s 2437 MHz (0x00a0) -49dB signal -41dB noise > 1.0 Mb/s 2437 MHz (0x00a0) 4dB signal -41dB noise The formula is taken from stlc45xx: http://gitorious.org/stlc45xx/mainline/blobs/master/stlc45xx.c#line1199 Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 2c15a0cf27a74213a714cc7be31685b841f7c1ac Author: Christian Lamparter Date: Tue Aug 24 19:22:42 2010 +0200 mac80211: fix rcu-unsafe pointer dereference This patch fixes a potential crash (null-pointer de- reference) which was introduced in my previous patch: "mac80211: AMPDU rx reorder timeout timer" During a BA teardown, the pointer to the soon-to-be-gone tid_ampdu_rx element will be nullified. Therefore the release timer mechanism has to be careful not to accidentally access the item without any RCU protection. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 74b70a4e38d542843fccfb367dce1ac861cc3890 Author: Johannes Berg Date: Tue Aug 24 12:15:53 2010 +0200 nl80211: fix missing nesting commit 95a6ccbb46c70cff376684c752831c014c87029d Author: Johannes Berg Date: Thu Aug 12 15:38:38 2010 +0200 cfg80211/mac80211: extensible frame processing introduced a netlink bug that caused parsing errors in userspace because it forgot to close a nesting, which would advertise a nesting length of zero to userspace, which then completely threw off parsing and led to Illegal nla->nla_type == 0 being printed by libnl. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit f8d8b7a13d3d61f99bf3dc5c9650f87f9818d7a7 Author: Arnaud Patard (Rtp) Date: Mon Aug 23 23:02:22 2010 +0200 rt2x00: fix "buffer size not provably correct" build warning rt2x00 debugfs interface doesn't check the size of the data coming from userspace, leading to a build warning. Fix That. v2: return EINVAL if input is too long Signed-off-by: Arnaud Patard Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 8d1331b37d5b656a7a8e561f8e9d7661dd00c910 Author: Ivo van Doorn Date: Mon Aug 23 19:56:07 2010 +0200 rt2x00: Fix max TX power settings During initialization each driver reads the default TX power for each individual channel. However mac80211 only accepts the maximum value (which is also handled as default value). As a result, the TX power of the device was being limited to the default value, which is often quite low compared to the real maximum acceptable value. This patch allows each driver to set the maximum value on a per-channel basis which is forwarded to mac80211. The default value will be preserved for now, in case we want to update mac80211 to differentiate between the maximum and default txpower. This fixes bug complaining about limited TX power values like: https://bugzilla.kernel.org/show_bug.cgi?id=16358 Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 46323e112ce2a0fdaf2dd5389f95b248576b8fda Author: Ivo van Doorn Date: Mon Aug 23 19:55:43 2010 +0200 rt2x00: Fix channel configuration for RF3052 We missed a check for RF3052 in the config_channel configuration function. As a result the channel is not properly configured for RF3052 devices. This also requires rt2800_config_channel_rf3xxx to support 5GHz channels, so we must apply the TXPOWER_A_TO_DEV and TXPOWER_G_TO_DEV conversions during rt2800_config_channel() Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit b9a07ae9d9e09662013992088fd58ffbcb2f9a30 Author: Ivo van Doorn Date: Mon Aug 23 19:55:22 2010 +0200 rt2x00: Merge rt2800{pci/usb} radio enabling/disabling code to rt2800lib The functions rt2800pci_enable_radio and rt2800usb_disable_radio are almost equal and can be merged into rt2800lib. This reduces the number of functions which must be exported from rt2800lib to the drivers at the same time. Also rt2800pci_disable_radio and rt2800usb_disable_radio are almost equal and can be merged into rt2800lib in a similar fashion. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 21595bd50dd1ef16cf0dce33835caaf5ab458d4c Author: Ivo van Doorn Date: Mon Aug 23 19:55:01 2010 +0200 rt2x00: Fix rt2800 retry calculation The retry count for a frame is calculated by the realized MCS rate subtracting of the requested MCS rate. However during TX done reporting we accidently override the requested MCS rate with the realized MCS rate. This causes the retry count to be reset to 0 always, and feeding invalid rate information into minstrel_ht. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 54e34fbb6fae67b3dba4c2600d3c65aca81635ae Author: Ivo van Doorn Date: Mon Aug 23 19:54:41 2010 +0200 rt2x00: Remove Q_INDEX_CRYPTO and ENTRY_OWNER_DEVICE_CRYPTO Q_INDEX_CRYPTO and ENTRY_OWNER_DEVICE_CRYPTO where initially added with the plan to implement hardware encryption for rt2500pci. However there are no plans to do so anymore as the crypto mechanism in rt2500pci is very different then any other Ralink device. So we can now safely remove the definitions, and don't think about this feature anymore. :) Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 5eb7efe8a4807d98a277280e1317e5094eedfb6b Author: Ivo van Doorn Date: Mon Aug 23 19:54:21 2010 +0200 rt2x00: Move direct access to queue->entries to rt2x00queue.c All access to queue->entries through the Q_INDEX/Q_INDEX_DONE variables must be done using spinlock protection. It is best to manage this completely from rt2x00queue.c. For safely looping through all entries in the queue, the function rt2x00queue_for_each_entry is added which will walk from from a index range in a safe manner. This also fixes rt2x00usb which walked the entries list from 0 to length to kill each entry (killing entries must be done from Q_INDEX_DONE to Q_INDEX to enforce TX status reporting to occur in the correct order. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit ee1e755f84dfd5d482076c642fac830aafdc482b Author: Ivo van Doorn Date: Mon Aug 23 19:54:02 2010 +0200 rt2x00: Reduce indenting Cosmetic change, reduce indenting. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 933314582ee5db00123683cf4c4d713ec9add306 Author: Ivo van Doorn Date: Mon Aug 23 19:53:39 2010 +0200 rt2x00: Simplify arguments to rt2x00 driver callback functions write_tx_desc shouldn't pass a rt2x00dev and skb pointer, instead it should use the same format as other TX frame callback functions, which is passing the data_entry pointer which contains all the information which is needed to work on a TX frame. Most callers of the kick_tx_queue and kill_tx_queue already have the data_queue pointer, so rather then sending the QID with the given function, when the driver requests a new pointer to the data_queue, it is more efficient to just send the data_queue pointer directly. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 18c121d7558a550e8e48956fbd389759a850ab53 Author: Johannes Berg Date: Mon Aug 23 07:57:17 2010 -0700 iwlwifi: disable aggregation queue if stopped early When aggregation is stopped again for some reason before the queue we selected has drained, we will currently leak the TX queue and keep it enabled for aggregation. Normally this doesn't happen, so the problem is rarely seen. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit befe8c469baebe8a0fb5bd9b7cd4afd8c54ebbd5 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:16 2010 -0700 iwlwifi: add bt traffic load debugfs file Add the debugfs file to show current bluetooth traffic load Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit f78e545449bb07a28b419d888c4c558b13d9e5e1 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:15 2010 -0700 iwlagn: update bt status upon scan complete Update bt status upon receive scan complete notification Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit b6e116e8bf7d749b0743c167bd47930c22c77a82 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:14 2010 -0700 iwlagn: generic bt coex functions Move bt coex functions to iwl-agn-lib.c, so those functions can be shared by multiple wifi/bt combo devices Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit da5dbb971573efda54c7c39e7e4ccd3fc7c86e49 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:13 2010 -0700 iwlagn: set traffic load based on multiple factors Current BT traffic load should based on the following conditions: 1. BT On/Off status 2. Channel announcement enable/disable 3. Curren traffic load report from uCode Need to modify rate scale to down-grade from MIMO to SISO if detected high BT traffic load. Also need to make sure not using chain "B" with high BT traffic or if it is in "full concurrency" mode. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit f37837c962c309f1d90636626c779497b614be42 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:12 2010 -0700 iwlagn: add bt_ch_announce module parameter Add bt_ch_announce module parameter to enable/disable BT channel announcement mode; default is "enable" Based on the bt channel announcement module parameter to configure the bt_config host command. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 22bf59a03aacc221483e5aad1af903fc191ae958 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:11 2010 -0700 iwlagn: add additional bt related parameters Add additional bt coex related parameters and initialize at init time. Thoese parameters will be used in later implementations. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit fbba94104fb44d2f984e767cd8ac1edd80cb03d5 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:10 2010 -0700 iwlagn: parsing uart message and take actions 1. Based on uart message from uCode, re-configure BT kill ack mask messages from uCode 2. send REPLY_BT_COEX_SCO command to uCode based on the uart frame received from uCode Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 5d297d50653ba0c498e0b1e7b72b6611651357aa Author: Wey-Yi Guy Date: Mon Aug 23 07:57:09 2010 -0700 iwlagn: add bt prio_boost to .cfg Use .cfg to configure the default bt priority boost value; the default bt priority boost is 0xf0 Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit a4b96cc4e3fa99d5d6d8ad38c5b0aa4c3aa8a828 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:08 2010 -0700 iwlwifi: add bt_init_traffic_load as configurable parameter Adding configurable parameter in .cfg for the initial Bluetooth traffic load; set it to IWL_BT_COEX_TRAFFIC_LOAD_NONE for now, but can be change for debugging or other reason. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 7bdc473c7a52497af9fe8c73e4745615a2825aaa Author: Wey-Yi Guy Date: Mon Aug 23 07:57:07 2010 -0700 iwlwifi: add debugfs to control stuck queue timer In current implementation, stuck queue timer is fixed to 1 second. Add debugfs file to modify the timer to enhance the flexibility: Set the monitor_period as following: 0: disable stuck queue force reset function 1 - 60000: monitor period (1 - 60 second) Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit c6c996b5de82b5de4b4b5a31941aab725961a6dd Author: Wey-Yi Guy Date: Mon Aug 23 07:57:06 2010 -0700 iwlwifi: indicate bt_kill condition when receive tx reply Generate log when receive tx reply with bt_kill count > 0 and in advance bt coex mode Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit aeb4a2eec2b1d2ac6507e9cec2aecc46fdba8741 Author: Wey-Yi Guy Date: Mon Aug 23 07:57:05 2010 -0700 iwlagn: wifi/bt coex configuration sequence bt config command need to send before the init calibration command, driver need to let uCode know that calibrations are being performed now in order to assure antenna is not being taken to BT use during radio/dsp reads/writes Also, bt_coex_priorty_table command need to be send right after the bt_config_command during init sequence. Followed by bt coex envelope command to initialize and prepare uCode bt state machine Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit bee008b78307ccc2e17c7ec152dd2098d5f2e1fa Author: Wey-Yi Guy Date: Mon Aug 23 07:57:04 2010 -0700 iwlwifi: add bt full concurrency support Adding the bluetooth full concurrency support for WiFi/BT combo devices. Driver should configure uCode to operate in "full concurrency" mode (via LUT) if both conditions are met: - Antenna Coupling is more than 35dB - WiFi Channel Inhibition Request is hornored by BT Core Currently, there is no antenna coupling information provided by uCode; use module parameter to specified the antenna coupling in dB. When in "full concurrency" mode, driver need to download different LUT to uCode while sending bt configuration command; also, driver need to configure the device operate in 1x1 while in full concurrency mode. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit bd6e2d579949aede258c673caf4b1eb39b95e172 Author: Johannes Berg Date: Mon Aug 23 07:57:03 2010 -0700 iwlwifi: use antenna A only under high BT load When bluetooth indicated high load, we should use only antenna A in 2.4 GHz for management frames. Add this condition to iwl_toggle_tx_ant() to make sure it'll always be met. Note that scanning has a separate way of forcing the antenna, because we should scan on antenna A only regardless of BT traffic load. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 74e5c41bafb07f73d8445dcf5a6a968a717d3daa Author: Wey-Yi Guy Date: Mon Aug 23 07:57:02 2010 -0700 iwlwifi: Relax uCode timeout/error checking for 6000g2b Disable plcp error checking for 6000g2b devices, with wifi/bt coex; this got trigger too often, disable for now until finding better trigger point. Also extend the firmware reload timer much longer for BT coex to make sure there are will be no mistake to reload firmware too fast and too often. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 511b082d29bc68c722abd34c1f0219b5754c1163 Author: Johannes Berg Date: Mon Aug 23 07:57:01 2010 -0700 iwlagn: keep BT settings across restart The BT SCO needs to be re-applied to the device, while the traffic load just needs to be correct in software. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 59079949faed96cc2756d5a59c185b304f1bc840 Author: Johannes Berg Date: Mon Aug 23 07:57:00 2010 -0700 iwlagn: disable gen2b BT coexistence in IBSS IBSS doesn't allow for coexistence, so it should be disabled. Additionally, disable reacting to the BT profile notification when in IBSS mode, it likely won't be sent by the device to start with though. Also, in IBSS mode, BT coexistence isn't as fully-featured and we must use a single antenna only. So instead of peppering the code with new checks, simply pretend we are in high BT traffic load, which has the needed effect of disabling antenna B use. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit a11741383ba6eef707b8330f0d3c1da6a7478ee3 Author: Johannes Berg Date: Mon Aug 23 07:56:59 2010 -0700 iwlwifi: reset BT when going down When we turn off the device, reset BT data so that we don't have outdated information when we come up again. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 290f599cc6ee8c769355486b7d98fd1dc5115d76 Author: Johannes Berg Date: Mon Aug 23 07:56:58 2010 -0700 iwlagn: let bluetooth traffic load impact rate scale Depending on the amount of bluetooth traffic, using the shared antenna (antenna B) will have adverse impact on both bluetooth and wireless traffic. Add controls to improve the situation by making rate scaling depend on the BT load. When there's high bluetooth traffic load, there's little point in trying to aggregate as BT traffic would disrupt the aggregated frames all the time, so simply don't start sessions then. When BT traffic returns to lower levels, the rate scaling will come here again automatically when wifi traffic is high enough, and then it will be able to successfully enable aggregation. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 9e4afc21895476114f131b70d1e8fdc3a9c75bb3 Author: Johannes Berg Date: Mon Aug 23 07:56:57 2010 -0700 iwlwifi: add BT notification support for bt coex When advanced bt coex enabled, uCode will send bt status notification to driver, here add support for it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit d44ae69e80358ff88d39a14d92c27dba4e90c0c5 Author: Johannes Berg Date: Mon Aug 23 07:56:56 2010 -0700 iwlagn: set BT IGNORE for some frames The BT ignore bit should be set when transmitting auth, assoc response and eap frames. Also, scanning should set the BT ignore bit for the probe request transmission; Note that we only use the non-shared antenna. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 670245ed4515cbc5e39e39d44965cb7add2c8aa9 Author: Johannes Berg Date: Mon Aug 23 07:56:55 2010 -0700 iwlagn: implement advance BT config command 6000g2b hardware implements advance bluetooth coexist command, implement base on the new API command strucutre. Also increment the API 5 to support the advance BT/WIfi coex. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 0288d237fff4cbe54879e3c3433ae5782874f98c Author: Johannes Berg Date: Mon Aug 23 07:56:54 2010 -0700 iwlwifi: add 6000g2b BT coexist API The new 6000g2b hardware requires a different bluetooth coexist implementation on the host, this adds the command/notification definitions for it. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 767d055d6a85435bf1d5e63a5097402a5399cfdc Author: Wey-Yi Guy Date: Mon Aug 23 07:56:53 2010 -0700 iwlwifi: comments cleanup No code or function changes, just some cleanup work for out-of-date comments Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 5c673fbf193e272c8c786931b31f23090ab3cb9d Author: Wey-Yi Guy Date: Mon Aug 23 07:56:52 2010 -0700 iwlwifi: update out-of-date comments No functional changes, update comments to match current file structure Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 258086a48b766d12a500f98834654ffa927ca475 Author: Christian Lamparter Date: Sun Aug 22 23:48:25 2010 +0200 mac80211: cancel restart_work in ieee80211_unregister_hw Unlike most other workqueue-tasks, the restart_work is not scheduled onto mac80211's private per-interface workqueue, but onto one of the system-wide workqueues. Therefore the mac80211-stack has to cancel any pending restarts, before destroying the shared device context and handing back the memory. Otherwise - under very unlucky circumstances - there could be a stale work- item left, because some other kernel component might have delayed the execution of ieee80211_restart_work for too long. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 11791a6f7534906b4a01ffb54ba0b02ca39398ef Author: Christian Lamparter Date: Sun Aug 22 22:41:33 2010 +0200 p54usb: fix off-by-one on !CONFIG_PM The ISL3887 chip needs a USB reset, whenever the usb-frontend module "p54usb" is reloaded. This patch fixes an off-by-one bug, if the user is running a kernel without the CONFIG_PM option set and for some reason (e.g.: compat-wireless) wants to switch between different p54usb modules. Cc: Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 049fbfeeb5c7edb260848a89af4895e3dabfa77e Author: RafaƂ MiƂecki Date: Sun Aug 22 21:47:32 2010 +0200 b43: N-PHY: add missing phyrxchain setting and fix warning in RX core function Signed-off-by: RafaƂ MiƂecki Signed-off-by: John W. Linville commit 5effdf18aa10c3683094140cf893c399d581d39f Author: Kalle Valo Date: Sun Aug 22 22:47:02 2010 +0300 wl1251: move include guard after the license Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit ba0492cf904629f7900fc213ee729f23a0084ad6 Author: Kalle Valo Date: Sun Aug 22 22:46:43 2010 +0300 wl1251: remove copyright contact person As my nokia address doesn't work anymore, it's better just to remove the copyright contact altogether. We have MODULE_AUTHOR() scripts for these anyway. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit fe71559239b2227649198f032daa5a877204771b Author: Joe Perches Date: Sun Aug 22 13:02:03 2010 -0700 MAINTAINERS: add info for include/linux/spi/wl12xx.h Signed-off-by: Joe Perches Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 4c5f7d7a1e6cf20ad515dad8a63c0813fac5bcea Author: Kalle Valo Date: Sun Aug 22 22:46:28 2010 +0300 wl12xx: change contact person for the include file Luciano should be the contact person for the include/linux/spi/wl12xx.h file. Signed-off-by: Kalle Valo Acked-by: Luciano Coelho Signed-off-by: John W. Linville commit 31c726f0963cd022680dacd0c9f0036d7e12a8b2 Author: Kalle Valo Date: Sun Aug 22 22:46:15 2010 +0300 wl1251: update my email address I use now my adurom.com address. Signed-off-by: Kalle Valo Signed-off-by: John W. Linville commit d7065c305544d575c3697b46ddbc8601de03e46f Author: Christian Lamparter Date: Sun Aug 22 00:00:14 2010 +0200 p54spi: Kconfig option for config blob This patch adds an Kconfig option, which allows the user to select, whenever he/she wants to include a 4k blob for generic calibration and interface values into the driver, or cut the module size by about 15 to 20%. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit b4c52612069c2756ad7506754765bfee57315efe Author: Bob Copeland Date: Sat Aug 21 16:39:03 2010 -0400 ath5k: log descriptor chains at a new debug level Descriptors are currently logged with ATH5K_DEBUG_RESET, which isn't really apt, and also means we can't see just the descriptor setup or just the resets. Add a new debug level just for that. Acked-by: Bruno Randolf Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 8801df86d79b1ffda94e3b937bc19bbe9a66557d Author: Bob Copeland Date: Sat Aug 21 16:39:02 2010 -0400 ath5k: trivial spelling fixes Fix some comments: s/transmition/transmission/ s/puting/putting/ Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 2738bd682df546f34654ed3d59dfc9ebe8d04979 Author: Bob Copeland Date: Sat Aug 21 16:39:01 2010 -0400 mac80211: trivial spelling fixes Fix spelling and readability of a few lines of kernel doc: s/issueing/issuing/g s/approriate/appropriate/g s/supported by simply/supported simply by/ s/IEEE80211_HW_BEACON_FILTERING/IEEE80211_HW_BEACON_FILTER/g Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit ff67bb86d448c26cb9110e9681669dc4a8aa5e0a Author: Wey-Yi Guy Date: Sat Aug 21 07:23:29 2010 -0700 mac80211: fix warning for un-used parameter mesh_hdr only used when CONFIG_MAC80211_MESH is defined Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 3a59babbee409fa5f1b2dd8a14c40803b5eb288b Author: David Kilroy Date: Sat Aug 21 12:13:45 2010 +0100 orinoco: update status in MAINTAINERS Signed-off-by: David Kilroy Cc: Pavel Roskin Cc: David Gibson Signed-off-by: John W. Linville commit 9736ebfe39687f2edde9e97fc188f013a31048f6 Author: David Kilroy Date: Sat Aug 21 12:08:15 2010 +0100 orinoco: Fix walking past the end of the buffer Fix walking past the end of the bitrate_table array in the case when the loop counter == BITRATE_TABLE_SIZE. Reported by: Denis Kirjanov Signed-off-by: David Kilroy Signed-off-by: John W. Linville commit 0fb9a9ec27718fbf7fa3153bc94becefb716ceeb Author: Joe Perches Date: Fri Aug 20 16:25:38 2010 -0700 net/mac80211: Use wiphy_ Standardize logging messages from printk(KERN_ "%s: " fmt , wiphy_name(foo), args); to wiphy_(foo, fmt, args); Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit b62177a0aa0521fd07cd7501534c0c3b256ebce6 Author: Stanislaw Gruszka Date: Fri Aug 20 15:23:47 2010 +0200 iwlwifi: fix canceling monitor_recover timer To make del_timer_sync() works we have to assure that timer function does not rearm the timer. To achieve that we cancel timer with STATUS_EXIT_PENDING bit set in __iwl{3945,}_down function. Patch also fix priv->txq memory usage after free for iwl3945, because it move timer cancellation before iwl3945_hw_txq_ctx_free(priv) is called. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 18b308d7994e0e2a360b979f159fa7d2b91a26b1 Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 12:47:44 2010 -0300 perf hists: Fix hist_entry__init_have_children It wasn't setting the ms.has_children for the hist_entry itself, just for the callchain Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 7de5d895b2020260190db0021de646f3f22f755e Merge: 04fba67 502adf5 Author: Ingo Molnar Date: Wed Aug 25 13:09:58 2010 +0200 Merge branch 'linus' into perf/core Merge reason: pick up perf fixes Signed-off-by: Ingo Molnar commit 04fba67163a9e6132614b72b33bb2743bd33ffb3 Author: Lin Ming Date: Wed Aug 25 14:49:09 2010 +0800 perf: Remove unused variable This fixes the following build warning introduced by the callchain rework: arch/x86/kernel/cpu/perf_event.c:1574: warning: ‘perf_callchain_entry_nmi’ defined but not used Signed-off-by: Lin Ming Cc: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <1282718949.16443.75.camel@minggr.sh.intel.com> Signed-off-by: Ingo Molnar commit d0cd7425fab774a480cce17c2f649984312d0b55 Author: H. Peter Anvin Date: Tue Aug 24 17:32:04 2010 -0700 x86, bios: By default, reserve the low 64K for all BIOSes The laundry list of BIOSes that need the low 64K reserved is getting very long, so make it the default across all BIOSes. This also allows the code to be simplified and unified with the reservation code for the first 4K. This resolves kernel bugzilla 16661 and who knows what else... Signed-off-by: H. Peter Anvin LKML-Reference: commit 4562487a00445eab96311365ba15c41dc4d043cd Author: David S. Miller Date: Tue Aug 24 15:06:27 2010 -0700 mlx4_en: Fix build warning in mlx4_en_create_rx_ring. drivers/net/mlx4/en_rx.c: In function ‘mlx4_en_create_rx_ring’: drivers/net/mlx4/en_rx.c:305: warning: label ‘err_map’ defined but not used Signed-off-by: David S. Miller commit 04714a16db6fd8d175050a01459fd16660fba18c Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:49 2010 +0000 mlx4_en: updated driver version Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit fa37a9586f92051de03a13e55e5ec3880bb6783e Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:46 2010 +0000 mlx4_en: Moving to work with GRO Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 0533943c5c45cce2e26432bf0a6b8e114757c897 Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:42 2010 +0000 mlx4_en: UDP RSS support Adding capability for RSS for UDP traffic, hashing is done based on IP addresses and UDP port number. The support depends on HW/FW capabilities. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit d7e1a487d31933deba742c1bd3ffe0f73220b729 Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:38 2010 +0000 mlx4_en: reconfiguring mac address. When Mac address is removed from one port of the CX2 device, the other device should reconfigure its Mac. This fixes an issue with failover, when both ports have the same Mac address, and one of the ports, is closed, the second one stops receiving traffic. (bugzilla #1965 at bugs.openfabrics.org) Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit bc081cecf3cb3da236061cf353d74c42ba7e37fb Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:34 2010 +0000 mlx4_en: get/set ringsize uses actual ring size In case that the rings were not fully filled, the report in Ethtool should be according to the actual size that was filled. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 7699517db435fd24143bd32dd644275e3eeb4c86 Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:23 2010 +0000 mlx4_en: Fixing report in Ethtool get_settings The report now based on query from FW, giving the correct tranciever type and link speed. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit e7c1c2c46201e46f8ce817196507d2ffd3dafd8e Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:18 2010 +0000 mlx4_en: Added self diagnostics test implementation The selftest includes 5 features: 1. Interrupt test: Executing commands and receiving command completion on all our interrupt vectors. 2. Link test: Verifying we are connected to valid link partner. 3. Speed test: Check that we negotiated link speed correctly. 4. Registers test: Activate HW health check command. 5. Loopback test: Send a packet on loopback interface and catch it on RX side. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 3005ad40b95168aad530f1179cff47411b3ea8da Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:07 2010 +0000 mlx4_en: Validate port up prior to transmitting We might try to use resources which were not activated. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit e5cc44b2eb2b8192c9623eb877936063ba8556f3 Author: Yevgeny Petrilin Date: Tue Aug 24 03:46:01 2010 +0000 mlx4_en: Reporting link state with KERN_INFO Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit a0b4e6e09c79df9efdb9872f30eb4cdb291c6c78 Author: Yevgeny Petrilin Date: Tue Aug 24 03:45:54 2010 +0000 mlx4_en: Fixed MAX_TX_RINGS definition Defined as sum of default number of TX rings and number of rings used for priority flow control mode. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 7c2873809dd1a2d5e46be3f0ff2071fcdc3cf0fd Author: Yevgeny Petrilin Date: Tue Aug 24 03:45:45 2010 +0000 mlx4_en: performing CLOSE_PORT at the end of tear-down process All port's resources should be closed before we give the CLOSE_PORT command to the firmware. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 8bf2e58f8b7a14244bf182ad0a3ba0457ad70c62 Author: Yevgeny Petrilin Date: Tue Aug 24 03:45:30 2010 +0000 mlx4_en: Setting dev->perm_addr field Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 00d7d7bc6e886ef48af6ed766eb12b8cec241d35 Author: Yevgeny Petrilin Date: Tue Aug 24 03:45:20 2010 +0000 mlx4_en: Setting actual RX ring size When configuring HW resources, the RX ring size that is passed should be the actual size that depends on number of buffers that we succeeded to allocate. The mask for ring size should also be configured accordingly Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit 69351a2933428515b31fe54100f90a669cbbd384 Author: Yevgeny Petrilin Date: Tue Aug 24 03:45:05 2010 +0000 mlx4_en: Fixed incorrect unmapping on RX flow. When allocating new fragments to replace the ones that would be passed to the stack, The fragments that should be replaced, are the ones that were already used. Signed-off-by: Yevgeny Petrilin Signed-off-by: David S. Miller commit c2e3143e3c46ede22336316b3ff4746727c0d93a Author: Stephen Hemminger Date: Tue Aug 24 14:48:10 2010 -0700 tc: add meta match on receive hash Trivial extension to existing meta data match rules to allow matching on skb receive hash value. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 5a46790ca4c40fdb6ed5336d7d6b593c96326b31 Author: Joe Perches Date: Tue Aug 24 14:46:53 2010 -0700 include/linux/if_ether.h: Remove unused #define MAC_FMT Last use was removed, so remove the #define. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit ec550d246e38e1b4ea8604b5c71ccb72e38f3290 Author: Eric Dumazet Date: Tue Aug 24 14:45:09 2010 -0700 net: ip_append_data() optim Compiler is not smart enough to avoid a conditional branch. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 268bae0b6879f238ba57f5f801958d1254e136f7 Merge: d70e969 6a017e0 Author: John W. Linville Date: Tue Aug 24 16:35:40 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 Conflicts: drivers/net/wireless/iwlwifi/iwl-core.c drivers/net/wireless/iwlwifi/iwl-core.h commit d70e96932de55fb2c05b1c0af1dff178651a9b77 Author: Johannes Berg Date: Thu Aug 19 16:11:27 2010 +0200 cfg80211: add some documentation Add some documentation for cfg80211. I'm hoping some of the regulatory documentation will be filled by somebody more familiar with it, hint hint! :) Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 672ddeffeb2afad18fe1a2fc5aa14a07b4da1551 Author: Johannes Berg Date: Wed Aug 18 09:35:22 2010 -0700 iwlwifi: do not spuriously call ieee80211_scan_completed When a scan is aborted because the corresponding virtual interface is removed, we may still later attempt to tell mac80211 that the scan completed. This is obviously wrong, since we already told it that it was aborted, so don't do that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 54c8067a4a0606f466faf0f30b16684b00060e70 Author: Johannes Berg Date: Wed Aug 18 09:35:21 2010 -0700 iwlagn: do not check for AP mode for WEP keys Even when we configure WEP keys in AP mode ones without a station pointer are default keys, so don't check for AP mode here. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 21cb987914cb5334af78378141efed77505ea987 Author: Vivek Natarajan Date: Wed Aug 18 19:57:49 2010 +0530 ath9k_htc: Add support for bluetooth coexistence. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit d99eeb87420a6da1f87064c7fa70bdf299699d90 Author: Vivek Natarajan Date: Wed Aug 18 19:57:48 2010 +0530 ath9k_common: Move bt_stomp to common for sharing with ath9k_htc. Signed-off-by: Vivek Natarajan Signed-off-by: John W. Linville commit 2a5fb7b088f8418958775774dda9427d6c73c522 Author: Johannes Berg Date: Wed Aug 18 17:44:36 2010 +0200 nl80211: some documentation fixes The nl80211 documentation is currently never generated, so problems have accumulated. Fix most of the trivial ones. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 633dd1ea683d907af944bcd9814092efe9869b05 Author: Johannes Berg Date: Wed Aug 18 15:01:23 2010 +0200 mac80211: fix docbook Fix a small problem in the documentation for ieee80211_request_smps, and a now erroneous inclusion of enum ieee80211_key_alg, which no longer exists after the change to ciphers. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7273b9700b74e8c26b612207aea47effb0e530bf Author: Grazvydas Ignotas Date: Tue Aug 17 22:46:55 2010 +0300 wl1251: wait for join command complete event Poll for join command completion instead of waiting blindly for 10 msecs. There is a timeout of 100 msecs, if the command doesn't complete by then, we return an error code. Based on wl1271 patch 99d84c1de8fdf5f9b09f07fdbc628857a040bf8b by Luciano Coelho. Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 5b44a1b5164c69cb274215fc79a9f4f5a1203c4d Author: Grazvydas Ignotas Date: Tue Aug 17 22:46:54 2010 +0300 wl1251: fix beacon filter table structure The beacon filter table configuration ACX structure had certain elements reversed, fix it to match TI driver. Based on wl1271 patch 1937e742639c03a6fe77239c3003ce9602302117 by Juuso Oikarinen. Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville commit d41776fad4c6601c1711d4e454291efd6687addb Author: Grazvydas Ignotas Date: Tue Aug 17 22:46:53 2010 +0300 wl1251: fix event handling mechanism In case both A and B events occured simultaneously, current code would only process A and clear both interrupts. Make it process both events instead. Based on wl1271 patches by Juuso Oikarinen: 1fd2794f36913992798184c464fe8f85753b13e0 13f2dc52c69bcca074cd12d4806953b2af45c386 Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 8d5ad08525f1a8e0484d125ba155dbd3c3282ab8 Author: Grazvydas Ignotas Date: Tue Aug 17 22:46:52 2010 +0300 wl1251: add missing __packed modifier for some structs Several acx and cmd structures are missing __packed modifier, add it. This was noticed while comparing them with corresponding wl1271 code. Signed-off-by: Grazvydas Ignotas Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 110ff6db6f6fbb946c099f49f666b59258746048 Author: Jay Sternberg Date: Thu Aug 12 12:15:55 2010 -0700 iwlwifi: move debug options into submenu more debug options being added so it is useful to move them into a submenu for ease of readability when using config commands like make menuconfig and make xconfig Signed-off-by: Jay Sternberg Signed-off-by: Wey-Yi Guy commit 3939608591d1d0cbb79d7afd08beabcfb5eb115f Author: Jay Sternberg Date: Thu Aug 12 10:24:07 2010 -0700 iwlwifi: enable experimental ucode support ucode firmware may need to be released as experimental for testing or debugging. released ucode filenames have the API version as the last component. experimental ucode files will have that component be "exp" and the fw_version string reported by ethtool will also contain the string EXP to clearly identify this ucode from released ucode. EXP is short for EXPERIMENTAL since fw_version has a max lenght on 32. this capability is controlled by Kconfig and defaulted to not be used. Signed-off-by: Jay Sternberg Signed-off-by: Wey-Yi Guy commit 79e88e79a29abede50bf82064ad9d9b1a625e42a Author: Wey-Yi Guy Date: Wed Aug 11 07:30:20 2010 -0700 iwlwifi: remove unused iwl_send_card_state function iwl_send_card_state() is not being call from anywhere, remove it. Signed-off-by: Wey-Yi Guy commit 172c1d112a38c8721fe1d7114e2ce1e8a91451c1 Author: Wey-Yi Guy Date: Wed Aug 4 12:02:43 2010 -0700 iwlwifi: configurable ampdu factor and density Add ampdu factor and density to .cfg, this allow both parameters can be configure per device based. Signed-off-by: Wey-Yi Guy commit 7ccc896f4c9d5f11e449368cf520565bf2073a9b Author: Wey-Yi Guy Date: Wed Aug 4 08:42:17 2010 -0700 iwlwifi: more generic name for rssi calc in iwlagn Change the define to more generic naming to match _agn devices since the rssi calculation are common function for 5000 series and up Signed-off-by: Wey-Yi Guy commit 30c1b0f7e96144e42e2be0bdec18d2475f5af31b Author: Wey-Yi Guy Date: Wed Aug 4 08:05:33 2010 -0700 iwlwifi: additional parameter in REPLY_RX_PHY_CMD Adding additional parameter in REPLY_RX_PHY_CMD, frame_time indicate the frame's time on the air based on byte count and frame rate calculation Signed-off-by: Wey-Yi Guy commit 80e9158c3fc1b55301b71cbeea2b31aa1d3c9b76 Author: Wey-Yi Guy Date: Tue Aug 3 08:23:32 2010 -0700 iwlagn: continue perform rate scale when error detected If for some reason, the actual link command not matching neither active nor search table; instead of return and not performing rate scale, by-pass the data collection and continue the rate scale process. Signed-off-by: Wey-Yi Guy commit b1a78858c4579d678444c007617292ccf6f7a315 Author: Wey-Yi Guy Date: Sat Jul 31 08:52:03 2010 -0700 iwlagn: adjust starting action for rate scale During rate scale, reset starting action after making action adjustment to avoid the possibility of break out of loop too early. Signed-off-by: Wey-Yi Guy commit 948f5a2f08cb782adf3c5bb92abc6dbec2b4275f Author: Johannes Berg Date: Thu Jul 29 07:07:51 2010 -0700 iwlwifi: refactor iwl_setup_rxon_timing All callers of iwl_setup_rxon_timing() also send the command right away, so rename the function to iwl_send_rxon_timing() and move the sending into it. Also, some callers clear the data, this can be done always and thus moved in as well. Finally, there's no reason for the function to acquire the spinlock, but it should be called with the mutex held, so assert that. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 3edb5fd6ac898182a186d403695986f6ff51ac65 Author: Shanyu Zhao Date: Tue Jul 27 20:45:15 2010 -0700 iwlwifi: cleanup iwl_set_rxon_channel() Update outdated comments of iwl_set_rxon_channel() to reflect the current signature. Also remove the unnecessary validation of the channel. Those channel info are constructed in iwlwifi driver and mac80211 will never modify the content of the struct. Also everytime before this function is called the channel info has been validated already (as a paranoid check). Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit aa2dc6b529d781a375f7ad3185198f6315865b06 Author: Shanyu Zhao Date: Wed Jul 28 13:40:39 2010 -0700 iwlwifi: avoid race condition in channel change When iwl_mac_config() is called by mac80211, the channel pointer hw->conf->channel can potentially change, resulting in mismatch band and channel number when configuring RXON command. To avoid this situation, save the channel pointer in local variables and validate the channel before using it. Note that priv->mutex is locked during the whole function so the local variables are safe. Same change is applied to iwl_mac_channel_switch() since basically it copies code from iwl_mac_config(). Also removed an outdated comment in the flow. Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy commit 81e95430aaa898799421617c2db2882386bab69a Author: Shanyu Zhao Date: Wed Jul 28 13:40:27 2010 -0700 iwlwifi: do not call ieee80211_frequency_to_channel A few cases in iwlwifi driver function ieee80211_frequency_to_channel() is called to get channel number from center frequency. This is not needed since the channel number is already saved in hw_value field of struct ieee80211_channel in function iwlcore_init_geos(). So replace those function calls with hw_value field of struct ieee80211_channel. Signed-off-by: Shanyu Zhao Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy commit 7469701e10adb6bcc3d66544bd9f6d553fc678c9 Author: Wey-Yi Guy Date: Wed Jul 28 09:18:54 2010 -0700 iwlwifi: make aggregation time limit configurable By default, aggregation time limit is 4000 uSec, add the parameter to .cfg to allow this parameter can be configure per device base if needed. Signed-off-by: Wey-Yi Guy commit b15826a795969cbdd85a0b5100165e240e6508e4 Author: Wey-Yi Guy Date: Wed Jul 28 09:18:53 2010 -0700 iwlwifi: max/min aggregation time limit Set the minimum and maximum for aggregation time limit in uSec. Signed-off-by: Wey-Yi Guy commit 2cbc19f3d0cfe6cf7d9d2b3fac52976c3f2c6e89 Author: Wey-Yi Guy Date: Fri Jul 23 16:49:44 2010 -0700 iwlwifi: additional comments in iwl_cfg No functional changes, just add additional comments to iwl_cfg structure Signed-off-by: Wey-Yi Guy commit 9c82d0a73f54adc2c8cc0ea10f91efc366b50992 Author: Wey-Yi Guy Date: Fri Jul 23 13:42:39 2010 -0700 iwlwifi: remove unused define IWL_SIXTY_SECS is not been used, remove it Signed-off-by: Wey-Yi Guy commit 24e0f9f84707560d029fe17395f71e99866b438b Author: Julian Calaby Date: Tue Aug 17 14:52:41 2010 -0400 Hostap: Fix "'ret' set but not used" warning message from GCC in hostap CC [M] drivers/net/wireless/hostap/hostap_ioctl.o drivers/net/wireless/hostap/hostap_ioctl.c: In function 'prism2_request_scan': drivers/net/wireless/hostap/hostap_ioctl.c:1666:6: warning: variable 'ret' set but not used Signed-off-by: Julian Calaby Signed-off-by: John W. Linville commit 6ddbf8cd39dc1faee7ba60337b11eb02edfcbee6 Author: Wey-Yi Guy Date: Fri Aug 6 12:39:14 2010 -0700 iwlwifi: fix thermal throttling related power management operation The current approach is very broken because it adds an often-used code path that will not initialise "cmd" at all. Signed-off-by: Johannes Berg Signed-off-by: Shanyu Zhao Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 2b2d7795371df85bb106513d1b5fec077a29176e Author: Johannes Berg Date: Tue Aug 17 12:08:07 2010 +0200 mac80211-hwsim: allow configuring IBSS It will not look standard-compliant in a sniffer because because it doesn't * sync TSF * adjust the TSF in beacons * send beacons at TBTT * cancel beacons when another phy sends However, it does allow testing the configuration and parts of the mac80211 code for IBSS and as such is still useful. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 352de5573f60af0ab054859931cfb68eecb1832b Author: Johannes Berg Date: Tue Aug 17 12:04:34 2010 +0200 wireless: move documentation books This moves mac80211 documentation into a new 802.11 bookset and also adds a cfg80211 book to the set. All of this is rather incomplete, but it's easier to work with big code moving as a separate patch. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit d7eb50c0f7cb5d3ebb7bea8c681a6dfda3819a3b Author: Christian Lamparter Date: Tue Aug 17 01:16:58 2010 +0200 p54: improve eeprom parser Like other vendors, p54* devices have a checksum for the EEPROM descriptor data. This patch enhances the parser code to generate and verify the data fields, before initializing the radio-chip on the card. Note: If you have to bootstrap an alternative EEPROM image for your device and you don't know how to generate a valid crc ccitt checksum, you should take a look at: http://git.kernel.org/?p=linux/kernel/git/chr/p54tools.git The "checksum" utility loads a binary p54 EEPROM blob (use the -f switch, to skip the check) and applies the correct crc automatically. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit b9c066597fdf38b126d2e0434d0ce18d22bbf401 Author: Christian Lamparter Date: Tue Aug 17 01:16:05 2010 +0200 p54spi: fix eeprom checksum This patch corrects the bogus descriptor checksum of our Nokia N8XX EEPROM blob. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 4e687b2226f47c656302b9c313bfe2ece85fe2ef Author: GĂĄbor Stefanik Date: Mon Aug 16 22:39:17 2010 +0200 b43: N-PHY: Implement RX core state setting for rev.2 and earlier PHYs Rev.3+ support coming in a later patch. Signed-off-by: GĂĄbor Stefanik Signed-off-by: John W. Linville commit d2730b2a6a019d14455556019d744ab051e6554b Author: GĂĄbor Stefanik Date: Mon Aug 16 22:39:16 2010 +0200 b43: N-PHY: Implement MAC PHY clock set Signed-off-by: GĂĄbor Stefanik Signed-off-by: John W. Linville commit e723ef305c36785c08af9463b3a3ec369dfcedcb Author: GĂĄbor Stefanik Date: Mon Aug 16 22:39:15 2010 +0200 b43: N-PHY: Fix typo in function name (gain_crtl -> gain_ctrl) Signed-off-by: GĂĄbor Stefanik Signed-off-by: John W. Linville commit e7f45d3ff8de9e936d870aba947b2e4ce88a1d1e Author: GĂĄbor Stefanik Date: Mon Aug 16 22:39:14 2010 +0200 b43: N-PHY: Implement Host Flags write during device init Signed-off-by: GĂĄbor Stefanik Signed-off-by: John W. Linville commit 0975cc8fbf5b61b188734f2edd9e588c7edff2a1 Author: Wey-Yi Guy Date: Sat Jul 31 08:34:07 2010 -0700 iwlwifi: separate thermal throttling function "Thermal Throttling" is an advance feature which only available for newer _agn devices. Move from iwl-core to iwl-agn for better code organization. Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 36d344131c154c0fb7dd6a3703fc1b29c56a75a1 Author: Julia Lawall Date: Mon Aug 16 18:27:30 2010 +0200 drivers/net/wireless/wl12xx: Use available error codes Error codes are stored in ret, but the return value is always 0. Return ret instead. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ local idexpression x; constant C; @@ if (...) { ... x = -C ... when != x ( return <+...x...+>; | return NULL; | return; | * return ...; ) } // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 9f19fa62edd2c397ed41c2dba29fb9f7144cb918 Author: Julia Lawall Date: Mon Aug 16 18:25:21 2010 +0200 drivers/net/wireless/wl12xx: Use available error codes In each case, error codes are stored in ret, but the return value is always 0. Return ret instead. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ local idexpression x; constant C; @@ if (...) { ... x = -C ... when != x ( return <+...x...+>; | return NULL; | return; | * return ...; ) } // Signed-off-by: Julia Lawall Acked-by: Kalle Valo Signed-off-by: John W. Linville commit 30bf4169ad163047f87a2555cb33aa55f5d5e2bc Author: Bob Copeland Date: Sun Aug 15 13:03:15 2010 -0400 ath5k: don't enable probe request rx for STAs AR5K_RX_FILTER_PROBEREQ enables reception of probe requests, but the filter flag FIF_BCN_PRBRESP_PROMISC is actually about receiving beacons and probe _responses_, so we shouldn't turn on the filter when scanning. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 4afd89d9cf17df46c3cfa1eb744232e345b3b0e6 Author: Bob Copeland Date: Sun Aug 15 13:03:14 2010 -0400 ath5k: remove all mention of monitor iftype Monitor interfaces are never seen by the driver so these cases are never reached. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 23538c268c834d73a2f3e65a06ea6bf218ba1a0e Author: Bob Copeland Date: Sun Aug 15 13:03:13 2010 -0400 ath5k: remove monitor check in receive_frame_ok filter Monitor interfaces are never seen by the driver, so tests based on that opmode don't make sense. Also, we already pass all mic failure packets. Consequently this code is actually accepting any frames with just crypto errors and rejecting those with CRC, FIFO, and PHY errors for all interface types. Adjust the code and comment accordingly. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit a180a13081708b78d42232c6d922ce3de63f12e0 Author: Bob Copeland Date: Sun Aug 15 13:03:12 2010 -0400 ath5k: clean up some comments This fixes a few misspellings, word repetitions, and some grammar nits in ath5k comments. No code changes. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit b61279809860690fe5c9fcb40441008d31fabab6 Author: Nick Kossifidis Date: Sun Aug 15 13:03:11 2010 -0400 ath5k: remove own (wrong) IEEE80211_MAX_LEN Use the version already supplied in include/linux/ieee80211.h. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 418de6d955fa1da0cb4332661a31d21f57e954ab Author: Nick Kossifidis Date: Sun Aug 15 13:03:10 2010 -0400 ath5k: rename ath5k_hw_set_associd to _set_bssid Although the named function also sets the aid, its main purpose is configuring the bssid and we use that everywhere else. Signed-off-by: Bob Copeland Signed-off-by: John W. Linville commit 2e161f78e5f63a7f9fd25a766bb7f816a01eb14a Author: Johannes Berg Date: Thu Aug 12 15:38:38 2010 +0200 cfg80211/mac80211: extensible frame processing Allow userspace to register for more than just action frames by giving the frame subtype, and make it possible to use this in various modes as well. With some tweaks and some added functionality this will, in the future, also be usable in AP mode and be able to replace the cooked monitor interface currently used in that case. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit ac4c977d16d843f12901595c91773dddb65768a9 Author: Johannes Berg Date: Thu Aug 12 15:37:29 2010 +0200 mac80211: remove unused don't-encrypt flag When MFP is disabled, action frames will not be encrypted since they are management frames and the only management frames that can then be encrypted are authentication frames. Therefore, setting the don't-encrypt flag on action frames is unnecessary. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 633adf1ad1c92c02bd3f10bbd73737a969179378 Author: Johannes Berg Date: Thu Aug 12 14:49:58 2010 +0200 cfg80211: mark ieee80211_hdrlen const This function analyses only its single, value-passed argument, and has no side effects. Thus it can be const, which makes mac80211 smaller, for example: text data bss dec hex filename 362518 16720 884 380122 5ccda mac80211.ko (before) 362358 16720 884 379962 5cc3a mac80211.ko (after) a 160 byte saving in text size, and an optimisation because the function won't be called as often. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c32d83c0420950754cca01557bc5802793948d66 Author: Eric Dumazet Date: Tue Aug 24 12:24:07 2010 -0700 bcm63xx_enet: use netdev stats Use integrated net_device stats instead of a private one Get rid of bcm_enet_get_stats() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6abc2376809497b04feee554240e158ac2072587 Author: Eric Dumazet Date: Tue Aug 24 12:23:01 2010 -0700 ethoc: get rid of ethoc_stats() drivers can avoid implementing ndo_get_stats method if using netdevice stats structure. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit b4ddf4b3331f0f2195bd0ab5e8b50080ba93af87 Author: Eric Dumazet Date: Tue Aug 24 12:22:13 2010 -0700 be2net: get rid of be_get_stats() drivers can avoid implementing ndo_get_stats method if using netdevice stats structure. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 1726442e115a9e58f40747d009a5b4f303e0840a Author: Simon Horman Date: Mon Aug 23 16:26:41 2010 +0000 net: increase the size of priv_flags and add IFF_OVS_DATAPATH IFF_OVS_DATAPATH is a place-holder for the Open vSwitch datapath which I am preparing to submit for merging. As all 16 bits of priv_flags are already assigned flags, also increase the size of priv_flags to 32 bits. Unfortunately, by my calculations this increases the size of struct net_device by 4 bytes on 32bit architectures and 8 bytes on 64 bit architectures. I couldn't see an obvious way to avoid that. Cc: Jesse Gross Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 0fdc100bdc4b7ab61ed632962c76dfe539047296 Author: stephen hemminger Date: Mon Aug 23 10:24:18 2010 +0000 ethtool: allow non-netadmin to query settings The SNMP daemon uses ethtool to determine the speed of network interfaces. This fails on Debian (and probably elsewhere) because for security SNMP daemon runs as non-root user (snmp). Note: A similar patch was rejected previously because of a concern about the possibility that on some hardware querying the ethtool settings requires access to the PHY and could slow the machine down. But the security risk of requiring SNMP daemon (and related services) to run as root far out weighs the risk of denial-of-service. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit afdcba371f9748ac91608bb6c57f170aab7085b4 Author: Eric Dumazet Date: Mon Aug 23 07:14:36 2010 +0000 net: copy_rtnl_link_stats64() simplification No need to use a temporary struct rtnl_link_stats64 variable, just copy the source to skb buffer. Signed-off-by: Eric Dumazet Reviewed-by: Ben Hutchings Signed-off-by: David S. Miller commit 0eec32ff350348e635b3b8d87b989117ce045d25 Author: Changli Gao Date: Mon Aug 23 03:27:58 2010 +0000 net_sched: act_csum: coding style cleanup Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 7abac686026ec1af38f6e766369dbfe4007949b6 Author: David S. Miller Date: Mon Aug 23 20:42:11 2010 -0700 pkt_sched: Make act_csum depend upon INET. It uses ip_send_check() and stuff like that. Reported-by: Randy Dunlap Signed-off-by: David S. Miller commit ccea790ef033cc890ca4b416a783e9f9dffe556e Author: Dimitris Michailidis Date: Mon Aug 23 17:21:01 2010 +0000 cxgb4: update PCI ids Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit 1707aec9ac884de9e3358a8e564bbce91e4346f7 Author: Dimitris Michailidis Date: Mon Aug 23 17:21:00 2010 +0000 cxgb4: fix setting of the function number in transmit descriptors Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit 1478b3ee931e83c7a94f61376e962574b28d23d6 Author: Dimitris Michailidis Date: Mon Aug 23 17:20:59 2010 +0000 cxgb4: support eeprom read/write on functions other than 0 Extend the address translation for eeprom read/write (code used by ethtool -[eE]) to functions other than 0. Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit e46dab4d4be87769b09404135bc34f89e2e155d8 Author: Dimitris Michailidis Date: Mon Aug 23 17:20:58 2010 +0000 cxgb4: handle Rx/Tx queue ranges not starting at 0 Currently the driver assumes that queue IDs start at 0 but that's true only for function 0. To support operation on other functions get the start of the queue ranges from FW and offset accordingly. Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit f04b4dd2b1f533cef0507e0410ffc6732d21a272 Author: David S. Miller Date: Mon Aug 23 20:34:51 2010 -0700 bna: Delete get_flags and set_flags ethtool methods. This driver doesn't support LRO, NTUPLE, or the RXHASH features. So it should not set these ethtool operations. This also fixes the warning: drivers/net/bna/bnad_ethtool.c:1272: warning: initialization from incompatible pointer type Signed-off-by: David S. Miller commit 8b230ed8ec96c933047dd0625cf95f739e4939a6 Author: Rasesh Mody Date: Mon Aug 23 20:24:12 2010 -0700 bna: Brocade 10Gb Ethernet device driver This is patch 1/6 which contains linux driver source for Brocade's BR1010/BR1020 10Gb CEE capable ethernet adapter. Signed-off-by: Debashis Dutt Signed-off-by: Rasesh Mody Signed-off-by: David S. Miller commit 231cc2aaf14bad3b2325be0b19b8385ff5e75485 Author: Gerrit Renker Date: Sun Aug 22 19:41:40 2010 +0000 dccp ccid-2: Replace broken RTT estimator with better algorithm The current CCID-2 RTT estimator code is in parts broken and lags behind the suggestions in RFC2988 of using scaled variants for SRTT/RTTVAR. That code is replaced by the present patch, which reuses the Linux TCP RTT estimator code. Further details: ---------------- 1. The minimum RTO of previously one second has been replaced with TCP's, since RFC4341, sec. 5 says that the minimum of 1 sec. (suggested in RFC2988, 2.4) is not necessary. Instead, the TCP_RTO_MIN is used, which agrees with DCCP's concept of a default RTT (RFC 4340, 3.4). 2. The maximum RTO has been set to DCCP_RTO_MAX (64 sec), which agrees with RFC2988, (2.5). 3. De-inlined the function ccid2_new_ack(). 4. Added a FIXME: the RTT is sampled several times per Ack Vector, which will give the wrong estimate. It should be replaced with one sample per Ack. However, at the moment this can not be resolved easily, since - it depends on TX history code (which also needs some work), - the cleanest solution is not to use the `sent' time at all (saves 4 bytes per entry) and use DCCP timestamps / elapsed time to estimated the RTT, which however is non-trivial to get right (but needs to be done). Reasons for reusing the Linux TCP estimator algorithm: ------------------------------------------------------ Some time was spent to find a better alternative, using basic RFC2988 as a first step. Further analysis and experimentation showed that the Linux TCP RTO estimator is superior to a basic RFC2988 implementation. A summary is on http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/ccid2/rto_estimator/ In addition, this estimator fared well in a recent empirical evaluation: Rewaskar, Sushant, Jasleen Kaur and F. Donelson Smith. A Performance Study of Loss Detection/Recovery in Real-world TCP Implementations. Proceedings of 15th IEEE International Conference on Network Protocols (ICNP-07), 2007. Thus there is significant benefit in reusing the existing TCP code. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit c38c92a84a9291a3d0eaf6a13650a11961ae964f Author: Gerrit Renker Date: Sun Aug 22 19:41:39 2010 +0000 dccp ccid-2: Simplify dec_pipe and rearming of RTO timer This removes the dec_pipe function and improves the way the RTO timer is rearmed when a new acknowledgment comes in. Details and justification for removal: -------------------------------------- 1) The BUG_ON in dec_pipe is never triggered: pipe is only decremented for TX history entries between tail and head, for which it had previously been incremented in tx_packet_sent; and it is not decremented twice for the same entry, since it is - either decremented when a corresponding Ack Vector cell in state 0 or 1 was received (and then ccid2s_acked==1), - or it is decremented when ccid2s_acked==0, as part of the loss detection in tx_packet_recv (and hence it can not have been decremented earlier). 2) Restarting the RTO timer happens for every single entry in each Ack Vector parsed by tx_packet_recv (according to RFC 4340, 11.4 this can happen up to 16192 times per Ack Vector). 3) The RTO timer should not be restarted when all outstanding data has been acknowledged. This is currently done similar to (2), in dec_pipe, when pipe has reached 0. The patch onsolidates the code which rearms the RTO timer, combining the segments from new_ack and dec_pipe. As a result, the code becomes clearer (compare with tcp_rearm_rto()). Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 30564e355511b434613aa42375317b5a07fc9f23 Author: Gerrit Renker Date: Sun Aug 22 19:41:38 2010 +0000 dccp ccid-2: Remove redundant sanity tests This removes the ccid2_hc_tx_check_sanity function: it is redundant. Details: The tx_check_sanity function performs three tests: 1) it checks that the circular TX list is sorted - in ascending order of sequence number (ccid2s_seq) - and time (ccid2s_sent), - in the direction from `tail' (hctx_seqt) to `head' (hctx_seqh); 2) it ensures that the entire list has the length seqbufc * CCID2_SEQBUF_LEN; 3) it ensures that pipe equals the number of packets that were not marked `acked' (ccid2s_acked) between `tail' and `head'. The following argues that each of these tests is redundant, this can be verified by going through the code. (1) is not necessary, since both time and GSS increase from one packet to the next, so that subsequent insertions in tx_packet_sent (which advance the `head' pointer) will be in ascending order of time and sequence number. In (2), the length of the list is always equal to seqbufc times CCID2_SEQBUF_LEN (set to 1024) unless allocation caused an earlier failure, because: * at initialisation (tx_init), there is one chunk of size 1024 and seqbufc=1; * subsequent calls to tx_alloc_seq take place whenever head->next == tail in tx_packet_sent; then a new chunk of size 1024 is inserted between head and tail, and seqbufc is incremented by one. To show that (3) is redundant requires looking at two cases. The `pipe' variable of the TX socket is incremented only in tx_packet_sent, and decremented in tx_packet_recv. When head == tail (TX history empty) then pipe should be 0, which is the case directly after initialisation and after a retransmission timeout has occurred (ccid2_hc_tx_rto_expire). The first case involves parsing Ack Vectors for packets recorded in the live portion of the buffer, between tail and head. For each packet marked by the receiver as received (state 0) or ECN-marked (state 1), pipe is decremented by one, so for all such packets the BUG_ON in tx_check_sanity will not trigger. The second case is the loss detection in the second half of tx_packet_recv, below the comment "Check for NUMDUPACK". The first while-loop here ensures that the sequence number of `seqp' is either above or equal to `high_ack', or otherwise equal to the highest sequence number sent so far (of the entry head->prev, as head points to the next unsent entry). The next while-loop ("while (1)") counts the number of acked packets starting from that position of seqp, going backwards in the direction from head->prev to tail. If NUMDUPACK=3 such packets were counted within this loop, `seqp' points to the last acknowledged packet of these, and the "if (done == NUMDUPACK)" block is entered next. The while-loop contained within that block in turn traverses the list backwards, from head to tail; the position of `seqp' is saved in the variable `last_acked'. For each packet not marked as `acked', a congestion event is triggered within the loop, and pipe is decremented. The loop terminates when `seqp' has reached `tail', whereupon tail is set to the position previously stored in `last_acked'. Thus, between `last_acked' and the previous position of `tail', - pipe has been decremented earlier if the packet was marked as state 0 or 1; - pipe was decremented if the packet was not marked as acked. That is, pipe has been decremented by the number of packets between `last_acked' and the previous position of `tail'. As a consequence, pipe now again reflects the number of packets which have not (yet) been acked between the new position of tail (at `last_acked') and head->prev, or 0 if head==tail. The result is that the BUG_ON condition in check_sanity will also not be triggered, hence the test (3) is also redundant. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit 51c22bb510fefbb1a87c02dbd835383e6e7e3d36 Author: Gerrit Renker Date: Sun Aug 22 19:41:37 2010 +0000 dccp ccid-3: No more CCID control blocks in LISTEN state The CCIDs are activated as last of the features, at the end of the handshake, were the LISTEN state of the master socket is inherited into the server state of the child socket. Thus, the only states visible to CCIDs now are OPEN/PARTOPEN, and the closing states. This allows to remove tests which were previously necessary to protect against referencing a socket in the listening state (in CCID-3), but which now have become redundant. As a further byproduct of enabling the CCIDs only after the connection has been fully established, several typecast-initialisations of ccid3_hc_{rx,tx}_sock can now be eliminated: * the CCID is loaded, so it is not necessary to test if it is NULL, * if it is possible to load a CCID and leave the private area NULL, then this is a bug, which should crash loudly - and earlier, * the test for state==OPEN || state==PARTOPEN now reduces only to the closing phase (e.g. when the node has received an unexpected Reset). Signed-off-by: Gerrit Renker Acked-by: Ian McDonald Signed-off-by: David S. Miller commit 67b67e365f07d6dc70f3bb266af3268bac0a4836 Author: Gerrit Renker Date: Sun Aug 22 19:41:36 2010 +0000 ccid: ccid-2/3 code cosmetics This patch collects cosmetics-only changes to separate these from code changes: * update with regard to CodingStyle and whitespace changes, * documentation: - adding/revising comments, - remove CCID-3 RX socket documentation which is either duplicate or refers to fields that no longer exist, * expand embedded tfrc_tx_info struct inline for consistency, removing indirections via #define. Signed-off-by: Gerrit Renker Signed-off-by: David S. Miller commit b0f4c062fb6dd4c02b1fe6de73319ed50a09b27d Author: Alok Kataria Date: Mon Aug 23 17:05:57 2010 -0700 x86, paravirt: Remove alloc_pmd_clone hook, only used by VMI VMI was the only user of the alloc_pmd_clone hook, given that VMI is now removed we can also remove this hook. Signed-off-by: Alok N Kataria LKML-Reference: <1282608357.19396.36.camel@ank32.eng.vmware.com> Cc: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit 2c96c7751d2bb822542b03ddfaca70933f5aaf02 Author: Paul E. McKenney Date: Mon Aug 23 16:34:02 2010 -0700 rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes CPU-bound real-time processes can cause RCU CPU stall warnings, and much other trouble as well. Document the fact that they can cause RCU CPU stall warnings. Suggested-by: Darren Hart Signed-off-by: Paul E. McKenney commit 9863c90f682fba34cdc26c3437e8c00da6c83fa4 Author: Alok Kataria Date: Mon Aug 23 14:49:11 2010 -0700 x86, vmware: Remove deprecated VMI kernel support With the recent innovations in CPU hardware acceleration technologies from Intel and AMD, VMware ran a few experiments to compare these techniques to guest paravirtualization technique on VMware's platform. These hardware assisted virtualization techniques have outperformed the performance benefits provided by VMI in most of the workloads. VMware expects that these hardware features will be ubiquitous in a couple of years, as a result, VMware has started a phased retirement of this feature from the hypervisor. Please note that VMI has always been an optimization and non-VMI kernels still work fine on VMware's platform. Latest versions of VMware's product which support VMI are, Workstation 7.0 and VSphere 4.0 on ESX side, future maintainence releases for these products will continue supporting VMI. For more details about VMI retirement take a look at this, http://blogs.vmware.com/guestosguide/2009/09/vmi-retirement.html This feature removal was scheduled for 2.6.37 back in September 2009. Signed-off-by: Alok N Kataria LKML-Reference: <1282600151.19396.22.camel@ank32.eng.vmware.com> Signed-off-by: H. Peter Anvin commit 59daa706fbec745684702741b9f5373142dd9fdc Author: Ma Ling Date: Tue Jun 29 03:24:25 2010 +0800 x86, mem: Optimize memcpy by avoiding memory false dependece All read operations after allocation stage can run speculatively, all write operation will run in program order, and if addresses are different read may run before older write operation, otherwise wait until write commit. However CPU don't check each address bit, so read could fail to recognize different address even they are in different page.For example if rsi is 0xf004, rdi is 0xe008, in following operation there will generate big performance latency. 1. movq (%rsi), %rax 2. movq %rax, (%rdi) 3. movq 8(%rsi), %rax 4. movq %rax, 8(%rdi) If %rsi and rdi were in really the same meory page, there are TRUE read-after-write dependence because instruction 2 write 0x008 and instruction 3 read 0x00c, the two address are overlap partially. Actually there are in different page and no any issues, but without checking each address bit CPU could think they are in the same page, and instruction 3 have to wait for instruction 2 to write data into cache from write buffer, then load data from cache, the cost time read spent is equal to mfence instruction. We may avoid it by tuning operation sequence as follow. 1. movq 8(%rsi), %rax 2. movq %rax, 8(%rdi) 3. movq (%rsi), %rax 4. movq %rax, (%rdi) Instruction 3 read 0x004, instruction 2 write address 0x010, no any dependence. At last on Core2 we gain 1.83x speedup compared with original instruction sequence. In this patch we first handle small size(less 20bytes), then jump to different copy mode. Based on our micro-benchmark small bytes from 1 to 127 bytes, we got up to 2X improvement, and up to 1.5X improvement for 1024 bytes on Corei7. (We use our micro-benchmark, and will do further test according to your requirment) Signed-off-by: Ma Ling LKML-Reference: <1277753065-18610-1-git-send-email-ling.ma@intel.com> Signed-off-by: H. Peter Anvin commit fdf4289679fd41d76553ce224750e9737cd80eea Author: Ma, Ling Date: Mon Aug 23 14:11:12 2010 -0700 x86, mem: Don't implement forward memmove() as memcpy() memmove() allow source and destination address to be overlap, but there is no such limitation for memcpy(). Therefore, explicitly implement memmove() in both the forwards and backward directions, to give us the ability to optimize memcpy(). Signed-off-by: Ma Ling LKML-Reference: Signed-off-by: H. Peter Anvin commit 61c77326d1df079f202fa79403c3ccd8c5966a81 Author: Shaohua Li Date: Mon Aug 16 09:16:55 2010 +0800 x86, mm: Avoid unnecessary TLB flush In x86, access and dirty bits are set automatically by CPU when CPU accesses memory. When we go into the code path of below flush_tlb_fix_spurious_fault(), we already set dirty bit for pte and don't need flush tlb. This might mean tlb entry in some CPUs hasn't dirty bit set, but this doesn't matter. When the CPUs do page write, they will automatically check the bit and no software involved. On the other hand, flush tlb in below position is harmful. Test creates CPU number of threads, each thread writes to a same but random address in same vma range and we measure the total time. Under a 4 socket system, original time is 1.96s, while with the patch, the time is 0.8s. Under a 2 socket system, there is 20% time cut too. perf shows a lot of time are taking to send ipi/handle ipi for tlb flush. Signed-off-by: Shaohua Li LKML-Reference: <20100816011655.GA362@sli10-desk.sh.intel.com> Acked-by: Suresh Siddha Cc: Andrea Archangeli Signed-off-by: H. Peter Anvin commit ee86273062cbb310665fe49e1f1937d2cf85b0b9 Author: Milan Broz Date: Mon Aug 23 15:16:00 2010 +0200 loop: add some basic read-only sysfs attributes Create /sys/block/loopX/loop directory and provide these attributes: - backing_file - autoclear - offset - sizelimit This loop directory is present only if loop device is configured. To be used in util-linux-ng (and possibly elsewhere like udev rules) where code need to get loop attributes from kernel (and not store duplicate info in userspace). Moreover loop ioctls are not even able to provide full backing file info because of buffer limits. Signed-off-by: Milan Broz Signed-off-by: Jens Axboe commit a6b9b4d50f492630443b38404d1f436b3b748c14 Merge: e36c886 28457ee Author: Ingo Molnar Date: Mon Aug 23 11:32:34 2010 +0200 Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu commit 21dc330157454046dd7c494961277d76e1c957fe Author: David S. Miller Date: Mon Aug 23 00:13:46 2010 -0700 net: Rename skb_has_frags to skb_has_frag_list SKBs can be "fragmented" in two ways, via a page array (called skb_shinfo(skb)->frags[]) and via a list of SKBs (called skb_shinfo(skb)->frag_list). Since skb_has_frags() tests the latter, it's name is confusing since it sounds more like it's testing the former. Signed-off-by: David S. Miller commit 2d4833aae65589ba4317dd325fe20c8b25c14173 Merge: f3c58ac 6a6d01d Author: David S. Miller Date: Sun Aug 22 22:37:04 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: include/linux/if_pppox.h Fix conflict between Changli's __packed header file fixes and the new PPTP driver. Signed-off-by: David S. Miller commit f3c58aceaa3f237ba43735805f4677950327b8ee Author: Amerigo Wang Date: Tue Aug 17 21:51:18 2010 +0000 mlx4: remove num_lro parameter As suggested by David, this parameter can die, we can use ethtool to turn LRO on/off. Compile tests only. Signed-off-by: WANG Cong Signed-off-by: David S. Miller commit f502bf2bc0de4795e8dd081a2095006021c00a0f Author: Ian Campbell Date: Wed Aug 18 23:27:49 2010 +0000 xen: use less generic names in netfront driver. All Xen frontend drivers have a couple of identically named functions which makes figuring out which device went wrong from a stacktrace harder than it needs to be. Rename them to something specificto the device type. Signed-off-by: Ian Campbell Cc: Jeremy Fitzhardinge Signed-off-by: David S. Miller commit e88c64f0a42575e01c7ace903d0570bc0b7fcf85 Author: Hagen Paul Pfeifer Date: Thu Aug 19 06:33:05 2010 +0000 tcp: allow effective reduction of TCP's rcv-buffer via setsockopt Via setsockopt it is possible to reduce the socket RX buffer (SO_RCVBUF). TCP method to select the initial window and window scaling option in tcp_select_initial_window() currently misbehaves and do not consider a reduced RX socket buffer via setsockopt. Even though the server's RX buffer is reduced via setsockopt() to 256 byte (Initial Window 384 byte => 256 * 2 - (256 * 2 / 4)) the window scale option is still 7: 192.168.1.38.40676 > 78.47.222.210.5001: Flags [S], seq 2577214362, win 5840, options [mss 1460,sackOK,TS val 338417 ecr 0,nop,wscale 0], length 0 78.47.222.210.5001 > 192.168.1.38.40676: Flags [S.], seq 1570631029, ack 2577214363, win 384, options [mss 1452,sackOK,TS val 2435248895 ecr 338417,nop,wscale 7], length 0 192.168.1.38.40676 > 78.47.222.210.5001: Flags [.], ack 1, win 5840, options [nop,nop,TS val 338421 ecr 2435248895], length 0 Within tcp_select_initial_window() the original space argument - a representation of the rx buffer size - is expanded during tcp_select_initial_window(). Only sysctl_tcp_rmem[2], sysctl_rmem_max and window_clamp are considered to calculate the initial window. This patch adjust the window_clamp argument if the user explicitly reduce the receive buffer. Signed-off-by: Hagen Paul Pfeifer Cc: David S. Miller Cc: Patrick McHardy Cc: Eric Dumazet Cc: Ilpo JĂ€rvinen Signed-off-by: David S. Miller commit c2368e795cec561229ef66a04ac51629b918a9e8 Author: Simon Horman Date: Sun Aug 22 17:35:32 2010 +0000 bridge: is PACKET_LOOPBACK unlikely()? While looking at using netdev_rx_handler_register for openvswitch Jesse Gross suggested that an unlikely() might be worthwhile in that code. I'm interested to see if its appropriate for the bridge code. Cc: Jesse Gross Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit fcb12fd2236f49aa8fdc1568ed4ebdfe4fddc6b5 Author: Changli Gao Date: Sun Aug 22 16:41:59 2010 +0000 net: rds: remove duplication type definitions __be* are defined in linux/types.h now, and in fact, rds.h isn't exported to user space even. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit cd709aa90648195e5b5823fa90eb0b3fb0e78ee4 Author: John Feeney Date: Sun Aug 22 17:45:53 2010 +0000 bnx2: Add PCI Advanced Error Reporting support. Signed-off-by: John Feeney Signed-off-by: Michael Chan Signed-off-by: Benjamin Li Signed-off-by: David S. Miller commit 05532121da0728eaedac2a0a5c3cecad3a95d765 Author: Changli Gao Date: Sun Aug 22 21:03:33 2010 -0700 net: 802.1q: make vlan_hwaccel_do_receive() return void vlan_hwaccel_do_receive() always returns 0, so make it return void. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 2436243a39de56f03d38c74139261cc61bea8456 Author: Stephen Rothwell Date: Sun Aug 22 20:31:14 2010 -0700 net/sched: need to include net/ip6_checksum.h for the declararion of csum_ipv6_magic. Fixes this build error on PowerPC (at least): net/sched/act_csum.c: In function 'tcf_csum_ipv6_icmp': net/sched/act_csum.c:178: error: implicit declaration of function 'csum_ipv6_magic' Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller commit d8287fc864643beaf1623c92aceb1ab38eae0648 Author: Changli Gao Date: Sun Aug 22 18:37:27 2010 -0700 net: use __be16 instead of u16 for the userspace code Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 612d4fd7d0c4a866a531099d4cdd0424c1058321 Author: Frederic Weisbecker Date: Sun Aug 22 21:10:35 2010 +0200 perf: Support for callchains merge If we sort the histograms by comm, which is the default, we need to merge some of them, typically different thread histograms of a same process, or just same comm. But during this merge, we forgot to merge callchains. So imagine we have three threads (tids: 1000, 1001, 1002) that belong to comm "foo". tid 1000 got 100 events tid 1001 got 10 events tid 1002 got 3 events Once we merge these histograms to get a per comm result, we'll finally get: "foo" got 113 events The problem is if we merge 1000 and 1001 histograms into 1002, then the end merge result, wrt callchains, will be only callchains that belong to 1002. This is because we haven't handled callchains in the merge. Only those from one of the threads inside a common comm survive. It means during this merge, we can lose a lot of callchains. Fix this by implementing callchains merge and apply it on histograms that collapse. Reported-by: Christoph Hellwig Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras commit 6cb8e56161c4103af9178ea45ba61ddbde02969a Author: Frederic Weisbecker Date: Sun Aug 22 20:18:01 2010 +0200 perf: Rename append_callchain into callchain_append Do that to start a consistant callchain API namespace. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Christoph Hellwig commit d2009c5130b627d3efccae8ed36cd43450c8486d Author: Frederic Weisbecker Date: Sun Aug 22 20:05:22 2010 +0200 perf: Keep track of the max depth of a callchain In order to implement callchains collapsing, we need to keep track of the maximum depth in a histogram tree of callchains. This way we'll avoid allocating an arbitrary temporary buffer size on callchain merge time. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Christoph Hellwig commit 773bc97397ea2cfc2ff3c075f712aaf376ed7cb0 Author: Dan Carpenter Date: Sun Aug 22 00:54:30 2010 -0700 tokenring: remove unneeded NULL checks "fw_entry" is always non-NULL at this point and anyway release_firmware() handles NULL parameters. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 739a91ef0625e0e4a40b835f4f891313c47915df Author: Changli Gao Date: Sat Aug 21 06:23:15 2010 +0000 net_sched: cls_flow: add key rxhash We can use rxhash to classify the traffic into flows. As rxhash maybe supplied by NIC or RPS, it is cheaper. Signed-off-by: Changli Gao Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit 81ce790bd75d49a0d119f5d7b27405e1d9b1bd57 Author: Eric Dumazet Date: Thu Aug 19 23:51:33 2010 +0000 irda: use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the irlan_cb struct. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit d3c6e7ad09cebbad1a3dea077668062136626fd2 Merge: c3227e5 48d3ff8 Author: David S. Miller Date: Sat Aug 21 23:32:24 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit c3227e546c574172e77616270a16a04eae561b8f Author: Eric Dumazet Date: Fri Aug 20 03:08:23 2010 +0000 amd8111e: use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the amd8111e_priv struct. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a2c483a19a96cf5cb9465f42cca34548b9211954 Author: Eric Dumazet Date: Fri Aug 20 02:55:16 2010 +0000 atl1c: use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the atl1c_adapter struct. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 00959ade36acadc00e757f87060bf6e4501d545f Author: Dmitry Kozlov Date: Sat Aug 21 23:05:39 2010 -0700 PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) PPP: introduce "pptp" module which implements point-to-point tunneling protocol using pppox framework NET: introduce the "gre" module for demultiplexing GRE packets on version criteria (required to pptp and ip_gre may coexists) NET: ip_gre: update to use the "gre" module This patch introduces then pptp support to the linux kernel which dramatically speeds up pptp vpn connections and decreases cpu usage in comparison of existing user-space implementation (poptop/pptpclient). There is accel-pptp project (https://sourceforge.net/projects/accel-pptp/) to utilize this module, it contains plugin for pppd to use pptp in client-mode and modified pptpd (poptop) to build high-performance pptp NAS. There was many changes from initial submitted patch, most important are: 1. using rcu instead of read-write locks 2. using static bitmap instead of dynamically allocated 3. using vmalloc for memory allocation instead of BITS_PER_LONG + __get_free_pages 4. fixed many coding style issues Thanks to Eric Dumazet. Signed-off-by: Dmitry Kozlov Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 1003489e06c04d807c783a8958f2ccc9aed7a244 Author: Changli Gao Date: Sat Aug 21 06:13:28 2010 +0000 net: rps: fix the wrong network header pointer __skb_get_rxhash() was broken after the commit: commit bfb564e7391340638afe4ad67744a8f3858e7566 Author: Krishna Kumar Date: Wed Aug 4 06:15:52 2010 +0000 core: Factor out flow calculation from get_rps_cpu Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 28457ee69c473a903e51e26c7bcd6f1e9eceb93e Author: Arnd Bergmann Date: Tue Mar 9 19:24:45 2010 +0100 vhost: add __rcu annotations Also add rcu_dereference_protected() for code paths where locks are held. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: "Michael S. Tsirkin" commit f4e7ac0a233a4dc9b51345546ab69c64bb43e2c1 Author: Kirill A. Shutemov Date: Sat Aug 21 03:38:20 2010 +0300 perf tools: add test for strlcpy() Some Linux distributions like ALT Linux provides patched glibc with contains strlcpy(). It's confilcts with strlcpy() from perf. Let's add check for strlcpy(). Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar LKML-Reference: <1282351101-8879-1-git-send-email-kirill@shutemov.name> Signed-off-by: Kirill A. Shutemov Signed-off-by: Arnaldo Carvalho de Melo commit 8b9e74eb8af808807192d16b76565c27154ae7ed Author: Arnaldo Carvalho de Melo Date: Sat Aug 21 10:38:16 2010 -0300 perf tools: Add --tui and --stdio to choose the UI Relying just on ~/.perfconfig or rebuilding the tool disabling support for the TUI is too cumbersome, so allow specifying which UI to use and make the command line switch override whatever is in ~/.perfconfig. Suggested-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 65e6bf484c497f02d47a0faae69ee398cd59cfda Author: Paul E. McKenney Date: Thu Aug 19 21:43:09 2010 -0700 rcu: add comment stating that list_empty() applies to RCU-protected lists Because list_empty() does not dereference any RCU-protected pointers, and further does not pass such pointers to the caller (so that the caller does not dereference them either), it is safe to use list_empty() on RCU-protected lists. There is no need for a list_empty_rcu(). This commit adds a comment stating this explicitly. Requested-by: Andrew Morton Signed-off-by: Paul E. McKenney commit 80dcf60e6b97c7363971e7a0a788d8484d35f8a6 Author: Paul E. McKenney Date: Thu Aug 19 16:57:45 2010 -0700 rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU Replace one of the ACCESS_ONCE() calls in each of __rcu_read_lock() and __rcu_read_unlock() with barrier() as suggested by Steve Rostedt in order to avoid the potential compiler-optimization-induced bug noted by Mathieu Desnoyers. Located-by: Mathieu Desnoyers Suggested-by: Steven Rostedt Signed-off-by: Paul E. McKenney commit 7b0b759b65247cbc66384a912be9acf8d4800636 Author: Paul E. McKenney Date: Tue Aug 17 14:18:46 2010 -0700 rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU The CONFIG_PREEMPT_RCU kernel configuration parameter was recently re-introduced, but as an indication of the type of RCU (preemptible vs. non-preemptible) instead of as selecting a given implementation. This commit uses CONFIG_PREEMPT_RCU to combine duplicate code from include/linux/rcutiny.h and include/linux/rcutree.h into include/linux/rcupdate.h. This commit also combines a few other pieces of duplicate code that have accumulated. Signed-off-by: Paul E. McKenney commit 73d4da4d360136826b36f78f5cf72b29da82c8a6 Author: Paul E. McKenney Date: Mon Aug 16 10:50:54 2010 -0700 rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods It is illegal to wait for an SRCU grace period while within the corresponding flavor of SRCU read-side critical section. Therefore, this commit updates the srcu_read_lock() docbook accordingly. Signed-off-by: Paul E. McKenney commit 5cc6517abdeccb6690b344a43b5ce8eaee82da3c Author: Paul E. McKenney Date: Fri Aug 13 16:34:22 2010 -0700 rcu: document ways of stalling updates in low-memory situations Signed-off-by: Paul E. McKenney commit a3dc3fb161f9b4066c0fce22db72638af8baf83b Author: Paul E. McKenney Date: Fri Aug 13 16:16:25 2010 -0700 rcu: repair code-duplication FIXMEs Combine the duplicate definitions of ULONG_CMP_GE(), ULONG_CMP_LT(), and rcu_preempt_depth() into include/linux/rcupdate.h. Signed-off-by: Paul E. McKenney commit 53d84e004d5e8c018be395c4330dc72fd60bd13e Author: Paul E. McKenney Date: Tue Aug 10 14:28:53 2010 -0700 rcu: permit suppressing current grace period's CPU stall warnings When using a kernel debugger, a long sojourn in the debugger can get you lots of RCU CPU stall warnings once you resume. This might not be helpful, especially if you are using the system console. This patch therefore allows RCU CPU stall warnings to be suppressed, but only for the duration of the current set of grace periods. This differs from Jason's original patch in that it adds support for tiny RCU and preemptible RCU, and uses a slightly different method for suppressing the RCU CPU stall warning messages. Signed-off-by: Jason Wessel Signed-off-by: Paul E. McKenney Tested-by: Jason Wessel commit 8cdd32a918350430483751feaae1c19cef816f69 Author: Paul E. McKenney Date: Mon Aug 9 14:23:03 2010 -0700 rcu: refer RCU CPU stall-warning victims to stallwarn.txt There is some documentation on RCU CPU stall warnings contained in Documentation/RCU/stallwarn.txt, but it will not be apparent to someone who runs into such a warning while under time pressure. This commit therefore adds comments preceding the printk()s pointing out the location of this documentation. Signed-off-by: Paul E. McKenney commit 9079fd7c2e06a92cf27d05224a1f478581916c5b Author: Paul E. McKenney Date: Sat Aug 7 21:59:54 2010 -0700 rcu: update obsolete rcu_read_lock() comment. The comment says that blocking is illegal in rcu_read_lock()-style RCU read-side critical sections, which is no longer entirely true given preemptible RCU. This commit provides a fix. Suggested-by: David Miller Signed-off-by: Paul E. McKenney commit a57eb940d130477a799dfb24a570ee04979c0f7f Author: Paul E. McKenney Date: Tue Jun 29 16:49:16 2010 -0700 rcu: Add a TINY_PREEMPT_RCU Implement a small-memory-footprint uniprocessor-only implementation of preemptible RCU. This implementation uses but a single blocked-tasks list rather than the combinatorial number used per leaf rcu_node by TREE_PREEMPT_RCU, which reduces memory consumption and greatly simplifies processing. This version also takes advantage of uniprocessor execution to accelerate grace periods in the case where there are no readers. The general design is otherwise broadly similar to that of TREE_PREEMPT_RCU. This implementation is a step towards having RCU implementation driven off of the SMP and PREEMPT kernel configuration variables, which can happen once this implementation has accumulated sufficient experience. Removed ACCESS_ONCE() from __rcu_read_unlock() and added barrier() as suggested by Steve Rostedt in order to avoid the compiler-reordering issue noted by Mathieu Desnoyers (http://lkml.org/lkml/2010/8/16/183). As can be seen below, CONFIG_TINY_PREEMPT_RCU represents almost 5Kbyte savings compared to CONFIG_TREE_PREEMPT_RCU. Of course, for non-real-time workloads, CONFIG_TINY_RCU is even better. CONFIG_TREE_PREEMPT_RCU text data bss dec filename 13 0 0 13 kernel/rcupdate.o 6170 825 28 7023 kernel/rcutree.o ---- 7026 Total CONFIG_TINY_PREEMPT_RCU text data bss dec filename 13 0 0 13 kernel/rcupdate.o 2081 81 8 2170 kernel/rcutiny.o ---- 2183 Total CONFIG_TINY_RCU (non-preemptible) text data bss dec filename 13 0 0 13 kernel/rcupdate.o 719 25 0 744 kernel/rcutiny.o --- 757 Total Requested-by: LoĂŻc Minier Signed-off-by: Paul E. McKenney commit ed8052616680e72f58bca678d4d1678cb12a7e47 Author: Peter Zijlstra Date: Fri Aug 20 14:30:41 2010 +0200 perf: Remove superfluous return values from perf_callchain_*() Fixes these build warnings introduced by the callchain rework: arch/x86/kernel/cpu/perf_event.c: In function ‘perf_callchain_kernel’: arch/x86/kernel/cpu/perf_event.c:1646: warning: ‘return’ with a value, in function returning void arch/x86/kernel/cpu/perf_event.c: In function ‘perf_callchain_user’: arch/x86/kernel/cpu/perf_event.c:1699: warning: ‘return’ with a value, in function returning void arch/x86/kernel/cpu/perf_event.c: At top level: arch/x86/kernel/cpu/perf_event.c:1607: warning: ‘perf_callchain_entry_nmi’ defined but not used Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker LKML-Reference: Signed-off-by: Ingo Molnar commit eb4d40654505e47aa9d2035bb97f631fa61d14b4 Author: GrĂ©goire Baron Date: Wed Aug 18 13:10:35 2010 +0000 net/sched: add ACT_CSUM action to update packets checksums net/sched: add ACT_CSUM action to update packets checksums ACT_CSUM can be called just after ACT_PEDIT in order to re-compute some altered checksums in IPv4 and IPv6 packets. The following checksums are supported by this patch: - IPv4: IPv4 header, ICMP, IGMP, TCP, UDP & UDPLite - IPv6: ICMPv6, TCP, UDP & UDPLite It's possible to request in the same action to update different kind of checksums, if the packets flow mix TCP, UDP and UDPLite, ... An example of usage is done in the associated iproute2 patch. Version 3 changes: - remove useless goto instructions - improve IPv6 hop options decoding Version 2 changes: - coding style correction - remove useless arguments of some functions - use stack in tcf_csum_dump() - add tcf_csum_skb_nextlayer() to factor code Signed-off-by: Gregoire Baron Acked-by: jamal Signed-off-by: David S. Miller commit 277b199800ac90811ac86d215063df1984f51619 Author: Lin Ming Date: Fri Aug 20 11:03:51 2010 +0800 lockup_detector: Make callback function static watchdog_overflow_callback() is only used in kernel/watchdog.c. Signed-off-by: Lin Ming Cc: Peter Zijlstra Cc: Don Zickus LKML-Reference: <1282273431.16443.32.camel@minggr.sh.intel.com> Signed-off-by: Ingo Molnar commit 49e8ab03ebcacd8e37660ffec20c0c46721a2800 Author: Eric Dumazet Date: Thu Aug 19 06:10:45 2010 +0000 net: build_ehash_secret() and rt_bind_peer() cleanups Now cmpxchg() is available on all arches, we can use it in build_ehash_secret() and rt_bind_peer() instead of using spinlocks. Signed-off-by: Eric Dumazet CC: Mathieu Desnoyers Signed-off-by: David S. Miller commit 4da79504b2b41410dd56e9268c9ad403aa65e89c Author: Dan Carpenter Date: Thu Aug 19 08:52:44 2010 +0000 qlge: pull NULL check ahead of dereference There was a dereference before NULL check issue introduced in 1e213303d "qlge: Add tx multiqueue support." I've pulled the NULL check of "net_rsp" forward a couple lines to avoid that. Also Ron Mercer says that the early exit should be above the index write. ql_write_cq_idx(rx_ring); Signed-off-by: Dan Carpenter Signed-off-by: Ron Mercer Signed-off-by: David S. Miller commit 0add79e3134a618c10acabe58834ac647075111a Author: Tobias Klauser Date: Wed Aug 18 22:11:25 2010 +0000 tehuti: Use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the bdx_priv struct. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 5dbfbc4027f819c3da92844f34f241524f99c9eb Author: Tobias Klauser Date: Wed Aug 18 22:10:34 2010 +0000 ep93xx_eth: Use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the ep93xx_priv struct. As the new ndo_get_stats function would just return dev->stats we can omit it. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 4d87ffadbba88105f33271bef5f2c79366c6a4e1 Author: Paul E. McKenney Date: Wed Aug 4 17:31:12 2010 -0700 rcu: Fix RCU_FANOUT help message Commit cf244dc01bf68 added a fourth level to the TREE_RCU hierarchy, but the RCU_FANOUT help message still said "cube root". This commit fixes this to "fourth root" and also emphasizes that production systems are well-served by the default. (Stress-testing RCU itself uses small RCU_FANOUT values in order to test large-system code paths on small(er) systems.) Located-by: John Kacur Signed-off-by: Paul E. McKenney commit 910b1b7e19a292ff685001caf1bf1a9775b771a1 Author: Paul E. McKenney Date: Wed Jul 21 08:05:56 2010 -0700 rcu: Allow RCU CPU stall warnings to be off at boot, but manually enablable Currently, if RCU CPU stall warnings are enabled, they are enabled immediately upon boot. They can be manually disabled via /sys (and also re-enabled via /sys), and are automatically disabled upon panic. However, some users need RCU CPU stalls to be disabled at boot time, but to be enabled without rebuilding/rebooting. For example, someone running a real-time application in production might not want the additional latency of RCU CPU stall detection in normal operation, but might need to enable it at any point for fault isolation purposes. This commit therefore provides a new CONFIG_RCU_CPU_STALL_DETECTOR_RUNNABLE kernel configuration parameter that maintains the current behavior (enable at boot) by default, but allows a kernel to be configured with RCU CPU stall detection built into the kernel, but disabled at boot time. Requested-by: Clark Williams Requested-by: John Kacur Signed-off-by: Paul E. McKenney commit 687d7a960aea46e016182c7ce346d62c4dbd0366 Author: Paul E. McKenney Date: Wed Jul 21 06:52:40 2010 -0700 rcu: restrict TREE_RCU to SMP builds with !PREEMPT Because both TINY_RCU and TREE_PREEMPT_RCU have been in mainline for several releases, it is time to restrict the use of TREE_RCU to SMP non-preemptible systems. This reduces testing/validation effort. This commit is a first step towards driving the selection of RCU implementation directly off of the SMP and PREEMPT configuration parameters. Signed-off-by: Paul E. McKenney commit f2e0dd7090eddef427ab9d9f81de122244cded51 Author: Paul E. McKenney Date: Wed Jul 14 14:38:30 2010 -0700 rcu: allow RCU CPU stall warning messages to be controlled in /sys Set the permissions of the rcu_cpu_stall_suppress to 644 to enable RCU CPU stall warnings to be enabled and disabled at runtime via sysfs. Suggested-by: Josh Triplett Signed-off-by: Paul E. McKenney commit ded5e5ed2f3348ba2f9a319c6497e46c22850e97 Author: Paul E. McKenney Date: Wed May 19 10:46:55 2010 -0700 Update call_rcu() usage, add synchronize_rcu() Reported-by: Kyle Hubert Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 65e423f8ee5843e1ea3f2d94adf4ba3560a17f7b Author: Paul E. McKenney Date: Wed May 19 10:42:16 2010 -0700 Update documentation to note the passage of INIT_RCU_HEAD() Signed-off-by: Alexey Dobriyan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 5e8067adfdbaf97039a97540765b1e16eb8d61cc Author: Mathieu Desnoyers Date: Sat Apr 17 08:48:41 2010 -0400 rcu head remove init RCU heads really don't need to be initialized. Their state before call_rcu() really does not matter. We need to keep init/destroy_rcu_head_on_stack() though, since we want debugobjects to be able to keep track of these objects. Signed-off-by: Alexey Dobriyan Signed-off-by: Mathieu Desnoyers CC: David S. Miller CC: "Paul E. McKenney" CC: akpm@linux-foundation.org CC: mingo@elte.hu CC: laijs@cn.fujitsu.com CC: dipankar@in.ibm.com CC: josh@joshtriplett.org CC: dvhltc@us.ibm.com CC: niv@us.ibm.com CC: tglx@linutronix.de CC: peterz@infradead.org CC: rostedt@goodmis.org CC: Valdis.Kletnieks@vt.edu CC: dhowells@redhat.com CC: eric.dumazet@gmail.com CC: Alexey Dobriyan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4d2deb40b20c2608486598364e63e37b09a9ac2f Author: Arnd Bergmann Date: Wed Feb 24 20:01:56 2010 +0100 kernel: __rcu annotations This adds annotations for RCU operations in core kernel components Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Al Viro Cc: Jens Axboe Cc: Andrew Morton Reviewed-by: Josh Triplett commit d2c2486bc8e185548490e8edbc84d185de9eaff1 Author: Arnd Bergmann Date: Fri Feb 26 14:53:26 2010 +0100 idr: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Manfred Spraul Reviewed-by: Josh Triplett commit a1115570b31091f3e3ab9e6cf7ee8d320a42be84 Author: Arnd Bergmann Date: Thu Feb 25 23:43:52 2010 +0100 radix-tree: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Nick Piggin Reviewed-by: Josh Triplett commit 374a8e0dc33c984fac284de7d57d77af3cfdbfb7 Author: Arnd Bergmann Date: Wed Feb 24 20:00:13 2010 +0100 notifiers: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Alan Cox Reviewed-by: Josh Triplett commit 77d8485a8b5416c615b6acd95f01bfcacd7d81ff Author: Paul E. McKenney Date: Thu Jul 8 17:38:59 2010 -0700 rcu: improve kerneldoc for rcu_read_lock(), call_rcu(), and synchronize_rcu() Make it explicit that new RCU read-side critical sections that start after call_rcu() and synchronize_rcu() start might still be running after the end of the relevant grace period. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 742734eea0cf5314cde5945963ed964be167bd84 Author: Paul E. McKenney Date: Wed Jun 30 11:43:52 2010 -0700 rcu: add boot parameter to suppress RCU CPU stall warning messages Although the RCU CPU stall warning messages are a very good way to alert people to a problem, once alerted, it is sometimes helpful to shut them off in order to avoid obscuring other messages that might be being used to track down the problem. Although you can rebuild the kernel with CONFIG_RCU_CPU_STALL_DETECTOR=n, this is sometimes inconvenient. This commit therefore adds a boot parameter named "rcu_cpu_stall_suppress" that shuts these messages off without requiring a rebuild (though a reboot might be needed for those not brave enough to patch their kernel while it is running). This message-suppression was already in place for the panic case, so this commit need only rename the variable and export it via module_param(). Signed-off-by: Paul E. McKenney commit b163760e37047781b37c412cde54d146ac4b651f Author: Paul E. McKenney Date: Wed Jun 2 16:21:38 2010 -0700 rcu: make CPU stall warning timeout configurable Also set the default to 60 seconds, up from the previous hard-coded timeout of 10 seconds. This allows people who care to set short timeouts, while avoiding people with unusual configurations (make randconfig!!!) from being bothered with spurious CPU stall warnings. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4221a9918e38b7494cee341dda7b7b4bb8c04bde Author: Tetsuo Handa Date: Sat Jun 26 01:08:19 2010 +0900 Add RCU check for find_task_by_vpid(). find_task_by_vpid() says "Must be called under rcu_read_lock().". But due to commit 3120438 "rcu: Disable lockdep checking in RCU list-traversal primitives", we are currently unable to catch "find_task_by_vpid() with tasklist_lock held but RCU lock not held" errors due to the RCU-lockdep checks being suppressed in the RCU variants of the struct list_head traversals. This commit therefore places an explicit check for being in an RCU read-side critical section in find_task_by_pid_ns(). =================================================== [ INFO: suspicious rcu_dereference_check() usage. ] --------------------------------------------------- kernel/pid.c:386 invoked rcu_dereference_check() without protection! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 1 1 lock held by rc.sysinit/1102: #0: (tasklist_lock){.+.+..}, at: [] sys_setpgid+0x40/0x160 stack backtrace: Pid: 1102, comm: rc.sysinit Not tainted 2.6.35-rc3-dirty #1 Call Trace: [] lockdep_rcu_dereference+0x94/0xb0 [] find_task_by_pid_ns+0x6d/0x70 [] find_task_by_vpid+0x18/0x20 [] sys_setpgid+0x47/0x160 [] sysenter_do_call+0x12/0x36 Commit updated to use a new rcu_lockdep_assert() exported API rather than the old internal __do_rcu_dereference(). Signed-off-by: Tetsuo Handa Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 394f99a9007d4274f7076bb8553ab0ff9707688b Author: Lai Jiangshan Date: Mon Jun 28 16:25:04 2010 +0800 rcu: simplify the usage of percpu data &percpu_data is compatible with allocated percpu data. And we use it and remove the "->rda[NR_CPUS]" array, saving significant storage on systems with large numbers of CPUs. This does add an additional level of indirection and thus an additional cache line referenced, but because ->rda is not used on the read side, this is OK. Signed-off-by: Lai Jiangshan Reviewed-by: Tejun Heo Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit e546f485e1d7520ca0200502cdcc11b503f4805c Author: Lai Jiangshan Date: Mon Jun 21 16:57:42 2010 +0800 rcutorture: add random preemption Add random preemption to help we to torture the preemptable rcu. srcu_read_delay() also calls rcu_read_delay() for shorter delays. Added comment to preempt_schedule() call indicating that no quiescent states happen if preemption is disabled. Signed-off-by: Lai Jiangshan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 84483ea42cd4f2781d6e97a83ab3ebd0ff19fb10 Author: Paul E. McKenney Date: Wed Jun 16 16:48:13 2010 -0700 rcu: add shiny new debug assists to Documentation/RCU/checklist.txt Add a section describing PROVE_RCU, DEBUG_OBJECTS_RCU_HEAD, and the __rcu sparse checking to the RCU checklist. Suggested-by: David Miller Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4b6a2872a2a00042ee50024822ab706e5456aad8 Author: Arnd Bergmann Date: Thu Mar 4 15:59:23 2010 +0100 kvm: add __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Avi Kivity Cc: Marcelo Tosatti Reviewed-by: Josh Triplett commit 0906a372f2aa0fec1e59bd12b896883b6e41307a Author: Arnd Bergmann Date: Tue Mar 9 20:59:15 2010 +0100 net/netfilter: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Patrick McHardy Cc: "David S. Miller" Cc: Eric Dumazet Reviewed-by: Josh Triplett commit 2be85279281bafe7de808ca99de59af4fd474c49 Author: Arnd Bergmann Date: Thu Mar 4 15:50:28 2010 +0100 input: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Dmitry Torokhov Acked-by: Dmitry Torokhov Reviewed-by: Josh Triplett commit 5b22216e11f717adc344abc7f97b42e03127c6c0 Author: Arnd Bergmann Date: Wed Mar 3 10:20:10 2010 +0100 nfs: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Trond Myklebust commit e63ba744a64d234c8a07c469ab1806443cb0a6ff Author: Arnd Bergmann Date: Fri Feb 26 18:01:20 2010 +0100 keys: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: David Howells Reviewed-by: Josh Triplett commit 1b0ba1c9037b2265d6e5d0165d31e4c0269b603b Author: Arnd Bergmann Date: Wed Feb 24 19:45:09 2010 +0100 credentials: rcu annotation Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Peter Zijlstra Cc: Ingo Molnar Acked-by: David Howells Reviewed-by: Josh Triplett commit 2c392b8c3450ceb69ba1b93cb0cddb3998fb8cdc Author: Arnd Bergmann Date: Wed Feb 24 19:41:39 2010 +0100 cgroups: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Paul Menage Cc: Li Zefan Reviewed-by: Josh Triplett commit 67bdbffd696f29a0b68aa8daa285783a06651583 Author: Arnd Bergmann Date: Thu Feb 25 16:55:13 2010 +0100 rculist: avoid __rcu annotations This avoids warnings from missing __rcu annotations in the rculist implementation, making it possible to use the same lists in both RCU and non-RCU cases. We can add rculist annotations later, together with lockdep support for rculist, which is missing as well, but that may involve changing all the users. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Pavel Emelyanov Cc: Sukadev Bhattiprolu Reviewed-by: Josh Triplett commit ca5ecddfa8fcbd948c95530e7e817cee9fb43a3d Author: Paul E. McKenney Date: Wed Apr 28 14:39:09 2010 -0700 rcu: define __rcu address space modifier for sparse This commit provides definitions for the __rcu annotation defined earlier. This annotation permits sparse to check for correct use of RCU-protected pointers. If a pointer that is annotated with __rcu is accessed directly (as opposed to via rcu_dereference(), rcu_assign_pointer(), or one of their variants), sparse can be made to complain. To enable such complaints, use the new default-disabled CONFIG_SPARSE_RCU_POINTER kernel configuration option. Please note that these sparse complaints are intended to be a debugging aid, -not- a code-style-enforcement mechanism. There are special rcu_dereference_protected() and rcu_access_pointer() accessors for use when RCU read-side protection is not required, for example, when no other CPU has access to the data structure in question or while the current CPU hold the update-side lock. This patch also updates a number of docbook comments that were showing their age. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Christopher Li Reviewed-by: Josh Triplett commit d34a16661ed0fed433c9469d7cfa3ca4d30ca42e Author: Paul E. McKenney Date: Mon Jun 14 17:06:21 2010 -0700 net: convert to rcu_dereference_index_check() The task_cls_classid() function applies rcu_dereference() to integers, which does not work with the shiny new sparse-based checking in rcu_dereference(). This commit therefore moves to the new RCU API rcu_dereference_index_check(). Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett Acked-by: David S. Miller Acked-by: Herbert Xu commit b9959c2e4460b1df1d113d829180398588bb04b4 Author: Changli Gao Date: Tue Aug 17 19:07:35 2010 +0000 net_sched: sch_sfq: use proto_ports_offset() to support AH message Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit aca071c1c1c07bcc0b100b7c58e59790d6be6a69 Author: Changli Gao Date: Tue Aug 17 19:06:39 2010 +0000 netfilter: xt_hashlimit: use proto_ports_offset() to support AH message Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 3d04ebb6ab2ac9a3bea7644f0d13cdf65002b870 Author: Changli Gao Date: Tue Aug 17 20:34:40 2010 +0000 netfilter: ipt_CLUSTERIP: use proto_ports_offset() to support AH message Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 78d3307eded853f01c5e9aaa8c0768c2f75825a3 Author: Changli Gao Date: Tue Aug 17 19:05:08 2010 +0000 net_sched: cls_flow: use proto_ports_offset() to support AH message Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 12fcdefb3643607c47f39906a49056cf608bb545 Author: Changli Gao Date: Tue Aug 17 19:04:32 2010 +0000 net: rps: use proto_ports_offset() to handle the AH message correctly The SPI isn't at the beginning of an AH message. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit e760702ed8333588f9f21e7bf6597873993006f1 Author: Changli Gao Date: Tue Aug 17 19:03:44 2010 +0000 net: introduce proto_ports_offset() Introduce proto_ports_offset() for getting the position of the ports or SPI in the message of a protocol. Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit dbe5775bbc00116ed5699babfe17c54f32eb34c3 Author: Changli Gao Date: Tue Aug 17 19:01:38 2010 +0000 net: rps: skip fragment when computing rxhash Fragmented IP packets may have no transfer header, so when computing rxhash, we should skip them. Signed-off-by: Changli Gao Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 2d47b45951af087c1a4439c559309b0bf90a0718 Author: Changli Gao Date: Tue Aug 17 19:00:56 2010 +0000 net: rps: reset network header before calling skb_get_rxhash() skb_get_rxhash() assumes the network header pointer of the skb is set properly after the commit: commit bfb564e7391340638afe4ad67744a8f3858e7566 Author: Krishna Kumar Date: Wed Aug 4 06:15:52 2010 +0000 core: Factor out flow calculation from get_rps_cpu Signed-off-by: Changli Gao Signed-off-by: David S. Miller commit 91fe8173be4f4e330c6c3ab3fd4de96c11c98444 Author: Amit Kumar Salecha Date: Thu Aug 19 05:08:33 2010 +0000 qlcnic: update version 5.0.8 Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 091754a1652fad24664f1357ee7616e66953dd30 Author: Sucheta Chakraborty Date: Thu Aug 19 05:08:32 2010 +0000 qlcnic: rom lock recovery Fw can get stuck while holding pci semaphore. Driver will not be able to perform fw initialization, without this lock. Release semaphore forcefully in that case. Signed-off-by: Sucheta Chakraborty Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit d4066833bb1b35fefb1dd45eb2b10659d46bf151 Author: Sony Chacko Date: Thu Aug 19 05:08:31 2010 +0000 qlcnic: firmware initialization update Cleanup legacy code which is not valid for Qlogic CNA adapters. Signed-off-by: Sony Chacko Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 63e74e9cb7944b073c49159db934f69ca98a4ae6 Author: Amit Kumar Salecha Date: Thu Aug 19 05:08:30 2010 +0000 qlcnic: fix endiness in eswitch statistics Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 21854f029da525b5bef1dbd63c622e16a2eb2f90 Author: Amit Kumar Salecha Date: Thu Aug 19 05:08:29 2010 +0000 qlcnic: mark device state as failed Mark device state failed in error path. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 78f84e1a7028a77b72aebc769642a5e93d32b4f9 Author: Amit Kumar Salecha Date: Thu Aug 19 05:08:28 2010 +0000 qlcnic: fix npar state Privilege functions should wait for npar state to be operational. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit fe4d434da8e96142e36eb22fc5cf29ef2c2df9c2 Author: Sony Chacko Date: Thu Aug 19 05:08:27 2010 +0000 qlcnic: support anti mac spoofing Administrator can configure to drop packet in transmit, if it doesn't match interface mac address, in case of virtual function. Signed-off-by: Sony Chacko Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 0325d69b2a1feb72f11413dbfcc1705ccfc203c1 Author: Rajesh Borundia Date: Thu Aug 19 05:08:26 2010 +0000 qlcnic: configure offload setting on eswitch Device is not capable of enabling/disabling offload setting per port in case of Nic Partition.So offload settings needs to be enabled/disabled per eswitch and it will affect all the function on that eswitch. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 4e8acb011f0e9e86e29b53ff051e699ba0c5726d Author: Rajesh Borundia Date: Thu Aug 19 05:08:25 2010 +0000 qlcnic: configure port on eswitch o Nic partition capable devices has embedded switch, this needs to support various features like external switch. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 251b036a22f530aff26cf70f5cdb0cf64a072e46 Author: Sony Chacko Date: Thu Aug 19 05:08:24 2010 +0000 qlcnic: replace magic numbers with defines Signed-off-by: Sony Chacko Signed-off-by: David S. Miller commit 39895e07ca8ce13d8b38d00bf66236b93907c027 Author: Sony Chacko Date: Thu Aug 19 05:08:23 2010 +0000 qlcnic: remove unused code Serial number references are not used in driver. Signed-off-by: Sony Chacko Signed-off-by: David S. Miller commit f1bf7a5247a0f8e42025d19d732cbc70a57e6342 Author: Amit Kumar Salecha Date: Thu Aug 19 05:08:22 2010 +0000 qlcnic: fix inconsistent lock state Spin_lock(rds_ring->lock) is not required while posting buffers from qlcnic_open and freeing buffers from qlcnic_down. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 84418e3b10b5ba43eb5b85f725e75fd9c9730670 Author: Alexander Duyck Date: Thu Aug 19 13:40:54 2010 +0000 ixgbe: rewrite ethtool test to use standard config functions This change makes it so that the ethtool loopback test uses the standard ring configuration and allocation functions. As a result the loopback test will be much more effective at testing core driver functionality. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 31f05a2d875327ef133ac4b62261c4b875d1d10c Author: Alexander Duyck Date: Thu Aug 19 13:40:31 2010 +0000 ixgbe: update all DESC_ADV macros to accept a ring pointer All of the DESC_ADV macros are currently needing the pointers to be de-referenced before accessing the ring. Instead of having to add all of the asterisks it is easier to just update the macro to expect a pointer to the ring. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 9e10e045f8223e09f2c70cd6849ff86803d50c88 Author: Alexander Duyck Date: Thu Aug 19 13:40:06 2010 +0000 ixgbe: combine Rx into into ixgbe_configure_rx The Rx init is currently split over ixgbe_configure, ixgbe_configure_rx, and ixgbe_up_complete. Instead of leaving it split over 3 function it is easier to consolidate them all into ixgbe_configure_rx. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 2f1860b8d94a4457e401895be6fc9b9ffa2c8b2c Author: Alexander Duyck Date: Thu Aug 19 13:39:43 2010 +0000 ixgbe: pull all Tx init into ixgbe_configure_tx The Tx init was spread out over ixgbe_configure, ixgbe_configure_tx, and ixgbe_up_complete. This change combines all of that into the ixgbe_configure_tx function in order to simplify the Tx init path. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit a34bcfffae8ebbba9dcbacbc3de718cca66689dd Author: Alexander Duyck Date: Thu Aug 19 13:39:20 2010 +0000 ixgbe: move all GPIE register config into a single function This change moves all GPIE register configuration into a single function. The advantage of this is that we can avoid a number of unnecessary read/modify/write cycles on the register. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit f5b4a52e81d46b51ba07a983036739dc0c2c6c1c Author: Alexander Duyck Date: Thu Aug 19 13:38:57 2010 +0000 ixgbe: Move virtualization config into a separate function This change moves the configuration that was done in configure_rx into a separate virtualization configuration function. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 7367096a43259c9b461ec3120dcaaf674a092132 Author: Alexander Duyck Date: Thu Aug 19 13:38:34 2010 +0000 ixgbe: move all Rx DMA control register writes to one central location This change moves all of the Rx DMA control register writes to one central location. This should help to avoid accidentally overwriting existing settings. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 477de6ed027dbbeb0424a4d1a978429037287d22 Author: Alexander Duyck Date: Thu Aug 19 13:38:11 2010 +0000 ixgbe: Move max frame size and Rx buffer length configuration into a function This change consolidates all of the Rx max frame size and Rx buffer length configuration into a single function. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 826437d3de43174a8199776b5c1178bafa0b6634 Author: Alexander Duyck Date: Thu Aug 19 13:37:48 2010 +0000 ixgbe: remove redundant configuration of vmolr, rename generic variable The vmolr is configured already in ixgbe_set_rx_mode for the PF so there is no need to set it again in ixgbe_configure_rx. Instead of using the variable name reg, it is easier to just rename it to gcr_ext to reflect the register contents that the variable holds. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 1395807091300b84789316cad2a9142b58f9092a Author: Alexander Duyck Date: Thu Aug 19 13:37:21 2010 +0000 ixgbe: bump PS header size to 512 bytes Bump the header size for packet split to 512 bytes since this makes the best use of the 1k buffer that is allocated for any skb 512 bytes or smaller. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit f5dc442b4671e2961c2e5bb3e16a86ce7da86cd3 Author: Alexander Duyck Date: Thu Aug 19 13:36:49 2010 +0000 ixgbe: combine accesses to FCTRL register into ixgbe_set_rx_mode We are accessing the FCTRL register in multiple spots in the init path and we can simplify things by combining the configuration all into ixgbe_set_rx_mode. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 486545216472d67c16e3d3d60c5f21f60959c855 Author: Alexander Duyck Date: Thu Aug 19 13:36:27 2010 +0000 ixgbe: pull PSRTYPE configuration into a separate function The configuration of PSRTYPE was being done conditionally on if packet split is enabled or not. It can be configured always since it will not have any effect when packet split is not enabled. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit acd37177cc2e034ecb6cbb784a8b998229fa85c4 Author: Alexander Duyck Date: Thu Aug 19 13:36:05 2010 +0000 ixgbe: pull ring configuration into it's own function These changes add ixgbe_configure_rx_ring which is used to setup the base function pointers for the ring. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 05abb126c148b081ee9da5a611960e2a80205ea2 Author: Alexander Duyck Date: Thu Aug 19 13:35:41 2010 +0000 ixgbe: consolidate all setting of MRQC into one function This change simplifies the configuration of MRQC by consolidating the setting of it into one function. As such the register is no longer set in multiple places which should make any future changes easier to work with. In addition we can combine RSS related register writes into the call since enabling all of those bits without enabling RSS itself in MRQC should have no effect. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 43e69bf0f0df2691001dbd055ab8d4f795d1900c Author: Alexander Duyck Date: Thu Aug 19 13:35:12 2010 +0000 ixgbe: move Tx ring configuration into a separate function This patch moves the Tx ring configuration into a separate function. In addition the function drops the setting of the head writeback RO bit since head writeback is no longer used within ixgbe. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 120ff942cc6357b08fc817d89a5458038942edeb Author: Alexander Duyck Date: Thu Aug 19 13:34:50 2010 +0000 ixgbe: move configuration of the MTQC register into it's own function This patch moves the configuration of the MTQC register into it's own function call similar to ixgbe_setup_mrqc. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 179b4096e25c190fc987832e0037b40507cc7ca0 Author: Alexander Duyck Date: Thu Aug 19 13:34:27 2010 +0000 ixgbe: combine two modifications of TXDCTL into one In ixgbe_up_complete we were doing a read-modify-write of TXDCTL followed by another one just a few lines further down. Instead of performing two separate read-modify-writes it would make more sense to combine the two into one. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 67ebd79141e2dd503b0bc4898d06d07f07fc2635 Author: Alexander Duyck Date: Thu Aug 19 13:34:04 2010 +0000 ixgbe: move setting of GSO size for 82598 into ixgbe_configure_dcb We are unnecessarily modifying the GSO size for all HW when we don't need to. The code can be simplified by moving the check for DCB and the adjustment of the GSO size for 82598 into ixgbe_configure_dcb. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit d716a7d88549c99f9afbfc1f75dda1c390e2dc3a Author: Alexander Duyck Date: Thu Aug 19 13:33:41 2010 +0000 ixgbe: remove redundant DMA alignment code This patch removes the redundant DMA alignment code from the Rx buffer allocation path. This code is no longer necessary since all x86 buffers are now DMA aligned due to recent changes to NET_IP_ALIGN and NET_SKB_PAD. It also moves the setting of the Rx queue value into the allocation path since it is more likely that the queue mapping will still be in the cache at the time of allocation. Signed-off-by: Alexander Duyck Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 083fc582b8752c64b0ae73935ddb45a1dd794b4c Author: Don Skidmore Date: Thu Aug 19 13:33:16 2010 +0000 ixgbe: cleanup ixgbe_get_drvinfo to be extra careful with buffer boundaries Make the code in ixgbe_get_drvinfo more protected against buffer overflow boundaries by using snprintf and sizeof with snprintf. Signed-off-by: Don Skidmore Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller commit 4c1c952e37c7511a52f617ceddbc10c855d45d7b Author: Arnaldo Carvalho de Melo Date: Thu Aug 12 12:37:51 2010 -0300 perf ui browser: Add routines to compactly specify exit keys This makes the usual idiom for specifying a series of key codes to exit ui_browser__run() for specialized processing (search, annotate, etc) or plain exiting the browser more compact. It also abstracts away some more libnewt operations. At some point we'll also replace NEWT_KEY_foo with something that can be mapped to NEWT or, say, gtk. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit b50e003db13848dd74572ffd221047683313981d Author: Arnaldo Carvalho de Melo Date: Wed Aug 11 10:07:43 2010 -0300 perf ui browser: Return the exit key in all browsers Make all browsers return the exit key uniformly and remove the newtExitStruct parameter, removing one more newt specific thing from the ui API. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 8f9bbc408b6f704e84d0ae78e6093005ad58d4fe Author: Arnaldo Carvalho de Melo Date: Wed Aug 11 14:51:47 2010 -0300 perf ui browser: Abstract some more slang operations Browsers don't have to deal with absolute coordinates, just using (row, column) and leaving the rest to ui_browser is better and removes one more UI backend detail from the browsers. Also shorten the percent_color setting idiom, removing some more direct libslang calls. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit c8710ad38900153af7a3e6762e99c062cfa46443 Merge: 6016ee1 86397dc Author: Ingo Molnar Date: Thu Aug 19 12:48:09 2010 +0200 Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 357e8b5f723ba9e1d0a0f8ffb1361d607e43e19a Author: Michal Simek Date: Wed Aug 18 01:22:49 2010 +0000 xilinx_emaclite: netpoll support Netconsole requires poll support. Signed-off-by: Michal Simek Signed-off-by: David S. Miller commit 6f0bee16d0840c272229f2038a23a9a02dfc803d Author: Eric Dumazet Date: Wed Aug 18 03:13:08 2010 +0000 slip: fix get_stats() method Use integrated net_device_stats instead of a static one, and make sure no transient values are feeded. ndo_get_stats() can be called by concurrent cpus. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit dd57f970f91e2371040db709b3731ac34e43ccdb Author: Eric Dumazet Date: Wed Aug 18 03:42:54 2010 +0000 vxge: Implement 64bit stats vxge_get_stats() is racy, since it clears a block of memory (net_stats) possibly still used by other cpus. We can update this driver to full 64bit stats, since ndo_get_stats64() provides a private block to store results, and driver maintains 64bit counters already. We also remove net_stats field from struct vxge_sw_stats Signed-off-by: Eric Dumazet Acked-by: Jon Mason Signed-off-by: David S. Miller commit b92840900fb575004cac694e56fd0a43f54dc344 Author: Eric Dumazet Date: Wed Aug 18 10:44:34 2010 +0000 atm: remove a net_device_stats clear No need to clear device stats in lec_open() Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit bb2537f1e76b3fb18c3fc1dff1df98ebc10af633 Author: Tobias Klauser Date: Wed Aug 18 20:15:31 2010 +0000 ether3: Use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the ether1_priv struct. As the new ndo_get_stats function would just return dev->stats we can omit it. This patch also removes an incorrect memset of the stats on open. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 25aec76a3bd962f0aae1d7980ab1efa56cb24b43 Author: Tobias Klauser Date: Wed Aug 18 20:15:04 2010 +0000 ether1: Use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so use this one instead of a private copy in the ether1_priv struct. As the new ndo_get_stats function would just return dev->stats we can omit it. This patch also removes an incorrect memset of the stats on open. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 2244d07bfa2097cb00600da91c715a8aa547917e Author: Oliver Hartkopp Date: Tue Aug 17 08:59:14 2010 +0000 net: simplify flags for tx timestamping This patch removes the abstraction introduced by the union skb_shared_tx in the shared skb data. The access of the different union elements at several places led to some confusion about accessing the shared tx_flags e.g. in skb_orphan_try(). http://marc.info/?l=linux-netdev&m=128084897415886&w=2 Signed-off-by: Oliver Hartkopp Signed-off-by: David S. Miller commit 4d5870ec103e6569851b9710f0093f072b08439a Author: Joe Perches Date: Tue Aug 17 07:55:05 2010 +0000 drivers/net/sunvnet.c: Use pr_ and netdev_ Use the current message logging styles. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit c6c759884b05c7449a19d39c763a7482180e2def Author: Joe Perches Date: Tue Aug 17 07:55:04 2010 +0000 drivers/net/sungem: Use netdev_, netif_ and pr_ Use the current logging message styles. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 0b29b894b17747f7fa0c5668281c68b8cde7647b Author: Tobias Klauser Date: Tue Aug 17 06:13:05 2010 +0000 sunhme: Use return value of register_netdev Use the return value provided by register_netdev on error instead of using a previously set value. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit cb5d991a99104565f7b622b1b97587f4b1effa82 Author: Tobias Klauser Date: Tue Aug 17 06:11:24 2010 +0000 greth: Use return value of register_netdev Use the return value provided by register_netdev on error instead of hard setting it to -ENOMEM. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 6016ee13db518ab1cd0cbf43fc2ad5712021e338 Author: Namhyung Kim Date: Wed Aug 11 12:47:59 2010 +0900 perf, tracing: add missing __percpu markups ftrace_event_call->perf_events, perf_trace_buf, fgraph_data->cpu_data and some local variables are percpu pointers missing __percpu markups. Add them. Signed-off-by: Namhyung Kim Acked-by: Tejun Heo Cc: Steven Rostedt Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian LKML-Reference: <1281498479-28551-1-git-send-email-namhyung@gmail.com> Signed-off-by: Frederic Weisbecker commit 7ae07ea3a48d30689ee037cb136bc21f0b37d8ae Author: Frederic Weisbecker Date: Sat Aug 14 20:45:13 2010 +0200 perf: Humanize the number of contexts Instead of hardcoding the number of contexts for the recursions barriers, define a cpp constant to make the code more self-explanatory. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian commit 927c7a9e92c4f69097a6e9e086d11fc2f8a5b40b Author: Frederic Weisbecker Date: Thu Jul 1 16:20:36 2010 +0200 perf: Fix race in callchains Now that software events don't have interrupt disabled anymore in the event path, callchains can nest on any context. So seperating nmi and others contexts in two buffers has become racy. Fix this by providing one buffer per nesting level. Given the size of the callchain entries (2040 bytes * 4), we now need to allocate them dynamically. v2: Fixed put_callchain_entry call after recursion. Fix the type of the recursion, it must be an array. v3: Use a manual pr cpu allocation (temporary solution until NMIs can safely access vmalloc'ed memory). Do a better separation between callchain reference tracking and allocation. Make the "put" path lockless for non-release cases. v4: Protect the callchain buffers with rcu. v5: Do the cpu buffers allocations node affine. Signed-off-by: Frederic Weisbecker Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian Cc: Paul Mundt Cc: David Miller Cc: Borislav Petkov commit f72c1a931e311bb7780fee19e41a89ac42cab50e Author: Frederic Weisbecker Date: Thu Jul 1 02:31:21 2010 +0200 perf: Factorize callchain context handling Store the kernel and user contexts from the generic layer instead of archs, this gathers some repetitive code. Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 56962b4449af34070bb1994621ef4f0265eed4d8 Author: Frederic Weisbecker Date: Wed Jun 30 23:03:51 2010 +0200 perf: Generalize some arch callchain code - Most archs use one callchain buffer per cpu, except x86 that needs to deal with NMIs. Provide a default perf_callchain_buffer() implementation that x86 overrides. - Centralize all the kernel/user regs handling and invoke new arch handlers from there: perf_callchain_user() / perf_callchain_kernel() That avoid all the user_mode(), current->mm checks and so... - Invert some parameters in perf_callchain_*() helpers: entry to the left, regs to the right, following the traditional (dst, src). Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 70791ce9ba68a5921c9905ef05d23f62a90bc10c Author: Frederic Weisbecker Date: Tue Jun 29 19:34:05 2010 +0200 perf: Generalize callchain_store() callchain_store() is the same on every archs, inline it in perf_event.h and rename it to perf_callchain_store() to avoid any collision. This removes repetitive code. Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit c1a65932fd7216fdc9a0db8bbffe1d47842f862c Author: Frederic Weisbecker Date: Tue Jun 29 18:08:13 2010 +0200 perf: Drop unappropriate tests on arch callchains Drop the TASK_RUNNING test on user tasks for callchains as this check doesn't seem to make any sense. Also remove the tests for !current that is not supposed to happen and current->pid as this should be handled at the generic level, with exclude_idle attribute. Signed-off-by: Frederic Weisbecker Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 900853a4db7098b0e58ddcb732632ac43a7b2148 Author: Julia Lawall Date: Mon Aug 16 10:23:51 2010 +0000 drivers/net/qlcnic: Use available error codes The error code is stored in the variable err, but it is the variable ret that is returned instead. So store the error code in ret. Err is then useless. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ local idexpression x; constant C; @@ if (...) { ... x = -C ... when != x ( return <+...x...+>; | return NULL; | return; | * return ...; ) } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 49339ccae5ba361b62e829886117dbce4b77194f Author: Julia Lawall Date: Mon Aug 16 06:28:19 2010 +0000 net/ax25: Use available error codes Error codes are stored in err, but the return value is always 0. Return err instead. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ local idexpression x; constant C; @@ if (...) { ... x = -C ... when != x ( return <+...x...+>; | return NULL; | return; | * return ...; ) } // Signed-off-by: Julia Lawall Acked-by: Ralf Baechle Signed-off-by: David S. Miller commit b3d18f15092a7db2f229cd7bc69fc40eac0774f4 Author: Julia Lawall Date: Mon Aug 16 06:26:57 2010 +0000 net/ax25: Use available error codes Error codes are stored in err, but the return value is always 0. Return err instead. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ local idexpression x; constant C; @@ if (...) { ... x = -C ... when != x ( return <+...x...+>; | return NULL; | return; | * return ...; ) } // Signed-off-by: Julia Lawall Acked-by: Ralf Baechle Signed-off-by: David S. Miller commit 636b8116d4e116eca1ac978f546b16fadfc15a6c Author: Joe Perches Date: Thu Aug 12 12:22:51 2010 +0000 drivers/net/pcmcia: Use pr_ and netdev_ On Mon, 2010-08-09 at 17:34 +0200, Dominik Brodowski wrote: > look good from a PCMCIA point of view, therefore: > Signed-off-by: Dominik Brodowski If PCMCIA is still being looked after, then here's another for you, maybe for 2.6.37. Use the more descriptive logging message styles. There are whitespace/indentation errors in the original sources that these changes do not modify, so checkpatch errors were cheerfully ignored. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 00093fab980d0a8950a64bdf9e346d0497b9a7e4 Author: Dan Carpenter Date: Sat Aug 14 11:09:49 2010 +0000 net/sched: remove unneeded NULL check There is no need to check "s". nla_data() doesn't return NULL. Also we already dereferenced "s" at this point so it would have oopsed ealier if it were NULL. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 666be4298bd8f9508b32833b17a686dde630f2a5 Author: Jon Mason Date: Thu Aug 12 05:03:04 2010 +0000 s2io: Update driver version Update s2io driver's version to reflect the series of patches. Signed-off-by: Jon Mason Signed-off-by: David S. Miller commit be265e9bae343d803145bbe910a8b00bc4bea3cc Author: Jon Mason Date: Thu Aug 12 05:03:03 2010 +0000 s2io: remove unused code usr_addrs is never referenced outside the initial struct population during open, thus making it unnecessary. Remove it, the code that references it, and the struct that it is the only user of. Signed-off-by: Jon Mason Signed-off-by: David S. Miller commit 86397dc3ccfc0e17b7550d05eaf15fe91f6498dd Author: Li Zefan Date: Tue Aug 17 13:53:06 2010 +0800 tracing: Clean up seqfile code for format file Remove the nasty hack that marks a pointer's LSB to distinguish common fields from event fields. Replace it with a more sane approach. Signed-off-by: Li Zefan LKML-Reference: <4C6A23C2.9020606@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit baeb2ffab4e67bb9174e6166e070a9a8ec94b0f6 Author: Joe Perches Date: Wed Aug 11 07:02:48 2010 +0000 drivers/net: Convert unbounded kzalloc calls to kcalloc These changes may be slightly safer in some instances. There are other kzalloc calls with a multiply, but those calls are typically "small fixed #" * sizeof(some pointer)" and those are not converted. Signed-off-by: Joe Perches Acked-by: Gertjan van Wingerde Acked-by: Luciano Coelho Signed-off-by: David S. Miller commit 5a68d5ee000bb784c4856391b4861739c8bbd341 Author: Allan Stephens Date: Tue Aug 17 11:00:16 2010 +0000 tipc: Prevent missing name table entries when link flip-flops rapidly Ensure that TIPC does not re-establish communication with a neighboring node until it has finished updating all data structures containing information about that node to reflect the earlier loss of contact. Previously, it was possible for TIPC to perform its purge of name table entries relating to the node once contact had already been re-established, resulting in the unwanted removal of valid name table entries. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 564e83b51a12b794e3f63a2d872398e1ee21616f Author: Allan Stephens Date: Tue Aug 17 11:00:15 2010 +0000 tipc: Allow connect() to wait indefinitely Cause a socket whose TIPC_CONN_TIMEOUT option is zero to wait indefinitely for a response to a connection request using connect(). Previously, specifying a timeout of 0 ms resulted in an immediate timeout, which was inconsistent with the behavior specified by Posix for a socket's receive and send timeout. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit c2de58140a380172610b6a0f07f975abb2fbb311 Author: Allan Stephens Date: Tue Aug 17 11:00:14 2010 +0000 tipc: Minor enhancements to name table display format Eliminate printing of dashes after name table column headers (to adhere more closely to the standard format used in tipc-config), and simplify name table display logic using array lookups rather than if-then-else logic. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 76ae0d71d839b365faa7fdca0eec85a6d1a20d95 Author: Allan Stephens Date: Tue Aug 17 11:00:12 2010 +0000 tipc: Optimize tipc_node_has_active_links() Eliminate unnecessary checking for null node pointer and redundant check of second active link array entry. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 96d841b7038b8091af3530a008793f5577337d3a Author: Allan Stephens Date: Tue Aug 17 11:00:11 2010 +0000 tipc: Remove per-connection sequence number logic Remove validation of the per-connection sequence numbers on routable connections, since routable connections are not supported by TIPC. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 0048b826afae7c47afdc47c3854707581cafe3d8 Author: Allan Stephens Date: Tue Aug 17 11:00:10 2010 +0000 tipc: Fix bug in broadcast link transmit statistics computation Modify TIPC's broadcast link so that it counts each piece of a fragmented message individually, rather than as treating the group as a single message. This ensures that proper correlation of sent and received traffic can be done when the broadcast link statistics are displayed, and is consistent with the way fragments are counted by TIPC's unicast links. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 5b1f7bdeb698547cc319c7a302a5acf585227a92 Author: Allan Stephens Date: Tue Aug 17 11:00:09 2010 +0000 tipc: Fix premature broadcast advertisement by sending node Prevent a TIPC node from sending out a LINK_STATE message advertising a broadcast message that it is in the process of sending, but has not yet actually sent. Previously, it was possible for a link timeout to occur in between the time the broadcast link updated its "last message sent" counter and the time the broadcast message was passed to the broadcast bearer for transmission. This ensures that the code which issues the LINK_STATE message isn't informed of the new message until the broadcast bearer has had a chance to send it. Note: The "last message sent" value is stored in the "fsm_msg_count" field of the link structure used by the broadcast link. Since the broadcast link doesn't utilize the normal link FSM, this field can be re-used rather than adding a new field to the broadcast link. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 7e3e5d0950559d1118dccbdff3c765fffcf04fd5 Author: Allan Stephens Date: Tue Aug 17 11:00:08 2010 +0000 tipc: Prevent crash when broadcast link cannot send to all nodes Allow TIPC's broadcast link to continue operation when it is unable to send a message to all nodes in the cluster. Previously, the broadcast link attempted to put the broadcast pseudo-bearer into a blocked state; however, this caused a crash because the associated bearer structure is only partially initialized. Further investigation has revealed some conceptual problems with blocking the pseudo-bearer; consequently, this functionality has been disabled for the time being and the undelivered message is eventually resent by the broadcast link's existing message retransmission mechanism (if possible). Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit b02b69c8a403859ec72090742727e853d606a325 Author: Allan Stephens Date: Tue Aug 17 11:00:07 2010 +0000 tipc: Check for disabled bearer when processing incoming messages Add a check to tipc_recv_msg() to ensure it discards messages arriving on a newly disabled bearer. This is needed to deal with a race condition that can arise if the bearer is in the midst of being disabled when it receives a message. Performing the check after tipc_net_lock has been taken ensures that TIPC's bearers are in a stable state while the message is being processed. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit f662c07058f7e6365ae65080d772f9122f6f50a9 Author: Allan Stephens Date: Tue Aug 17 11:00:06 2010 +0000 tipc: correct problems with misleading flags returned using poll() Prevent TIPC from incorrectly setting returned flags to poll() in the following cases: - an unconnected socket no longer indicates that it is always readable - an unconnected, connecting, or listening socket no longer indicates that it is always writable Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 35997e3157eba16c6124d440bdf9272087129b2a Author: Allan Stephens Date: Tue Aug 17 11:00:05 2010 +0000 tipc: Provide correct error code for unsupported connect() operation Modify TIPC to return EOPNOTSUPP if an application attempts to perform a non-blocking connect() operation, which is not supported by TIPC. Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 3720d40b201fe82dce1d8a64a31bfbf49c221771 Author: Florian Westphal Date: Tue Aug 17 11:00:04 2010 +0000 tipc: add SO_RCVLOWAT support to stream socket receive path Add support for the SO_RCVLOWAT socket option to TIPC's stream socket type. Signed-off-by: Florian Westphal Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit f81380925209bc60732a57eef41ab440c056aacf Author: Anders Kaseorg <[andersk@ksplice.com]> Date: Tue Aug 17 11:00:03 2010 +0000 tipc: Fix log buffer memory leak if initialization fails Moves log buffer cleanup into tipc_core_stop() so that memory allocated for the log buffer is freed if tipc_core_start() is unsuccessful. Signed-off-by: Anders Kaseorg Signed-off-by: Allan Stephens Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 24763d80fbb45aaf477d53c2203c929f6c41b5fc Author: Sucheta Chakraborty Date: Tue Aug 17 00:34:25 2010 +0000 qlcnic: turn off lro when rxcsum is disabled. o Also dont allow lro to be turn on, if rx csum is disabled Signed-off-by: Sucheta Chakraborty Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 8dec32cc421864702912c4341934fe0c737a9798 Author: Sony Chacko Date: Tue Aug 17 00:34:24 2010 +0000 qlcnic: fix link diag test o Give sufficient time for all makes of PHY modules to establish the link after loopback test. o Perform online test before offline test. Signed-off-by: Sony Chacko Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 69324275de07584fbd0e77a517f9b43e82eaf9d6 Author: Sony Chacko Date: Tue Aug 17 00:34:23 2010 +0000 qlcnic: fix link status message Display interface name with netdev_info() for link status message. Signed-off-by: Sony Chacko Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit b6021212291d1eb1e7d1245bbd8c53bcbe2355d7 Author: Amit Kumar Salecha Date: Tue Aug 17 00:34:22 2010 +0000 qlcnic: add eswitch statistics support Adding eswitch statistics support. User can get whole eswitch stats or stats of func belong to that eswitch. Added: o command to get statistics of eswitch and function. o sysfs support to export eswitch and func statatistics. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit ecd7d31038e2e0e95b4596eec021e02ba67a0a37 Author: Rajesh Borundia Date: Tue Aug 17 00:34:21 2010 +0000 qlcnic: fix for setting function modes function modes was not working with CNA device, in CNA mode other function(FCOE) can be enabled before nic. Signed-off-by: Rajesh Borundia Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 3c4b23b1be212d1b8494655182c0d4cef0a37be3 Author: Amit Kumar Salecha Date: Tue Aug 17 00:34:20 2010 +0000 qlcnic: device state management fixes for virtual func o NPAR state should be set to operationl by Mangement function only. o NPAR state should be set to non operational before device reset. o VF function should wait for NPAR state to be operational. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 933fce12a33f219e9021a9ab7b2f9cff94fa8b0e Author: Amit Kumar Salecha Date: Tue Aug 17 00:34:19 2010 +0000 qlcnic: fix aer for virtual func Virtual function are not privilge to initialize firmware. Signed-off-by: Amit Kumar Salecha Signed-off-by: David S. Miller commit 1f76da51f58eda3a027e71e98404b80fcad2d80d Author: Roopa Prabhu Date: Tue Aug 10 18:55:26 2010 +0000 enic: Mark intr_timer in vnic_enet_config as deprecated Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit 832177901a61aeda1f2122e323c39881ec84af65 Author: Roopa Prabhu Date: Tue Aug 10 18:55:20 2010 +0000 enic: Check if rq/wq buf not NULL before freeing them Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit ce16cc02f9fe21d4e42116305e5ea9d12e51635d Author: Roopa Prabhu Date: Tue Aug 10 18:55:15 2010 +0000 enic: Clean up: remove enic_dev_stats_clear Remove function enic_dev_stats_clear and its reference in enic device init code. Firmware clears device stats on device open. So, no need for the driver to do it again. Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit 7c46835e4845fed5f348f5845a3a6165874e2f05 Author: Roopa Prabhu Date: Tue Aug 10 18:55:10 2010 +0000 enic: Use offsetof macro in vic tlv length calculation Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit ae94abe1687871d9772494b3d378c6d3decd7f75 Author: Roopa Prabhu Date: Tue Aug 10 18:55:05 2010 +0000 enic: Add new firmware devcmds Add new firmware devcmds: CMD_PROXY_BY_INDEX, CMD_CONFIG_INFO_GET Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit 90cf0b53d74ebca4f62d865ae39d21ed3bdbf877 Author: Roopa Prabhu Date: Tue Aug 10 18:55:00 2010 +0000 enic: Add support for firmware management device This patch adds support for firmware management device in enic driver. A management device is a virtual PCIe device that firmware can present to the host as its management endpoint. It provides the interface between the host and adapter firmware for all management operations. Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit 294dab25e7068f9df80af53aceed332f9621c970 Author: Roopa Prabhu Date: Tue Aug 10 18:54:55 2010 +0000 enic: Add set mac address This patch implements the ndo_set_mac_address netdev operation for an enic device Signed-off-by: Scott Feldman Signed-off-by: Roopa Prabhu Signed-off-by: Vasanthy Kolluri Signed-off-by: David S. Miller commit 559764d1996e6ae769feb07918687b0806f2d975 Author: Florian Fainelli Date: Sun Aug 8 10:09:39 2010 +0000 cpmac: fix all checkpatch errors and warnings This patches fixes a couple of checkpatch warnings and errors: - lines over 80 columns - printk() instead of pr_cont() - assignments in tests (if ((foo == bar()))) Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 264fd77a67f1a4fe102477d824014459c7ff61f3 Author: Tobias Klauser Date: Mon Aug 9 05:04:34 2010 +0000 am79c961a: Use net_device_stats from struct net_device struct net_device has its own struct net_device_stats member, so we can use this one instead of a private copy in the dev_priv struct. Cc: Kulikov Vasiliy Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller commit 2154c704c7240379fae4633359e06e8df875c1fd Author: Florian Fainelli Date: Sun Aug 8 10:08:44 2010 +0000 r6040: fix all checkpatch errors and warnings This patch fixes a couple of errors and warnings spotted by checkpatch.pl: - some lines were over 80 columns - there were some whitespaces left The call to printk is now replaced by a call to pr_info and the log-level included in the driver version is now removed, so there are no longer false positives on this warning. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 7136e11e0cf520ab3fc7b55a20e60c2ec5ea88e1 Author: Joe Perches Date: Sun Aug 8 04:50:36 2010 +0000 pcnet_cs: Use pr_fmt and pr_ It looks as if the printks in get_ax88190 are incorrect and were duplicated and superceded by a test in pcnet_config, so I removed them. Changed the level of the ax88190 test to KERN_NOTICE to match the other message styles in pcnet_config. Compiled but untested. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit ea0a52c4fd8eb2c8e0586b939c484e160fb4a721 Author: Wolfram Sang Date: Sun Aug 8 02:32:05 2010 +0000 pcnet_cs: Use proper netdev_*-printouts To prevent broken messages like: [ 204.024291] eth%d: pcnet_reset_8390() did not complete. Signed-off-by: Wolfram Sang Cc: Dominik Brodowski Cc: Joe Perches Cc: David Miller Signed-off-by: David S. Miller commit 01414802054c382072b6cb9a1bdc6e243c74b2d5 Author: Ben Hutchings Date: Tue Aug 17 02:31:15 2010 -0700 ethtool: Provide a default implementation of ethtool_ops::get_drvinfo The driver name and bus address for a net_device can normally be found through the driver model now. Instead of requiring drivers to provide this information redundantly through the ethtool_ops::get_drvinfo operation, use the driver model to do so if the driver does not define the operation. Since ETHTOOL_GDRVINFO no longer requires the driver to implement any operations, do not require net_device::ethtool_ops to be set either. Remove implementations of get_drvinfo and ethtool_ops that provide only this information. Signed-off-by: Ben Hutchings Signed-off-by: David S. Miller commit 6a103b0d44e9f97dc430002cf3ac7a7defa3819f Author: John Kacur Date: Thu Aug 5 17:10:54 2010 +0200 lockup detector: Fix grammar by adding a missing "to" in the comments This fixes a minor grammar problem in the comments in hung_task.c Signed-off-by: John Kacur Cc: Peter Zijlstra LKML-Reference: <1281021054-4228-2-git-send-email-jkacur@redhat.com> Signed-off-by: Ingo Molnar commit f1b499f029c5dde85d46a8811353c62f29157541 Author: John Kacur Date: Thu Aug 5 17:10:53 2010 +0200 lockdep: Remove __debug_show_held_locks There is no longer any functional difference between __debug_show_held_locks() and debug_show_held_locks(), so remove the former. Signed-off-by: John Kacur Cc: Peter Zijlstra LKML-Reference: <1281021054-4228-1-git-send-email-jkacur@redhat.com> Signed-off-by: Ingo Molnar commit bb8a10bbd10a45db0eb45bac520489bdbc0917ef Author: Julia Lawall Date: Thu Aug 5 10:29:38 2010 +0000 net/decnet: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit f7df0b8d924ad2f39852ea397d39a51fbb955212 Author: Julia Lawall Date: Thu Aug 5 10:29:19 2010 +0000 drivers/isdn: Adjust confusing if indentation In hisax/hfc_sx.c and mISDN/l1oip_core.c, the code after the if is outdented so that it is not aligned with the if branch. In mISDN/dsp_cmx.c, an else is added between the original if branch and the following statement, in line with the code following it. Without this change, the first assignment to dsp->rx_W has no useful effect. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 9e1634a734bdd2dac5687f57dd427bef083e4659 Author: Julia Lawall Date: Thu Aug 5 10:28:31 2010 +0000 drivers/net: Adjust confusing if indentation Outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 1f1d47ef4779fb45e8cccde6f31c76c3cdabbec1 Author: Julia Lawall Date: Thu Aug 5 10:28:12 2010 +0000 drivers/net/hamradio: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit cc81735e8099deaed7436418f6d83a98be2c2101 Author: Julia Lawall Date: Thu Aug 5 10:26:38 2010 +0000 drivers/net/bnx2x: Adjust confusing if indentation Outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Acked-by: Eilon Greenstein Signed-off-by: David S. Miller commit 2145f1afc6b2abe97d983e90c53a1dc17e2da831 Author: Julia Lawall Date: Thu Aug 5 10:26:20 2010 +0000 drivers/net: Adjust confusing if indentation Outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 6f74dbbc29df6f53bc0deaa8e5a6ff81a4f91534 Author: Julia Lawall Date: Thu Aug 5 10:25:24 2010 +0000 drivers/atm: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 022484c17253aea84aa2603068ea065ca59bb5e5 Author: Julia Lawall Date: Thu Aug 5 10:22:20 2010 +0000 drivers/net: Adjust confusing if indentation In amd8111e.c, indent the branch of an if. In eepro.c, outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 9b0f1d85968334c9bbe8675a0fc676c6e15ba577 Author: Julia Lawall Date: Thu Aug 5 10:22:00 2010 +0000 drivers/net/irda: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 510a05edce43ec29ceb105677ad8e6ff58f02c72 Author: Julia Lawall Date: Thu Aug 5 10:19:00 2010 +0000 net/atm: Adjust confusing if indentation Outdent the code following an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 354c8e3104a8513dbbdc4dea1ffbefe714371e88 Author: Julia Lawall Date: Thu Aug 5 10:17:00 2010 +0000 drivers/net/wan: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Acked-by: Krzysztof HaƂasa Signed-off-by: David S. Miller commit 1565c7c1c4c8e931bdba66abc8aa6f141a406872 Author: Krishna Kumar Date: Wed Aug 4 06:15:59 2010 +0000 macvtap: Implement multiqueue for macvtap driver Implement multiqueue facility for macvtap driver. The idea is that a macvtap device can be opened multiple times and the fd's can be used to register eg, as backend for vhost. Signed-off-by: Krishna Kumar Signed-off-by: David S. Miller commit bfb564e7391340638afe4ad67744a8f3858e7566 Author: Krishna Kumar Date: Wed Aug 4 06:15:52 2010 +0000 core: Factor out flow calculation from get_rps_cpu Factor out flow calculation code from get_rps_cpu, since other functions can use the same code. Revisions: v2 (Ben): Separate flow calcuation out and use in select queue. v3 (Arnd): Don't re-implement MIN. v4 (Changli): skb->data points to ethernet header in macvtap, and make a fast path. Tested macvtap with this patch. v5 (Changli): - Cache skb->rxhash in skb_get_rxhash - macvtap may not have pow(2) queues, so change code for queue selection. (Arnd): - Use first available queue if all fails. Signed-off-by: Krishna Kumar Signed-off-by: David S. Miller commit 6891dd25d3f82e50979b27fde1980aa96320b975 Author: Dmitry Kravkov Date: Tue Aug 3 21:49:40 2010 +0000 bnx2x: Load firmware in open() instead of probe() Loading firmware when actually bringing eth device up. This also will allow driver to be insmoded when filesystem with firmware files is not available yet. Suggested by Stephen Hemminger Signed-off-by: Dmitry Kravkov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller commit eca6fc7836af8eec9ba7e029b604690451bb44a0 Merge: da5cabf 5ca6f7c Author: David S. Miller Date: Mon Aug 16 20:44:14 2010 -0700 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 commit b68b3c4d92ff2440414137763477648e6db6c96f Author: Andrew Morton Date: Tue Aug 10 18:01:06 2010 -0700 drivers/net/wireless/libertas/cfg.c: needs sched.h i386 allmodconfig: drivers/net/wireless/libertas/cfg.c: In function 'lbs_scan_worker': drivers/net/wireless/libertas/cfg.c:722: error: 'TASK_NORMAL' undeclared (first use in this function) drivers/net/wireless/libertas/cfg.c:722: error: (Each undeclared identifier is reported only once drivers/net/wireless/libertas/cfg.c:722: error: for each function it appears in.) drivers/net/wireless/libertas/cfg.c: In function 'lbs_cfg_connect': drivers/net/wireless/libertas/cfg.c:1267: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function) drivers/net/wireless/libertas/cfg.c:1267: error: implicit declaration of function 'signal_pending' drivers/net/wireless/libertas/cfg.c:1267: error: implicit declaration of function 'schedule_timeout' So wait.h has a dependency on sched.h, but doesn't include sched.h. This patch doesn't fix that. Cc: Dan Williams Cc: "John W. Linville" Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit afea0b7af7a0c070da8b2029d721abc930e5f96f Author: Johannes Berg Date: Tue Aug 10 09:46:42 2010 +0200 cfg80211: check if WEP is available for shared key auth When shared key auth is requested, cfg80211 should verify that the device is capable of WEP crypto which is required. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 5daa8a8e691e28c6c725e7e91319b160b555c615 Author: Johannes Berg Date: Tue Aug 10 09:46:41 2010 +0200 mac80211: dont advertise WEP if unavailable When WEP is unavailable, don't advertise it to cfg80211. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit dc1580ddfc1f70636f6ef80a385902f7e8278deb Author: Johannes Berg Date: Tue Aug 10 09:46:40 2010 +0200 mac80211: remove unused status flag checks The decryption code verifies whether or not a given frame was decrypted and verified by hardware. This is unnecessary, as the crypto RX handler already does it long before the decryption code is even invoked, so remove that code to avoid confusion. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 60ae0f20058d19ada94093dc3ef7ae0737597fba Author: Johannes Berg Date: Tue Aug 10 09:46:39 2010 +0200 mac80211: move key tfm setup There's no need to keep separate if statements for setting up the CCMP/AES-CMAC tfm structs; move that into the existing switch statement. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 97359d1235eaf634fe706c9faa6e40181cc95fb8 Author: Johannes Berg Date: Tue Aug 10 09:46:38 2010 +0200 mac80211: use cipher suite selectors Currently, mac80211 translates the cfg80211 cipher suite selectors into ALG_* values. That isn't all too useful, and some drivers benefit from the distinction between WEP40 and WEP104 as well. Therefore, convert it all to use the cipher suite selectors. Signed-off-by: Johannes Berg Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 915a824e30c503157c38115eb6a85f60bb653738 Author: Dan Williams Date: Sat Aug 7 21:16:30 2010 -0500 libertas: [spi] use common firmware request helper and new firmware locations linux-firmware puts libertas firmware in /libertas. Fix the driver to look there first, but fall back to the old firmware names if the new ones don't exist. Add preference for newer firmware versions too. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 3d32a58b87cd251b50842f93b87d5458061c0cfc Author: Dan Williams Date: Sat Aug 7 21:15:52 2010 -0500 libertas: [sdio] use common firmware request helper and new firmware locations linux-firmware puts libertas firmware in /libertas. Fix the driver to look there first, but fall back to the old firmware names if the new ones don't exist. Add preference for newer firmware versions too. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 82222e9ba75298e5bcd89803b6a11e2d7dfae70e Author: Dan Williams Date: Sat Aug 7 21:15:19 2010 -0500 libertas: [cs] use common firmware request helper and new firmware locations linux-firmware puts libertas firmware in /libertas. Fix the driver to look there first, but fall back to the old firmware names if the new ones don't exist. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 72f7a6671e8a1433467757e94c883d39eeccd4ba Author: Dan Williams Date: Sat Aug 7 21:14:33 2010 -0500 libertas: add two-stage firmware request helper SDIO, GSPI, and CS all use 2-stage firmware and the loading process and logic should be the same. Allow module parameters to override the automatic firmware choice, otherwise just walk the bus driver's firmware table and pick out the first firmware pair that exists for the given model. Some special care is taken to allow overriding of just the helper or the main firmware, but let the other of the pair be chosen automatically. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 5cddea816eec8b5f6ab76d3fafcbb1533c8c2b9d Author: Dan Williams Date: Sat Aug 7 21:13:57 2010 -0500 libertas: [usb] use new firmware locations Look for firmware where the linux-firmware tree actually puts it, but fall back to original firmware name & location when the new location doesn't exist. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit e5ef5bad345f97f1fef7ccdc01a88c298629a5d9 Author: Ivo van Doorn Date: Fri Aug 6 20:49:27 2010 +0200 rt2x00: Remove ieee80211_rx_status from rt2x00_dev rt2x00 was keeping a copy of ieee80211_rx_status embedded into the rt2x00_dev structure. For each RX frame, this structure was copied into the skb->cb where mac80211 would handle it further. However at the moment only the fields current band, and frequency were updated. Whereas the band was already provided directly within the rt2x00_dev structure. Save a memcpy action, and reduce memory a bit, by adding a curr_freq field to rt2x00_dev, and completely remove the ieee80211_rx_status structure from rt2x00_dev. Signed-off-by: Ivo van Doorn Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 0856d9c04a1655612abd96793c1e8b1c1792457e Author: Helmut Schaa Date: Fri Aug 6 20:48:27 2010 +0200 rt2x00: Update comments regarding TXWI and TX_STA_FIFO Add some comments about the TXWI fields and the TX_STA_FIFO register. Especially describe the relationship between the TXWI field PACKETID and the PID field in the TX_STA_FIFO register. Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 96481b20f4d6df7021867ae9a9deaa989ec32e40 Author: Ivo van Doorn Date: Fri Aug 6 20:47:57 2010 +0200 rt2x00: Implement TX status reporting for rt2800usb The TX_STA_FIFO register which is used for per-frame TX frame status reporting is also valid on rt2800usb. We can move the rt2800pci_txdone function into rt2800lib where it can also be used by rt2800usb. rt2800usb needs to overwrite the txdone work handler to a different function. Both rt2800usb as rt2800_txdone need to take into account that IO failures can occur while uploading the URB, which means that when obtaining the new entry the IO status must be checked. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 0c5879bc62f9b8eb31520a86213466f3a68ec794 Author: Ivo van Doorn Date: Fri Aug 6 20:47:20 2010 +0200 rt2x00: Request TXWI pointer from driver The only reason why the write_tx_data callback function is needed inside the driver, is because the location of the TXWI descriptor is different on PCI and USB hardware. Except for the beacon, where the TXWI is always at the start of the SKB buffer. In both cases the drivers write_tx_data function only wrap around the function rt2800_write_txwi. Move write_tx_data completely into the rt2800lib library, and add a callback function to obtain the TXWI pointer. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 3392beced38f67615b7fc88374940cecec6a0e4f Author: Ivo van Doorn Date: Fri Aug 6 20:46:53 2010 +0200 rt2x00: Add helper function for reporting tx status At some points, some drivers can't report the full TX status information. This can happen for the UNKNOWN state, or the FAILURE state (in case the URB failed). Add a wrapper function to simplify reporting the empty TX information. Signed-off-by: Ivo van Doorn Acked-by: Helmut Schaa Signed-off-by: John W. Linville commit 84804cdca043e2315bf5eae60807ac105929073f Author: Ivo van Doorn Date: Fri Aug 6 20:46:19 2010 +0200 rt2x00: Set MIMO PS flag in tx descriptor for STAs in dynamic SMPS mode Signed-off-by: Helmut Schaa Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit 7e613e1666d59b5364f7918b3427bf328ac5f9ca Author: Ivo van Doorn Date: Fri Aug 6 20:45:38 2010 +0200 rt2x00: Move USB tx/rx done handling to workqueue Move all TX and RX completion handling into a work structure, which is handeled on the mac80211 workqueue. This simplifies the code in rt2x00lib since it no longer needs to check if the device is USB or PCI to decide which mac80211 function should be used. In the watchdog some changes are needed since it can no longer rely on the TX completion function to be run while looping through the entries. (Both functions now work on the same workqueue, so this would deadlock). So the watchdog now waits for the URB to return, and handle the TX status report directly. As a side-effect, the debugfs entry for the RX queue now correctly displays the positions of the INDEX and INDEX_DONE counters. This also implies that it is not possible to perform checks like queue_empty() and queue_full() on the RX queue. Signed-off-by: Ivo van Doorn Signed-off-by: John W. Linville commit c17512d846a4b063c8d3e708d82c0664d9c7182e Author: Luis R. Rodriguez Date: Thu Aug 5 17:56:54 2010 -0400 ath9k: remove duplicate get_hw_crypto_keytype() Use ath9k_cmn_get_hw_crypto_keytype() instead which is already exported and shared, and does exactly the same thing. Reported-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 6fe140024ff66d7eccde1a151a08c262dc7a1e6f Author: Julia Lawall Date: Thu Aug 5 22:26:56 2010 +0200 drivers/net/wireless/ath/ath9k: Adjust confusing if indentation Outdent the code following the if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit a3d558355e7695ca78fc3f0df611af482096bd87 Author: Julia Lawall Date: Thu Aug 5 22:26:04 2010 +0200 drivers/net/wireless/prism54: Adjust confusing if indentation Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 2674f82d3eef97df98fd5dbd4224ce1ce4800a3b Author: Julia Lawall Date: Thu Aug 5 22:23:54 2010 +0200 drivers/net/wireless/libertas: Adjust confusing if indentation At the point of the patched code, err has already been tested, so it is only worthwhile to test it again in the if branches where it is changed. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Acked-by: Dan Williams Signed-off-by: John W. Linville commit 04600794958f1833f5571c6cde40f260ab557f55 Author: Johannes Berg Date: Thu Aug 5 17:45:15 2010 +0200 cfg80211: support sysfs namespaces Enable using network namespaces with wireless devices even when sysfs is enabled using the same infrastructure that was built for netdevs. Signed-off-by: Johannes Berg Acked-by: "Eric W. Biederman" Signed-off-by: John W. Linville commit d1f5b7a34aa5ff703c4966ea2652d4212ac75940 Author: Johannes Berg Date: Thu Aug 5 17:05:55 2010 +0200 mac80211: allow drivers to request SM PS mode change Sometimes drivers have more information than the stack about how their antennas/chains are used, and may require that the SM PS mode be changed. This could happen, for example, when detecting that the user disconnected an antenna. Thus this patch introduces API to allow drivers to request SM PS mode changes. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 7da7cc1d42d8ce02cca16df8c021e6d657f1f8fd Author: Johannes Berg Date: Thu Aug 5 17:02:38 2010 +0200 mac80211: per interface idle notification Sometimes we don't just need to know whether or not the device is idle, but also per interface. This adds that reporting capability to mac80211. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 1fdaa46e9f26ccbab5e0eb8c4d4f8e1fbf32c7df Author: Andrea Gelmini Date: Thu Aug 5 15:51:35 2010 +0200 net: mac80211: Fix a typo. "userpace" -> "userspace" Signed-off-by: Andrea Gelmini Signed-off-by: John W. Linville commit 3f3b6a8d90b6e762e2bb83e6a9e86d9534b56cdc Author: Johannes Berg Date: Thu Aug 5 10:20:27 2010 +0200 cfg80211: deauth doesn't always imply disconnect When an AP sends a deauth frame, or we send one to an AP, that only means we lost our connection if we were actually connected to that AP. Check this to avoid sending spurious "disconnected" events and breaking "iw ... link" reporting. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2bff8ebf32a7c5ec9e5f5eeffef94a8cb622f5f0 Author: Christian Lamparter Date: Thu Aug 5 01:36:41 2010 +0200 mac80211: AMPDU rx reorder timeout timer This patch introduces a new timer, which will release queued-up MPDUs from the reorder buffer, whenever they've waited for more than HT_RX_REORDER_BUF_TIMEOUT (which is at around 100 ms). The advantage of having a dedicated timer, instead of relying on a constant stream of freshly arriving aMPDUs to release the old ones, is particularly observable when even a small fraction of MPDUs are forever lost at low network speeds. Previously under these circumstances frames would become stuck in the reorder buffer and the network stack of both HT peers throttled back, instead of revving up and gunning the pipes. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 071d9ac253ff51154beb7e33967168e30bc96053 Author: Christian Lamparter Date: Thu Aug 5 01:36:36 2010 +0200 mac80211: remove unused rate function parameter This patch removes a few stale parameters and variables which survived the last, large rx-path reorganization: "mac80211: correctly place aMPDU RX reorder code" Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit aa0c86364f925c6f12195072562b18c5609ff082 Author: Christian Lamparter Date: Thu Aug 5 01:36:04 2010 +0200 mac80211: put rx handlers into separate functions This patch takes the reorder logic from the RX path and moves it into separate routines to make the expired frame release accessible. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 6044474ed86484b899d46e040ade3872e83fc9f7 Author: Felix Fietkau Date: Mon Aug 2 15:53:15 2010 +0200 ath9k: shorten the calibration interval during strong interference When the noise floor limits are being bypassed because of strong interference, sensitivity is also reduced. In order to recover from this as quickly as possible, trigger a long periodic calibration every second instead of every 30 seconds, until the NF median is within limits again. This is especially important if the interference lasts for a while, since it takes multiple clean NF calibrations to bring the median back to normal. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 70cf15335eb35d562a4ec6d8860611c87f775cf2 Author: Felix Fietkau Date: Mon Aug 2 15:53:14 2010 +0200 ath9k: use AP beacon miss as a trigger for fast recalibration When beacons get stuck in AP mode, the most likely cause is interference. Such interference can often go on for a while, and too many consecutive beacon misses can lead to connected clients getting dropped. Since connected clients might not be subjected to the same interference if that happens to be very local, the AP should try to deal with it as good as it can. One way to do this is to trigger an NF calibration with automatic baseband update right after the beacon miss. In my tests with very strong interference, this allowed the AP to continue transmitting beacons after only 2-3 misses, which allows a normal client to stay connected. With some of the newer - really sensitive - chips, the maximum noise floor limit is very low, which can be problematic during very strong interference. To avoid an endless loop of stuck beacons -> nfcal -> periodic calibration -> stuck beacons, the beacon miss event also sets a flag, which allows the calibration code to bypass the chip specific maximum NF value. This flag is automatically cleared, as soon as the first NF median goes back below the limits for all chains. In my tests, this allowed an ath9k AP to survive very strong interference (measured NF: -68, or sometimes even higher) without losing connectivity to its clients. Even under these conditions, I was able to transmit several mbits/s through the interface. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 2292ca6d783d3c79b58591bb3ee795bf0144e5ff Author: Felix Fietkau Date: Mon Aug 2 15:53:13 2010 +0200 ath9k_hw: apply the noise floor validation to the median instead of single Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 6252fcb9f802a992c697edf105e30271a4ae3246 Author: Felix Fietkau Date: Mon Aug 2 15:53:12 2010 +0200 ath9k: add a separate debug level for stuck beacons Stuck beacons are a useful indicator for debugging various PHY issues such as calibration. Putting them on the same debug level as the other beacon stuff makes it hard to spot them in huge amounts of spam. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 1ac62ba7c985109868a18d959986425148481f47 Author: Ben Hutchings Date: Sun Aug 1 17:37:03 2010 +0100 mac80211: Don't squash error codes in key setup functions ieee80211_add_key() currently returns -ENOMEM in case of any error, including a missing crypto algorithm. Change ieee80211_key_alloc() and ieee80211_aes_{key_setup_encrypt,cmac_key_setup}() to encode errors with ERR_PTR() rather than returning NULL, and change ieee80211_add_key() accordingly. Compile-tested only. Reported-by: Marcin Owsiany Signed-off-by: Ben Hutchings Acked-by: Johannes Berg Signed-off-by: John W. Linville commit a85d7cca1204f2dba86d2f61693f0fe8c48f0fa5 Author: Johannes Berg Date: Sat Jul 31 08:34:10 2010 -0700 iwlwifi: track IBSS manager status Only the IBSS manager, ie. the station that sent the IBSS beacon last, should be replying to probe responses. This requires implementing the mac80211 tx_last_beacon callback, which we can do thanks to the ucode beacon notification. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 07d4f1ad2c21273f0f89a3d2202d22fcaf901439 Author: Wey-Yi Guy Date: Sat Jul 31 08:34:08 2010 -0700 iwlwifi: make iwl_set_hw_params static to _agn iwl_set_hw_params() only used by _agn, make it static Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 49ded76bd52f1341671f767a2f5121cb4eb8cf6e Author: Wey-Yi Guy Date: Sat Jul 31 08:34:06 2010 -0700 iwlagn: log pci revision id Log the information after reading the PCI_REVISION_ID from pci config space, Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 3867fe0477a1e23df3d05131320d7b0075a9bed0 Author: Wey-Yi Guy Date: Sat Jul 31 08:34:05 2010 -0700 iwlwifi: make iwl_hw_detect static to _agn iwl_hw_detect() only used by _agn, make it static Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 139455c3912bfed4bd42824d59c82113cc667f91 Author: Thomas Klute Date: Sat Jul 31 12:01:45 2010 +0200 libertas_tf: if_usb.c: Some more formatting fixes Split some long lines to make checkpatch.pl happy. ;-) Signed-off-by: Thomas Klute Signed-off-by: John W. Linville commit 422f8d19d68d0530dfd37be97bac431ca7435e69 Author: Thomas Klute Date: Sat Jul 31 12:01:44 2010 +0200 libertas_tf: if_usb.c: Whitespace cleanup Signed-off-by: Thomas Klute Signed-off-by: John W. Linville commit a1699b75a1db31a1da2f0fc610ee696d02a19280 Author: Johannes Berg Date: Fri Jul 30 16:46:07 2010 +0200 mac80211: unify scan and work mutexes Having both scan and work mutexes is not just a bit too fine grained, it also creates issues when there's code that needs both since they then need to be acquired in the right order, which can be hard to do. Therefore, use just a single mutex for both. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit c240879f3488ae0904a7ba5bdaaa54638b2d8852 Author: Stanislaw Gruszka Date: Fri Jul 30 16:41:08 2010 +0200 iwlwifi: make scan workqueue functions static We do not need export iwl_bg.*scan.*() functions just for initialize workqueue in other module. Making that functions static helps with iwl-scan.c code review a bit. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit fc88518916793af8ad6a02e05ff254d95c36d875 Author: Johannes Berg Date: Fri Jul 30 13:23:12 2010 +0200 mac80211: don't check rates on PLCP error frames Frames that failed PLCP error checks are most likely microwave transmissions (well, maybe not ...) and don't have a proper rate detected, so ignore it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 86df5f7284ffdea9923153764691e490abf36081 Author: Dan Williams Date: Thu Jul 29 23:14:33 2010 -0700 libertas: better association request debugging Bring back the comment about FW v5 status codes from the pre-cfg80211 driver, and let through status codes that aren't remapped by the firmware. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 4083858c8b309068024ba43672d831999d69ba3f Author: Dan Williams Date: Thu Jul 29 23:12:53 2010 -0700 libertas: better scan response debugging Make it a bit easier to debug scan results in the future. Signed-off-by: Dan Williams Signed-off-by: John W. Linville commit 1e51b2ff0a33797476932a68d36136921e4e1b05 Author: Luis R. Rodriguez Date: Thu Jul 29 22:56:22 2010 -0400 ath9k: add fastcc to debug print for channel change This helps us debug channel changes better. Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit ffd2778bb984afe3cc264e22a125c06587020aa3 Author: Felix Fietkau Date: Thu Jul 29 17:36:43 2010 +0200 mac80211: fix driver offchannel notification when the channel does not change When running in client mode and associating to an AP, the channel change is usually performed with the offchannel flag still set. However after the assoc is complete, the following channel change event is suppressed because the run time channel is already set to the operating channel. Fix this by sending channel change notifications to the driver even if only the offchannel flag changes. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 4d7ede7f5ad58c5316335b9018ddef58bd687def Author: John W. Linville Date: Wed May 26 13:33:31 2010 -0400 rt2x00: do not shortcut rt2x00lib_config_antenna This function was exiting early if the existing diversity settings were unchanged. Unfortunately, in some cases the antenna configuration is not initialized at all. https://bugzilla.kernel.org/show_bug.cgi?id=14751 Signed-off-by: John W. Linville Acked-by: Ivo van Doorn Cc: Gertjan van Wingerde commit 9714d315d28aef77a097fe905b25cc273c3d72ad Merge: 84c164a 6ccf15a Author: John W. Linville Date: Mon Aug 16 14:40:44 2010 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit 84c164a34ffe67908a932a2d641ec1a80c2d5435 Author: John W. Linville Date: Fri Aug 6 15:31:45 2010 -0400 b43: move hwrng registration driver to wireless core initialization ...and unregistration to core shutdown. Previously, the driver remained registered even when the hardware was shutdown. That causes the driver to return -ENODEV if the b43 device is IFF_DOWN. This change causes the driver to disappear in that case, allowing /dev/hwrng to still function if another hwrng device is available. Signed-off-by: John W. Linville commit 13eb670c104e15e06d38f3a210cfaf467a9c66de Author: John W. Linville Date: Tue Aug 10 13:22:24 2010 -0400 iwm3200wifi: remove comparison to WIFI_IF_NTFY_MAX in iwm_ntf_wifi_if_wrapper drivers/net/wireless/iwmc3200wifi/rx.c: In function 'iwm_ntf_wifi_if_wrapper': drivers/net/wireless/iwmc3200wifi/rx.c:1198: warning: comparison is always true due to limited range of data type This is, of course, because the value of WIFI_IF_NTFY_MAX is 0xff and hdr->oid is a u8. This is obviously an attempt to verify the range on an input value, but since it has no effect it can simply be removed. Signed-off-by: John W. Linville Acked-by: Samuel Ortiz commit aa0d52c5e7f352ce9725c8940fe2458f2c04e049 Author: John W. Linville Date: Tue Aug 10 13:08:11 2010 -0400 ipw2100: avoid warning from pointer cast in call to IPW_DEBUG_TX drivers/net/wireless/ipw2x00/ipw2100.c: In function 'ipw2100_tx_send_commands': drivers/net/wireless/ipw2x00/ipw2100.c:3063: warning: cast to pointer from integer of different size This changes the cast and the conversion to match other usage of the same value in calls to IPW_DEBUG_TX. Reported-by: Andrew Morton Signed-off-by: John W. Linville commit 1a7123cdd9f49cf1c908fb2c16d26f279c88d8c9 Author: John W. Linville Date: Thu Aug 5 14:39:31 2010 -0400 iwlwifi: disable aspm by default Some iwlwifi devices inexplicably disconnect themselves from the PCI-E bus causing the predictable failures. This seems to disappear if ASPM is disabled. Signed-off-by: John W. Linville commit c61029c77fb68d7a182c0ae010f0f9dcae4e196c Author: John W. Linville Date: Thu Aug 5 14:26:24 2010 -0400 wireless: upcase alpha2 values in queue_regulatory_request This provides a little more flexibility for human users, and it allows us to use isalpha rather than the custom is_alpha_upper. Signed-off-by: John W. Linville commit 31a5cddaaed9c04ef653e3c2900cfb5a646fe686 Author: John W. Linville Date: Thu Jul 29 21:52:59 2010 -0400 rtl8187: consolidate MSR writes in rtl8187_bss_info_changed Signed-off-by: John W. Linville commit 0f956e7107fe5069767323a1bf2a522f5f37cc2c Author: John W. Linville Date: Thu Jul 29 21:50:29 2010 -0400 rtl8180: use RTL818X_MSR_ADHOC for IBSS connection Signed-off-by: John W. Linville commit 030725d2c7c1fafec7ede618647bf30ed79601f0 Author: John W. Linville Date: Thu Jul 29 16:14:14 2010 -0400 rtl8180: use NAPI for bottom-half processing Signed-off-by: John W. Linville commit 4e6cbfd09c66893e5134c9896e9af353c2322b66 Author: John W. Linville Date: Thu Jul 29 16:14:13 2010 -0400 mac80211: support use of NAPI for bottom-half processing This patch implement basic infrastructure to support use of NAPI by mac80211-based hardware drivers. Because mac80211 devices can support multiple netdevs, a dummy netdev is used for interfacing with the NAPI code in the core of the network stack. That structure is hidden from the hardware drivers, but the actual napi_struct is exposed in the ieee80211_hw structure so that the poll routines in drivers can retrieve that structure. Hardware drivers can also specify their own weight value for NAPI polling. Signed-off-by: John W. Linville commit 68e887ef21dfd9adcf896ef92a9676bf9036a0aa Author: John W. Linville Date: Thu Jul 29 13:58:48 2010 -0400 zd1211rw: update fw version info in wiphy struct This makes the information available through ethtool... Signed-off-by: John W. Linville commit dd358c9a45fc27f90e77992cf77117ab6e2fb467 Author: John W. Linville Date: Thu Jul 29 13:50:39 2010 -0400 rt2x00: update fw version info in wiphy struct This makes the information available through ethtool... Signed-off-by: John W. Linville Acked-by: Ivo van Doorn commit 37269e805267ba68fe8c5d693ccf0ec5727155fa Author: John W. Linville Date: Thu Jul 29 13:44:44 2010 -0400 p54: update fw version info in wiphy struct This makes the information available through ethtool... Signed-off-by: John W. Linville commit bcf3c7c5264f06cd2542e6bece94c65bf0ac482b Author: John W. Linville Date: Thu Jul 29 13:30:15 2010 -0400 b43legacy: update hw/fw version info in wiphy struct This makes the information available through ethtool... Signed-off-by: John W. Linville commit 652caa5b67b096b13c34f299db238e1daeab1f67 Author: John W. Linville Date: Thu Jul 29 13:27:28 2010 -0400 b43: update hw/fw version info in wiphy struct This makes the information available through ethtool... Signed-off-by: John W. Linville commit 1f999ab5a1360afc388868cc0ef9afe8edeef3be Author: Robert Richter Date: Wed Jul 21 19:03:57 2010 +0200 x86, xsave: Disable xsave in i387 emulation mode xsave is broken for (!HAVE_HWFP). This is the case if config MATH_EMULATION is enabled, 'no387' kernel parameter is set and xsave exists. xsave will not work because x86/math-emu and xsave share the same memory. As this case can be treated as corner case we simply disable xsave then. Signed-off-by: Robert Richter LKML-Reference: <1279731838-1522-7-git-send-email-robert.richter@amd.com> Signed-off-by: H. Peter Anvin commit f6e9456c9272bb570df6e217cdbe007e270b1c4e Author: Robert Richter Date: Wed Jul 21 19:03:58 2010 +0200 x86, cleanup: Remove obsolete boot_cpu_id variable boot_cpu_id is there for historical reasons and was renamed to boot_cpu_physical_apicid in patch: c70dcb7 x86: change boot_cpu_id to boot_cpu_physical_apicid However, there are some remaining occurrences of boot_cpu_id that are never touched in the kernel and thus its value is always 0. This patch removes boot_cpu_id completely. Signed-off-by: Robert Richter LKML-Reference: <1279731838-1522-8-git-send-email-robert.richter@amd.com> Signed-off-by: H. Peter Anvin commit 6ea4843f53282465f2bdbe5eedde7d8c3081dfdf Author: Tao Ma Date: Thu Aug 12 10:31:34 2010 +0800 ocfs2: Add readhead during CoW. In CoW, when we meet with a readahead page, we know it is time to move the readahead window. So carry out a new readahead. Signed-off-by: Tao Ma commit 7b61cf54a2445ad21df9dd44f0c8bb90154ddea8 Author: Tao Ma Date: Thu Jun 17 14:14:36 2010 +0800 ocfs2: Add readahead support for CoW. Add a new function ocfs2_readahead_for_cow so that we start readahead before we start our CoW. Signed-off-by: Tao Ma commit 155027121fe52f9b4f25e9d156c22f2f5012e5fe Author: Tao Ma Date: Thu Aug 12 10:36:38 2010 +0800 ocfs2: Add struct file to ocfs2_refcount_cow. Add a new parameter 'struct file *' to ocfs2_refcount_cow so that we can add readahead support later. Signed-off-by: Tao Ma commit b890823635e022467b924e3d9da8c5166a4e349c Author: Tao Ma Date: Thu Aug 12 10:27:14 2010 +0800 ocfs2: pass struct file* to ocfs2_prepare_inode_for_write. struct file * has file_ra_state to store the readahead state and data. So pass this to ocfs2_prepare_inode_for_write. so that it can be used in ocfs2_refcount_cow. Signed-off-by: Tao Ma commit 0378da0fda6edf5aaffda6f1248a78986bd955b5 Author: Tao Ma Date: Thu Aug 12 10:25:28 2010 +0800 ocfs2: pass struct file* to ocfs2_write_begin_nolock. struct file * has file_ra_state to store the readahead state and data. So pass this to ocfs2_write_begin_nolock so that it can be used in ocfs2_refcount_cow. Signed-off-by: Tao Ma commit 5303b68f57c227c27193a14e57dd12be27cd670f Author: Yinghai Lu Date: Wed Jul 28 15:38:40 2010 +1000 memblock: Add memblock_find_in_range() This is a wrapper for memblock_find_base() using slightly different arguments (start,end instead of start,size for example) in order to make it easier to convert existing arch/x86 code. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 10d0643988e976360eb3497dcafb55b393b8e480 Author: Yinghai Lu Date: Wed Jul 28 15:43:02 2010 +1000 memblock: Option for the architecture to put memblock into the .init section Arch code can define ARCH_DISCARD_MEMBLOCK in asm/memblock.h, which in turns causes memblock code and data to go respectively into the .init and .initdata sections. This will be used by the x86 architecture. If ARCH_DISCARD_MEMBLOCK is defined, the debugfs files to inspect the memblock arrays after boot are not created. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit f0b37fad9a63217c39997b2d2b31f44e3d8be727 Author: Yinghai Lu Date: Wed Jul 28 15:28:21 2010 +1000 memblock: Protect memblock.h with CONFIG_HAVE_MEMBLOCK This should make it easier to catch/debug incorrect use when the CONFIG_ option isn't set. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 25818f0f288cd5333ba5a90ad6dde3def4c4ff58 Author: Benjamin Herrenschmidt Date: Wed Jul 28 15:25:10 2010 +1000 memblock: Make MEMBLOCK_ERROR be 0 And ensure we don't hand out 0 as a valid allocation. We put the low limit at PAGE_SIZE arbitrarily. Signed-off-by: Benjamin Herrenschmidt commit 37d8d4bf489e39eedc9537f8616fe87879b13cb0 Author: Yinghai Lu Date: Wed Jul 28 15:20:58 2010 +1000 memblock: Export MEMBLOCK_ERROR will used by x86 memblock_x86_find_in_range_node and nobootmem replacement Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit ea9e4376bb545e400a325b3d76fecd02815303c0 Author: Yinghai Lu Date: Wed Jul 28 15:13:22 2010 +1000 memblock: Improve debug output when resizing the reserve array Print out the location info in addition to which array is being resized. Also use memblocK_dbg() to put that under control of the memblock_debug flag. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 5e63cf43af844ed30acc278b38b8c9bc51eba493 Author: Yinghai Lu Date: Wed Jul 28 15:07:21 2010 +1000 memblock: Expose some memblock bits for use by x86 This exposes memblock_debug and associated memblock_dbg() macro, along with memblock_can_resize so that x86 can use these when ported to use memblock Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 6d03b885f0926ab5b66e21307d505afcafa6dced Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:19 2010 -0700 memblock: Add debugfs files to dump the arrays content Signed-off-by: Benjamin Herrenschmidt commit 918fe8d60331f679519ab8239a7232272126da9e Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:18 2010 -0700 memblock: Make memblock_alloc_try_nid() fallback to MEMBLOCK_ALLOC_ANYWHERE memblock_alloc_nid() used to fallback to allocating anywhere by using memblock_alloc() as a fallback. However, some of my previous patches limit memblock_alloc() to the region covered by MEMBLOCK_ALLOC_ACCESSIBLE which is not quite what we want for memblock_alloc_try_nid(). So we fix it by explicitely using MEMBLOCK_ALLOC_ANYWHERE. Not that so far only sparc uses memblock_alloc_nid() and it hasn't been updated to clamp the accessible zone yet. Thus the temporary "breakage" should have no effect. Signed-off-by: Benjamin Herrenschmidt commit 9d1e24928e6a0728d1c7c76818ccbd11b93e7ac9 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:17 2010 -0700 memblock: Separate memblock_alloc_nid() and memblock_alloc_try_nid() The former is now strict, it will fail if it cannot honor the allocation within the node, while the later implements the previous semantic which falls back to allocating anywhere. Signed-off-by: Benjamin Herrenschmidt commit c196f76fd5ece716ee3b7fa5dda3576961c0cecc Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:16 2010 -0700 memblock: NUMA allocate can now use early_pfn_map We now provide a default (weak) implementation of memblock_nid_range() which uses the early_pfn_map[] if CONFIG_ARCH_POPULATES_NODE_MAP is set. Sparc still needs to use its own method due to the way the pages can be scattered between nodes. This implementation is inefficient due to our main algorithm and callback construct wanting to work on an ascending addresses bases while early_pfn_map[] would rather work with nid's (it's unsorted at that stage). But it should work and we can look into improving it subsequently, possibly using arch compile options to chose a different algorithm alltogether. Signed-off-by: Benjamin Herrenschmidt commit fef501d49d31f997a3381b6c1efd5bca382b6b6f Author: Benjamin Herrenschmidt Date: Mon Jul 12 15:00:34 2010 +1000 memblock: Add "start" argument to memblock_find_base() To constraint the search of a region between two boundaries, which will be used by the new NUMA aware allocator among others. Signed-off-by: Benjamin Herrenschmidt commit d2cd563ba82c424083b78e0ce97d68bfb04d1242 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:14 2010 -0700 memblock: Add arch function to control coalescing of memblock memory regions Some archs such as ARM want to avoid coalescing accross things such as the lowmem/highmem boundary or similar. This provides the option to control it via an arch callback for which a weak default is provided which always allows coalescing. Signed-off-by: Benjamin Herrenschmidt commit 142b45a72e221537c1bb1995497fef7cdc439e26 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:13 2010 -0700 memblock: Add array resizing support When one of the array gets full, we resize it. After much thinking and a few iterations of that code, I went back to on-demand resizing using the (new) internal memblock_find_base() function, which is pretty much what Yinghai initially proposed, though there some differences in the details. To work this relies on the default alloc limit being set sensibly by the architecture. Signed-off-by: Benjamin Herrenschmidt commit 6ed311b282210d23d1a2cb2665aa899979993628 Author: Benjamin Herrenschmidt Date: Mon Jul 12 14:36:48 2010 +1000 memblock: Move functions around into a more sensible order Some shuffling is needed for doing array resize so we may as well put some sense into the ordering of the functions in the whole memblock.c file. No code change. Added some comments. Signed-off-by: Benjamin Herrenschmidt commit 7f219c736f9439acb1c50d264fbee93c353773ca Author: Benjamin Herrenschmidt Date: Mon Jul 12 14:24:57 2010 +1000 memblock: split memblock_find_base() out of __memblock_alloc_base() This will be used by the array resize code and might prove useful to some arch code as well at which point it can be made non-static. Also add comment as to why aligning size is important Signed-off-by: Benjamin Herrenschmidt --- v2. Fix loss of size alignment v3. Fix result code commit 7590abe891c85fbc65dc906516d0bf89e070c19a Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:10 2010 -0700 memblock: Move memblock_init() to the bottom of the file It's a real PITA to have to search for it in the middle Signed-off-by: Benjamin Herrenschmidt commit 4d629f9a02e32f8fe035a11018472ea8ff9647eb Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:09 2010 -0700 memblock: Define MEMBLOCK_ERROR internally instead of using ~(phys_addr_t)0 Signed-off-by: Benjamin Herrenschmidt commit 3a9c2c81eb2024c136cc534df534f93682d516d0 Author: Benjamin Herrenschmidt Date: Mon Jul 12 13:28:15 2010 +1000 memblock: Make memblock_find_region() out of memblock_alloc_region() This function will be used to locate a free area to put the new memblock arrays when attempting to resize them. memblock_alloc_region() is gone, the two callsites now call memblock_add_region(). Signed-off-by: Benjamin Herrenschmidt --- v2. Fix membase_alloc_nid_region() conversion commit 449e8df39d3f94a69deae8341f157f6ef5999015 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:07 2010 -0700 memblock: Add debug markers at the end of the array Since we allocate one more than needed, why not do a bit of sanity checking here to ensure we don't walk past the end of the array ? Signed-off-by: Benjamin Herrenschmidt commit bf23c51f1f49d3960f3cd8e3d2e7f943d9c41042 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:06 2010 -0700 memblock: Move memblock arrays to static storage in memblock.c and make their size a variable This is in preparation for having resizable arrays. Note that we still allocate one more than needed, this is unchanged from the previous implementation. Signed-off-by: Benjamin Herrenschmidt commit 4734b594c6ca1be796d30c82d93fdf5160f45124 Author: Benjamin Herrenschmidt Date: Wed Jul 28 14:31:29 2010 +1000 memblock: Remove memblock_type.size and add memblock.memory_size instead Right now, both the "memory" and "reserved" memblock_type structures have a "size" member. It represents the calculated memory size in the former case and is unused in the latter. This moves it out to the main memblock structure instead Signed-off-by: Benjamin Herrenschmidt commit 9d3c30f5a17ec35894eadb7171f724643dce19c3 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:04 2010 -0700 memblock: Remove unused memblock.debug struct member Signed-off-by: Benjamin Herrenschmidt commit 2898cc4cdf208f15246b7a1c6951d2b126a70fd6 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:34:42 2010 +1000 memblock: Change u64 to phys_addr_t Let's not waste space and cycles on archs that don't support >32-bit physical address space. Signed-off-by: Benjamin Herrenschmidt commit cd3db0c4ca3d237e7ad20f7107216e575705d2b0 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:02 2010 -0700 memblock: Remove rmo_size, burry it in arch/powerpc where it belongs The RMA (RMO is a misnomer) is a concept specific to ppc64 (in fact server ppc64 though I hijack it on embedded ppc64 for similar purposes) and represents the area of memory that can be accessed in real mode (aka with MMU off), or on embedded, from the exception vectors (which is bolted in the TLB) which pretty much boils down to the same thing. We take that out of the generic MEMBLOCK data structure and move it into arch/powerpc where it belongs, renaming it to "RMA" while at it. Signed-off-by: Benjamin Herrenschmidt commit e63075a3c9377536d085bc013cd3fe6323162449 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:01 2010 -0700 memblock: Introduce default allocation limit and use it to replace explicit ones This introduce memblock.current_limit which is used to limit allocations from memblock_alloc() or memblock_alloc_base(..., MEMBLOCK_ALLOC_ACCESSIBLE). The old MEMBLOCK_ALLOC_ANYWHERE changes value from 0 to ~(u64)0 and can still be used with memblock_alloc_base() to allocate really anywhere. It is -no-longer- cropped to MEMBLOCK_REAL_LIMIT which disappears. Note to archs: I'm leaving the default limit to MEMBLOCK_ALLOC_ANYWHERE. I strongly recommend that you ensure that you set an appropriate limit during boot in order to guarantee that an memblock_alloc() at any time results in something that is accessible with a simple __va(). The reason is that a subsequent patch will introduce the ability for the array to resize itself by reallocating itself. The MEMBLOCK core will honor the current limit when performing those allocations. Signed-off-by: Benjamin Herrenschmidt commit 27f574c223d2c09610058b3ec7a29582d63a3e06 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:00 2010 -0700 memblock: Expose MEMBLOCK_ALLOC_ANYWHERE Signed-off-by: Benjamin Herrenschmidt commit c3f72b5706716ada7923def513486ab7bb3a5301 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:59 2010 -0700 memblock: Factor the lowest level alloc function Signed-off-by: Benjamin Herrenschmidt commit 35a1f0bd07015dde66501b47cfb6ddc72ebe7346 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:58 2010 -0700 memblock: Remove nid_range argument, arch provides memblock_nid_range() instead Signed-off-by: Benjamin Herrenschmidt commit b693fffb189fbfe7e1e8317ce5838808be8666a0 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:52:55 2010 +1000 memblock: Remove memblock_find() Nobody uses it anymore. It's semantics were ... weird Signed-off-by: Benjamin Herrenschmidt commit 1e2b904026e9debf95f500b8980a00c43ac0f31c Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:52:25 2010 +1000 memblock: Remove obsolete accessors Signed-off-by: Benjamin Herrenschmidt commit 719c1514f2fef5f01fcfa2bba81b7bb079c7c6a1 Author: Benjamin Herrenschmidt Date: Thu Aug 5 12:55:55 2010 +1000 memblock/arm: Use new accessors CC: Russell King Signed-off-by: Benjamin Herrenschmidt commit 28be7072ce54b82642ebff6a80d474d4c6a6a7fd Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:43:53 2010 +1000 memblock/powerpc: Use new accessors Signed-off-by: Benjamin Herrenschmidt commit 08b84798819e54ba1d29be71a52afbb697c7b666 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:43:31 2010 +1000 memblock/sparc: Use new accessors CC: David S. Miller Signed-off-by: Benjamin Herrenschmidt commit 64106ca61cc73f3798497c76d2b7749b8e93ead4 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:11:04 2010 +1000 memblock/sh: Use new accessors CC: Paul Mundt Signed-off-by: Benjamin Herrenschmidt commit 76bfcc818f87d884e427908f5010128dae32d11a Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:13:06 2010 +1000 memblock/microblaze: Use new accessors CC: Michal Simek Signed-off-by: Benjamin Herrenschmidt commit 5b385f259fa4d356452e3b4729cbaf5213f4f55b Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:40:38 2010 +1000 memblock: Introduce for_each_memblock() and new accessors Walk memblock's using for_each_memblock() and use memblock_region_base/end_pfn() for getting to PFNs. Signed-off-by: Benjamin Herrenschmidt commit dbe3039e64b1dd4cf26f782d45b524f85b444ad4 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:09:23 2010 +1000 memblock/arm: Use memblock_region_is_memory() for omap fb Instead of the deprecated memblock_find() Signed-off-by: Benjamin Herrenschmidt commit 5e6f6aa1c243fafeb2648cf4ebd5abd99ab2531b Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:23:02 2010 +1000 memblock/arm: pfn_valid uses memblock_is_memory() The implementation is pretty much similar. There is a -small- added overhead by having another function call and the address shift. If that becomes a concern, I suppose we could actually have memblock itself expose a memblock_pfn_valid() which then ARM can use directly with an appropriate #define... Signed-off-by: Benjamin Herrenschmidt commit 72d4b0b4e0e7fa858767e03972771a9f7c02b689 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:38:47 2010 +1000 memblock: Implement memblock_is_memory and memblock_is_region_memory To make it fast, we steal ARM's binary search for memblock_is_memory() and we use that to also the replace existing implementation of memblock_is_reserved(). Signed-off-by: Benjamin Herrenschmidt commit 411a25a80da328f5ae6b6c037872ffe867fcc130 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:56 2010 -0700 memblock: No reason to include asm/memblock.h late Signed-off-by: Benjamin Herrenschmidt commit e3239ff92a17976ac5d26fa0fe40ef3a9daf2523 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:06:41 2010 +1000 memblock: Rename memblock_region to memblock_type and memblock_property to memblock_region Signed-off-by: Benjamin Herrenschmidt commit f1c2c19c498e27de48bf0dc4221e6e31b1823169 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:17:17 2010 +1000 memblock: Fix memblock_is_region_reserved() to return a boolean All callers expect a boolean result which is true if the region overlaps a reserved region. However, the implementation actually returns -1 if there is no overlap, and a region index (0 based) if there is. Make it behave as callers (and common sense) expect. Signed-off-by: Benjamin Herrenschmidt commit 1813a68457bb45b378d5bbec615b167deff3bcfc Author: Andi Kleen Date: Tue Jul 20 15:22:54 2010 -0700 x86: Move alloc_desk_mask variables inside ifdef They are only useful with CONFIG_CPUMASK_OFFSTACK Avoids hundreds of warnings with a gcc 4.6 -Wall build. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit 25897374297906eeebef8864299406bdcb5859c3 Author: Christoph Hellwig Date: Tue Jul 27 14:13:13 2010 +0200 x86-32: Align IRQ stacks properly As suggested by Steven Rostedt we need to align the IRQ stacks to the stack size, not just the page size to make them work for stack traces and other things that depend on finding the stack slot itself with 8k stacks. Signed-off-by: Christoph Hellwig LKML-Reference: <20100727121313.GA19976@lst.de> Signed-off-by: H. Peter Anvin commit dcfa726280116dd31adad37da940f542663567d0 Author: Christoph Hellwig Date: Mon Jun 28 14:16:14 2010 +0200 x86: Remove CONFIG_4KSTACKS These days 4 kilobytes of stack just aren't enough for reliably operation, and people using lots of threads have long switched to 64-bit kernels, so remove the CONFIG_4KSTACKS option. Signed-off-by: Christoph Hellwig LKML-Reference: <20100628121614.GB6605@lst.de> Signed-off-by: Thomas Gleixner commit 7974891db234467eaf1fec613ec0129cb4ac2332 Author: Christoph Hellwig Date: Mon Jun 28 14:15:54 2010 +0200 x86: Always use irq stacks IRQ stacks provide much better safety against unexpected stack use from interrupts, at the minimal downside of slightly higher memory usage. Enable irq stacks also for the default 8k stack on 32-bit kernels to minimize the problem of stack overflows through interrupt activity. This is what the 64-bit kernel and various other architectures already do. Signed-off-by: Christoph Hellwig LKML-Reference: <20100628121554.GA6605@lst.de> Signed-off-by: Thomas Gleixner