commit 2cca775baecbfede2fec20c99add709232311fe7 Merge: eddeb0e... 94795b6... Author: Linus Torvalds Date: Fri Apr 18 11:25:31 2008 -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: (137 commits) [SCSI] iscsi: bidi support for iscsi_tcp [SCSI] iscsi: bidi support at the generic libiscsi level [SCSI] iscsi: extended cdb support [SCSI] zfcp: Fix error handling for blocked unit for send FCP command [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock [SCSI] zfcp: fix 31 bit compile warnings [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands [SCSI] bsg: remove minor in struct bsg_device [SCSI] bsg: use better helper list functions [SCSI] bsg: replace kobject_get with blk_get_queue [SCSI] bsg: takes a ref to struct device in fops->open [SCSI] qla1280: remove version check [SCSI] libsas: fix endianness bug in sas_ata [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next) [SCSI] aacraid: Do not describe check_reset parameter with its value [SCSI] aacraid: Fix down_interruptible() to check the return value [SCSI] sun3_scsi_vme: add MODULE_LICENSE [SCSI] st: rename flush_write_buffer() [SCSI] tgt: use KMEM_CACHE macro [SCSI] initio: fix big endian problems for auto request sense ... commit eddeb0e2d863e3941d8768e70cb50c6120e61fa0 Merge: 855d854... db8be07... Author: Linus Torvalds Date: Fri Apr 18 11:24:29 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (43 commits) firewire: cleanups firewire: fix synchronization of gap counts firewire: wait until PHY configuration packet was transmitted (fix bus reset loop) firewire: remove unused struct member firewire: use bitwise and to get reg in handle_registers firewire: replace more hex values with defined csr constants firewire: reread config ROM when device reset the bus firewire: replace static ROM cache by allocated cache firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more) firewire: fw-ohci: extend logging of bus generations and node ID firewire: fw-ohci: conditionally log busReset interrupts firewire: fw-ohci: don't append to AT context when it's not active firewire: fw-ohci: log regAccessFail events firewire: fw-ohci: make sure HCControl register LPS bit is set firewire: fw-ohci: missing PPC PMac feature calls in failure path firewire: fw-ohci: untangle a mixed unsigned/signed expression firewire: debug interrupt events firewire: fw-ohci: catch self_id_count == 0 firewire: fw-ohci: add self ID error check firewire: fw-ohci: refactor probe, remove, suspend, resume ... commit 855d854a33fca71cf68bad258bd5e66e5b265d10 Author: James Bottomley Date: Fri Apr 18 13:18:48 2008 -0500 libata: fix boot panic with SATAPI devices on non-SFF HBAs The kernel now panics reliably on boot if you have a SATAPI device connected. The problem was introduced by the libata merge trying to pull out all the SFF code into a separate module. Unfortunately, if you're a satapi device you usually need to call atapi_request_sense, which has a bare invocation of a SFF callback which is NULL on non-SFF HBAs. Fix this by making the call conditional. Signed-off-by: James Bottomley Signed-off-by: Linus Torvalds commit e675349e2bdbfb661fa0d8ff2441b4cf48fb7e48 Merge: ef38ff9... 2309e9e... Author: Linus Torvalds Date: Fri Apr 18 10:15:22 2008 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (64 commits) ocfs2/net: Add debug interface to o2net ocfs2: Only build ocfs2/dlm with the o2cb stack module ocfs2/cluster: Get rid of arguments to the timeout routines ocfs2: Put tree in MAINTAINERS ocfs2: Use BUG_ON ocfs2: Convert ocfs2 over to unlocked_ioctl ocfs2: Improve rename locking fs/ocfs2/aops.c: test for IS_ERR rather than 0 ocfs2: Add inode stealing for ocfs2_reserve_new_inode ocfs2: Add ac_alloc_slot in ocfs2_alloc_context ocfs2: Add a new parameter for ocfs2_reserve_suballoc_bits ocfs2: Enable cross extent block merge. ocfs2: Add support for cross extent block ocfs2: Move /sys/o2cb to /sys/fs/o2cb sysfs: Allow removal of symlinks in the sysfs root ocfs2: Reconnect after idle time out. ocfs2/dlm: Cleanup lockres print ocfs2/dlm: Fix lockname in lockres print function ocfs2/dlm: Move dlm_print_one_mle() from dlmmaster.c to dlmdebug.c ocfs2/dlm: Dumps the purgelist into a debugfs file ... commit ef38ff9d372d4fe69e415370939a0f1fb5783af1 Merge: fda31d7... 62be1f7... Author: Linus Torvalds Date: Fri Apr 18 10:02:46 2008 -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: (49 commits) [GFS2] fix assertion in log_refund() [GFS2] fix GFP_KERNEL misuses [GFS2] test for IS_ERR rather than 0 [GFS2] Invalidate cache at correct point [GFS2] fs/gfs2/recovery.c: suppress warnings [GFS2] Faster gfs2_bitfit algorithm [GFS2] Streamline quota lock/check for no-quota case [GFS2] Remove drop of module ref where not needed [GFS2] gfs2_adjust_quota has broken unstuffing code [GFS2] possible null pointer dereference fixup [GFS2] Need to ensure that sector_t is 64bits for GFS2 [GFS2] re-support special inode [GFS2] remove gfs2_dev_iops [GFS2] fix file_system_type leak on gfs2meta mount [GFS2] Allow bmap to allocate extents [GFS2] Fix a page lock / glock deadlock [GFS2] proper extern for gfs2/locking/dlm/mount.c:gdlm_ops [GFS2] gfs2/ops_file.c should #include "ops_inode.h" [GFS2] be*_add_cpu conversion [GFS2] Fix bug where we called drop_bh incorrectly ... commit fda31d7d4b5a9c663ac3ed1ba244018a88deecaf Author: Harvey Harrison Date: Fri Apr 18 09:54:38 2008 -0700 x86: kgdb build fix TF_MASK is no longer defined, use X86_EFLAGS_TF. Signed-off-by: Harvey Harrison Signed-off-by: Linus Torvalds commit 94795b61e84994a3b058f92d041d1fb3d869c7d5 Author: Boaz Harrosh Date: Fri Apr 18 10:11:53 2008 -0500 [SCSI] iscsi: bidi support for iscsi_tcp access the right scsi_in() and/or scsi_out() side of things. also for resid Signed-off-by: Boaz Harrosh Reviewed-by: Pete Wyckoff Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit c07d444407de63b2f414a8be9428f88cadba503f Author: Boaz Harrosh Date: Fri Apr 18 10:11:52 2008 -0500 [SCSI] iscsi: bidi support at the generic libiscsi level - prepare the additional bidi_read rlength header. - access the right scsi_in() and/or scsi_out() side of things. also for resid. - Handle BIDI underflow overflow from target Signed-off-by: Boaz Harrosh Reviewed-by: Pete Wyckoff Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 38d1c069db8c87eb6cb10ca1ede9d9b673531ddd Author: Boaz Harrosh Date: Fri Apr 18 10:11:51 2008 -0500 [SCSI] iscsi: extended cdb support Support for extended CDBs in iscsi. All we need is to check if command spills over 16 bytes then allocate an iscsi-extended-header for the leftovers. Signed-off-by: Boaz Harrosh Reviewed-by: Pete Wyckoff Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit 57b7658aed76f1763416878ead9be4ffa288b7a3 Author: Christof Schmitt Date: Fri Apr 18 12:51:57 2008 +0200 [SCSI] zfcp: Fix error handling for blocked unit for send FCP command In the case the unit is blocked, zfcp_unit_get has not been called yet, so the error handling path should not call zfcp_unit_put. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 6071d7ec36054e78f02f7d5a66c3784aeb65ce92 Author: Christof Schmitt Date: Fri Apr 18 12:51:56 2008 +0200 [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock The testcase # chchp -v 0 0.da && sleep 59 && chchp -v 1 0.da results in this deadlock situation: STACK TRACE FOR TASK: 0x7e9a2048 (zfcperp0.0.c613) 0 schedule+816 [0x356b3c] 1 schedule_timeout+172 [0x357340] 2 wait_for_common+192 [0x3565fc] 3 flush_cpu_workqueue+116 [0x52af0] 4 flush_workqueue+116 [0x533b8] 5 fc_remote_port_add+64 [0x1c83ec] 6 zfcp_erp_thread+4534 [0x26585a] 7 kernel_thread_starter+6 [0x195d2] STACK TRACE FOR TASK: 0x7f8ec048 (fc_wq_0) 0 schedule+816 [0x356b3c] 1 zfcp_erp_wait+104 [0x264568] 2 zfcp_scsi_slave_destroy+64 [0x261b24] 3 __scsi_remove_device+154 [0x1c24ba] 4 scsi_remove_device+62 [0x1c2512] 5 __scsi_remove_target+198 [0x1c25ea] 6 __remove_child+58 [0x1c26d6] 7 device_for_each_child+66 [0x1ab566] 8 scsi_remove_target+98 [0x1c268a] 9 run_workqueue+200 [0x5272c] 10 worker_thread+146 [0x52882] 11 kthread+140 [0x58360] 12 kernel_thread_starter+6 [0x195d2] Remove the zfcp_erp_wait call that is not required here to prevent the deadlock situation. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 1f6f7129ebac007629b28764bfa5147817682692 Author: Martin Peschke Date: Fri Apr 18 12:51:55 2008 +0200 [SCSI] zfcp: fix 31 bit compile warnings drivers/s390/scsi/zfcp_aux.c: In function ‘zfcp_fsf_incoming_els_rscn’: drivers/s390/scsi/zfcp_aux.c:1379: warning: cast from pointer to integer of different size drivers/s390/scsi/zfcp_aux.c: In function ‘zfcp_fsf_incoming_els_plogi’: drivers/s390/scsi/zfcp_aux.c:1432: warning: cast from pointer to integer of different size drivers/s390/scsi/zfcp_aux.c: In function ‘zfcp_fsf_incoming_els_logo’: drivers/s390/scsi/zfcp_aux.c:1457: warning: cast from pointer to integer of different size .. Just passing pointers rids us of these warnings and improves readability. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 99773aab0377ee5bcaf37b7cd2577c3465422dab Author: FUJITA Tomonori Date: Mon Mar 31 10:03:42 2008 +0900 [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands Before bsg_complete_all_commands is called, BSG_F_BLOCK bit is always set. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 842ea771c38a3f0f78bdb1b4d47881e6a210fc15 Author: FUJITA Tomonori Date: Mon Mar 31 10:03:41 2008 +0900 [SCSI] bsg: remove minor in struct bsg_device minor in struct bsg_device is used as identifier to find the corresponding struct bsg_device_class. However, request_queuse can be used as identifier for that and the minor in struct bsg_device is unnecessary. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 43ac9e62c4a0a47fe3de1f1eb9ca7b8c91dce234 Author: FUJITA Tomonori Date: Mon Mar 31 10:03:40 2008 +0900 [SCSI] bsg: use better helper list functions This replace hlist_for_each and list_entry with hlist_for_each_entry and list_first_entry respectively. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit c3ff1b90d8924dd1c55c3b56a79bfc563ace4a42 Author: FUJITA Tomonori Date: Mon Mar 31 10:03:39 2008 +0900 [SCSI] bsg: replace kobject_get with blk_get_queue Both takes a ref to a queue. But blk_get_queue checks QUEUE_FLAG_DEAD and is more appropriate interface here. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit d45ac4fa8f277e1ec5acfb67ce5d6406555760cf Author: FUJITA Tomonori Date: Mon Mar 31 10:03:38 2008 +0900 [SCSI] bsg: takes a ref to struct device in fops->open bsg_register_queue() takes a ref to struct device that a caller passes. For example, bsg takes a ref to the sdev_gendev for scsi devices. However, bsg doesn't inrease the refcount in fops->open. So while an application opens a bsg device, the scsi device that the bsg device holds can go away (bsg also takes a ref to a queue, but it doesn't prevent the device from going away). With this patch, bsg increases the refcount of struct device in fops->open and decreases it in fops->release. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 4786b4ee22de6304e841b12ee22b849230d7fba3 Merge: 253ba4e... 71b264f... Author: Linus Torvalds Date: Fri Apr 18 09:44:55 2008 -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: (27 commits) [IA64] kdump: Add crash_save_vmcoreinfo for INIT [IA64] Fix NUMA configuration issue [IA64] Itanium Spec updates [IA64] Untangle sync_icache_dcache() page size determination [IA64] arch/ia64/kernel/: use time_* macros [IA64] remove redundant display of free swap space in show_mem() [IA64] make IOMMU respect the segment boundary limits [IA64] kprobes: kprobe-booster for ia64 [IA64] fix getpid and set_tid_address fast system calls for pid namespaces [IA64] Replace explicit jiffies tests with time_* macros. [IA64] use goto to jump out do/while_each_thread [IA64] Fix unlock ordering in smp_callin [IA64] pgd_offset() constfication. [IA64] kdump: crash.c coding style fix [IA64] kdump: add kdump_on_fatal_mca [IA64] Minimize per_cpu reservations. [IA64] Correct pernodesize calculation. [IA64] Kernel parameter for max number of concurrent global TLB purges [IA64] Multiple outstanding ptc.g instruction support [IA64] Implement smp_call_function_mask for ia64 ... commit 2309e9e040fe29469fb85a384636c455b62fe525 Author: Sunil Mushran Date: Mon Apr 14 10:46:19 2008 -0700 ocfs2/net: Add debug interface to o2net This patch exposes o2net information via debugfs. The information includes the list of sockets (sock_containers) as well as the list of outstanding messages (send_tracking). Useful for o2dlm debugging. (This patch is derived from an earlier one written by Zach Brown that exposed the same information via /proc.) [Mark: checkpatch fixes] Signed-off-by: Sunil Mushran Reviewed-by: Joel Becker Signed-off-by: Mark Fasheh commit 93b06edb5127315473d87e075b2b1d1acf74659c Author: Mark Fasheh Date: Fri Apr 4 12:45:55 2008 -0700 ocfs2: Only build ocfs2/dlm with the o2cb stack module fs/ocfs2/dlm/ocfs2_dlm.ko and fs/ocfs2/dlm/ocfs2_dlmfs.ko get built if CONFIG_FS_OCFS2 is specified. This isn't quite how it should happen any more - the "o2cb" dlm modules should only be built if CONFIG_FS_OCFS2_O2CB is set, so update the dlm Makefile accordingly. Signed-off-by: Mark Fasheh Acked-by: Randy Dunlap Acked-by: Joel Becker commit 409753bf6da4a2db038027471abaf324e063db2f Author: Jeff Mahoney Date: Fri Mar 28 16:44:13 2008 -0700 ocfs2/cluster: Get rid of arguments to the timeout routines We keep seeing bug reports related to NULL pointer derefs in o2net_set_nn_state(). When I originally wrote up the configurable timeout patch, I had tried to plan for multiple clusters. This was silly. The timeout routines all use o2nm_single_cluster so there's no point in passing an argument at all. This patch removes the arguments and kills those bugs dead. Signed-off-by: Jeff Mahoney Signed-off-by: Mark Fasheh commit dda47bce91b8624ef0806f7f8157ffc91e153c9d Author: Joel Becker Date: Sat Mar 22 22:08:07 2008 -0700 ocfs2: Put tree in MAINTAINERS The ocfs2 MAINTAINERS entry should have the git tree URL. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit b1f3550fa1471b691ad6c2f35b5b22e93eaa5855 Author: Julia Lawall Date: Tue Mar 4 15:21:05 2008 -0800 ocfs2: Use BUG_ON if (...) BUG(); should be replaced with BUG_ON(...) when the test has no side-effects to allow a definition of BUG_ON that drops the code completely. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @ disable unlikely @ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (unlikely(E)) { BUG(); } + BUG_ON(E); ) @@ expression E,f; @@ ( if (<... f(...) ...>) { BUG(); } | - if (E) { BUG(); } + BUG_ON(E); ) // Signed-off-by: Julia Lawall Signed-off-by: Andrew Morton Signed-off-by: Mark Fasheh commit c9ec14884d69a303eef4faae42bd3c4e25b19941 Author: Andi Kleen Date: Sun Jan 27 03:17:17 2008 +0100 ocfs2: Convert ocfs2 over to unlocked_ioctl As far as I can see there is nothing in ocfs2_ioctl that requires the BKL, so use unlocked_ioctl Signed-off-by: Andi Kleen Signed-off-by: Mark Fasheh commit 5dabd69515765156605b09261abf969236a77803 Author: Jan Kara Date: Thu Feb 21 18:00:00 2008 +0100 ocfs2: Improve rename locking ocfs2_rename() was being too aggressive with the rename lock - we only need it for certain forms of directory rename. Signed-off-by: Jan Kara Signed-off-by: Mark Fasheh commit 58dadcdbc2584db050969f9781727fc5a3f618db Author: Julia Lawall Date: Fri Mar 28 14:43:10 2008 -0700 fs/ocfs2/aops.c: test for IS_ERR rather than 0 The function ocfs2_start_trans always returns either a valid pointer or a value made with ERR_PTR, so its result should be tested with IS_ERR, not with a test for 0. Signed-off-by: Julia Lawall Signed-off-by: Andrew Morton Signed-off-by: Mark Fasheh commit 4d0ddb2ce25db2254d468233d942276ecf40bff8 Author: Tao Ma Date: Wed Mar 5 16:11:46 2008 +0800 ocfs2: Add inode stealing for ocfs2_reserve_new_inode Inode allocation is modified to look in other nodes allocators during extreme out of space situations. We retry our own slot when space is freed back to the global bitmap, or whenever we've allocated more than 1024 inodes from another slot. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit a4a4891164d4f6f383cc17e7c90828a7ca6a1146 Author: Tao Ma Date: Mon Mar 3 17:12:30 2008 +0800 ocfs2: Add ac_alloc_slot in ocfs2_alloc_context In inode stealing, we no longer restrict the allocation to happen in the local node. So it is neccessary for us to add a new member in ocfs2_alloc_context to indicate which slot we are using for allocation. We also modify the process of local alloc so that this member can be used there also. Signed-off-by: Tao Ma Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit ffda89a3bf3b968bdc268584c6bc1da5c173cf12 Author: Tao Ma Date: Mon Mar 3 17:12:09 2008 +0800 ocfs2: Add a new parameter for ocfs2_reserve_suballoc_bits In some cases(Inode stealing from other nodes), we may not want ocfs2_reserve_suballoc_bits to allocate new groups from the global_bitmap since it may already be full. So add a new parameter for this. Signed-off-by: Tao Ma Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit ad5a4d7093a76fa245e277e6f0f0e168a08aeff7 Author: Tao Ma Date: Wed Jan 30 14:21:32 2008 +0800 ocfs2: Enable cross extent block merge. In ocfs2_figure_merge_contig_type, we judge whether there exists a cross extent block merge and enable it by setting CONTIG_LEFT and CONTIG_RIGHT accordingly. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 677b975282e48d1818df4181336307377d56b04e Author: Tao Ma Date: Wed Jan 30 14:21:05 2008 +0800 ocfs2: Add support for cross extent block In ocfs2_merge_rec_left, when we find the merge extent is "CONTIG_RIGHT" with the first extent record of the next extent block, we will merge it to the next extent block and change all the related extent blocks accordingly. In ocfs2_merge_rec_right, when we find the merge extent is "CONTIG_LEFT" with the last extent record of the previous extent block, we will merge it to the prevoius extent block and change all the related extent blocks accordingly. As for CONTIG_LEFTRIGHT, we will handle CONTIG_RIGHT first so that when the index is zero, the merge process will be more efficient and easier. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 52f7c21b613f80cb425d115c9e5b4ed958a133c0 Author: Mark Fasheh Date: Tue Jan 29 17:08:26 2008 -0800 ocfs2: Move /sys/o2cb to /sys/fs/o2cb /sys/fs is where we really want file system specific sysfs objects. Ocfs2-tools has been updated to look in /sys/fs/o2cb. We can maintain backwards compatibility with old ocfs2-tools by using a sysfs symlink. After some time (2 years), the symlink can be safely removed. This patch also adds documentation to make it easier for people to figure out what /sys/fs/o2cb is used for. Signed-off-by: Mark Fasheh commit a839c5afcdc345aecb35b0d3bcd0e09b571329c3 Author: Mark Fasheh Date: Tue Jan 29 14:35:18 2008 -0800 sysfs: Allow removal of symlinks in the sysfs root Allow callers of sysfs_remove_link() to pass a NULL kobj, in which case sysfs_root will be used as the parent directory. This allows us to tear down top level symlinks created via sysfs_create_link(), which already has similar handling of a NULL parent object. Signed-off-by: Mark Fasheh Acked-by: Greg Kroah-Hartman commit 5cc3bf2786f63cceb191c3c02ddd83c6f38a7d64 Author: Tao Ma Date: Wed Mar 5 15:50:12 2008 +0800 ocfs2: Reconnect after idle time out. Currently, o2net connects to a node on hb_up and disconnects on hb_down and net timeout. It disconnects on net timeout is ok, but it should attempt to reconnect back. This is because sometimes nodes get overloaded enough that the network connection breaks but the disk hb does not. And if we get into that situation, we either fence (unnecessarily) or wait for its disk hb to die (and sometimes hang in the process). So in this updated scheme, when the network disconnects, we keep attempting to reconnect till we succeed or we get a disk hb down event. If the other node is really dead, then we will eventually get a node down event. If not, we should be able to connect again and continue. Signed-off-by: Tao Ma Signed-off-by: Mark Fasheh commit 8f50eb978935431ccbf89b0344efd4ce6a924875 Author: Sunil Mushran Date: Fri Mar 14 11:18:24 2008 -0700 ocfs2/dlm: Cleanup lockres print A previous patch added KERN_NOTICE to printks printing the lockres that cluttered the output. This patch removes the log level. For people concerned with syslog clutter, please note we now use this facility to print lockres only during an error. Signed-off-by: Sunil Mushran Signed-off-by: Mark Fasheh commit c834cdb15702dd0147875b352cc7d4df93d7d900 Author: Sunil Mushran Date: Mon Mar 10 15:16:29 2008 -0700 ocfs2/dlm: Fix lockname in lockres print function __dlm_print_one_lock_resource was printing lockname incorrectly. Also, we now use printk directly instead of mlog as the latter prints the line context which is not useful for this print. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit e5a0334cbd65e27f8dfd9985aa805874fe59e879 Author: Sunil Mushran Date: Mon Mar 10 15:16:28 2008 -0700 ocfs2/dlm: Move dlm_print_one_mle() from dlmmaster.c to dlmdebug.c This patch helps in consolidating debugging related functions in dlmdebug.c. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 7209300a9b987e017cae2ef9d7ef55b0fdd71869 Author: Sunil Mushran Date: Mon Mar 10 15:16:27 2008 -0700 ocfs2/dlm: Dumps the purgelist into a debugfs file This patch dumps all the lockres' on the purgelist it can fit in one page into a debugfs file. Useful for debugging. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit d0129aceaecc2b1f5171b8e8036eb469b6e0fe81 Author: Sunil Mushran Date: Mon Mar 10 15:16:26 2008 -0700 ocfs2/dlm: Dumps the mles into a debugfs file This patch dumps all mles it can fit in one page into a debugfs file. Useful for debugging. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 751155a953e1fe558d3d3c3db7087712ffc15c3e Author: Sunil Mushran Date: Mon Mar 10 15:16:25 2008 -0700 ocfs2/dlm: Move struct dlm_master_list_entry to dlmcommon.h This patch moves some mle related definitions from dlmmaster.c to dlmcommon.h. Future patches need these definitions to dump mle debugging information. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 4e3d24ed1a1285fe3289653aacc965642706bacb Author: Sunil Mushran Date: Mon Mar 10 15:16:24 2008 -0700 ocfs2/dlm: Dumps the lockres' into a debugfs file This patch dumps all the lockres' alongwith all the locks into a debugfs file. Useful for debugging. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 007dce53a29ccffc000ab5373d188f73881390fd Author: Sunil Mushran Date: Mon Mar 10 15:16:23 2008 -0700 ocfs2/dlm: Dump the dlm state in a debugfs file This patch dumps the dlm state (dlm_ctxt) into a debugfs file. Useful for debugging. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 6325b4a22b8f5e40ea9353288b3d6a32181f9718 Author: Sunil Mushran Date: Mon Mar 10 15:16:22 2008 -0700 ocfs2/dlm: Create debugfs dirs This patch creates the debugfs directories that will hold the files to be used to dump the dlm state. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 29576f8bb54045be944ba809d4fca1ad77c94165 Author: Sunil Mushran Date: Mon Mar 10 15:16:21 2008 -0700 ocfs2/dlm: Link all lockres' to a tracking list This patch links all the lockres' to a tracking list in dlm_ctxt. We will use this in an upcoming patch that will walk the entire list and to dump the lockres states to a debugfs file. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 724bdca9b8449d9ee5f779dc27ee3d906a04508c Author: Sunil Mushran Date: Mon Mar 10 15:16:20 2008 -0700 ocfs2/dlm: Create slabcaches for lock and lockres This patch makes the o2dlm allocate memory for lockres, lockname and lock structures from slabcaches rather than kmalloc. This allows us to not only make these allocs more efficient but also allows us to track the memory being consumed by these structures. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 12eb0035d6f0466038ef2c6e5f6f9296b9b74d91 Author: Sunil Mushran Date: Mon Mar 10 15:16:19 2008 -0700 ocfs2/dlm: Rename slabcache dlm_mle_cache to o2dlm_mle This patch renames dlm_mle_slabcache to prevent namespace clashes with fs/dlm. Signed-off-by: Sunil Mushran Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 53f67e33865927049b20839ce15ce0fb5b7ebe2d Author: Joel Becker Date: Mon Mar 31 16:22:55 2008 -0700 ocfs2: Document /sys/fs/ocfs2 Add ABI documentation for these files: /sys/fs/ocfs2/max_locking_protocol /sys/fs/ocfs2/loaded_cluster_plugins /sys/fs/ocfs2/active_cluster_plugin /sys/fs/ocfs2/cluster_stack Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 9341d22942d63d6a1e4cc90f246980dbb7e1ca94 Author: Joel Becker Date: Tue Mar 4 17:58:56 2008 -0800 ocfs2: Allow selection of cluster plug-ins. ocfs2 now supports plug-ins for the classic O2CB stack as well as userspace cluster stacks in conjunction with fs/dlm. This allows zero, one, or both of the plug-ins to be selected in Kconfig. For local mounts (non-clustered), neither plug-in is needed. Both plugins can be loaded at one time, the runtime will select the one needed for the cluster systme in use. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit b92eccdd28e1e3870a5b2aa625282c9ae8e35cec Author: Joel Becker Date: Wed Nov 28 14:53:30 2007 -0800 ocfs2: Add kbuild for ocfs2_stack_user.ko Add ocfs2_stack_user.ko to the Makefile so that it builds. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 8f318311faf57481452895448e6ffaec7c38a146 Author: Joel Becker Date: Tue Mar 4 16:09:39 2008 -0800 ocfs2: Change mlog_bug_on to BUG_ON in ocfs2_lockid.h The masklog code is in the o2cb stack, but ocfs2_lockid.h now needs to be included by the user stack. The BUG() in ocfs2_lock_type_string() does not need masklog support, so change it to a regular BUG_ON(). Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit cf4d8d75d8aba537a19b313a9364fd08ddbd5622 Author: David Teigland Date: Wed Feb 20 14:29:27 2008 -0800 ocfs2: add fsdlm to stackglue Add code to use fs/dlm. [ Modified to be part of the stack_user module -- Joel ] Signed-off-by: David Teigland Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit d4b95eef4dc4a59bcd42bdf783638a2eaa57b4c8 Author: Joel Becker Date: Wed Feb 20 15:39:44 2008 -0800 ocfs2: Add the 'set version' message to the ocfs2_control device. The "SETV" message sets the filesystem locking protocol version as negotiated by the client. The client negotiates based on the maximum version advertised in /sys/fs/ocfs2/max_locking_protocol. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 3cfd4ab6b6b4bee2035b62e1c293801c3d257502 Author: Joel Becker Date: Wed Feb 20 14:44:34 2008 -0800 ocfs2: Add the local node id to the handshake. This is the second part of the ocfs2_control handshake. After negotiating the ocfs2_control protocol, the daemon tells the filesystem what the local node id is via the SETN message. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit de870ef02295c9f5601dbf2efdc1be6df44b187b Author: Joel Becker Date: Mon Feb 18 17:07:09 2008 -0800 ocfs2: Introduce the DOWN message to ocfs2_control When the control daemon sees a node go down, it sends a DOWN message through the ocfs2_control device. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 462c7e6a257e547eebe1648396cf7c45e684091b Author: Joel Becker Date: Mon Feb 18 19:40:12 2008 -0800 ocfs2: Start the ocfs2_control handshake. When a control daemon opens the ocfs2_control device, it must perform a handshake to tell the filesystem it is something capable of monitoring cluster status. Only after the handshake is complete will the filesystem allow mounts. This is the first part of the handshake. The daemon reads all supported ocfs2_control protocols, then writes in the protocol it will use. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 6427a727557d9c964b7b162ae11bb156e2c501d5 Author: Joel Becker Date: Mon Feb 18 19:23:28 2008 -0800 ocfs2: Add the ocfs2_control misc device. The ocfs2_control misc device is how a userspace control daemon (controld) talks to the filesystem. Introduce the bare-bones filesystem ops. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 8adf0536c9fb578a8542dcf81104d3438a5287e4 Author: Joel Becker Date: Wed Nov 28 14:38:40 2007 -0800 ocfs2: Add the user stack module. Add a skeleton for the stack_user module. It's just the barebones module code. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 9c6c877c04ce17d76a35d2173d3a3840d6b796a2 Author: Joel Becker Date: Fri Feb 1 15:17:30 2008 -0800 ocfs2: Add the 'cluster_stack' sysfs file. Userspace can now query and specify the cluster stack in use via the /sys/fs/ocfs2/cluster_stack file. By default, it is 'o2cb', which is the classic stack. Thus, old tools that do not know how to modify this file will work just fine. The stack cannot be modified if there is a live filesystem. ocfs2_cluster_connect() now takes the expected cluster stack as an argument. This way, the filesystem and the stack glue ensure they are speaking to the same backend. If the stack is 'o2cb', the o2cb stack plugin is used. For any other value, the fsdlm stack plugin is selected. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit b61817e1166c5e19c08baf05196477cc345e1b1a Author: Joel Becker Date: Fri Feb 1 15:08:23 2008 -0800 ocfs2: Add the USERSPACE_STACK incompat bit. The filesystem gains the USERSPACE_STACK incomat bit and the s_cluster_info field on the superblock. When a userspace stack is in use, the name of the stack is stored on-disk for mount-time verification. The "cluster_stack" option is added to mount(2) processing. The mount process needs to pass the matching stack name. If the passed name and the on-disk name do not match, the mount is failed. When using the classic o2cb stack, the incompat bit is *not* set and no mount option is used other than the usual heartbeat=local. Thus, the filesystem is compatible with older tools. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 74ae4e104dfc57017783fc07d5f2f9129062207f Author: Joel Becker Date: Thu Jan 31 23:56:17 2008 -0800 ocfs2: Create stack glue sysfs files. Introduce a set of sysfs files that describe the current stack glue state. The files live under /sys/fs/ocfs2. The locking_protocol file displays the version of ocfs2's locking code. The loaded_cluster_plugins file displays all of the currently loaded stack plugins. When filesystems are mounted, the active_cluster_plugin file will display the plugin in use. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 286eaa95c5c5915a6b72cc3f0a2534161fd7928b Author: Joel Becker Date: Fri Feb 1 15:03:57 2008 -0800 ocfs2: Break out stackglue into modules. We define the ocfs2_stack_plugin structure to represent a stack driver. The o2cb stack code is split into stack_o2cb.c. This becomes the ocfs2_stack_o2cb.ko module. The stackglue generic functions are similarly split into the ocfs2_stackglue.ko module. This module now provides an interface to register drivers. The ocfs2_stack_o2cb driver registers itself. As part of this interface, ocfs2_stackglue can load drivers on demand. This is accomplished in ocfs2_cluster_connect(). ocfs2_cluster_disconnect() is now notified when a _hangup() is pending. If a hangup is pending, it will not release the driver module and will let _hangup() do that. Signed-off-by: Joel Becker commit e3dad42bf993a0f24eb6e46152356c9b119c15e8 Author: Joel Becker Date: Fri Feb 1 15:02:36 2008 -0800 ocfs2: Create ocfs2_stack_operations and split out the o2cb stack. Define the ocfs2_stack_operations structure. Build o2cb_stack_ops from all of the o2cb-specific stack functions. Change the generic stack glue functions to call the stack_ops instead of the o2cb functions directly. The o2cb functions are moved to stack_o2cb.c. The headers are cleaned up to where only needed headers are included. In this code, stackglue.c and stack_o2cb.c refer to some shared extern variables. When they become modules, that will change. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 553aa7e408eac402c00b67ddfa7aec13fe1f3a33 Author: Joel Becker Date: Fri Feb 1 14:51:03 2008 -0800 ocfs2: Split o2cb code from generic stack functions. Split off the o2cb-specific funtionality from the generic stack glue calls. This is a precurser to wrapping the o2cb functionality in an operations vector. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 63e0c48ae6986a5bbb8e8dd9210c0e6ca79f2e50 Author: Joel Becker Date: Wed Jan 30 16:58:36 2008 -0800 ocfs2: Clean up stackglue initialization The stack glue initialization function needs a better name so that it can be used cleanly when stackglue becomes a module. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit cf0acdcd640e9466059e69951c557e90b4bee45a Author: Joel Becker Date: Tue Jan 29 16:59:55 2008 -0800 ocfs2: Abstract out a debugging function for underlying dlms. dlmglue.c was still referencing a raw o2dlm lksb in one instance. Let's create a generic ocfs2_dlm_dump_lksb() function. This allows underlying DLMs to print whatever they want about their lock. We then move the o2dlm dump into stackglue.c where it belongs. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 1693a5c0117f8ccd010a666f97aaf0f14fb0a0e4 Author: David Teigland Date: Wed Jan 30 16:52:53 2008 -0800 ocfs2: handle async EAGAIN from NOQUEUE request When using fsdlm, -EAGAIN is returned in the async callback for NOQUEUE requests. Fix up dlmglue to expect this. Signed-off-by: David Teigland Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit de551246e7bc5558371c3427889a8db1b8cc60f4 Author: Joel Becker Date: Fri Feb 1 14:45:08 2008 -0800 ocfs2: Remove CANCELGRANT from the view of dlmglue. o2dlm has the non-standard behavior of providing a cancel callback (unlock_ast) even when the cancel has failed (the locking operation succeeded without canceling). This is called CANCELGRANT after the status code sent to the callback. fs/dlm does not provide this callback, so dlmglue must be changed to live without it. o2dlm_unlock_ast_wrapper() in stackglue now ignores CANCELGRANT calls. Because dlmglue no longer sees CANCELGRANT, ocfs2_unlock_ast() no longer needs to check for it. ocfs2_locking_ast() must catch that a cancel was tried and clear the cancel state. Making these changes opens up a locking race. dlmglue uses the the OCFS2_LOCK_BUSY flag to ensure only one thread is calling the dlm at any one time. But dlmglue must unlock the lockres before calling into the dlm. In the small window of time between unlocking the lockres and calling the dlm, the downconvert thread can try to cancel the lock. The downconvert thread is checking the OCFS2_LOCK_BUSY flag - it doesn't know that ocfs2_dlm_lock() has not yet been called. Because ocfs2_dlm_lock() has not yet been called, the cancel operation will just be a no-op. There's nothing to cancel. With CANCELGRANT, dlmglue uses the CANCELGRANT callback to clear up the cancel state. When it comes around again, it will retry the cancel. Eventually, the first thread will have called into ocfs2_dlm_lock(), and either the lock or the cancel will succeed. The downconvert thread can then do its downconvert. Without CANCELGRANT, there is nothing to clean up the cancellation state. The downconvert thread does not know to retry its operations. More importantly, the original lock may be blocking on the other node that is trying to cancel us. With neither able to make progress, the ast is never called and the cancellation state is never cleaned up that way. dlmglue is deadlocked. The OCFS2_LOCK_PENDING flag is introduced to remedy this window. It is set at the same time OCFS2_LOCK_BUSY is. Thus, the downconvert thread can check whether the lock is cancelable. If not, it just loops around to try again. Once ocfs2_dlm_lock() is called, the thread then clears OCFS2_LOCK_PENDING and wakes the downconvert thread. Now, if the downconvert thread finds the lock BUSY, it can safely try to cancel it. Whether the cancel works or not, the state will be properly set and the lock processing can continue. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 0abd6d1803b01c741430af270026d1d95a103d9c Author: Mark Fasheh Date: Tue Jan 29 16:59:56 2008 -0800 ocfs2: Fill node number during cluster stack init It doesn't make sense to query for a node number before connecting to the cluster stack. This should be safe to do because node_num is only just printed, and we're actually only moving the setting of node num a small amount further in the mount process. [ Disconnect when node query fails -- Joel ] Reviewed-by: Joel Becker Signed-off-by: Mark Fasheh commit 6953b4c008628b945bfe0cee97f6e78a98773859 Author: Joel Becker Date: Tue Jan 29 16:59:56 2008 -0800 ocfs2: Move o2hb functionality into the stack glue. The last bit of classic stack used directly in ocfs2 code is o2hb. Specifically, the check for heartbeat during mount and the call to ocfs2_hb_ctl during unmount. We create an extra API, ocfs2_cluster_hangup(), to encapsulate the call to ocfs2_hb_ctl. Other stacks will just leave hangup() empty. The check for heartbeat is moved into ocfs2_cluster_connect(). It will be matched by a similar check for other stacks. With this change, only stackglue.c includes cluster/ headers. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1 Author: Joel Becker Date: Wed Jan 30 15:38:24 2008 -0800 ocfs2: Abstract out node number queries. ocfs2 asks the cluster stack for the local node's node number for two reasons; to fill the slot map and to print it. While the slot map isn't necessary for userspace cluster stacks, the printing is very nice for debugging. Thus we add ocfs2_cluster_this_node() as a generic API to get this value. It is anticipated that the slot map will not be used under a userspace cluster stack, so validity checks of the node num only need to exist in the slot map code. Otherwise, it just gets used and printed as an opaque value. [ Fixed up some "int" versus "unsigned int" issues and made osb->node_num truly opaque. --Mark ] Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 4670c46ded9a18268d1265417ff4ac72145a7917 Author: Joel Becker Date: Fri Feb 1 14:39:35 2008 -0800 ocfs2: Introduce the new ocfs2_cluster_connect/disconnect() API. This step introduces a cluster stack agnostic API for initializing and exiting. fs/ocfs2/dlmglue.c no longer uses o2cb/o2dlm knowledge to connect to the stack. It is all handled in stackglue.c. heartbeat.c no longer needs to know how it gets called. ocfs2_do_node_down() is now a clean recovery trigger. The big gotcha is the ordering of initializations and de-initializations done underneath ocfs2_cluster_connect(). ocfs2_dlm_init() used to do all o2dlm initialization in one block. Thus, the o2dlm functionality of ocfs2_cluster_connect() is very straightforward. ocfs2_dlm_shutdown(), however, did a few things between de-registration of the eviction callback and actually shutting down the domain. Now de-registration and shutdown of the domain are wrapped within the single ocfs2_cluster_disconnect() call. I've checked the code paths to make sure we can safely tear down things in ocfs2_dlm_shutdown() before calling ocfs2_cluster_disconnect(). The filesystem has already set itself to ignore the callback. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 8f2c9c1b16bf6ed0903b29c49d56fa0109a390e4 Author: Joel Becker Date: Fri Feb 1 12:16:57 2008 -0800 ocfs2: Create the lock status block union. Wrap the lock status block (lksb) in a union. Later we will add a union element for the fs/dlm lksb. Create accessors for the status and lvb fields. Other than a debugging function, dlmglue.c does not directly reference the o2dlm locking path anymore. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 7431cd7e8dd0e46e9b12bd6a1ac1286f4b420371 Author: Joel Becker Date: Fri Feb 1 12:15:37 2008 -0800 ocfs2: Use -errno instead of dlm_status for ocfs2_dlm_lock/unlock() API. Change the ocfs2_dlm_lock/unlock() functions to return -errno values. This is the first step towards elminiating dlm_status in fs/ocfs2/dlmglue.c. The change also passes -errno values to ->unlock_ast(). [ Fix a return code in dlmglue.c and change the error translation table into an array of ints. --Mark ] Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit bd3e76105d4478ab89951a52d1a35250d24a9f16 Author: Joel Becker Date: Fri Feb 1 12:14:57 2008 -0800 ocfs2: Use global DLM_ constants in generic code. The ocfs2 generic code should use the values in . stackglue.c will convert them to o2dlm values. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 24ef1815e5e13e50196eb1ab8ddc0d783443bdf8 Author: Joel Becker Date: Tue Jan 29 17:37:32 2008 -0800 ocfs2: Separate out dlm lock functions. This is the first in a series of patches to isolate ocfs2 from the underlying cluster stack. Here we wrap the dlm locking functions with ocfs2-specific calls. Because ocfs2 always uses the same dlm lock status callbacks, we can eliminate the callbacks from the filesystem visible functions. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 386a2ef8576e966076c293f6496b9e3d7e3d9035 Author: Joel Becker Date: Fri Feb 1 12:06:54 2008 -0800 ocfs2: New slot map format The old slot map had a few limitations: - It was limited to one block, so the maximum slot count was 255. - Each slot was signed 16bits, limiting node numbers to INT16_MAX. - An empty slot was marked by the magic 0xFFFF (-1). The new slot map format provides 32bit node numbers (UINT32_MAX), a separate space to mark a slot in use, and extra room to grow. The slot map is now bounded by i_size, not a block. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit fb86b1f07120b66769a39c445da5c4300069dd44 Author: Joel Becker Date: Fri Feb 1 11:59:05 2008 -0800 ocfs2: Define the contents of the slot_map file. The slot map file is merely an array of __le16. Wrap it in a structure for cleaner reference. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit fc881fa0d59596c02f8707b5572567c369d4789a Author: Joel Becker Date: Fri Feb 1 12:04:48 2008 -0800 ocfs2: De-magic the in-memory slot map. The in-memory slot map uses the same magic as the on-disk one. There is a special value to mark a slot as invalid. It relies on the size of certain types and so on. Write a new in-memory map that keeps validity as a separate field. Outside of the I/O functions, OCFS2_INVALID_SLOT now means what it is supposed to. It also is no longer tied to the type size. This also means that only the I/O functions refer to 16bit quantities. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 1c8d9a6a330f46b3a6ddd204a2580131d5f0d6b7 Author: Joel Becker Date: Fri Feb 1 11:59:07 2008 -0800 ocfs2: slot_map I/O based on max_slots. The slot map code assumed a slot_map file has one block allocated. This changes the code to I/O as many blocks as will cover max_slots. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 553abd046af609191a91af7289d87d477adc659f Author: Joel Becker Date: Fri Feb 1 12:03:57 2008 -0800 ocfs2: Change the recovery map to an array of node numbers. The old recovery map was a bitmap of node numbers. This was sufficient for the maximum node number of 254. Going forward, we want node numbers to be UINT32. Thus, we need a new recovery map. Note that we can't keep track of slots here. We must write down the node number to recovery *before* we get the locks needed to convert a node number into a slot number. The recovery map is now an array of unsigned ints, max_slots in size. It moves to journal.c with the rest of recovery. Because it needs to be initialized, we move all of recovery initialization into a new function, ocfs2_recovery_init(). This actually cleans up ocfs2_initialize_super() a little as well. Following on, recovery cleaup becomes part of ocfs2_recovery_exit(). A number of node map functions are rendered obsolete and are removed. Finally, waiting on recovery is wrapped in a function rather than naked checks on the recovery_event. This is a cleanup from Mark. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit d85b20e4b300edfd290f21fc2d790ba16d2f225b Author: Joel Becker Date: Fri Feb 1 12:01:05 2008 -0800 ocfs2: Make ocfs2_slot_info private. Just use osb_lock around the ocfs2_slot_info data. This allows us to take the ocfs2_slot_info structure private in slot_info.c. All access is now via accessors. Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit 8e8a4603b5422c9145880e73b23bc4c2c4de0098 Author: Mark Fasheh Date: Fri Feb 1 11:59:09 2008 -0800 ocfs2: Move slot map access into slot_map.c journal.c and dlmglue.c would refresh the slot map by hand. Instead, have the update and clear functions do the work inside slot_map.c. The eventual result is to make ocfs2_slot_info defined privately in slot_map.c Signed-off-by: Joel Becker Signed-off-by: Mark Fasheh commit db8be076cad4b843aa743ef462c75022cddd9c63 Author: Adrian Bunk Date: Mon Mar 31 02:22:11 2008 +0300 firewire: cleanups This patch contains the following cleanups: - #if 0 the following unused structs: - fw-transaction.c:fw_low_memory_region - fw-transaction.c:fw_private_region - fw-transaction.c:fw_csr_region - fw-transaction.c:fw_unit_space_region - remove the following unused EXPORT_SYMBOL's: - fw-card.c:fw_core_add_descriptor - fw-card.c:fw_core_remove_descriptor - fw-iso.c:fw_iso_context_create - fw-iso.c:fw_iso_context_destroy - fw-iso.c:fw_iso_context_start - fw-iso.c:fw_iso_context_queue - fw-iso.c:fw_iso_context_stop Signed-off-by: Adrian Bunk Signed-off-by: Stefan Richter commit 25b1c3d8889f982ebc6c7b996cfc7fa5f1dce533 Author: Stefan Richter Date: Mon Mar 24 20:57:12 2008 +0100 firewire: fix synchronization of gap counts Fix: The fact that nodes had different gap counts would be overlooked if the bus manager code would pick gap count 63 because of beta repeaters or because of very large hop counts. In this case, the bus manager code would miss that it actually has to send the PHY config packet with gap count 63. Related trivial changes: Use bool for an int used as bool, touch up some comments. Signed-off-by: Stefan Richter commit 2a0a2590498be7b92e3e76409c9b8ee722e23c8f Author: Stefan Richter Date: Thu Mar 20 23:48:23 2008 +0100 firewire: wait until PHY configuration packet was transmitted (fix bus reset loop) We now exit fw_send_phy_config /after/ the PHY config packet has been transmitted, instead of before. A subsequent fw_core_initiate_bus_reset will therefore not overlap with the transmission. This is meant to make the send PHY config packet + reset bus routine more deterministic. Fixes bus reset loop and eventual panic with - VIA VT6307 + IOGEAR hub + Unibrain Fire-i camera http://bugzilla.kernel.org/show_bug.cgi?id=10128 - JMicron card Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit e09770db0fa33baf8df21fbc18aa24a080330c3f Author: Stefan Richter Date: Tue Mar 11 02:23:29 2008 +0100 firewire: remove unused struct member request_generation is internal to fw-ohci and unneeded in fw_card. Signed-off-by: Stefan Richter commit 15f0d833f63da2fa49aed81480a37d5e896b5b9b Author: Jarod Wilson Date: Sat Mar 8 13:18:58 2008 -0500 firewire: use bitwise and to get reg in handle_registers for code efficiency. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit cca6097713c62eac43aef27b31e7f1553dde4f94 Author: Jarod Wilson Date: Sat Mar 8 12:52:03 2008 -0500 firewire: replace more hex values with defined csr constants Trivial change to replace more meaningless (to the untrained eye) hex values with defined CSR constants. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit c9755e14a01987ada4063e8b4c50c2b6738d879e Author: Stefan Richter Date: Mon Mar 24 20:54:28 2008 +0100 firewire: reread config ROM when device reset the bus When a device changes its configuration ROM, it announces this with a bus reset. firewire-core has to check which node initiated a bus reset and whether any unit directories went away or were added on this node. Tested with an IOI FWB-IDE01AB which has its link-on bit set if bus power is available but does not respond to ROM read requests if self power is off. This implements - recognition of the units if self power is switched on after fw-core gave up the initial attempt to read the config ROM, - shutdown of the units when self power is switched off. Also tested with a second PC running Linux/ieee1394. When the eth1394 driver is inserted and removed on that node, fw-core now notices the addition and removal of the IPv4 unit on the ieee1394 node. Signed-off-by: Stefan Richter commit 1dadff71d6356ebb804c3f4f1d3049247e16111c Author: Stefan Richter Date: Sun Mar 2 19:35:42 2008 +0100 firewire: replace static ROM cache by allocated cache read_bus_info_block() is repeatedly called by workqueue jobs. These will step on each others toes eventually if there are multiple workqueue threads, and we end up with corrupt config ROM images. Signed-off-by: Stefan Richter commit d34316a4bdcd4fef050da584401c7f4ed22482f2 Author: Stefan Richter Date: Sat Apr 12 22:31:25 2008 +0200 firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more) Unlike the ohci1394 driver, fw-ohci uses the selfIDGeneration field of bus reset packets to determine the generation of incoming requests as per OHCI 1.1 clause 8.4.2.3. This is more precise --- provided that the controller inserts the correct generation. Texas Instruments chips often don't. This prevented the transmission of response packets, which for example broke AV/C transactions as used when communicating with miniDV cameras and any other AV/C devices. There is apparently no way to detect and adjust incorrect generations. Therefore we ignore the generation of bus reset packets from TI chips and use the generation of the self ID buffer instead. Alas this is received at a slightly wrong time. In rare cases, this could cause us to not respond to legitimate requests or to respond to expired requests. (The latter is less likely because the bus reset packet AR event is typically handled before the self ID complete event.) Bug reported by Mladen Kuntner, who was extraordinarily patient while dealing with the driver maintainers. Fix confirmed to be required and effective for TSB82AA2 and a TSB43AB22 or TSB43AB22A. https://bugzilla.redhat.com/show_bug.cgi?id=243081 Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit 08ddb2f4c270b5dff063f7dbcd7e9248a52e7c65 Author: Stefan Richter Date: Fri Apr 11 00:51:15 2008 +0200 firewire: fw-ohci: extend logging of bus generations and node ID Extend the logging of "AR evt_bus_reset, link internal" to "AR evt_bus_reset, generation ${selfIDGeneration}". That way we can check whether this generation matches the one seen in self ID complete event logging. See OHCI 1.1 clause 8.4.2.3. Also extend logging of "firewire_ohci: * selfIDs, generation *" by "local node ID ffc*" in self ID logging to make the local node in AT/AR event logs more obvious. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit a007bb857e0b26f5d8b73c2ff90782d9c0972620 Author: Stefan Richter Date: Mon Apr 7 22:33:35 2008 +0200 firewire: fw-ohci: conditionally log busReset interrupts Add a debug option to watch bus reset interrupt events. Half of this patch is taken from Jarod Wilson's first version of the JMicron fix. BusReset interrupts are only generated if the respective module parameter flag was set before the controller is being initialized. Else we keep this event masked to reduce IRQ load in normal operation and to avoid potential problems with buggy chips. Note, this is unlike the other IRQ events whose logging can be enabled any time after chip initialization. This and the influence on what interrupts the chip generates is why I added an extra flag for it. Also, reorder the debug parameter flags according to their perceived usefulness. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit 76f73ca1b291a8d014ff0d2d802c817404dd9887 Author: Jarod Wilson Date: Mon Apr 7 22:32:33 2008 +0200 firewire: fw-ohci: don't append to AT context when it's not active I finally tracked down the issues with this JMicron PCI-e card in my possession to a failure to comply with section 7.2.3.2 of the OHCI 1.1 specification (thanks to Kristian for the pointer to illustrate that it is indeed a flaw in this card, not the driver). The controller should simply flush the packets we've appended to its AT queue if a bus reset occurs before they've been transmitted and we'll try again, but something goes wrong and the controller winds up hung. However, we can avoid the problem by simply checking if the IntEvent.busReset register had been set before we try appending to the AT context. When busReset is set, the AT context is completely halted until busReset is cleared, so there's no point in appending AT packets until the register is cleared. So at_context_queue_packet() now checks for busReset being set, and bails with an RCODE_GENERATION packet ack, which results in us trying to append the packet again after recognizing the fact there has been a bus reset, and clearing busReset. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit 75f7832e3b032c6e4a83c14b58341abd9f2d81ef Author: Jarod Wilson Date: Thu Apr 3 17:18:23 2008 -0400 firewire: fw-ohci: log regAccessFail events While trying to debug this piece of crap JMicron PCI-e controller in my possession, one thought was that perhaps I was encountering register access failures. I'm not, but logging them would be good, so we can see if they are a real problem we should be taking into account anywhere in the code. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter (added list contact) commit 022147242ff6e4b7ab770f00716063f48c088391 Author: Jarod Wilson Date: Fri Mar 28 10:02:50 2008 -0400 firewire: fw-ohci: make sure HCControl register LPS bit is set I've now witnessed multiple occasions where one of my controllers (a very poorly working JMicron PCIe card) fails to get its registers properly set up in ohci_enable(), apparently due to an occasionally very slow to initiate SClk. The easy fix for this problem is to add a tiny while loop to try again a time or three after initially enabling LPS before we move on (or give up). Of course, the card still isn't fully functional yet, but this gets it at least one tiny step closer... Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit 130d5496e2c9104dcabdaa5c19cd941770e20edc Author: Stefan Richter Date: Mon Mar 24 20:55:28 2008 +0100 firewire: fw-ohci: missing PPC PMac feature calls in failure path Balance ohci_pmac_on and ohci_pmac_off if pci_driver.probe fails. Signed-off-by: Stefan Richter commit 43286568adb3ccd4b2f1d0cb7393c355f03e4f39 Author: Stefan Richter Date: Tue Mar 11 21:22:26 2008 +0100 firewire: fw-ohci: untangle a mixed unsigned/signed expression and make another expression more readable. Signed-off-by: Stefan Richter commit ad3c0fe8b8d1656a56ce2ef05ed5ccba790b4566 Author: Stefan Richter Date: Thu Mar 20 22:04:36 2008 +0100 firewire: debug interrupt events This adds debug printks for asynchronous transmission and reception and for self ID reception. They can be enabled at module load time, and at runtime via /sys/module/firewire_ohci/parameters/debug. Signed-off-by: Jarod Wilson Also added: Logging of interrupt event codes and of cancelled AT packets. The code now depends on a Kconfig variable. This makes it easier to build firewire-ohci without the feature or to make it an option in the future. The variable is currently hidden and always on. This feature inflates firewire-ohci.ko by 7 kB = 27% on x86-64 and by 4 kB = 23% on i686. Signed-off-by: Stefan Richter commit 016bf3dfcf7c7fbad8f02e72b6e01d6773426f9d Author: Stefan Richter Date: Wed Mar 19 22:05:02 2008 +0100 firewire: fw-ohci: catch self_id_count == 0 fw_core_handle_bus_reset() incorrectly relied on the assumption that self_id_count > 0. We check early in fw-ohci and discard the self ID complete event if self_id_count == 0 because a valid event always has at least one self ID packet in it (the one of the local node). Hence treat self_id_count == 0 like any other kind of invalid self ID buffer. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit c8a9a498e16b2a6c0e4e367b1a01f80fdfd7b6e2 Author: Stefan Richter Date: Wed Mar 19 21:40:32 2008 +0100 firewire: fw-ohci: add self ID error check Discard self ID buffer contents if - the selfIDError flag is set, - any of the self ID packets has bit errors. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit 2ed0f181f0d18d2f565bfbd259fe33d53769f72b Author: Stefan Richter Date: Sat Mar 1 12:35:29 2008 +0100 firewire: fw-ohci: refactor probe, remove, suspend, resume Clean up shared code and variable names. Signed-off-by: Stefan Richter commit eb5ca72effaa7f691f7df5187c5c5d1268311326 Author: Stefan Richter Date: Sat Mar 1 12:34:50 2008 +0100 firewire: fw-ohci: switch on bus power after resume on PPC PMac The platform feature calls in the suspend method switched off cable power, but the calls in the resume method did not switch it back on. Add the necessary feature call to .resume. Also add the corresponding call to .suspend to make .suspend's behavior explicitly the same on all PMacs. Signed-off-by: Stefan Richter commit 080de8c2c57e3199eee837fe8b6d35a43679f8c1 Author: Stefan Richter Date: Thu Feb 28 20:54:43 2008 +0100 firewire: fw-ohci: add option for remote debugging This way firewire-ohci can be used for remote debugging like ohci1394. Version with amendment from Fri, 11 Apr 2008 00:08:08 +0200. Signed-off-by: Stefan Richter Acked-by: Bernhard Kaindl commit 17cff9ff871bb5081cade4f99a9e9382b9f1c01c Author: Jarod Wilson Date: Fri Mar 7 01:43:31 2008 -0500 firewire: fw-sbp2: set dual-phase cycle_limit Try to write dual-phase retry protocol limits to BUSY_TIMEOUT register. - The dual-phase retry protocol is optional to implement, and if not supported, writes to the dual-phase portion of the register will be ignored. We try to write the original 1394-1995 default here. - In the case of devices that are also SBP-3-compliant, all writes are ignored, as the register is read-only, but contains single-phase retry of 15, which is what we're trying to set for all SBP-2 device anyway, so this write attempt is safe and yields more consistent behavior for all devices. See section 8.3.2.3.5 of the 1394-1995 spec, section 6.2 of the SBP-2 spec, and section 6.4 of the SBP-3 spec for further details. Signed-off-by: Jarod Wilson Signed-off-by: Stefan Richter commit a5fd9ec7a29202f388fc011a11cfb0101d9f9a34 Author: Stefan Richter Date: Thu Feb 28 20:53:45 2008 +0100 firewire: fw-sbp2: reduce log noise The block/unblock logic is now sufficiently tested. Signed-off-by: Stefan Richter commit 6f73100cbbb9728c098bd05e9363d206b9eeab47 Author: Stefan Richter Date: Thu Feb 28 20:52:43 2008 +0100 firewire: fw-sbp2: remove unnecessary memset orb came from kzalloc. Signed-off-by: Stefan Richter commit 0d7dcbf2a3b6042351948ecf1f171eb3f1d72cd3 Author: Stefan Richter Date: Thu Feb 28 20:52:02 2008 +0100 firewire: fw-sbp2: simplify some macros How hard can it be to switch on one bit? :-) Signed-off-by: Stefan Richter commit 71ee9f01f2bc2b717dacc69c85f257e1efff12ee Author: Stefan Richter Date: Thu Feb 28 20:51:11 2008 +0100 firewire: fw-sbp2: remove usages of fw_memcpy_to_be32 Write directly in big endian instead of byte-swapping after the fact. This saves a few conversions, lets gcc use constant endianess conversions where possible, and enables deeper endianess annotation. Signed-off-by: Stefan Richter commit 8ac3a47cab32e5e5a40de4bc210b5b0063bf6e84 Author: Stefan Richter Date: Sun Jan 27 22:31:27 2008 +0100 firewire: fw-sbp2: relax SCSI DMA alignment Signed-off-by: Stefan Richter commit 1dc3bea78b6cd71c2017aa5da076684c049d8b98 Author: Stefan Richter Date: Sun Feb 24 19:01:21 2008 +0100 firewire: refactor fw_unit reference counting Add wrappers for getting and putting a unit. Remove some line breaks. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit 7c1fca336661aaeb70b9094c4b8eaae389027509 Author: Stefan Richter Date: Sun Feb 24 19:00:51 2008 +0100 firewire: fw-sbp2: fix reference counting The reference count of the unit dropped too low in an error path in sbp2_probe. Fixed by moving the _get further up. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit bd7dee6311156b7cdf884344feb34628909398ad Author: Stefan Richter Date: Sun Feb 24 18:59:55 2008 +0100 firewire: remove superfluous reference counting The card->kref became obsolete since patch "firewire: fix crash in automatic module unloading" added another counter of card users. Signed-off-by: Stefan Richter Signed-off-by: Jarod Wilson commit a6ca4f7081095e3cdeb1a45d66fbe4856eca10d3 Author: Philippe De Muyter Date: Fri Apr 11 16:27:59 2008 +0200 ieee1394: limit early node speed to host interface speed The following patch limits the node speed to the host interface speed, before using it. Signed-off-by: Philippe De Muyter It should actually suffice to do this only for the local node's speedcap[]. But there is another bug in the speed calculation: The local node's speed is not correctly propagated to the speeds which are to be used to access remote nodes. http://thread.gmane.org/gmane.linux.kernel.firewire.devel/11772/focus=12024 Signed-off-by: Stefan Richter commit ee2d91e2b3e422f3f61cd7c6a58bd98a5ec72bd1 Author: Robert P. J. Day Date: Thu Mar 27 10:48:37 2008 -0400 ieee1394: Remove superfluous calls to kobject_set_name(). Unless you're adding a kobject to the sysfs hierarchy, there is no point setting its kobject name. Signed-off-by: Robert P. J. Day Signed-off-by: Stefan Richter commit 9508c208aa6e0a7501d8250d4a9d35344056d573 Author: Stefan Richter Date: Mon Mar 24 20:53:34 2008 +0100 ieee1394: ohci1394: missing PPC PMac feature calls in failure path The failure path of ohci1394_pci_probe() reuses ohci1394_pci_remove(). Doing so it missed to call ohci1394_pmac_off() in a few unlikely early error cases. Signed-off-by: Stefan Richter commit c4e2e02bc96f0a1605f858df3d6d5ea70fc459fc Author: Stefan Richter Date: Mon Mar 24 20:52:42 2008 +0100 ieee1394: ohci1394: refactor some printk format strings to reduce the size of ohci1394.ko. Signed-off-by: Stefan Richter commit d09c68038306442e3566366b6988a6dd83481251 Author: Stefan Richter Date: Mon Mar 24 20:49:01 2008 +0100 ieee1394: ohci1394: unroll a macro with return We don't want to hide something like return in a preprocessor macro. Unroll the macro and use a goto, which also reduces the size of ohci1394.ko. Signed-off-by: Stefan Richter commit e351c4d069254b1267b66a3b101ece7547178485 Author: Robert P. J. Day Date: Sun Mar 23 10:15:28 2008 -0400 ieee1394: Use shorter list_splice_init() for brevity. Signed-off-by: Robert P. J. Day Signed-off-by: Stefan Richter commit b1ce1fd778997b3313599a2561bcbd42a34bfb56 Author: Harvey Harrison Date: Wed Mar 5 18:24:54 2008 -0800 ieee1394: replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Stefan Richter commit b25d166616ea30adedee70d99c40ba82d126d7cb Author: Stefan Richter Date: Sat Mar 1 12:36:42 2008 +0100 ieee1394: ohci1394: refactor probe, remove, suspend, resume Clean up shared code and variable names. Signed-off-by: Stefan Richter commit 38275ac36d60882db750d6301ef507881b4c8420 Author: Stefan Richter Date: Sat Mar 1 12:36:06 2008 +0100 ieee1394: ohci1394: switch on bus power after resume on PPC PMac The platform feature calls in the suspend method switched off cable power, but the calls in the resume method did not switch it back on. Add the necessary feature call to .resume. Also add the corresponding call to .suspend to make .suspend's behavior explicitly the same on all PMacs. Signed-off-by: Stefan Richter commit d2ace29fa44589da51fedc06a67b3f05301f3bfd Author: Stefan Richter Date: Mon Feb 18 21:11:07 2008 +0100 ieee1394: prevent device binding of raw1394, video1394, dv1394 These drivers don't need to match any unit_directory type device. They just need the id_table for module autoloading per module alias. Not binding any of these drivers allows special-purpose drivers with similar or same IDs to bind to devices. This currently only benefits out-of-tree drivers; on the other hand it is in no way detrimental to in-tree drivers. Signed-off-by: Stefan Richter commit 63995d46506a774f5ddd6b51c017d42c3fbfaedb Author: Marcin Slusarz Date: Wed Feb 13 00:06:07 2008 +0100 ieee1394: be*_add_cpu conversion replace all: big_endian_variable = cpu_to_beX(beX_to_cpu(big_endian_variable) + expression_in_cpu_byteorder); with: beX_add_cpu(&big_endian_variable, expression_in_cpu_byteorder); generated with semantic patch Signed-off-by: Marcin Slusarz Signed-off-by: Stefan Richter commit a4b47d62c5018e81e2b8ee9843d8a8268e886d25 Author: Stefan Richter Date: Sun Jan 27 22:32:22 2008 +0100 ieee1394: sbp2: relax SCSI DMA alignment Signed-off-by: Stefan Richter commit 253ba4e79edc695b2925bd2ef34de06ff4d4070c Merge: 188da98... 65e67f5... Author: Linus Torvalds Date: Fri Apr 18 08:39:39 2008 -0700 Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 * 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6: (87 commits) [XFS] Fix merge failure [XFS] The forward declarations for the xfs_ioctl() helpers and the [XFS] Update XFS documentation for noikeep/ikeep. [XFS] Update XFS Documentation for ikeep and ihashsize [XFS] Remove unused HAVE_SPLICE macro. [XFS] Remove CONFIG_XFS_SECURITY. [XFS] xfs_bmap_compute_maxlevels should be based on di_forkoff [XFS] Always use di_forkoff when checking for attr space. [XFS] Ensure the inode is joined in xfs_itruncate_finish [XFS] Remove periodic logging of in-core superblock counters. [XFS] fix logic error in xfs_alloc_ag_vextent_near() [XFS] Don't error out on good I/Os. [XFS] Catch log unmount failures. [XFS] Sanitise xfs_log_force error checking. [XFS] Check for errors when changing buffer pointers. [XFS] Don't allow silent errors in xfs_inactive(). [XFS] Catch errors from xfs_imap(). [XFS] xfs_bulkstat_one_dinode() never returns an error. [XFS] xfs_iflush_fork() never returns an error. [XFS] Catch unwritten extent conversion errors. ... commit 188da98800893691e47eea9335a234378e32aceb Merge: 07fe944... 273b838... Author: Linus Torvalds Date: Fri Apr 18 08:39:24 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (58 commits) ide: remove ide_init_default_irq() macro ide: move default IDE ports setup to ide_generic host driver ide: remove obsoleted "idex=noprobe" kernel parameter (take 2) ide: remove needless hwif->irq check from ide_hwif_configure() ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers ide: limit legacy VLB host drivers to alpha, x86 and mips cmd640: init hwif->{io_ports,irq} explicitly cmd640: cleanup setup_device_ptrs() ide: add ide-4drives host driver (take 3) ide: remove ppc ifdef from init_ide_data() ide: remove ide_default_io_ctl() macro ide: remove CONFIG_IDE_ARCH_OBSOLETE_INIT ide: add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS (take 2) ppc/pmac: remove no longer needed IDE quirk ppc: don't include ppc: remove ppc_ide_md ppc/pplus: remove ppc_ide_md.ide_init_hwif hook ppc/sandpoint: remove ppc_ide_md hooks ppc/lopec: remove ppc_ide_md hooks ppc/mpc8xx: remove ppc_ide_md hooks ... commit 07fe944e87d79f8d7e1b090913fe9f2ace78f41d Merge: 8019aa9... 636bdea... Author: Linus Torvalds Date: Fri Apr 18 08:38:55 2008 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: dmaengine: ack to flags: make use of the unused bits in the 'ack' field iop-adma: remove the workaround for missed interrupts on iop3xx async_tx: kill ->device_dependency_added async_tx: fix multiple dependency submission fsldma: Split the MPC83xx event from MPC85xx and refine irq codes. fsldma: Remove CONFIG_FSL_DMA_SELFTEST, keep fsl_dma_self_test() running always. commit 8019aa946af5218bc4446c21e43cc19c9401ac68 Merge: 73e3e64... 48feb3c... Author: Linus Torvalds Date: Fri Apr 18 08:38:06 2008 -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: (79 commits) ata-acpi: don't call _GTF for disabled drive sata_mv add temporary 3 second init delay for SiliconImage PMs sata_mv remove redundant edma init code sata_mv add basic port multiplier support sata_mv fix SOC flags, enable NCQ on SOC sata_mv disable hotplug for now sata_mv cosmetics sata_mv hardreset rework [libata] improve Kconfig help text for new PMP, SFF options libata: make EH fail gracefully if no reset method is available libata: Be a bit more slack about early devices libata: cable logic libata: move link onlineness check out of softreset methods libata: kill dead code paths in reset path pata_scc: fix build breakage libata: make PMP support optional libata: implement PMP helpers libata: separate PMP support code from core code libata: make SFF support optional libata: don't use ap->ioaddr in non-SFF drivers ... commit 73e3e6481f56b3b5b618671a8d32b19a35f84316 Merge: 4adeaaf... 6993fc5... Author: Linus Torvalds Date: Fri Apr 18 08:37:41 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt * git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt: clocksource: make clocksource watchdog cycle through online CPUs Documentation: move timer related documentation to a single place clockevents: optimise tick_nohz_stop_sched_tick() a bit locking: remove unused double_spin_lock() hrtimers: simplify lockdep handling timers: simplify lockdep handling posix-timers: fix shadowed variables timer_list: add annotations to workqueue.c hrtimer: use nanosleep specific restart_block fields hrtimer: add nanosleep specific restart_block member commit 4adeaaf51ebcc3f629f5512b96aebb5089388bca Merge: 9732b61... 15732a1... Author: Linus Torvalds Date: Fri Apr 18 08:37:19 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6: jfs: replace __inline with inline jfs: le*_add_cpu conversion commit 9732b6112343df2872518ec6701c8ef729310a05 Merge: 9e9abec... 1a9a3e7... Author: Linus Torvalds Date: Fri Apr 18 08:37:01 2008 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb: kgdb: always use icache flush for sw breakpoints kgdb: fix SMP NMI kgdb_handle_exception exit race kgdb: documentation fixes kgdb: allow static kgdbts boot configuration kgdb: add documentation kgdb: Kconfig fix kgdb: add kgdb internal test suite kgdb: fix several kgdb regressions kgdb: kgdboc pl011 I/O module kgdb: fix optional arch functions and probe_kernel_* kgdb: add x86 HW breakpoints kgdb: print breakpoint removed on exception kgdb: clocksource watchdog kgdb: fix NMI hangs kgdb: fix kgdboc dynamic module configuration kgdb: document parameters x86: kgdb support consoles: polling support, kgdboc kgdb: core uaccess: add probe_kernel_write() commit 9e9abecfc0ff3a9ad2ead954b37bbfcb863c775e Merge: d7bb545... 77ad386... Author: Linus Torvalds Date: Fri Apr 18 08:25:51 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (613 commits) x86: standalone trampoline code x86: move suspend wakeup code to C x86: coding style fixes to arch/x86/kernel/acpi/sleep.c x86: setup_trampoline() - fix section mismatch warning x86: section mismatch fixes, #1 x86: fix paranoia about using BIOS quickboot mechanism. x86: print out buggy mptable x86: use cpu_online() x86: use cpumask_of_cpu() x86: remove unnecessary tmp local variable x86: remove unnecessary memset() x86: use ioapic_read_entry() and ioapic_write_entry() x86: avoid redundant loop in io_apic_level_ack_pending() x86: remove superfluous initialisation in boot code. x86: merge mpparse_{32,64}.c x86: unify mp_register_gsi x86: unify mp_config_acpi_legacy_irqs x86: unify mp_register_ioapic x86: unify uniq_io_apic_id x86: unify smp_scan_config ... commit d7bb545d86825e635cab33a1dd81ca0ad7b92887 Merge: 75e98b3... 2342e51... Author: Linus Torvalds Date: Fri Apr 18 08:25:29 2008 -0700 Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc * 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: Remove DEBUG_SEMAPHORE from Kconfig Improve semaphore documentation Simplify semaphore implementation Add down_timeout and change ACPI to use it Introduce down_killable() Generic semaphore implementation Add semaphore.h to kernel_lock.c Fix quota.h includes commit 75e98b34155264d943aa53edce465e87f3ccbadf Merge: 30bc945... 0a22ab9... Author: Linus Torvalds Date: Fri Apr 18 08:20:06 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (104 commits) IB/iser: Don't change itt endianness IB/mlx4: Update module version and release date IPoIB: Handle case when P_Key is deleted and re-added at same index IB/iser: Release connection resources on RDMA_CM_EVENT_DEVICE_REMOVAL event IB/mlx4: Fix incorrect comment IB/mlx4: Fix race when detaching a QP from a multicast group IB/ehca: Support all ibv_devinfo values in query_device() and query_port() RDMA/nes: Free IRQ before killing tasklet IB/mthca: Update module version and release date IB/mlx4: Update QP state if query QP succeeds IB/mthca: Update QP state if query QP succeeds RDMA/amso1100: Add check for NULL reply_msg in c2_intr() IB/mlx4: Add support for resizing CQs IB/mlx4: Add support for modifying CQ moderation parameters IPoIB: Support modifying IPoIB CQ event moderation IB/core: Add support for modify CQ IPoIB: Add basic ethtool support mlx4_core: Increase max number of QPs to 128K RDMA/amso1100: Add support for "send with invalidate" work requests IB/core: Add support for "send with invalidate" work requests ... commit 30bc94566e396b432b72e2f3518e19225dc2672d Merge: 4cba84b... 5f46ce1... Author: Linus Torvalds Date: Fri Apr 18 08:19:40 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6: security: enhance DEFAULT_MMAP_MIN_ADDR description SELinux: add netport.[ch] SELinux: Add network port SID cache SELinux: turn mount options strings into defines selinux/ss/services.c should #include selinux: introduce permissive types selinux: remove ptrace_sid SELinux: requesting no permissions in avc_has_perm_noaudit is a BUG() security: code cleanup security: replace remaining __FUNCTION__ occurrences SELinux: create new open permission selinux: selinux/netlabel.c should #include "netlabel.h" SELinux: unify printk messages SELinux: remove unused backpointers from security objects SELinux: Correct the NetLabel locking for the sk_security_struct commit 4cba84b5d61af81f1f329f4d05170427a9819c39 Merge: 7d939fb... ca68305... Author: Linus Torvalds Date: Fri Apr 18 08:19:15 2008 -0700 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (36 commits) [S390] Remove code duplication from monreader / dcssblk. [S390] kernel: show last breaking-event-address on oops [S390] lowcore: Change type of lowcores softirq_pending to __u32. [S390] zcrypt: Comments and kernel-doc cleanup [S390] uaccess: Always access the correct address space. [S390] Fix a lot of sparse warnings. [S390] Convert s390 to GENERIC_CLOCKEVENTS. [S390] genirq/clockevents: move irq affinity prototypes/inlines to interrupt.h [S390] Convert monitor calls to function calls. [S390] qdio (new feature): enhancing info-retrieval from QDIO-adapters [S390] replace remaining __FUNCTION__ occurrences [S390] remove redundant display of free swap space in show_mem() [S390] qdio: remove outdated developerworks link. [S390] Add debug_register_mode() function to debug feature API [S390] crypto: use more descriptive function names for init/exit routines. [S390] switch sched_clock to store-clock-extended. [S390] zcrypt: add support for large random numbers [S390] hw_random: allow rng_dev_read() to return hardware errors. [S390] Vertical cpu management. [S390] cpu topology support for s390. ... commit 7d939fbdfee49e5c06bd27214d25f726fb87a25a Merge: 18c98b6... 0f389ec... Author: Linus Torvalds Date: Fri Apr 18 08:19:00 2008 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: slub: No need for per node slab counters if !SLUB_DEBUG slub: Move map/flag clearing to __free_slab slub: Fixes to per cpu stat output in sysfs slub: Deal with config variable dependencies slub: Reduce #ifdef ZONE_DMA by moving kmalloc_caches_dma near dma logic slub: Initialize per-cpu stats commit 18c98b65279c00c3c983a4525161207f1aa6a04b Author: Roland McGrath Date: Thu Apr 17 18:44:38 2008 -0700 ptrace_signal subroutine This breaks out the ptrace handling from get_signal_to_deliver into a new subroutine. The actual code there doesn't change, and it gets inlined into nearly identical compiled code. This makes the function substantially shorter and thus easier to read, and it nicely isolates the ptrace magic. Signed-off-by: Roland McGrath Acked-by: Kyle McMartin Cc: Andrew Morton Signed-off-by: Linus Torvalds commit 0e04388f0189fa1f6812a8e1cb6172136eada87e Author: Li Zefan Date: Thu Apr 17 11:37:15 2008 +0800 cgroup: fix a race condition in manipulating tsk->cg_list When I ran a test program to fork mass processes and at the same time 'cat /cgroup/tasks', I got the following oops: ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:72! invalid opcode: 0000 [#1] SMP Pid: 4178, comm: a.out Not tainted (2.6.25-rc9 #72) ... Call Trace: [] ? cgroup_exit+0x55/0x94 [] ? do_exit+0x217/0x5ba [] ? do_group_exit+0.65/0x7c [] ? sys_exit_group+0xf/0x11 [] ? syscall_call+0x7/0xb [] ? init_cyrix+0x2fa/0x479 ... EIP: [] list_del+0x35/0x53 SS:ESP 0068:ebc7df4 ---[ end trace caffb7332252612b ]--- Fixing recursive fault but reboot is needed! After digging into the code and debugging, I finlly found out a race situation: do_exit() ->cgroup_exit() ->if (!list_empty(&tsk->cg_list)) list_del(&tsk->cg_list); cgroup_iter_start() ->cgroup_enable_task_cg_list() ->list_add(&tsk->cg_list, ..); In this case the list won't be deleted though the process has exited. We got two bug reports in the past, which seem to be the same bug as this one: http://lkml.org/lkml/2008/3/5/332 http://lkml.org/lkml/2007/10/17/224 Actually sometimes I got oops on list_del, sometimes oops on list_add. And I can change my test program a bit to trigger other oops. The patch has been tested both on x86_32 and x86_64. Signed-off-by: Li Zefan Acked-by: Paul Menage Cc: Andrew Morton Cc: stable@kernel.org Signed-off-by: Linus Torvalds commit 5f46ce14bd432cf52bf91079270af164ca48f821 Author: maximilian attems Date: Wed Apr 16 19:36:36 2008 +0200 security: enhance DEFAULT_MMAP_MIN_ADDR description Got burned by setting the proposed default of 65536 across all Debian archs. Thus proposing to be more specific on which archs you may set this. Also propose a value for arm and friends that doesn't break sshd. Reword to mention working archs ia64 and ppc64 too. Signed-off-by: maximilian attems Cc: Martin Michlmayr Cc: Gordon Farquharson Acked-by: Eric Paris Signed-off-by: James Morris commit 27cc2a6e572e1a86a08a02918517558f175f6974 Author: James Morris Date: Mon Apr 14 15:09:53 2008 +1000 SELinux: add netport.[ch] Thank you, git. Signed-off-by: James Morris commit 3e11217263d0521e212cb8a017fbc2a1514db78f Author: Paul Moore Date: Thu Apr 10 10:48:14 2008 -0400 SELinux: Add network port SID cache Much like we added a network node cache, this patch adds a network port cache. The design is taken almost completely from the network node cache which in turn was taken from the network interface cache. The basic idea is to cache entries in a hash table based on protocol/port information. The hash function only takes the port number into account since the number of different protocols in use at any one time is expected to be relatively small. Signed-off-by: Paul Moore Acked-by: Stephen Smalley Signed-off-by: James Morris commit 832cbd9aa1293cba57d06571f5fc8f0917c672af Author: Eric Paris Date: Tue Apr 1 13:24:09 2008 -0400 SELinux: turn mount options strings into defines Convert the strings used for mount options into #defines rather than retyping the string throughout the SELinux code. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit 0e55a004b58847c53e48d846b9a4570b1587c382 Author: Adrian Bunk Date: Mon Mar 31 01:54:02 2008 +0300 selinux/ss/services.c should #include Every file should include the headers containing the externs for its global code. Signed-off-by: Adrian Bunk Signed-off-by: James Morris commit 64dbf07474d011540ca479a2e87fe998f570d6e3 Author: Eric Paris Date: Mon Mar 31 12:17:33 2008 +1100 selinux: introduce permissive types Introduce the concept of a permissive type. A new ebitmap is introduced to the policy database which indicates if a given type has the permissive bit set or not. This bit is tested for the scontext of any denial. The bit is meaningless on types which only appear as the target of a decision and never the source. A domain running with a permissive type will be allowed to perform any action similarly to when the system is globally set permissive. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit 0356357c5158c71d4cbf20196b2f784435dd916c Author: Roland McGrath Date: Wed Mar 26 15:46:39 2008 -0700 selinux: remove ptrace_sid This changes checks related to ptrace to get rid of the ptrace_sid tracking. It's good to disentangle the security model from the ptrace implementation internals. It's sufficient to check against the SID of the ptracer at the time a tracee attempts a transition. Signed-off-by: Roland McGrath Acked-by: Stephen Smalley Signed-off-by: James Morris commit eda4f69ca5a532b425db5a6c2c6bc50717b9b5fe Author: Eric Paris Date: Tue Mar 11 14:19:34 2008 -0400 SELinux: requesting no permissions in avc_has_perm_noaudit is a BUG() This patch turns the case where we have a call into avc_has_perm with no requested permissions into a BUG_ON. All callers to this should be in the kernel and thus should be a function we need to fix if we ever hit this. The /selinux/access permission checking it done directly in the security server and not through the avc, so those requests which we cannot control from userspace should not be able to trigger this BUG_ON. Signed-off-by: Eric Paris Acked-by: Stephen D. Smalley Signed-off-by: James Morris commit f0115e6c8980ea9125a17858291c90ecd990bc1c Author: Andrew Morton Date: Thu Mar 6 10:05:08 2008 +1100 security: code cleanup ERROR: "(foo*)" should be "(foo *)" #168: FILE: security/selinux/hooks.c:2656: + "%s, rc=%d\n", __func__, (char*)value, -rc); total: 1 errors, 0 warnings, 195 lines checked ./patches/security-replace-remaining-__function__-occurences.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: Harvey Harrison Cc: James Morris Cc: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: James Morris commit dd6f953adb5c4deb9cd7b6a5054e7d5eafe4ed71 Author: Harvey Harrison Date: Thu Mar 6 10:03:59 2008 +1100 security: replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Cc: James Morris Cc: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: James Morris commit b0c636b99997c8594da6a46e166ce4fcf6956fda Author: Eric Paris Date: Thu Feb 28 12:58:40 2008 -0500 SELinux: create new open permission Adds a new open permission inside SELinux when 'opening' a file. The idea is that opening a file and reading/writing to that file are not the same thing. Its different if a program had its stdout redirected to /tmp/output than if the program tried to directly open /tmp/output. This should allow policy writers to more liberally give read/write permissions across the policy while still blocking many design and programing flaws SELinux is so good at catching today. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Reviewed-by: Paul Moore Signed-off-by: James Morris commit d4ee4231a3a8731576ef0e0a7e1225e4fde1e659 Author: Adrian Bunk Date: Wed Feb 27 23:20:42 2008 +0200 selinux: selinux/netlabel.c should #include "netlabel.h" Every file should include the headers containing the externs for its global code. Signed-off-by: Adrian Bunk Acked-by: Paul Moore Signed-off-by: James Morris commit 454d972c24e6efce3d7b07a97f1ad18b14845de9 Author: James Morris Date: Tue Feb 26 20:42:02 2008 +1100 SELinux: unify printk messages Replace "security:" prefixes in printk messages with "SELinux" to help users identify the source of the messages. Also fix a couple of minor formatting issues. Signed-off-by: James Morris commit 98e9894650455426f67c2157db4f39bd14fac2f6 Author: James Morris Date: Tue Feb 26 09:52:58 2008 +1100 SELinux: remove unused backpointers from security objects Remove unused backpoiters from security objects. Signed-off-by: James Morris commit f74af6e816c940c678c235d49486fe40d7e49ce9 Author: Paul Moore Date: Mon Feb 25 11:40:33 2008 -0500 SELinux: Correct the NetLabel locking for the sk_security_struct The RCU/spinlock locking approach for the nlbl_state in the sk_security_struct was almost certainly overkill. This patch removes both the RCU and spinlock locking, relying on the existing socket locks to handle the case of multiple writers. This change also makes several code reductions possible. Less locking, less code - it's a Good Thing. Signed-off-by: Paul Moore Signed-off-by: James Morris commit 62be1f71677c53d5e51223807a06ac9052f49b0f Author: Roel Kluin <12o3l@tiscali.nl> Date: Thu Apr 17 17:25:37 2008 +0200 [GFS2] fix assertion in log_refund() since unsigned, unused >= 0 is always true. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Steven Whitehouse commit 65e67f5165c8a156b34ee7adf65d5ed3b16a910d Author: Lachlan McIlroy Date: Fri Apr 18 12:59:45 2008 +1000 [XFS] Fix merge failure commit 3b2816be271b8b364294a5b48721a3e68af46cfa Author: Lachlan McIlroy Date: Fri Apr 18 12:43:35 2008 +1000 [XFS] The forward declarations for the xfs_ioctl() helpers and the associated comment about gcc behavior really aren't needed; all of these functions are marked STATIC which includes noinline, and the stack usage won't be a problem. This effectively just removes the forward declarations and moves xfs_ioctl() back to the end of the file. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30534a Signed-off-by: Eric Sandeen Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit f6e9f28865552bd9d79a9df93cf120436b073223 Author: Josef Sipek Date: Fri Apr 11 17:11:02 2008 +1000 [XFS] Update XFS documentation for noikeep/ikeep. Mention how DMAPI affects default for noikeep. Slightly modified since Josef's patch was based on an old xfs.txt prior to Dave's (dgc) checkin which missed going to oss. Signed-off-by: Josef Sipek Signed-off-by: Tim Shimmin commit 033bfb1a65242e0d60e6fc991cd9b3553053d334 Author: David Chinner Date: Fri Apr 11 17:05:49 2008 +1000 [XFS] Update XFS Documentation for ikeep and ihashsize Update xfs docs for: * In memory inode hashes has been removed. * noikeep is now the default. SGI-PV: 969561 SGI-Modid: 2.6.x-xfs-melb:linux:29481b Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Tim Shimmin commit e687330b5ed1ea899fdaf0dea50aba196b6e019a Author: Donald Douwsma Date: Thu Apr 17 16:50:28 2008 +1000 [XFS] Remove unused HAVE_SPLICE macro. HAVE_SPLICE was part of the infrastructure for building 2.4 and 2.6 kernels out of the same tree. Now we don't build 2.4 kernels this SGI-PV: 971046 SGI-Modid: xfs-linux-melb:xfs-kern:30878a Signed-off-by: Donald Douwsma Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit f7d3c34788696f5ba9ac9fa414ad80e2a91d4b2e Author: Eric Sandeen Date: Thu Apr 17 16:50:22 2008 +1000 [XFS] Remove CONFIG_XFS_SECURITY. There is no point to the CONFIG_XFS_SECURITY option; it disables the ability to set security attributes at runtime, but it does not actually slim down or remove any code for runtime. Just remove it and always allow security attributes to be set. SGI-PV: 980310 SGI-Modid: xfs-linux-melb:xfs-kern:30877a Signed-off-by: Eric Sandeen Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 6d1337b29bf09a97682d39db36ac2d0dfc6659c0 Author: Tim Shimmin Date: Thu Apr 17 16:50:16 2008 +1000 [XFS] xfs_bmap_compute_maxlevels should be based on di_forkoff Fix up xfs_bmap_compute_maxlevels() to account for the case when we go from using attr2 to using attr1. In that case attr1 will no longer necessarily be at m_attr_offset>>3, but could be at a different value for di_forkoff. Therefore, we return the worst case scenario using MINDBTPTRS and MINABTPTRS, as this function is used for determining the maximum log space. SGI-PV: 979606 SGI-Modid: xfs-linux-melb:xfs-kern:30862a Signed-off-by: Tim Shimmin Signed-off-by: Eric Sandeen Signed-off-by: Lachlan McIlroy commit cb49dbb130e17a6f9af4cb4714cf6976cf09afdf Author: Eric Sandeen Date: Thu Apr 17 16:50:09 2008 +1000 [XFS] Always use di_forkoff when checking for attr space. In the case where we mount a filesystem which was previously using the attr2 format as attr1, returning the default mp->m_attroffset instead of the per-inode di_forkoff for inline attribute fit calculations, may result in corruption, if for example, the data fork is already taking more space than the default fork offset and we try to add an extended attribute. Fix tested by xfstests/186. SGI-PV: 979606 SGI-Modid: xfs-linux-melb:xfs-kern:30861a Signed-off-by: Eric Sandeen Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit f6485057c5cfbc84e5eff639ddea1ce0d668607b Author: David Chinner Date: Thu Apr 17 16:50:04 2008 +1000 [XFS] Ensure the inode is joined in xfs_itruncate_finish On success, we still need to join the inode to the current transaction in xfs_itruncate_finish(). Fixes regression from error handling changes. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30845a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 7e20694d91f817f8e9f62404aca793ae0df4d98a Author: David Chinner Date: Thu Apr 17 16:49:55 2008 +1000 [XFS] Remove periodic logging of in-core superblock counters. xfssyncd triggers the logging of superblock counters every 30s if the filesystem is made with lazy-count=1. This will prevent disks from idling and spinning down as there will be a log write every 30s. With the way counter recovery works for lazy-count=1, this code is unnecessary and provides no real benefit, so just remove it. SGI-PV: 980145 SGI-Modid: xfs-linux-melb:xfs-kern:30840a Signed-off-by: David Chinner Signed-off-by: Barry Naujok Signed-off-by: Lachlan McIlroy commit e6430037e9fd0b3d02ceaf5ab99bfe3ccb763be7 Author: David Chinner Date: Thu Apr 17 16:49:49 2008 +1000 [XFS] fix logic error in xfs_alloc_ag_vextent_near() Fix a logic error in xfs_alloc_ag_vextent_near(). This is a regression introduced by the error handling changes. SGI-PV: 890084 SGI-Modid: xfs-linux-melb:xfs-kern:30838a Signed-off-by: David Chinner Signed-off-by: Barry Naujok Signed-off-by: Lachlan McIlroy commit d4055947bd0913864f4d8ac96bf1197338071622 Author: David Chinner Date: Thu Apr 17 16:49:35 2008 +1000 [XFS] Don't error out on good I/Os. xfsbdstrat() made all I/Os error out, good or bad. Fix it. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30836a Signed-off-by: David Chinner Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit 1bb7d6b5a82f1d9487fd44415484a368f7c87bed Author: David Chinner Date: Thu Apr 10 12:24:38 2008 +1000 [XFS] Catch log unmount failures. Unmounting the log can fail. unlikely, but it can. Catch all the error conditions an make sure it's propagated upwards. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30833a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit b911ca0472c3762d2bafc4d21e432a9056844064 Author: David Chinner Date: Thu Apr 10 12:24:30 2008 +1000 [XFS] Sanitise xfs_log_force error checking. xfs_log_force() is declared to return an error, but we almost never check it. We don't need to check it in most cases; if there's a log I/O error then we'll be shutting down the filesystem anyway and that means we'll catch the error somewhere else. However, on certain calls we should be returning an error - sync transactions, fsync, sync writes, etc. so this isn't a pure black and white distinction. Hence make xfs_log_force() a void function that issues a warning to the syslog on error, and call _xfs_log_force() in all the places where we actually care about the error status returned. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30832a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 234f56aca20a4f66b6ba3d3bf2787634dd9e0999 Author: David Chinner Date: Thu Apr 10 12:24:24 2008 +1000 [XFS] Check for errors when changing buffer pointers. xfs_buf_associate_memory() can fail, but the return is never checked. Propagate the error through XFS_BUF_SET_PTR() so that failures are detected. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30831a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 78e9da77f1bf265fe750b9223ec15707473fb6e8 Author: David Chinner Date: Thu Apr 10 12:24:17 2008 +1000 [XFS] Don't allow silent errors in xfs_inactive(). xfs_inactive() fails to report errors when committing the inactive transaction. Hence we can get silent failures either finishing off the truncation or committing the transaction. Even if we get errors, we need to continue, so simply warn loudly to the system if we get errors here. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30830a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 64bfe1bfae833e89ed77f72c61ded19f4b1976f8 Author: David Chinner Date: Thu Apr 10 12:24:10 2008 +1000 [XFS] Catch errors from xfs_imap(). Catch errors from xfs_imap() in log recovery when we might be trying to map an invalid inode number due to a corrupted log. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30829a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 7b07339048f7b020575706b492c004b5664b67ab Author: David Chinner Date: Thu Apr 10 12:24:04 2008 +1000 [XFS] xfs_bulkstat_one_dinode() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30828a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit e4ac967b117c5780760abbd9ae996210c31cb398 Author: David Chinner Date: Thu Apr 10 12:23:58 2008 +1000 [XFS] xfs_iflush_fork() never returns an error. xfs_iflush_fork() never returns an error. Mark it void and clean up the code calling it that checks for errors. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30827a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit cc88466f3f67bb16fc91b0b974e51c2a43a9e597 Author: David Chinner Date: Thu Apr 10 12:23:52 2008 +1000 [XFS] Catch unwritten extent conversion errors. On unwritten I/O completion, we fail to propagate an error when converting the extent to a written extent. This means that the I/O silently fails. propagate the error onto the ioend so that the inode is marked with an error appropriately. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30826a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 958d4ec606d4af590f86a601a238613f21e878ee Author: David Chinner Date: Thu Apr 10 12:23:46 2008 +1000 [XFS] xfs_bdwrite() does not return errors. xfs_bdwrite() cannot return an error; it only queues buffers to the delayed write list and as such never encounters anything that can fail. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30825a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit db7a19f2c89d99b66874a7e0c0dc681ff1f37b4e Author: David Chinner Date: Thu Apr 10 12:22:24 2008 +1000 [XFS] Ensure xfs_bawrite() errors are checked. xfs_bawrite() can return immediate error status on async writes. Unlike xfsbdstrat() we don't ever check the error on the buffer after the call, so we currently do not catch errors at all here. Ensure we catch and propagate or warn to the syslog about up-front async write errors. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30824a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit d64e31a2f53cdcb2f95b782196faacb0995ca0c0 Author: David Chinner Date: Thu Apr 10 12:22:17 2008 +1000 [XFS] Ensure errors from xfs_bdstrat() are correctly checked. xfsbdstrat() is declared to return an error. That is never checked because the error is propagated by the xfs_buf_t that is passed through the function. Mark xfsbdstrat() as returning void and comment the prototype on the methods needed for error checking. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30823a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 556b8b166c9514b5f940047a41dad8fe8cd9a778 Author: Barry Naujok Date: Thu Apr 10 12:22:07 2008 +1000 [XFS] remove bhv_vname_t and xfs_rename code SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30804a Signed-off-by: Barry Naujok Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 7c9ef85c5672ae316aafd7bbe0bbadebe90301e6 Author: David Chinner Date: Thu Apr 10 12:21:59 2008 +1000 [XFS] Catch errors returned from xfs_bmap_last_offset(). xfs_bmap_last_offset() can fail and return an error. xfs_iomap_write_allocate() fails to detect and propagate the error. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30802a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit fc6149d8d9634814cdcd9283b8f2efd3359181df Author: David Chinner Date: Thu Apr 10 12:21:53 2008 +1000 [XFS] Check for xfs_free_extent() failing. xfs_free_extent() can fail, but log recovery never bothers to check if it successfully free the extent it was supposed to. This could lead to silent corruption during log recovery. Abort log recovery if we fail to free an extent. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30801a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit d87dd6360dce86cad9099aed74f14b4dd0143301 Author: David Chinner Date: Thu Apr 10 12:21:46 2008 +1000 [XFS] Warn if errors come from block_truncate_page(). block_truncate_page() can return errors that we currently ignore and silently discard. We should not ever get errors reported here - an error indicates a bug somewhere else. Hence catch the error and issue a stack dump to the syslog because we cannot propagate the error any further up the call chain. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30800a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit c2b1cba6833da77b1b478ac144f9cf5144d276ec Author: David Chinner Date: Thu Apr 10 12:21:40 2008 +1000 [XFS] xfs_bmap_adjacent() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30798a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 12375c82375ec39ec948a3ad62e5e77533515e83 Author: David Chinner Date: Thu Apr 10 12:21:32 2008 +1000 [XFS] Make xfs_alloc_compute_aligned() void. xfs_alloc_compute_aligned() returns a value based on a comparison of the computed extent length and the minimum length allowed. This is only used by some callers - the other four return parameters are used more often. Hence move the comparison to the code that actually needs to do it and make xfs_alloc_compute_aligned() a void function. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30797a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit f4586e40613a9f8bb9f7f9c8a796062a9ab1614c Author: David Chinner Date: Thu Apr 10 12:21:25 2008 +1000 [XFS] Clean up xfs_alloc_search_busy() return values. xfs_alloc_search_busy() returns an index into the busy array if the extent was found in the array. This is never checked, and the xfs_alloc_search_busy() does a log force to prevent reuse of the extent before the free transaction hits the disk. Hence the return value is useless. Declare the function void and remove the slot number from the tracing as well. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30796a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit e5720eec0548c08943d759e39db0388d8fe59287 Author: David Chinner Date: Thu Apr 10 12:21:18 2008 +1000 [XFS] Propagate errors from xfs_trans_commit(). xfs_trans_commit() can return errors when there are problems in the transaction subsystem. They are indicative that the entire transaction may be incomplete, and hence the error should be propagated as there is a good possibility that there is something fatally wrong in the filesystem. Catch and propagate or warn about commit errors in the places where they are currently ignored. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30795a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 3c1e2bbe5bcdcd435510a05eb121fa74b848e24f Author: David Chinner Date: Thu Apr 10 12:21:11 2008 +1000 [XFS] Propagate xfs_trans_reserve() errors. xfs_trans_reserve() reports errors that should not be ignored. For example, a shutdown filesystem will report errors through xfs_trans_reserve() to prevent further changes from being attempted on a damaged filesystem. Catch and propagate all error conditions from xfs_trans_reserve(). SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30794a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 5ca1f261a08d5cff5f29eaa0887b59baae2ae7f7 Author: David Chinner Date: Thu Apr 10 12:21:04 2008 +1000 [XFS] Catch errors from xfs_acl_vremove(). Removing an ACL can return an error. Propagate it. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30793a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 0c928299676c8df2b00e75d5691cd4846e6c0868 Author: David Chinner Date: Thu Apr 10 12:20:58 2008 +1000 [XFS] Catch errors from xfs_acl_setmode(). Propagate the error status from xfs_acl_setmode() so that callers know if the ACl was set correctly or not. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30792a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 88ab02085363b7c45935d66ab3e969b4fec9a20c Author: David Chinner Date: Thu Apr 10 12:20:51 2008 +1000 [XFS] Propagate quota file truncation errors. Truncating the quota files can silently fail. Ensure that truncation errors are propagated to the callers. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30791a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit cb6edc26c386d2268dcf61bcdec02b6fb50b6ba2 Author: David Chinner Date: Thu Apr 10 12:20:45 2008 +1000 [XFS] Catch errors when turning off quotas. When turning off quota, we need to write various transactions to the log to ensure that they are cleanly removed in the case of a crash. We need to check that the transactions hit the disk correctly. If we fail to write the final quota off transaction, we are corrupt in memory and so the only option is to shut the filesystem down at this point. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30790a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 31d5577b35d8397dea19f2ba7550e9225605a785 Author: David Chinner Date: Thu Apr 10 12:20:38 2008 +1000 [XFS] Catch errors resetting quota flags. Warn to the syslog if we fail to reset the quota flags in the superblock when a quota check fails. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30789a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 53aa7915d67b9d0f5986c9f08e76846fedc520d4 Author: David Chinner Date: Thu Apr 10 12:20:31 2008 +1000 [XFS] Clean up quotamount error handling. xfs_qm_mount_quotas() returns an error status that is ignored. If we fail to mount quotas, we continue with quota's turned off, which is all handled inside xfs_qm_mount_quotas(). Mark it as void to indicate that errors need not be returned to the callers. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30788a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 3c56836f92683cb871ebbf44c512069b0d48a08f Author: David Chinner Date: Thu Apr 10 12:20:24 2008 +1000 [XFS] Check for dquot flush errors xfs_qm_dqflush() can fail, but the return is not checked anywhere. Hence we never know if we've failed to flush a dquot to disk. Propagate the error and warn to the syslog if a flush ever fails. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30787a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 4b8879df8c21bed3efd1eb2da5d72501199aba29 Author: David Chinner Date: Thu Apr 10 12:20:17 2008 +1000 [XFS] Propagate xfs_qm_dqflush_all() errors. xfs_qm_dqflush_all() can return flush errors. Ensure they are propagated into the quotacheck code to determine if the quotacheck succeeded or not. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30786a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 5b1397385bf536cbdb60f3362f44079d15d5f5ee Author: David Chinner Date: Thu Apr 10 12:20:10 2008 +1000 [XFS] xfs_qm_reset_dqcounts() does not return errors. Declare it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30785a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 714082bc12b6c305f825411df02177efcb0085f1 Author: David Chinner Date: Thu Apr 10 12:20:03 2008 +1000 [XFS] Report errors from xfs_reserve_blocks(). xfs_reserve_blocks() can fail in interesting ways. In neither case is it a fatal error, but the result can lead to sub-optimal behaviour. Warn to the syslog if the call fails but otherwise continue. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30784a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 36fbe6e6bd5408b09341043dfece978b4a7a0f34 Author: David Chinner Date: Thu Apr 10 12:19:56 2008 +1000 [XFS] xfs_icsb_counter_disabled() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30782a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit a414047fc97aea7db6237176ce00013117839cd5 Author: David Chinner Date: Thu Apr 10 12:19:47 2008 +1000 [XFS] Remove useless whitespace in function prototypes Makes it simpler to annotate function prototypes with __must_check via sed scripts. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30781a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 3c85c36cc2e87018d38fcd033f41bbdf1360c07a Author: David Chinner Date: Thu Apr 10 12:19:40 2008 +1000 [XFS] xfs_quiesce_fs() never returns an error. Mark it void. SGI-PV: 980084 SGI-Modid: xfs-linux-melb:xfs-kern:30780a Signed-off-by: David Chinner Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit b6ddc4e6fed9c6f4adb273c8b36e1731f90ec17e Author: Christoph Hellwig Date: Thu Apr 10 12:19:27 2008 +1000 [XFS] Don't validate symlink target component length This target component validation is not POSIX conformant and it is not done by any other Linux filesystem so remove it from XFS. SGI-PV: 980080 SGI-Modid: xfs-linux-melb:xfs-kern:30776a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 34a622b2e1c8e11c8990184634f101c1aad42fec Author: Harvey Harrison Date: Thu Apr 10 12:19:21 2008 +1000 [XFS] replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30775a Signed-off-by: Harvey Harrison Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 0225da1f35df46c67785eb08526995d7cdb4e3b0 Author: Harvey Harrison Date: Thu Apr 10 12:19:10 2008 +1000 [XFS] Replace __inline with inline Remove the remaining uses of __inline in the XFS code base. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30774a Signed-off-by: Harvey Harrison Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 6b1d1a732f886936fe515d911b1a01d9cc50e179 Author: David Chinner Date: Thu Apr 10 12:19:02 2008 +1000 [XFS] Fix lock inversion in forced shutdown. Recent changes to xlog_state_release_iclog() placed the grant_lock inside the icloglock. forced unmount of the log does this the opposite way around, but does not depend on the order for correct working. Fix the inversion by changing the order locks are gained in xfs_log_force_umount(). SGI-PV: 979661 SGI-Modid: xfs-linux-melb:xfs-kern:30773a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 4679b2d36d53ed508c956337972fbbea8db99a77 Author: David Chinner Date: Thu Apr 10 12:18:54 2008 +1000 [XFS] Reorganise xlog_t for better cacheline isolation of contention To reduce contention on the log in large CPU count, separate out different parts of the xlog_t structure onto different cachelines. Move each lock onto a different cacheline along with all the members that are accessed/modified while that lock is held. Also, move the debugging code into debug code. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30772a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit eb01c9cd87c7a9998c2edf209721ea069e3e3652 Author: David Chinner Date: Thu Apr 10 12:18:46 2008 +1000 [XFS] Remove the xlog_ticket allocator The ticket allocator is just a simple slab implementation internal to the log. It requires the icloglock to be held when manipulating it and this contributes to contention on that lock. Just kill the entire allocator and use a memory zone instead. While there, allow us to gracefully fail allocation with ENOMEM. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30771a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 114d23aae51233b2bc62d8e2a632bcb55de1953d Author: David Chinner Date: Thu Apr 10 12:18:39 2008 +1000 [XFS] Per iclog callback chain lock Rather than use the icloglock for protecting the iclog completion callback chain, use a new per-iclog lock so that walking the callback chain doesn't require holding a global lock. This reduces contention on the icloglock during transaction commit and log I/O completion by reducing the number of times we need to hold the global icloglock during these operations. SGI-PV: 978729 SGI-Modid: xfs-linux-melb:xfs-kern:30770a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 2abdb8c88110bab78bfe17e51346e735560daa02 Author: Lachlan McIlroy Date: Thu Mar 27 18:01:14 2008 +1100 [XFS] Prevent xfs_bmap_check_leaf_extents() referencing unmapped memory. While investigating the extent corruption bug I ran into this bug in debug only code. xfs_bmap_check_leaf_extents() loops through the leaf blocks of the extent btree checking that every extent is entirely before the next extent. It also compares the last extent in the previous block to the first extent in the current block when the previous block has been released and potentially unmapped. So take a copy of the last extent instead of a pointer. Also move the last extent check out of the loop because we only need to do it once. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30718a Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig commit 433550990e6c2e94995239bac6a52b4df454cae0 Author: Christoph Hellwig Date: Thu Mar 27 18:01:08 2008 +1100 [XFS] remove most calls to VN_RELE Most VN_RELE calls either directly contain a XFS_ITOV or have the corresponding xfs_inode already in scope. Use the IRELE helper instead of VN_RELE to clarify the code. With a little more work we can kill VN_RELE altogether and define IRELE in terms of iput directly. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30710a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit df26cfe849d8fd767b26fcd4bfebfff67bda9f3a Author: Lachlan McIlroy Date: Fri Apr 18 11:44:03 2008 +1000 [XFS] split xfs_ioc_xattr The three subcases of xfs_ioc_xattr don't share any semantics and almost no code, so split it into three separate helpers. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30709a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit f3dcc13f6fa20af1171eac7a537a4b89b1a84849 Author: Christoph Hellwig Date: Thu Mar 27 18:00:54 2008 +1100 [XFS] cleanup root inode handling in xfs_fs_fill_super - rename rootvp to root for clarify - remove useless vn_to_inode call - check is_bad_inode before calling d_alloc_root - use iput instead of VN_RELE in the error case SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30708a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 59a33f9f776b051018ec98af95bd9fe8ba9d0f3e Author: David Chinner Date: Thu Mar 27 18:00:45 2008 +1100 [XFS] Ensure a btree insert returns a valid cursor. When writing into preallocated regions there is a case where XFS can oops or hang doing the unwritten extent conversion on I/O completion. It turns out that the problem is related to the btree cursor being invalid. When we do an insert into the tree, we may need to split blocks in the tree. When we only split at the leaf level (i.e. level 0), everything works just fine. However, if we have a multi-level split in the btreee, the cursor passed to the insert function is no longer valid once the insert is complete. The leaf level split is handled correctly because all the operations at level 0 are done using the original cursor, hence it is updated correctly. However, when we need to update the next level up the tree, we don't use that cursor - we use a cloned cursor that points to the index in the next level up where we need to do the insert. Hence if we need to split a second level, the changes to the tree are reflected in the cloned cursor and not the original cursor. This clone-and-move-up-a-level-on-split behaviour recurses all the way to the top of the tree. The complexity here is that these cloned cursors do not point to the original index that was inserted - they point to the newly allocated block (the right block) and the original cursor pointer to that level may still point to the left block. Hence, without deep examination of the cloned cursor and buffers, we cannot update the original cursor with the new path from the cloned cursor. In these cases the original cursor could be pointing to the wrong block(s) and hence a subsequent modification to the tree using that cursor will lead to corruption of the tree. The crash case occurs when the tree changes height - we insert a new level in the tree, and the cursor does not have a buffer in it's path for that level. Hence any attempt to walk back up the cursor to the root block will result in a null pointer dereference. To make matters even more complex, the BMAP BT is rooted in an inode, so we can have a change of height in the btree *without a root split*. That is, if the root block in the inode is full when we split a leaf node, we cannot fit the pointer to the new block in the root, so we allocate a new block, migrate all the ptrs out of the inode into the new block and point the inode root block at the newly allocated block. This changes the height of the tree without a root split having occurred and hence invalidates the path in the original cursor. The patch below prevents xfs_bmbt_insert() from returning with an invalid cursor by detecting the cases that invalidate the original cursor and refresh it by do a lookup into the btree for the original index we were inserting at. Note that the INOBT, AGFBNO and AGFCNT btree implementations also have this bug, but the cursor is currently always destroyed or revalidated after an insert for those trees. Hence this patch only address the problem in the BMBT code. SGI-PV: 979339 SGI-Modid: xfs-linux-melb:xfs-kern:30701a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 75de2a91c98a6f486f261c1367fe59f5583e15a3 Author: David Chinner Date: Thu Mar 27 18:00:38 2008 +1100 [XFS] Account for inode cluster alignment in all allocations At ENOSPC, we can get a filesystem shutdown due to a cancelling a dirty transaction in xfs_mkdir or xfs_create. This is due to the initial allocation attempt not taking into account inode alignment and hence we can prepare the AGF freelist for allocation when it's not actually possible to do an allocation. This results in inode allocation returning ENOSPC with a dirty transaction, and hence we shut down the filesystem. Because the first allocation is an exact allocation attempt, we must tell the allocator that the alignment does not affect the allocation attempt. i.e. we will accept any extent alignment as long as the extent starts at the block we want. Unfortunately, this means that if the longest free extent is less than the length + alignment necessary for fallback allocation attempts but is long enough to attempt a non-aligned allocation, we will modify the free list. If we then have the exact allocation fail, all other allocation attempts will also fail due to the alignment constraint being taken into account. Hence the initial attempt needs to set the "alignment slop" field so that alignment, while not required, must be taken into account when determining if there is enough space left in the AG to do the allocation. That means if the exact allocation fails, we will not dirty the freelist if there is not enough space available fo a subsequent allocation to succeed. Hence we get an ENOSPC error back to userspace without shutting down the filesystem. SGI-PV: 978886 SGI-Modid: xfs-linux-melb:xfs-kern:30699a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 535f6b3735db6ef6026537bfe55ae00c3d9cc1ee Author: Josef 'Jeff' Sipek Date: Thu Mar 27 17:58:27 2008 +1100 [XFS] Replace custom AIL linked-list code with struct list_head Replace the xfs_ail_entry_t with a struct list_head and clean the surrounding code up. Also fixes a livelock in xfs_trans_first_push_ail() by terminating the loop at the head of the list correctly. SGI-PV: 978682 SGI-Modid: xfs-linux-melb:xfs-kern:30636a Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit a45c796867df8dabc8eed6e72898d7ba1609bd7e Author: Christoph Hellwig Date: Thu Mar 6 13:49:36 2008 +1100 [XFS] Remove superflous xfs_readsb call in xfs_mountfs. When xfs_mountfs is called by xfs_mount xfs_readsb was called 35 lines above unconditionally, so there is no need to try to read the superblock if it's not present. If any other port doesn't have the superblock read at this point it should just call it directly from it's xfs_mount equivalent. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30603a Signed-off-by: Christoph Hellwig Signed-off-by: Donald Douwsma Signed-off-by: Lachlan McIlroy commit dfa18b117974d7667a2d5b941853fac3f2e256db Author: Niv Sardi Date: Thu Mar 6 13:49:26 2008 +1100 [XFS] kill t_sema member of struct xfs_trans It's completely unused so we might aswell kill it. Note that there is another t_sema in struct xlog_ticket, which is used and actually an sv_t despite the name. That one is left untouched by this patch. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30591a Signed-off-by: Niv Sardi Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 5f90150abad61b49dbb4a6ca1087fe0a75001ef9 Author: Christoph Hellwig Date: Thu Mar 6 13:46:49 2008 +1100 [XFS] cleanup vnode use in xfs_bmap.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30553a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit af048193fcfe2650e7ed3b1ab3d48b1ed0efb467 Author: Christoph Hellwig Date: Thu Mar 6 13:46:43 2008 +1100 [XFS] cleanup vnode use in xfs_iops.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30552a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit dcf49cc5cfbbc0070ad4307428f8282dc7e04e58 Author: Christoph Hellwig Date: Thu Mar 6 13:46:37 2008 +1100 [XFS] cleanup vnode use in xfs_lrw.c SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30551a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit ef1f5e7ad38e5414d016983a8cc5a8db7654a61d Author: Christoph Hellwig Date: Thu Mar 6 13:46:25 2008 +1100 [XFS] cleanup vnode use in xfs_lookup SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30550a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 3937be5ba836a204d3d1df96b518eecd6cdacbb9 Author: Christoph Hellwig Date: Thu Mar 6 13:46:19 2008 +1100 [XFS] cleanup vnode use in xfs_symlink and xfs_rename SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30548a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a3da789640871c897901c5f766e33be78d56f35a Author: Christoph Hellwig Date: Thu Mar 6 13:46:12 2008 +1100 [XFS] cleanup vnode use in xfs_link SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30547a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 979ebab11623894528d4d37b947533ea4e8649d1 Author: Christoph Hellwig Date: Thu Mar 6 13:46:05 2008 +1100 [XFS] cleanup vnode use in xfs_create/mknod/mkdir SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30546a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit bc4ac74a4e5bd7db02976eb1b681e1d11f81c9ce Author: Christoph Hellwig Date: Thu Mar 6 13:45:58 2008 +1100 [XFS] cleanup vnode use in dmapi calls SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30545a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit d234154125197053d5215711b5df867979e55ebd Author: David Chinner Date: Thu Mar 6 13:45:43 2008 +1100 [XFS] Use power-of-2 sized buffers to reduce overhead Now that the ktrace_enter() code is using atomics, the non-power-of-2 buffer sizes - which require modulus operations to get the index - are showing up as using substantial CPU in the profiles. Force the buffer sizes to be rounded up to the nearest power of two and use masking rather than modulus operations to convert the index counter to the buffer index. This reduces ktrace_enter overhead to 8% of a CPU time, and again almost halves the trace intensive test runtime. SGI-PV: 977546 SGI-Modid: xfs-linux-melb:xfs-kern:30538a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 6ee4752ffe782be6e86bea1403a2fe0f682aa71a Author: David Chinner Date: Thu Mar 6 13:45:35 2008 +1100 [XFS] Use atomic counters for ktrace buffer indexes ktrace_enter() is consuming vast amounts of CPU time due to the use of a single global lock for protecting buffer index increments. Change it to use per-buffer atomic counters - this reduces ktrace_enter() overhead during a trace intensive test on a 4p machine from 58% of all CPU time to 12% and halves test runtime. SGI-PV: 977546 SGI-Modid: xfs-linux-melb:xfs-kern:30537a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 44d814ced4cffbfe6a775c5bb8b941a6e734e7d9 Author: David Chinner Date: Thu Mar 6 13:45:29 2008 +1100 [XFS] Update c/mtime correctly on truncates XFS changes the c/mtime of an inode when truncating it to the same size. The c/mtime is only supposed to change if the size is changed. Not to be confused with ftruncate, where the c/mtime is supposed to be changed even if the size is not changed. The Linux VFS encodes this semantic difference in the flags it sends down to ->setattr, which XFS currently ignores. We need to make XFS pay attention to the VFS flags and hence Do The Right Thing. SGI-PV: 977547 SGI-Modid: xfs-linux-melb:xfs-kern:30536a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 24bd861d1c3fff5248de7ba3bdddb3369087ad46 Author: Christoph Hellwig Date: Thu Mar 6 13:45:16 2008 +1100 [XFS] don't encode parent in nfs filehandles unless nessecary As Dave pointed out after the export ops changes we now always encode the parent into the filehandle for regular files, but it's not actually needed when the filesystem is export with no_subtree_check. This one-liner fixes xfs_fs_encode_fh to skip encoding the parent unless nessecary. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30535a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 126468b1156211e26d97f74b2f1767acd141005a Author: Christoph Hellwig Date: Thu Mar 6 13:44:57 2008 +1100 [XFS] kill xfs_rwlock/xfs_rwunlock We can just use xfs_ilock/xfs_iunlock instead and get rid of the ugly bhv_vrwlock_t. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30533a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 43973964a386348af0a392266f008ba24170aa30 Author: Christoph Hellwig Date: Thu Mar 6 13:44:50 2008 +1100 [XFS] kill xfs_get_dir_entry Instead of of xfs_get_dir_entry use a macro to get the xfs_inode from the dentry in the callers and grab the reference manually. Only grab the reference once as it's fine to keep it over the dmapi calls. (And even that reference is actually superflous in Linux but I'll leave that for another patch) SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30531a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a8b3acd57e3aaaf73a863a28e0e9f6cca37cd8e3 Author: Christoph Hellwig Date: Thu Mar 6 13:44:41 2008 +1100 [XFS] vnode cleanup in xfs_fs_subr.c Cleanup the unneeded intermediate vnode step in the flushing helpers and go directly from the xfs_inode to the struct address_space. SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30530a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit db0bb7baa1533db156d8af3ebeda1f0473a0197a Author: Christoph Hellwig Date: Thu Mar 6 13:44:35 2008 +1100 [XFS] cleanup xfs_vn_mknod - use proper goto based unwinding instead of the current mess of multiple conditionals - rename ip to inode because that's the normal convention for Linux inodes while ip is the convention for xfs_inodes - remove unlikely checks for the default_acl - branches marked unlikely might lead to extreme branch bredictor slowdons if taken and for some workloads a default acl is quite common - properly indent the switch statements - remove xfs_has_fs_struct as nfsd has a fs_struct in any semi-recent kernel SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30529a Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 155cc6b784a959ed456fe46dca522e1d28b3b718 Author: David Chinner Date: Thu Mar 6 13:44:14 2008 +1100 [XFS] Use atomics for iclog reference counting Now that we update the log tail LSN less frequently on transaction completion, we pass the contention straight to the global log state lock (l_iclog_lock) during transaction completion. We currently have to take this lock to decrement the iclog reference count. there is a reference count on each iclog, so we need to take þhe global lock for all refcount changes. When large numbers of processes are all doing small trnasctions, the iclog reference counts will be quite high, and the state change that absolutely requires the l_iclog_lock is the except rather than the norm. Change the reference counting on the iclogs to use atomic_inc/dec so that we can use atomic_dec_and_lock during transaction completion and avoid the need for grabbing the l_iclog_lock for every reference count decrement except the one that matters - the last. SGI-PV: 975671 SGI-Modid: xfs-linux-melb:xfs-kern:30505a Signed-off-by: David Chinner Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit b589334c7a1fff85d2f009d5db4c34fad48925e9 Author: David Chinner Date: Thu Mar 6 13:44:06 2008 +1100 [XFS] Prevent AIL lock contention during transaction completion When hundreds of processors attempt to commit transactions at the same time, they can contend on the AIL lock when updating the tail LSN held in the in-core log structure. At the moment, the tail LSN is only needed when actually writing out an iclog, so it really does not need to be updated on every single transaction completion - only those that result in switching iclogs and flushing them to disk. The result is that we reduce the number of times we need to grab the AIL lock and the log grant lock by up to two orders of magnitude on large processor count machines. The problem has previously been hidden by AIL lock contention walking the AIL list which was recently solved and uncovered this issue. SGI-PV: 975671 SGI-Modid: xfs-linux-melb:xfs-kern:30504a Signed-off-by: David Chinner Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit 3354040897f828644be6ca5783588e9f64a53b8e Author: David Chinner Date: Thu Mar 6 13:43:59 2008 +1100 [XFS] Use xfs_inode_clean() in more places Remove open coded checks for the whether the inode is clean and replace them with an inlined function. SGI-PV: 977461 SGI-Modid: xfs-linux-melb:xfs-kern:30503a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit bad5584332e888ac40ca13584e8c114149ddb01e Author: David Chinner Date: Thu Mar 6 13:43:49 2008 +1100 [XFS] Remove the xfs_icluster structure Remove the xfs_icluster structure and replace with a radix tree lookup. We don't need to keep a list of inodes in each cluster around anymore as we can look them up quickly when we need to. The only time we need to do this now is during inode writeback. Factor the inode cluster writeback code out of xfs_iflush and convert it to use radix_tree_gang_lookup() instead of walking a list of inodes built when we first read in the inodes. This remove 3 pointers from each xfs_inode structure and the xfs_icluster structure per inode cluster. Hence we reduce the cache footprint of the xfs_inodes by between 5-10% depending on cluster sparseness. To be truly efficient we need a radix_tree_gang_lookup_range() call to stop searching once we are past the end of the cluster instead of trying to find a full cluster's worth of inodes. Before (ia64): $ cat /sys/slab/xfs_inode/object_size 536 After: $ cat /sys/slab/xfs_inode/object_size 512 SGI-PV: 977460 SGI-Modid: xfs-linux-melb:xfs-kern:30502a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit a3f74ffb6d1448d9a8f482e593b80ec15f1695d4 Author: David Chinner Date: Thu Mar 6 13:43:42 2008 +1100 [XFS] Don't block pdflush when writing back inodes When pdflush is writing back inodes, it can get stuck on inode cluster buffers that are currently under I/O. This occurs when we write data to multiple inodes in the same inode cluster at the same time. Effectively, delayed allocation marks the inode dirty during the data writeback. Hence if the inode cluster was flushed during the writeback of the first inode, the writeback of the second inode will block waiting for the inode cluster write to complete before writing it again for the newly dirtied inode. Basically, we want to avoid this from happening so we don't block pdflush and slow down all of writeback. Hence we introduce a non-blocking async inode flush flag that pdflush uses. If this flag is set, we use non-blocking operations (e.g. try locks) whereever we can to avoid blocking or extra I/O being issued. SGI-PV: 970925 SGI-Modid: xfs-linux-melb:xfs-kern:30501a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 4ae29b4321b99b711bcfde5527c4fbf249eac60f Author: David Chinner Date: Thu Mar 6 13:43:34 2008 +1100 [XFS] Factor xfs_itobp() and xfs_inotobp(). The only difference between the functions is one passes an inode for the lookup, the other passes an inode number. However, they don't do the same validity checking or set all the same state on the buffer that is returned yet they should. Factor the functions into a common implementation. SGI-PV: 970925 SGI-Modid: xfs-linux-melb:xfs-kern:30500a Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit e9a56b7cdaf6129892fd7c8d950b71a1a4304bb0 Author: Lachlan McIlroy Date: Thu Mar 6 13:43:27 2008 +1100 [XFS] Fix regression due to refcache removal SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30490a Signed-off-by: Lachlan McIlroy Signed-off-by: Donald Douwsma commit 163d3686bb09d88e2120bffe780a3f2d7cc4c948 Author: Donald Douwsma Date: Thu Mar 6 13:43:20 2008 +1100 [XFS] Remove the xfs_refcache Remove the xfs_refcache, it was only needed while we were still building for 2.4 kernels. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:30472a Signed-off-by: Donald Douwsma Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit 461aa8a22595e3bd3e6f4dc2894d7c4315ea2bb9 Author: Lachlan McIlroy Date: Thu Mar 6 13:43:11 2008 +1100 [XFS] make inode reclaim synchronise with xfs_iflush_done() On a forced shutdown, xfs_finish_reclaim() will skip flushing the inode. If the inode flush lock is not already held and there is an outstanding xfs_iflush_done() then we might free the inode prematurely. By acquiring and releasing the flush lock we will synchronise with xfs_iflush_done(). SGI-PV: 909874 SGI-Modid: xfs-linux-melb:xfs-kern:30468a Signed-off-by: Lachlan McIlroy Signed-off-by: David Chinner commit e12070a5dca8bfeee352e9655ae79772a96b32f8 Author: Niv Sardi Date: Thu Mar 6 13:43:03 2008 +1100 [XFS] actually check error returned by xfs_flush_pages, clean up and bailout if fails. SGI-PV: 973041 SGI-Modid: xfs-linux-melb:xfs-kern:30462a Signed-off-by: Niv Sardi Signed-off-by: Lachlan McIlroy commit 273b8385e5817a4765f82257004c5ec661a6a5b2 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: remove ide_init_default_irq() macro * Use ide_default_irq() instead of ide_init_default_irq() in ide_generic host driver (so the correct IRQ is always set regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI). * Remove no longer needed ide_init_default_irq() macro. Signed-off-by: Bartlomiej Zolnierkiewicz commit 486c92e2900d618c650a7099536310651aa6cf1b Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: move default IDE ports setup to ide_generic host driver * Make CONFIG_IDE_GENERIC depended on CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS. * Move default IDE ports setup from init_ide_data() to ide_generic. * Use ide_init_port_hw() in ide_generic. * Remove no longer needed CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS. Signed-off-by: Bartlomiej Zolnierkiewicz commit f01674e459923c6df540e6c983d37e5fc94d43b8 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: remove obsoleted "idex=noprobe" kernel parameter (take 2) * Remove obsoleted "idex=noprobe" kernel parameter. * Remove no longer needed hwif->noprobe quirk from ide_hwif_configure() and hwif->noprobe checking from cmd640.c. v2: * "ide?=noprobe" -> "ide?=ata66" in Documentation/kernel-parameters.txt. Signed-off-by: Bartlomiej Zolnierkiewicz commit aab8ad9ec81255ee08825bed36b57484052b94ea Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: remove needless hwif->irq check from ide_hwif_configure() ide_init_default_irq() is always zero for CONFIG_PCI=y so hwif->irq check in ide_hwif_configure() can be safely removed. Signed-off-by: Bartlomiej Zolnierkiewicz commit dfd87842a97e848cb5d62a5249d3f479c5f92c4b Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers Do explicit port setup in legacy VLB host drivers instead of depending on init_ide_data(). This way hwif->io_ports[] and hwif->irq are always correctly set regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI. Signed-off-by: Bartlomiej Zolnierkiewicz commit e4079df0c273719f539aaa7cc19ed17c9a5b0aba Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:35 2008 +0200 ide: limit legacy VLB host drivers to alpha, x86 and mips These host drivers indirectly depend on CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=y which is defined only on alpha, x86, ia64, m32r, mips and ppc32. Moreover: - on ia64 there is no ISA - m32r is too new for VLB - on ppc32 ISA is available only on PPC_CHRP (no default IDE ports) and PPC_PREP (marked as BROKEN) [ the common sense tells me that VLB was only used on x86 but there are urban legends that one of these host drivers was needed on some other arch - thus the extra care ] Signed-off-by: Bartlomiej Zolnierkiewicz commit 6d3803b68e29d898c29eab5185261682f8f07650 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:34 2008 +0200 cmd640: init hwif->{io_ports,irq} explicitly Do explicit port setup instead of depending on init_ide_data(). This way hwif->io_ports[] and hwif->irq are always correctly set regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI. While at it fix printk(). Signed-off-by: Bartlomiej Zolnierkiewicz commit daaad24fdc2ed7cd45d9a09abdec46c0d34031a1 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:34 2008 +0200 cmd640: cleanup setup_device_ptrs() This loop is no longer needed. Signed-off-by: Bartlomiej Zolnierkiewicz commit ffd4f6f0eed0423652826f3775077d11918b4180 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:34 2008 +0200 ide: add ide-4drives host driver (take 3) CONFIG_BLK_DEV_4DRIVES deserves its own host driver: * Add drivers/ide/legacy/ide-4drives.c and move "4drives" support there. * Add ide-4drives.o in the link order after all other legacy host drivers enabled by "ide0=" options (they all are mutually exclusive). * Make ide-4drives host driver probe itself for IDE devices instead of indirectly depending on ide_generic host driver. * Add "probe" module parameter to ide-4drives and update documentation. v2: * s/paramater/parameter/ in ide.txt. (Noticed by Randy Dunlap) v3: * s/ide_4drives.probe/ide-4drives.probe/ in help entry. (Noticed by Sergei Shtylyov) Signed-off-by: Bartlomiej Zolnierkiewicz commit 26d799b729003220c0f3e5d9e046e1588c011897 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:34 2008 +0200 ide: remove ppc ifdef from init_ide_data() On PPC32 ide_init_default_irq() is non-zero only for PPLUS and PPC_PREP (the latter marked as BROKEN currently) so this ifdef can be removed. Signed-off-by: Bartlomiej Zolnierkiewicz commit 9dfcd15a6dc1ef81307295e08b797fa9212be71a Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:34 2008 +0200 ide: remove ide_default_io_ctl() macro It is always == '((base) + 0x206)' if CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=y and it is not needed otherwise (arm, blackfin, parisc, ppc64, sh, sparc[64]). Signed-off-by: Bartlomiej Zolnierkiewicz commit 5c50427090303a6552949c14128200154ff69594 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:33 2008 +0200 ide: remove CONFIG_IDE_ARCH_OBSOLETE_INIT * Use CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS instead of CONFIG_IDE_ARCH_OBSOLETE_INIT in init_ide_data(). * Remove no longer needed CONFIG_IDE_ARCH_OBSOLETE_INIT. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 0e33555fffdc8490630d98070e76e5fe031bcac2 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:33 2008 +0200 ide: add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS (take 2) * Add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS to drivers/ide/Kconfig and use it instead of defining IDE_ARCH_OBSOLETE_DEFAULTS in . v2: * Define ide_default_irq() in ide-probe.c/ns87415.c if not already defined and drop defining ide_default_irq() for CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=n. [ Thanks to Stephen Rothwell and David Miller for noticing the problem. ] Cc: Stephen Rothwell Cc: David Miller Signed-off-by: Bartlomiej Zolnierkiewicz commit 359c2e2d2039029a8167fb00499296b228928024 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:32 2008 +0200 ppc/pmac: remove no longer needed IDE quirk IDE PMAC host driver and all IDE PCI host drivers use pci_enable_device() nowadays so the following quirk in pmac_pcibios_after_init() can be removed. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 7e41e7b3f010f047f1b6cc0d13eab2591382367c Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:32 2008 +0200 ppc: don't include Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 1d850bd0b291efd1740b8d87ce025363436eb6dc Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:32 2008 +0200 ppc: remove ppc_ide_md * Add special cases for pplus and prep to ide_default_{irq,io_base}() (+ FIXMEs about the need to use IDE platform host driver instead). * Remove no longer needed ppc_ide_md and struct ide_machdep_calls. * Then remove include from: - arch/powerpc/kernel/setup_32.c - arch/ppc/kernel/ppc_ksyms.c - arch/ppc/kernel/setup.c - arch/ppc/platforms/pplus.c - arch/ppc/platforms/prep_setup.c There should be no functional changes caused by this patch. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 5d682e4407d8364c286650baafcccae54d4b7c89 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:31 2008 +0200 ppc/pplus: remove ppc_ide_md.ide_init_hwif hook * Call ide_init_default_irq() for pplus in init_ide_data(). * Remove no longer needed pplus_ide_init_hwif_ports(). There should be no functional changes caused by this patch. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 7ef8df81def587ddb610b1c6f4572178ce0a97a6 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:30 2008 +0200 ppc/sandpoint: remove ppc_ide_md hooks * Add IDE_HFLAG_FORCE_LEGACY_IRQS host flag for Motorola-Sandpoint platform to sl82c105 host driver. * Disable ide_generic host driver in arch/ppc/configs/sandpoint_defconfig and enable sl82c105 one. * Remove ppc_ide_md hooks from arch/ppc/platforms/sandpoint.c - no need for them (sl82c105 host driver takes care of all this setup). * Then remove no longer needed include. * Also update arch/ppc/platforms/sandpoint.h. Unfortunately (unlike lopec's case) sl82c105 host driver was not enabled in defconfing so there is a funcionality change. [ Not a big deal since sl82c105 is superior over ide_generic. ] Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 5510b1255726d5d4ff424be4264aa0c99275dfdc Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:29 2008 +0200 ppc/lopec: remove ppc_ide_md hooks * Add IDE_HFLAG_FORCE_LEGACY_IRQS host flag for Motorola-LoPEC platform to sl82c105 host driver. * Remove ppc_ide_md hooks from arch/ppc/platforms/lopec.c - no need for them (sl82c105 host driver takes care of all this setup). * Then remove no longer needed include. Looking at arch/ppc/configs/lopec_defconfig: ... CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_IDEPCI=y # CONFIG_IDEPCI_SHARE_IRQ is not set # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_OPTI621 is not set CONFIG_BLK_DEV_SL82C105=y ... there should be no functional changes unless somebody preferred to disable sl82c105 host driver and use only ide_generic one (but why would anybody want to do such thing :-). PS It seems that lopec_defconfig hasn't been updated for ages but if somebody is going to do it please look into disabling IDE_GENERIC and BLK_DEV_GENERIC config options. Thanks. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 2661b13a21f609b279b4048978f8625d518df6e1 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:29 2008 +0200 ppc/mpc8xx: remove ppc_ide_md hooks * Initialize IDE ports in mpc8xx_ide_probe(). * Remove m8xx_ide_init() and ppc_ide_md hooks - no need for them (IDE mpc8xx host driver takes care of all this setup). * Remove needless 'if (irq)' and 'if (data_port >= MAX_HWIFS)' checks from m8xx_ide_init_hwif_ports(). * Remove 'ctrl_port' and 'irq' arguments from m8xx_ide_init_hwif_ports(). * Rename m8xx_ide_init_hwif_ports() to m8xx_ide_init_ports(). * Add __init tag to m8xx_ide_init_ports(). This patch fixes hwif->irq always being overriden to 0 (== auto-probe, is this even working on PPC?) because of ide_init_default_irq() call in ide.c. There should be no other functional changes. Cc: Benjamin Herrenschmidt Acked-by: Vitaly Bordug Signed-off-by: Bartlomiej Zolnierkiewicz commit 5c58666fae58cd69f862beaeb88d293ad00f6e37 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:29 2008 +0200 ppc/pmac: remove ppc_ide_md hooks * Add pmac_ide_init_ports() helper and use it instead of pmac_ide_init_hwif_ports(). * Remove ppc_ide_md hooks - no need for them (IDE pmac host driver takes care of all this setup). * Then remove no longer needed include from arch/powerpc/platforms/powermac/pmac.h. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit e4f7f3a0994522303c006c84cb651e4caba1158e Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:28 2008 +0200 ppc/ppc4xx: remove ppc_ide_md hooks There are no "default" IDE ports on PPC4xx so ppc4xx_ide_init_hwif_ports() is unnecessary, remove it. Also remove no longer needed include. There should be no functional changes caused by this patch. Cc: Josh Boyer Cc: Matt Porter Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit 3671e9a9ecb5090c38454cbf830a640f6c221ca8 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:28 2008 +0200 ppc/hdpu: remove dead IDE code Also remove now not needed include. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit af007ec6c9467c2a26f5f684cee52efa497280c4 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:28 2008 +0200 ide-pmac: remove dead code Remove unused pmac_ide_{check_base,get_irq}() and pmac_find_ide_boot(), then remove no longer needed ide_majors[] and pmac_ide_count. Cc: Benjamin Herrenschmidt Signed-off-by: Bartlomiej Zolnierkiewicz commit e3bfae4c105c9b79a539bb868e8541d2ad38deee Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide-scsi: do non-atomic pc->flags testing ...also, convert ide-scsi to using the generic pc->flags defines. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit eaec3e7ded9dbc88bad393c076b65f4b7b11d30d Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide: use generic ATAPI packet command flags in ide-{floppy,tape} Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit c2b2b29361dde5f1d9169a487c3021b14cf36518 Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide-floppy: rename end_request handler properly mv idefloppy_do_end_request -> idefloppy_end_request as is the case with ide-cd Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 1c065787c0359fc3b438c1c0aa2fcfd514fef07a Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide-scsi: convert driver to using generic ide_atapi_pc Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8e555123911cc912427bd25b52ebfb7b6c08e39a Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide-floppy: convert driver to using generic ide_atapi_pc Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit d236d74c0d91c7eeaef26560d3690430189e171f Author: Borislav Petkov Date: Fri Apr 18 00:46:27 2008 +0200 ide-tape: convert driver to using generic ide_atapi_pc Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8303b46e18b58b2d0257e6842e60b50ac880a6d1 Author: Borislav Petkov Date: Fri Apr 18 00:46:26 2008 +0200 ide: add generic packet command representation ide_atapi_pc This new struct unifies ide{-floppy,-tape,-scsi}'s view of a packet command. For now, it represents the common denominator between the three drivers while adding driver- specific members at the end of the struct which will be merged/simplified into the generic ATAPI handling code in later steps, or removed completely. Bart: - move struct ide_atapi_pc outside of #ifdef/#endif CONFIG_IDE_PROC_FS Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 346331f82823682fb5c2df6e827db25d95cc2e92 Author: Borislav Petkov Date: Fri Apr 18 00:46:26 2008 +0200 ide-tape: remove atomic test/set macros for packet commands Removing the atomic tests for pc's is unobjectionable. Since this driver will probably go to /dev/null soon, the atomic tests for tape->flags are left in place for there are some situations where they're needed (chrdev DSC handling, low level pipeline operation and so on). While at it, rename all test/set flag bit defines explicitly to *_FLAG_* for clarity. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 03056b909b72c47cbba3605ea3b48a63ef031736 Author: Borislav Petkov Date: Fri Apr 18 00:46:26 2008 +0200 ide-tape: move all struct and other defs at the top Bart: - no need to move defines for tape flags around (they are completely rewritten by the next patch) Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 23579a2a170265aacf78069f4817a41c1d6e9323 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:26 2008 +0200 ide: remove IDE_*_REG macros * Add IDE_{ALTSTATUS,IREASON,BCOUNTL,BCOUNTH}_OFFSET defines. * Remove IDE_*_REG macros - this results in more readable and slightly smaller code. There should be no functional changes caused by this patch. Cc: Borislav Petkov Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 7616c0ad2087c7d244b8985390c63059a6223c45 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:26 2008 +0200 ide: add ide_atapi_{discard_data,write_zeros} inline helpers Add ide_atapi_{discard_data,write_zeros} inline helpers to and use them instead of home-brewn helpers in ide-{floppy,tape,scsi}. There should be no functional changes caused by this patch. Cc: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3ad6776cca21f2456b7288f44f224b344ac3c4d0 Author: Borislav Petkov Date: Fri Apr 18 00:46:25 2008 +0200 ide-floppy: remove struct idefloppy_id_gcw Bart: - minor fixups Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3d53ba87f079c078f608729120ada862cb0896e0 Author: Akira Iguchi Date: Fri Apr 18 00:46:25 2008 +0200 scc_pata.c: do setup itself instead of ide_setup_pci_device() scc_pata has the different BAR configuration and using ide_setup_pci_device() is inappropriate. (ide_setup_pci_device() expects a normal PCI IDE controller with BAR0..BAR3 either non-existant or being primary/secondary port bases in I/O space.) This patch do all needed setup itself instead of calling ide_setup_pci_device(). [bart: minor checkpatch.pl fixes] Signed-off-by: Kou Ishizaki Signed-off-by: Akira Iguchi Cc: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit e6bfa38a4803646e212ef542b957344e790c3733 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:25 2008 +0200 ide: remove ide_init_hwif_ports() ide_init_hwif_ports() is only used by init_ide_data() now, inline it there. Signed-off-by: Bartlomiej Zolnierkiewicz commit 05734266c07ac588d1773bd9ae51a0ff20456443 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:25 2008 +0200 ide: remove init_hwif_default() init_hwif_default() is only used by init_ide_data() now, inline it there. Signed-off-by: Bartlomiej Zolnierkiewicz commit 2304dc6481f9d4fb4f0cb5b72497dfe1694cef9c Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:24 2008 +0200 ide: remove ->hold field from ide_hwif_t (take 2) ->hold is write-only now, remove it. v2: * v1 missed bast-ide, palm_bk3710, ide-cs and delkin_cb host drivers. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 93de00fd1c70e1a23a73a865e0f9abfe74a7a719 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:24 2008 +0200 ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) hdparm explicitely marks HDIO_[UNREGISTER,SCAN]_HWIF ioctls as DANGEROUS and given the number of bugs we can assume that there are no real users: * DMA has no chance of working because DMA resources are released by ide_unregister() and they are never allocated again. * Since ide_init_hwif_ports() is used for ->io_ports[] setup the ioctls don't work for almost all hosts with "non-standard" (== non ISA-like) layout of IDE taskfile registers (there is a lot of such host drivers). * ide_port_init_devices() is not called when probing IDE devices so: - drive->autotune is never set and IDE host/devices are not programmed for the correct PIO/DMA transfer modes (=> possible data corruption) - host specific I/O 32-bit and IRQ unmasking settings are not applied (=> possible data corruption) - host specific ->port_init_devs method is not called (=> no luck with ht6560b, qd65xx and opti621 host drivers) * ->rw_disk method is not preserved (=> no HPT3xxN chipsets support). * ->serialized flag is not preserved (=> possible data corruption when using icside, aec62xx (ATP850UF chipset), cmd640, cs5530, hpt366 (HPT3xxN chipsets), rz1000, sc1200, dtc2278 and ht6560b host drivers). * ->ack_intr method is not preserved (=> needed by ide-cris, buddha, gayle and macide host drivers). * ->sata_scr[] and sata_misc[] is cleared by ide_unregister() and it isn't initialized again (SiI3112 support needs them). * To issue an ioctl() there need to be at least one IDE device present in the system. * ->cable_detect method is not preserved + it is not called when probing IDE devices so cable detection is broken (however since DMA support is also broken it doesn't really matter ;-). * Some objects which may have already been freed in ide_unregister() are restored by ide_hwif_restore() (i.e. ->hwgroup). * ide_register_hw() may unregister unrelated IDE ports if free ide_hwifs[] slot cannot be found. * When IDE host drivers are modular unregistered port may be re-used by different host driver that owned it first causing subtle bugs. Since we now have a proper warm-plug support remove these ioctls, then remove no longer needed: - ide_register_hw() and ide_hwif_restore() functions - 'init_default' and 'restore' arguments of ide_unregister() - zeroeing of hwif->{dma,extra}_* fields in ide_unregister() As an added bonus IDE core code size shrinks by ~3kB (x86-32). v2: * fix ide_unregister() arguments in cleanup_module() (Andrew Morton). v3: * fix ide_unregister() arguments in palm_bk3710.c. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 9a0e77f28b50128df0c9e26ae489e44e29a7270a Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:24 2008 +0200 ide: remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters (take 2) * Remove obsoleted "idex=base[,ctl[,irq]]" kernel parameters and update Documentation/ide/ide.txt. * Remove no longer needed ide_forced chipset type. v2: * is_chipset_set[] -> is_chipset_set in ide.c. * Documentation/ide/ide.txt fix. Signed-off-by: Bartlomiej Zolnierkiewicz commit 80aa31cb460d12c1e02327b43eceb3eebc6e7090 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:24 2008 +0200 ide: remove CONFIG_BLK_DEV_HD_IDE config option (take 2) * Remove CONFIG_BLK_DEV_HD hack from init_hwif_default() ("hda=noprobe hdb=noprobe" kernel parameters should be used instead if somebody wishes to use the old "hd" driver). * Make CONFIG_BLK_DEV_HD_ONLY config option available also when IDE subsystem is used and update help entry. * Remove no longer needed CONFIG_BLK_DEV_HD_IDE config option. v2: * Update documentation to suggest "hda=noprobe hdb=noprobe" instead of obsoleted "ide0=noprobe". * Update Documentation/ide/ide.txt. Signed-off-by: Bartlomiej Zolnierkiewicz commit fef39d95ea19d4b5e2547e344809a5398eba8b3c Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:23 2008 +0200 ide: remove needless CONFIG_BLK_DEV_HD hack from init_hwif() request_irq() will fail if there is already another IRQ handler registered and IRQ flags are mismatched. Signed-off-by: Bartlomiej Zolnierkiewicz commit f0298512c86ebc2eae9f4556d0b15087aa750646 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:23 2008 +0200 ide-generic: add ide_generic class and attribute for adding new interfaces * Add ide_generic_sysfs_init() helper registering 'ide_generic' class (together with ide_generic_class_release() ->class_release method) and use it in ide_generic_init(). * Add "add" class attribute to 'ide_generic' class for adding new interfaces (it is intended to be a replacement for obsoleted "idex=base[,ctl[,irq]]" kernel parameters). Signed-off-by: Bartlomiej Zolnierkiewicz commit f74c91413ec6140ee0553180c5f56fdd27c22a2e Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:23 2008 +0200 ide: add warm-plug support for IDE devices (take 2) * Add 'struct class ide_port_class' ('ide_port' class) and a 'struct device *portdev' ('ide_port' class device) in ide_hwif_t. * Register 'ide_port' class in ide_init() and unregister it in cleanup_module(). * Create ->portdev in ide_register_port () and unregister it in ide_unregister(). * Add "delete_devices" class device attribute for unregistering IDE devices on a port and "scan" one for probing+registering IDE devices on a port. * Add ide_sysfs_register_port() helper for registering "delete_devices" and "scan" attributes with ->portdev. Call it in ide_device_add_all(). * Document IDE warm-plug support in Documentation/ide/warm-plug-howto.txt. v2: * Convert patch from using 'struct class_device' to use 'struct device'. (thanks to Kay Sievers for doing it) Signed-off-by: Bartlomiej Zolnierkiewicz commit 50672e5d7486c9ab312432cbe180ac071f1de8e0 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:23 2008 +0200 ide: remove dead/obsolete ->busproc method ->busproc method is used by HDIO_SET_BUSSTATE ioctl but it has no chance of working as intended (in 2.4.x days) because to issue an ioctl there is a device node needed and: - for BUSSTATE_TRISTATE+OFF it is too late (devices are already gone) - for BUSSTATE_TRISTATE+ON it is too early (devices are not registered yet) Just remove ->busproc method for now (it was only implemented by hpt366, siimage and tc86c001 host drivers). Cc: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 2dde7861afa23cd59db83515cb0b810b92b220aa Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:23 2008 +0200 ide: rework PowerMac media-bay support (take 2) Rework PowerMac media-bay support in such way that instead of un/registering the IDE interface we un/register IDE devices: * Add ide_port_scan() helper for probing+registerering devices on a port. * Rename ide_port_unregister_devices() to __ide_port_unregister_devices(). * Add ide_port_unregister_devices() helper for unregistering devices on a port. * Add 'ide_hwif_t *cd_port' to 'struct media_bay_info', pass 'hwif' instead of hwif->index to media_bay_set_ide_infos() and use it to setup 'cd_port'. * Use ide_port_unregister_devices() instead of ide_unregister() and ide_port_scan() instead of ide_register_hw() in media_bay_step(). * Unexport ide_register_hw() and make it static. v2: * Fix build by adding include to . (Reported by Michael/Kamalesh/Andrew). Cc: Kamalesh Babulal Cc: Michael Ellerman Cc: Andrew Morton Signed-off-by: Bartlomiej Zolnierkiewicz commit 26042d058ba21305aeb8ac92e4b1483dbec642ac Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:22 2008 +0200 ide: move ide_port_setup_devices() call to ide_device_add_all() Add ide_cfg_mtx lock/unlock to ide_port_setup_devices() and then move ide_port_setup_devices() call from init_irq() to ide_device_add_all(). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 43514ed1ee6a2325692e173ea4eb41068bf72de0 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:22 2008 +0200 ide: factor out devices init from ide_init_port_data() * Factor out devices init from ide_init_port_data() to ide_port_init_devices_data(). While at it: * Add explicit clearing of IDE device structure. There should be no functionality changes caused by this patch. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 71bf9f6fe822397e2cce781a2408c658a776fd68 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:22 2008 +0200 ide: factor out code unregistering devices from ide_unregister() Factor out code unregistering devices from ide_unregister() to ide_port_unregister_devices(). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5b0c4b30a625927340a3e7f565aa4de8b60489cc Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:22 2008 +0200 ide: remove IDE devices from /proc/ide/ before unregistering them IDE devices need to be removed from /proc/ide/ _before_ being unregistered: * Drop 'ide_hwif_t *hwif' argument from destroy_proc_ide_device() and use drive->hwif instead. * Rename destroy_proc_ide_device() to ide_proc_unregister_device(). * Call ide_proc_unregister_device() in drive_release_dev(). * Remove no longer needed destroy_proc_ide_drives(). Signed-off-by: Bartlomiej Zolnierkiewicz commit c7f6f21aaeb826a9b04b5897a92f29226995170f Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:22 2008 +0200 ide: factor out cable detection from ide_init_port() * Factor out cable detection from ide_init_port() to ide_port_cable_detect(). * Move ide_port_cable_detect() call to ide_device_add_all(). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8f22a72bf52e76d6bcd11bf9e695fdde61bd454c Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:21 2008 +0200 ide-acpi: add missing drive->acpidata zeroing There should be no functionality changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz commit 4f0eee4d877e3b617b6a22d209d52b3dfca2b2a7 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:21 2008 +0200 ide: use ide_find_port() instead of ide_deprecated_find_port() * Use ide_find_port() instead of ide_deprecated_find_port() in bast-ide/ palm_bk3710/ide-cs/delkin_cb host drivers and in ide_register_hw(). * Remove no longer needed ide_deprecated_find_port(). Signed-off-by: Bartlomiej Zolnierkiewicz commit 2625cd52b6eafb63b72f2e53f933f41ba9e34dff Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:21 2008 +0200 ide: fix ide_find_port() * Instead of checking for '->io_ports[IDE_DATA_OFFSET] == 0' check for '->chipset == ide_unknown' when looking for an empty ide_hwifs[] slot. * Do ide-pnp initialization after ide-generic when IDE is built-in (ide-pnp is the only user of ide_find_port() which needs such fixup). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit ce9b248bb451134fcb41e189e83e3838fb57caf0 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 18 00:46:21 2008 +0200 ide-generic: set hwif->chipset This hwif->chipset fixup is already present in ide_device_add_all() but for warm-plug support we also need to reserve not currently present interfaces. Signed-off-by: Bartlomiej Zolnierkiewicz commit a594eeb1a1d320981fccc29584b6f21fcebd765f Author: Greg Kroah-Hartman Date: Fri Apr 18 00:46:20 2008 +0200 IDE: remove ide=reverse IDE core This option is obsolete and can be removed safely. It allows us to remove the pci_get_device_reverse() function from the PCI core. Signed-off-by: Greg Kroah-Hartman Signed-off-by: Bartlomiej Zolnierkiewicz commit 636bdeaa1243327501edfd2a597ed7443eb4239a Author: Dan Williams Date: Thu Apr 17 20:17:26 2008 -0700 dmaengine: ack to flags: make use of the unused bits in the 'ack' field 'ack' is currently a simple integer that flags whether or not a client is done touching fields in the given descriptor. It is effectively just a single bit of information. Converting this to a flags parameter allows the other bits to be put to use to control completion actions, like dma-unmap, and capture results, like xor-zero-sum == 0. Changes are one of: 1/ convert all open-coded ->ack manipulations to use async_tx_ack and async_tx_test_ack. 2/ set the ack bit at prep time where possible 3/ make drivers store the flags at prep time 4/ add flags to the device_prep_dma_interrupt prototype Acked-by: Maciej Sosnowski Signed-off-by: Dan Williams commit c4fe15541d0ef5cc8cc1ce43057663851f8fc387 Author: Dan Williams Date: Thu Apr 17 20:17:26 2008 -0700 iop-adma: remove the workaround for missed interrupts on iop3xx This workaround was covering the dependency submission bug in async_tx. Signed-off-by: Dan Williams commit ce4d65a5db77e1568c82d5151a746f627c4f6ed5 Author: Dan Williams Date: Thu Apr 17 20:17:26 2008 -0700 async_tx: kill ->device_dependency_added DMA drivers no longer need to be notified of dependency submission events as async_tx_run_dependencies and async_tx_channel_switch will handle the scheduling and execution of dependent operations. [sfr@canb.auug.org.au: extend this for fsldma] Acked-by: Shannon Nelson Signed-off-by: Dan Williams commit 19242d7233df7d658405d4b7ee1758d21414cfaa Author: Dan Williams Date: Thu Apr 17 20:17:25 2008 -0700 async_tx: fix multiple dependency submission Shrink struct dma_async_tx_descriptor and introduce async_tx_channel_switch to properly inject a channel switch interrupt in the descriptor stream. This simplifies the locking model as drivers no longer need to handle dma_async_tx_descriptor.lock. Acked-by: Shannon Nelson Signed-off-by: Dan Williams commit 1c62979ed29a8e2bf9fbe1db101c81a0089676f8 Author: Zhang Wei Date: Thu Apr 17 20:17:25 2008 -0700 fsldma: Split the MPC83xx event from MPC85xx and refine irq codes. Split MPC83xx EOCDI event from MPC85xx EOLNI event, which is also need to update cookie and start the next transfer. The DMA channel irq handler function code is refined. The patch is tested on MPC8377MDS board. Signed-off-by: Zhang Wei Signed-off-by; Andrew Morton Signed-off-by: Dan Williams commit 411e23dbe9c5867045f34ba83ee84b31b5b9950c Author: Zhang Wei Date: Thu Apr 17 20:17:25 2008 -0700 fsldma: Remove CONFIG_FSL_DMA_SELFTEST, keep fsl_dma_self_test() running always. Always enabling the fsl_dma_self_test() to ensure the DMA controller should works well after the driver probed. Signed-off-by: Zhang Wei Signed-off-by: Dan Williams commit 48feb3c419508487becfb9ea3afcc54c3eac6d80 Author: Shaohua Li Date: Tue Mar 25 16:50:45 2008 +0800 ata-acpi: don't call _GTF for disabled drive I got below log after a S3 resume in a ASUS A6VC laptop. The system has only one IDE drive. It appears there is no reason calling _GTF for disabled drive. ACPI Error (dsopcode-0483): Attempt to CreateField of length zero [20070126] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.RATA] (Node df822a7c), AE_AML_OPERAND_VALUE ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.CHN1.DRV0._GTF] (Node df822bd0), AE_AML_OPERAND_VALUE ata2.00: _GTF evaluation failed (AE 0x3006) ACPI Error (dsopcode-0483): Attempt to CreateField of length zero [20070126] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.RATA] (Node df822a7c), AE_AML_OPERAND_VALUE ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.CHN1.DRV1._GTF] (Node df822b94), AE_AML_OPERAND_VALUE ata2.01: _GTF evaluation failed (AE 0x3006) Signed-off-by: Shaohua Li Signed-off-by: Jeff Garzik commit 094e50b2f74146d8ee924fea4808e58c4ed2f163 Author: Mark Lord Date: Wed Apr 16 15:01:19 2008 -0400 sata_mv add temporary 3 second init delay for SiliconImage PMs sata_mv does not yet fully support hotplug (coming soon, though). This means that the driver may not find a Silicon Image port-multiplier when first loaded, because those devices take in exceess of 3 seconds to sync up the SATA PHY (most devices do this in mere microseconds). So, as a short-term interim measure, here we insert a 3-second pause on initial driver load, once per controller board (not once per port!), to allow the Silicon Image port-multipliers to be detected later. This will be removed again (soon!) once hotplug is fully implemented/working. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 8a74f1a4680614dfb77fc5dfd37d0ece13b2b357 Author: Mark Lord Date: Wed Apr 16 15:00:17 2008 -0400 sata_mv remove redundant edma init code Remove unnecessary edma init code from port_start. This sequence gets done later on the first I/O to the port. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit e49856d82a887ce365637176f9f99ab68076eae8 Author: Mark Lord Date: Wed Apr 16 14:59:07 2008 -0400 sata_mv add basic port multiplier support Add basic port-multiplier support to sata_mv. This works in Command-based-switching mode for Gen-II chipsets, and in FIS-based-switching mode for Gen-IIe chipsets. Error handling remains at the primary port level for now (works okay, but not great). This will get fixed in a subsequent patch series for IRQ/EH handling fixes. There are also some known NCQ/PMP errata to be dealt with in the near future, once we have this basic PMP support in place. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 02c1f32f1c524d2a389989f2482121f7c7d9b164 Author: Mark Lord Date: Wed Apr 16 14:58:13 2008 -0400 sata_mv fix SOC flags, enable NCQ on SOC The System-On-Chip (SOC) core supports all of the same features as the other recent Marvell chips, including NCQ and IRQ coalescing. Fix the chip_soc flags to enable these capabilities (note that the driver currently does nothing special for IRQ coalescing, though). Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 40f0bc2d77d2d9ead3812f4eec2eefc11455e5de Author: Mark Lord Date: Wed Apr 16 14:57:25 2008 -0400 sata_mv disable hotplug for now Disable hot plug/unplug detection in sata_mv for now. It is currently broken, and also interferes with PMP support. This will get fixed in a subsequent patch series. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 17c5aab5b34e351531466e35b154ca86db7d46a9 Author: Mark Lord Date: Wed Apr 16 14:56:51 2008 -0400 sata_mv cosmetics More cosmetic cleanups to unclutter the changes needed for PMP support. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 0d8be5cbff8fd95da72d749a64e150b851f470c6 Author: Mark Lord Date: Wed Apr 16 14:56:12 2008 -0400 sata_mv hardreset rework Rework and simplify sata_mv's hardreset code to take advantage of libata improvements since it was first coded. Also, get rid of the now unnecessary prereset, postreset, and phy_reset functions. This patch also paves the way for subsequent pmp support patches, which will follow once this one passes muster. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit f3360ebffae254ab99a64bf97c7b4f8380b1e114 Author: Jeff Garzik Date: Thu Apr 17 15:55:24 2008 -0400 [libata] improve Kconfig help text for new PMP, SFF options commit 4f7faa3f2b99f8fb246c8cdeef971e55ceda4e52 Author: Tejun Heo Date: Wed Jan 30 18:18:26 2008 +0900 libata: make EH fail gracefully if no reset method is available When no reset method is available, libata currently oopses. Although the condition can't happen unless there's a bug in a low level driver, oopsing isn't the best way to report the error condition. Complain, dump stack and fail reset instead. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit b93fda12357b3f1aa55cf69d8e088372788ea9ea Author: Alan Cox Date: Tue Apr 8 16:36:44 2008 +0100 libata: Be a bit more slack about early devices We have a certain number of 'ATA' emulations often on CF or other flash devices that are at best "loosely based" on the CF 1.1 standard. These devices report themselves as disk but don't support the ATA minimal command set only the CF 1.1 set. Relax the PIO checking for devices reporting ATA rev 0, or no iordy support, or CFA. Rework the code a bit as it was already messy and this made it quite ugly. Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit f792068e43a3a156139569304b29ec8fc5dec4e3 Author: Alan Cox Date: Tue Apr 8 16:37:50 2008 +0100 libata: cable logic The cable detect isolation patch inadvertently removed 40 wire short cable handling. Put it back Signed-off-by: Alan Cox Signed-off-by: Jeff Garzik commit 45db2f6c95eee7c6622ea1b3edb9abafba58e3ab Author: Tejun Heo Date: Tue Apr 8 01:46:56 2008 +0900 libata: move link onlineness check out of softreset methods Currently, SATA softresets should do link onlineness check before actually performing SRST protocol but it doesn't really belong to softreset. This patch moves onlineness check in softreset to ata_eh_reset() and ata_eh_followup_srst_needed() to clean up code and help future sata_mv changes which need clear separation between SCR and TF accesses. sata_fsl is peculiar in that its softreset really isn't softreset but combination of hardreset and softreset. This patch adds dummy private ->prereset to keep the current behavior but the driver really should implement separate hard and soft resets and return -EAGAIN from hardreset if it should be follwed by softreset. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 2a0c15ca39f5881aa1b472ca856bb7a2e584ece7 Author: Tejun Heo Date: Tue Apr 8 01:25:35 2008 +0900 libata: kill dead code paths in reset path Some code paths which had been made obsolete by recent reset simplification were still around. Kill them. * ata_eh_reset() checked for ATA_DEV_UNKNOWN to determine classification failure. This is no longer applicable. * ata_do_reset() should convert ATA_DEV_UNKNOWN to ATA_DEV_NONE regardless of reset result (e.g. -EAGAIN). * LLDs don't need to convert ATA_DEV_UNKNOWN to ATA_DEV_NONE. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit e50e3ce5e70e36e6069a8cc8292df76058fa9e23 Author: Stephen Rothwell Date: Wed Apr 9 13:34:40 2008 +1000 pata_scc: fix build breakage drivers/ata/pata_scc.c: In function 'scc_bus_softreset': drivers/ata/pata_scc.c:594: error: 'deadlien' undeclared (first use in this function) drivers/ata/pata_scc.c:594: error: (Each undeclared identifier is reported only once drivers/ata/pata_scc.c:594: error: for each function it appears in.) Signed-off-by: Stephen Rothwell Signed-off-by: Jeff Garzik commit 88fcd5627563722483427a55113c0a83f56e8080 Author: Tejun Heo Date: Mon Apr 7 22:47:22 2008 +0900 libata: make PMP support optional Make PMP support optional by adding CONFIG_SATA_PMP and leaving out libata-pmp.c if it isn't set. PMP helpers return constant values if PMP support is not enabled and PMP declarations alias non-PMP counterparts. This makes the compiler to leave out PMP related part out and LLDs to use non-PMP counterparts automatically. Signed-off-by: Tejun Heo commit 071f44b1d2c051641b62a3571223314737ccbe59 Author: Tejun Heo Date: Mon Apr 7 22:47:22 2008 +0900 libata: implement PMP helpers Implement helpers to test whether PMP is supported, attached and determine pmp number to use when issuing SRST to a link. While at it, move ata_is_host_link() so that it's together with the two new PMP helpers. This change simplifies LLDs and helps making PMP support optional. Signed-off-by: Tejun Heo commit 48515f6c006c2a9d7b624ee8ad068018c2d3fe0e Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: separate PMP support code from core code Most of PMP support code is already in libata-pmp.c. All that are in libata-core.c are sata_pmp_port_ops and EXPORTs. Move them to libata-pmp.c. Also, collect PMP related prototypes and declarations in header files and move them right above of SFF stuff. This change is to make PMP support optional. Signed-off-by: Tejun Heo commit 127102aea2ea9ec4e9ca233e2b1a75c8d3b058c4 Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: make SFF support optional Now that SFF support is completely separated out from the core layer, it can be made optional. Add CONFIG_ATA_SFF and let SFF drivers depend on it. If CONFIG_ATA_SFF isn't set, all codes in libata-sff.c and data structures for SFF support are disabled. This saves good number of bytes for small systems. Signed-off-by: Tejun Heo commit 350756f6dab6d37ef9ed3f18dec520e88969ddac Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: don't use ap->ioaddr in non-SFF drivers ap->ioaddr is to carry addresses for TF and BMDMA registers of a SFF controller, don't abuse it in non-SFF controllers. Signed-off-by: Tejun Heo commit 182d7bbac322d6921ce81f8e6aa23d250816381d Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: clean up dummy port_ops Now that SFF assumptions are removed from core layer, dummy port_ops can be slimmed down. Chop it down. Signed-off-by: Tejun Heo commit c9f75b04ed5ed65a058d18a8a8dda50632a96de8 Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: kill ata_noop_dev_select() Now that SFF assumptions are separated out from non-SFF reset sequence, port_ops->sff_dev_select() is no longer necessary for non-SFF controllers. Kill ata_noop_dev_select() and ->sff_dev_select initialization from base and other non-SFF port_ops. Signed-off-by: Tejun Heo commit 520d06f92b32d7abe5127d7cc46a819db0f384e6 Author: Tejun Heo Date: Mon Apr 7 22:47:21 2008 +0900 libata: remove check_status from non-SFF drivers Now that all SFF stuff is separated out of core layer, core layer doesn't call ops->[alt_]check_status(). In fact, no one calls them for non-SFF drivers anymore. Kill them. Signed-off-by: Tejun Heo commit 4c9bf4e799ce06a7378f1196587084802a414c03 Author: Tejun Heo Date: Mon Apr 7 22:47:20 2008 +0900 libata: replace tf_read with qc_fill_rtf for non-SFF drivers Now that all SFF stuff is separated out of core layer, core layer doesn't call ops->tf_read directly. It gets called only via ops->qc_fill_rtf() for non-SFF drivers. This patch directly implements private ops->qc_fill_rtf() for non-SFF controllers and kill ops->tf_read(). This is much cleaner for non-SFF controllers as some of them have to cache SFF register values in private data structure and report the cached values via ops->tf_read(). Also, ops->tf_read() gets nasty for controllers which don't have clear notion of TF registers when operation is not in progress. As this change makes default ops->qc_fill_rtf unnecessary, move ata_sff_qc_fill_rtf() form ata_base_port_ops to ata_sff_port_ops where it belongs. Signed-off-by: Tejun Heo commit 79f97dadfe9b4b561634d202225ba2fa910dc225 Author: Tejun Heo Date: Mon Apr 7 22:47:20 2008 +0900 libata: drop @finish_qc from ata_qc_complete_multiple() ata_qc_complete_multiple() took @finish_qc and called it on every qc before completing it. This was to give opportunity to update TF cache before ata_qc_complete() tries to fill result_tf. Now that result TF is a separate operation, this is no longer necessary. Update sata_sil24, which was the only user of this mechanism, such that it implements its own ops->qc_fill_rtf() and drop @finish_qc from ata_qc_complete_multiple(). Signed-off-by: Tejun Heo commit 22183bf569c8600ff414ac25f23134044e0ef453 Author: Tejun Heo Date: Mon Apr 7 22:47:20 2008 +0900 libata: add qc_fill_rtf port operation On command completion, ata_qc_complete() directly called ops->tf_read to fill qc->result_tf. This patch adds ops->qc_fill_rtf to replace hardcoded ops->tf_read usage. ata_sff_qc_fill_rtf() which uses ops->tf_read to fill result_tf is implemented and set in ata_base_port_ops and other ops tables which don't inherit from ata_base_port_ops, so this patch doesn't introduce any behavior change. ops->qc_fill_rtf() is similar to ops->sff_tf_read() but can only be called when a command finishes. As some non-SFF controllers don't have TF registers defined unless they're associated with in-flight commands, this limited operation makes life easier for those drivers and help lifting SFF assumptions from libata core layer. Signed-off-by: Tejun Heo commit 305d2a1ab137d11d573319c315748a87060fe82d Author: Tejun Heo Date: Mon Apr 7 22:47:20 2008 +0900 libata: unify mechanism to request follow-up SRST Previously, there were two ways to trigger follow-up SRST from hardreset method - returning -EAGAIN and leaving all device classes unmodified. Drivers never used the latter mechanism and the only use case for the former was when hardreset couldn't classify. Drop the latter mechanism and let -EAGAIN mean "perform follow-up SRST if classification is required". This change removes unnecessary follow-up SRSTs and simplifies reset implementations. Signed-off-by: Tejun Heo commit 5958e3025fd9d97429163e074d9cfa3848f51f28 Author: Tejun Heo Date: Mon Apr 7 22:47:20 2008 +0900 libata: move PMP SCR access failure during reset to ata_eh_reset() If PMP fan-out reset fails and SCR isn't accessible, PMP should be reset. This used to be tested by sata_pmp_std_hardreset() and communicated to EH by -ERESTART. However, this logic is generic and doesn't really have much to do with specific hardreset implementation. This patch moves SCR access failure detection logic to ata_eh_reset() where it belongs. As this makes sata_pmp_std_hardreset() identical to sata_std_hardreset(), the function is killed and replaced with the standard method. Signed-off-by: Tejun Heo commit ac371987a81c61c2efbd6931245cdcaf43baad89 Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 libata: clear SError after link resume SError used to be cleared in ->postreset. This has small hotplug race condition. If a device is plugged in after reset is complete but postreset hasn't run yet, its hotplug event gets lost when SError is cleared. This patch makes sata_link_resume() clear SError. This kills the race condition and makes a lot of sense as some PMP and host PHYs don't work properly without SError cleared. This change makes sata_pmp_std_{pre|post}_reset()'s unnecessary as they become identical to ata_std counterparts. It also simplifies sata_pmp_hardreset() and ahci_vt8251_hardreset(). Signed-off-by: Tejun Heo commit 57c9efdfb3cee5d4564fcb5f70555e2edb1bc52a Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 libata: implement and use sata_std_hardreset() Implement sata_std_hardreset(), which simply wraps around sata_link_hardreset(). sata_std_hardreset() becomes new standard hardreset method for sata_port_ops and sata_sff_hardreset() moves from ata_base_port_ops to ata_sff_port_ops, which is where it really belongs. ata_is_builtin_hardreset() is added so that both ata_std_error_handler() and ata_sff_error_handler() skip both builtin hardresets if SCR isn't accessible. piix_sidpr_hardreset() in ata_piix.c is identical to sata_std_hardreset() in functionality and got replaced with the standard function. Signed-off-by: Tejun Heo commit 9dadd45b24145d6aee2fabb28d7aef972301892b Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 libata: move generic hardreset code from sata_sff_hardreset() to sata_link_hardreset() sata_sff_hardreset() contains link readiness wait logic which isn't SFF specific. Move that part into sata_link_hardreset(), which now takes two more parameters - @online and @check_ready. Both are optional. The former is out parameter for link onlineness after reset. The latter is used to wait for link readiness after hardreset. Users of sata_link_hardreset() is updated to use new funtionality and ahci_hardreset() is updated to use sata_link_hardreset() instead of sata_sff_hardreset(). This doesn't really cause any behavior change. Signed-off-by: Tejun Heo commit a89611e8489ac24f371c9fd6fef6605b170b16ba Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 ahci: use ata_wait_after_reset() instead of ata_sff_wait_ready() Implement ahci_check_ready() and replace ata_sff_wait_after_reset() with ata_wait_after_reset(). As ahci was faking TF access, this change doesn't result in any functional difference. Signed-off-by: Tejun Heo commit aa2731ad9ad80ac3fca48bd1c4cf0eceede4810e Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 libata: separate out ata_wait_ready() and implement ata_wait_after_reset() Factor out waiting logic (which is common to all ATA controllers) from ata_sff_wait_ready() into ata_wait_ready(). ata_wait_ready() takes @check_ready function pointer and uses it to poll for readiness. This allows non-SFF controllers to use ata_wait_ready() to wait for link readiness. This patch also implements ata_wait_after_reset() - generic version of ata_sff_wait_after_reset() - using ata_wait_ready(). ata_sff_wait_ready() is reimplemented using ata_wait_ready() and ata_sff_check_ready(). Functionality remains the same. Signed-off-by: Tejun Heo commit 705e76beb90b97421e1f61e857c4246799781bb5 Author: Tejun Heo Date: Mon Apr 7 22:47:19 2008 +0900 libata: restructure SFF post-reset readiness waits Previously, post-softreset readiness is waited as follows. 1. ata_sff_wait_after_reset() waits for 150ms and then for ATA_TMOUT_FF_WAIT if status is 0xff and other conditions meet. 2. ata_bus_softreset() finishes with -ENODEV if status is still 0xff. If not, continue to #3. 3. ata_bus_post_reset() waits readiness of dev0 and/or dev1 depending on devmask using ata_sff_wait_ready(). And for post-hardreset readiness, 1. ata_sff_wait_after_reset() waits for 150ms and then for ATA_TMOUT_FF_WAIT if status is 0xff and other conditions meet. 2. sata_sff_hardreset waits for device readiness using ata_sff_wait_ready(). This patch merges and unifies post-reset readiness waits into ata_sff_wait_ready() and ata_sff_wait_after_reset(). ATA_TMOUT_FF_WAIT handling is merged into ata_sff_wait_ready(). If TF status is 0xff, link status is unknown and the port is SATA, it will continue polling till ATA_TMOUT_FF_WAIT. ata_sff_wait_after_reset() is updated to perform the following steps. 1. waits for 150ms. 2. waits for dev0 readiness using ata_sff_wait_ready(). Note that this is done regardless of devmask, as ata_sff_wait_ready() handles 0xff status correctly, this preserves the original behavior except that it may wait longer after softreset if link is online but status is 0xff. This behavior change is very unlikely to cause any actual difference and is intended. It brings softreset behavior to that of hardreset. 3. waits for dev1 readiness just the same way ata_bus_post_reset() did. Now both soft and hard resets call ata_sff_wait_after_reset() after reset to wait for readiness after resets. As ata_sff_wait_after_reset() contains calls to ->sff_dev_select(), explicit call near the end of sata_sff_hardreset() is removed. This change makes reset implementation simpler and more consistent. While at it, make the magical 150ms wait post-reset wait duration a constant and ata_sff_wait_ready() and ata_sff_wait_after_reset() take @link instead of @ap. This is to make them consistent with other reset helpers and ease core changes. pata_scc is updated accordingly. Signed-off-by: Tejun Heo commit 203c75b8245c5386044721d9c5eda5c6b71b3d14 Author: Tejun Heo Date: Mon Apr 7 22:47:18 2008 +0900 libata: separate out ata_std_postreset() from ata_sff_postreset() Separate out generic ATA portion from ata_sff_postreset() into ata_std_postreset() and implement ata_sff_postreset() using the std version. ata_base_port_ops now has ata_std_postreset() for its postreset and ata_sff_port_ops overrides it to ata_sff_postreset(). This change affects pdc_adma, ahci, sata_fsl and sata_sil24. pdc_adma now specifies postreset to ata_sff_postreset() explicitly. sata_fsl and sata_sil24 now use ata_std_postreset() which makes no difference to them. ahci now calls ata_std_postreset() from its own postreset method, which causes no behavior difference. Signed-off-by: Tejun Heo commit 0aa1113d544226bc2c4a20d6ac1d71170512a361 Author: Tejun Heo Date: Mon Apr 7 22:47:18 2008 +0900 libata: separate out ata_std_prereset() from ata_sff_prereset() Separate out generic ATA portion from ata_sff_prereset() into ata_std_prereset() and implement ata_sff_prereset() using the std version. Waiting for device readiness is the only SFF specific part. ata_base_port_ops now has ata_std_prereset() for its prereset and ata_sff_port_ops overrides it to ata_sff_prereset(). This change can affect pdc_adma, ahci, sata_fsl and sata_sil24. pdc_adma implements its own prereset using ata_sff_prereset() and the rest has hardreset and thus are unaffected by this change. This change reflects real world situation. There is no generic way to wait for device readiness for non-SFF controllers and some of them don't have any mechanism for that. Non-sff drivers which don't have hardreset should wrap ata_std_prereset() and wait for device readiness itself but there's no such driver now and isn't likely to be popular in the future either. Signed-off-by: Tejun Heo commit 288623a06c652239d2f57d271af12bb024cf7218 Author: Tejun Heo Date: Mon Apr 7 22:47:17 2008 +0900 libata: clean up port_ops->sff_irq_clear() ->sff_irq_clear() is called only from SFF interrupt handler, so there is no reason to initialize it for non-SFF controllers. Also, ata_sff_irq_clear() can handle both BMDMA and non-BMDMA SFF controllers. This patch kills ata_noop_irq_clear() and removes it from base port_ops and sets ->sff_irq_clear to ata_sff_irq_clear() in sff port_ops instead of bmdma port_ops. Signed-off-by: Tejun Heo commit 5682ed33aae05d10a25c95633ef9d9c062825888 Author: Tejun Heo Date: Mon Apr 7 22:47:16 2008 +0900 libata: rename SFF port ops Add sff_ prefix to SFF specific port ops. This rename is in preparation of separating SFF support out of libata core layer. This patch strictly renames ops and doesn't introduce any behavior difference. Signed-off-by: Tejun Heo commit 9363c3825ea9ad76561eb48a395349dd29211ed6 Author: Tejun Heo Date: Mon Apr 7 22:47:16 2008 +0900 libata: rename SFF functions SFF functions have confusing names. Some have sff prefix, some have bmdma, some std, some pci and some none. Unify the naming by... * SFF functions which are common to both BMDMA and non-BMDMA are prefixed with ata_sff_. * SFF functions which are specific to BMDMA are prefixed with ata_bmdma_. * SFF functions which are specific to PCI but apply to both BMDMA and non-BMDMA are prefixed with ata_pci_sff_. * SFF functions which are specific to PCI and BMDMA are prefixed with ata_pci_bmdma_. * Drop generic prefixes from LLD specific routines. For example, bfin_std_dev_select -> bfin_dev_select. The following renames are noteworthy. ata_qc_issue_prot() -> ata_sff_qc_issue() ata_pci_default_filter() -> ata_bmdma_mode_filter() ata_dev_try_classify() -> ata_sff_dev_classify() This rename is in preparation of separating SFF support out of libata core layer. This patch strictly renames functions and doesn't introduce any behavior difference. Signed-off-by: Tejun Heo commit b67a1064cb1c1d3b43e01e8b43a6a8dcdefed733 Author: Mark Lord Date: Mon Mar 31 19:35:13 2008 -0400 sata_mv fix ifctl handling Fix handling of the SATA_INTERFACE_CFG register to match datasheet requirements. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit b562468cc3bd0c81decba1f5f39a7173f839e57e Author: Mark Lord Date: Mon Mar 31 19:34:40 2008 -0400 sata_mv clean up mv_stop_edma usage Clean up uses of mv_stop_edma{_engine}() to match datasheet requirements. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit e12bef50b7660cf7c19d1cd3eac381b9eff734d7 Author: Mark Lord Date: Mon Mar 31 19:33:56 2008 -0400 sata_mv cosmetic fixes Various cosmetic fixes in preparation for real code changes later on. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit 83c063dd730cb56bf3fc89b70250ff9a398fec1e Author: Yoichi Yuasa Date: Thu Feb 28 21:43:13 2008 +0900 use ATA_TAG_INTERNAL in ata_tag_internal() It should be ATA_TAG_INTERNAL. Signed-off-by: Yoichi Yuasa Signed-off-by: Jeff Garzik commit c30484d775eb0b899f2b6a8f5508a99ecaba59fc Author: Chris Wedgwood Date: Tue Mar 18 15:06:48 2008 -0700 Add 'short help text' to ATA_ACPI so it's [de]selectable. ATA_ACPI isn't selectable right now because it lacks 'short help text'. This means it's always enabled and always enables ACPI_DOCK. Add text so it's now [de]selectable. cc: Jeff Garzik cc: Tejun Heo cc: Len Brown Signed-off-by: Chris Wedgwood Signed-off-by: Jeff Garzik commit fc4712d12e332a46f200b9ba641855182df282c0 Author: Tejun Heo Date: Tue Mar 25 21:36:06 2008 +0900 pdc_adma: kill adma_host_stop() adma_host_stop() does the same thing that adma_port_stop() does. Kill it. Signed-off-by: Tejun Heo Cc: Mark Lord Signed-off-by: Jeff Garzik commit b0316b15ace0570c87b74c81f1296cf7bf8d459e Author: Tejun Heo Date: Tue Mar 25 21:35:30 2008 +0900 pdc_adma: inherit ata_sff_port_ops With the previous ops standardization, pdc_adma now can inherit ata_sff_port_ops instead of ata_base_port_ops. Make the change. Signed-off-by: Tejun Heo Cc: Mark Lord Signed-off-by: Jeff Garzik commit ed82f96425e744dffe62115e46f08eb785c0b2f3 Author: Tejun Heo Date: Tue Mar 25 21:34:39 2008 +0900 libata/pdc_adma: make SFF EH handle non-bmdma SFF drivers and standardize pdc_adma ops pdc_adma has interface similar to SFF but has its own DMA interface. It currently implements noop bmdma ops to avoid crashing ata_bmdma_error_handler() which BTW actually is EH for SFF drivers. This patch makes ata_bmdma_error_handler() dereference bmdma ops iff bmdma_addr is initialized as done in ata_bmdma_post_internal_cmd. This change allows pdc_adma to standardize ops and use SFF error_handler and post_internal_cmd. Signed-off-by: Tejun Heo Cc: Mark Lord Signed-off-by: Jeff Garzik commit d8b81b8008a0f131e01bb6eb5c681c900c327e2b Author: Tejun Heo Date: Thu Mar 27 19:14:25 2008 +0900 libata: kill unused ata_flush_cache() ata_flush_code() hasn't been in use for quite some time now. Kill it. Signed-off-by: Tejun Heo Cc: Alan Cox Signed-off-by: Jeff Garzik commit 03faab7827e4e45823fd27c47b84c133e20a0cd0 Author: Tejun Heo Date: Thu Mar 27 19:14:24 2008 +0900 libata: implement ATA_QCFLAG_RETRY Currently whether a command should be retried after failure is determined inside ata_eh_finish(). Add ATA_QCFLAG_RETRY and move the logic into ata_eh_autopsy(). This makes things clearer and helps extending retry determination logic. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit a5987e0a1b569146ed9cfa0a8c275a21b344fcaa Author: Tejun Heo Date: Thu Mar 27 19:14:23 2008 +0900 libata: make ata_tf_to_lba[48]() generic ata_tf_to_lba[48]() currently return LBA in tf + 1 for ata_read_native_max_address(). Make them return LBA and make it global so that it can be used to read LBA off TF for other purposes. ata_read_native_max_address() now adds 1 itself. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 06993d2237da45615b5a9a4dde3f344ce97ca17d Author: Jeff Garzik Date: Fri Apr 4 03:34:45 2008 -0400 [libata] sata_nv: disable ADMA by default Continues to have open issues, and engineering support is extremely difficult to come by, according to fellow NVIDIA engineers. Signed-off-by: Jeff Garzik commit 826cd156de6cea1e4982f32238077215cfa4ae63 Author: Al Viro Date: Tue Mar 25 05:18:11 2008 +0000 libata annotations Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 9c0bf675054883acd10dec99c0c854514e139f06 Author: Tejun Heo Date: Wed Mar 26 16:00:58 2008 +0900 ata_piix: kill ich6_sata_ahci and clean up ich6_sata_ahci and ich6_sata are identical. Kill ich6_sata_ahci and drop _ahci postfixes from controller ids, which doesn't really mean anything at this point. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 5016d7d212dbcc85cdc5130b1228d23f3423bd61 Author: Tejun Heo Date: Wed Mar 26 15:46:58 2008 +0900 ata_piix: don't attach to ICH6M in ahci mode ata_piix when attached to ICH6M in AHCI mode doesn't provide any benefit over using ahci and has detection problems. Don't let ata_piix claim ICH6M if it's in AHCI mode. This change makes ICH6R the only one which ata_piix can attach to even when it's in ahci mode which is necessary as some devices don't work properly under ahci mode. Drop PIIX_FLAG_AHCI and match the controller directly so that piix_disable_ahci() is called only for it. This change makes PIIX_SCC no longer used and it gets dropped too. This fixes bz 9491. Signed-off-by: Tejun Heo Cc: Robert M. Albrecht Signed-off-by: Jeff Garzik commit c1796d9850aaa97ee7492d090499b5508971514b Author: Tejun Heo Date: Thu Mar 27 19:44:24 2008 +0900 pata_scc: fix compile warning Missed one during mass conversion (dc14c0c5). Fix it. Spotted by Stephen Rothwell. Signed-off-by: Tejun Heo Cc: Stephen Rothwell Signed-off-by: Jeff Garzik commit 15a5551c847c8787d6cd75b8cf7682cd6d642e1b Author: Alan Cox Date: Fri Mar 28 14:33:46 2008 -0700 libata: isolate and rework cable logic Signed-off-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit d21279f4125893c63ec285962e1f2164b4d71117 Author: Zoltan Boszormenyi Date: Fri Mar 28 14:33:46 2008 -0700 ata: SWNCQ should be enabled by default Signed-off-by: Zoltan Boszormenyi Cc: Robert Hancock Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit d9c74fbead08de13e3965e1c6ffe289f24f45479 Author: Harvey Harrison Date: Fri Mar 28 14:33:56 2008 -0700 pata_amd: fix sparse warning Current code is essentially choosing between dividing by 1 or dividing by two, make the conditions a little more obvious. As a bonus, removes a sparse error: drivers/ata/pata_amd.c:59:11: warning: symbol '__x' shadows an earlier one drivers/ata/pata_amd.c:59:11: originally declared here Signed-off-by: Harvey Harrison Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit 6fd36390117f7844ad147377878ddb52088f583a Author: Tejun Heo Date: Tue Mar 25 22:16:44 2008 +0900 libata: kill ata_chk_status() ata_chk_status() just calls ops->check_status and it only adds confusion with other status functions. Kill it. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 3d5a3d67a578d95ac3a11a862d16a054e2d4d9cd Author: Tejun Heo Date: Tue Mar 25 22:16:43 2008 +0900 libata: kill ata_chk_status() call from ata_dev_configure() ata_dev_configure() isn't tied to any controller interface except for the probe debug message printing at the end of the function. Kill the message. This is to help separating out SFF support from core layer. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 071ce34d57924edb76b76f7de460eb4991463959 Author: Tejun Heo Date: Tue Mar 25 22:16:42 2008 +0900 libata: move ata_pci_default_filter() out of CONFIG_PCI ata_pci_default_filter() doesn't really have anything to do with PCI. It's generally applicable to BMDMA controllers. Move it out of CONFIG_PCI. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 624d5c514eed18d5a93062e9d86d67065175f30a Author: Tejun Heo Date: Tue Mar 25 22:16:41 2008 +0900 libata: reorganize SFF related stuff * Move SFF related functions from libata-core.c to libata-sff.c. ata_[bmdma_]sff_port_ops, ata_devchk(), ata_dev_try_classify(), ata_std_dev_select(), ata_tf_to_host(), ata_busy_sleep(), ata_wait_after_reset(), ata_wait_ready(), ata_bus_post_reset(), ata_bus_softreset(), ata_bus_reset(), ata_std_softreset(), sata_std_hardreset(), ata_fill_sg(), ata_fill_sg_dumb(), ata_qc_prep(), ata_dump_qc_prep(), ata_data_xfer(), ata_data_xfer_noirq(), ata_pio_sector(), ata_pio_sectors(), atapi_send_cdb(), __atapi_pio_bytes(), atapi_pio_bytes(), ata_hsm_ok_in_wq(), ata_hsm_qc_complete(), ata_hsm_move(), ata_pio_task(), ata_qc_issue_prot(), ata_host_intr(), ata_interrupt(), ata_std_ports() * Make ata_pio_queue_task() global as it's now called from libata-sff.c. * Move SFF related stuff in include/linux/libata.h and drivers/ata/libata.h into one place. While at it, move timing constants into the global enum definition and fortify comments a bit. This patch strictly moves stuff around and as such doesn't cause any functional difference. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 272f7884e8c0effe594e5537092b9c0ccc0140b0 Author: Tejun Heo Date: Tue Mar 25 22:16:40 2008 +0900 libata: reorder functions in libata-sff.c Reorder functions in drivers/ata/libata-sff.c such that functions generally follow ops table order and init functions come last. This is in preparation of SFF cleanup. This patch strictly moves stuff around and as such doesn't cause any functional difference. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 21572ea58a1f99a59044febde90c31167d2f59ae Author: Tejun Heo Date: Tue Mar 25 22:16:39 2008 +0900 libata: drop ata_dev_select() from ata_dev_read_id There is no reason to issue device select in read_id, it will be done by ops->qc_issue() when IDENTIFY[_PACKET] is issued via ata_exec_internal(). Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit a1efdaba2dbd6fb89e23a87b66d3f4dd92c9f5af Author: Tejun Heo Date: Tue Mar 25 12:22:50 2008 +0900 libata: make reset related methods proper port operations Currently reset methods are not specified directly in the ata_port_operations table. If a LLD wants to use custom reset methods, it should construct and use a error_handler which uses those reset methods. It's done this way for two reasons. First, the ops table already contained too many methods and adding four more of them would noticeably increase the amount of necessary boilerplate code all over low level drivers. Second, as ->error_handler uses those reset methods, it can get confusing. ie. By overriding ->error_handler, those reset ops can be made useless making layering a bit hazy. Now that ops table uses inheritance, the first problem doesn't exist anymore. The second isn't completely solved but is relieved by providing default values - most drivers can just override what it has implemented and don't have to concern itself about higher level callbacks. In fact, there currently is no driver which actually modifies error handling behavior. Drivers which override ->error_handler just wraps the standard error handler only to prepare the controller for EH. I don't think making ops layering strict has any noticeable benefit. This patch makes ->prereset, ->softreset, ->hardreset, ->postreset and their PMP counterparts propoer ops. Default ops are provided in the base ops tables and drivers are converted to override individual reset methods instead of creating custom error_handler. * ata_std_error_handler() doesn't use sata_std_hardreset() if SCRs aren't accessible. sata_promise doesn't need to use separate error_handlers for PATA and SATA anymore. * softreset is broken for sata_inic162x and sata_sx4. As libata now always prefers hardreset, this doesn't really matter but the ops are forced to NULL using ATA_OP_NULL for documentation purpose. * pata_hpt374 needs to use different prereset for the first and second PCI functions. This used to be done by branching from hpt374_error_handler(). The proper way to do this is to use separate ops and port_info tables for each function. Converted. Signed-off-by: Tejun Heo commit 959471936241bd83da7d0a76411cef6772140fe6 Author: Tejun Heo Date: Tue Mar 25 12:22:49 2008 +0900 libata: kill port_info->sht and ->irq_handler libata core layer doesn't care about sht or ->irq_handler. Those are only of interest to the LLD during initialization. This is confusing and has caused several drivers to have duplicate unused initializers for these fields. Currently only sata_nv uses these fields. Make sata_nv use ->private_data, which is supposed to carry LLD-specific information, instead and kill ->sht and ->irq_handler. nv_pi_priv structure is defined and struct literals are used to initialize private_data. Notational overhead is negligible. Signed-off-by: Tejun Heo commit 887125e3740283be25564bfc6fb5d24974b651ab Author: Tejun Heo Date: Tue Mar 25 12:22:49 2008 +0900 libata: stop overloading port_info->private_data port_info->private_data is currently used for two purposes - to record private data about the port_info or to specify host->private_data to use when allocating ata_host. This overloading is confusing and counter-intuitive in that port_info->private_data becomes host->private_data instead of port->private_data. In addition, port_info and host don't correspond to each other 1-to-1. Currently, the first non-NULL port_info->private_data is used. This patch makes port_info->private_data just be what it is - private_data for the port_info where LLD can jot down extra info. libata no longer sets host->private_data to the first non-NULL port_info->private_data, @host_priv argument is added to ata_pci_init_one() instead. LLDs which use ata_pci_init_one() can use this argument to pass in pointer to host private data. LLDs which don't should use init-register model anyway and can initialize host->private_data directly. Adding @host_priv instead of using init-register model for LLDs which use ata_pci_init_one() is suggested by Alan Cox. Signed-off-by: Tejun Heo Cc: Alan Cox commit 1bd5b715a305f6f13455e89becbd839010dd14b5 Author: Tejun Heo Date: Tue Mar 25 12:22:49 2008 +0900 libata: make ata_pci_init_one() not use ops->irq_handler and pi->sht ata_pci_init_one() is the only function which uses ops->irq_handler and pi->sht. Other initialization functions take the same information as arguments. This causes confusion and duplicate unused entries in structures. Make ata_pci_init_one() take sht as an argument and use ata_interrupt implicitly. All current users use ata_interrupt and if different irq handler is necessary open coding ata_pci_init_one() using ata_prepare_sff_host() and ata_activate_sff_host can be done under ten lines including error handling and driver which requires custom interrupt handler is likely to require custom initialization anyway. As ata_pci_init_one() was the last user of ops->irq_handler, this patch also kills the field. Signed-off-by: Tejun Heo commit 029cfd6b74fc5c517865fad78cf4a3ea8d9b664a Author: Tejun Heo Date: Tue Mar 25 12:22:49 2008 +0900 libata: implement and use ops inheritance libata lets low level drivers build ata_port_operations table and register it with libata core layer. This allows low level drivers high level of flexibility but also burdens them with lots of boilerplate entries. This becomes worse for drivers which support related similar controllers which differ slightly. They share most of the operations except for a few. However, the driver still needs to list all operations for each variant. This results in large number of duplicate entries, which is not only inefficient but also error-prone as it becomes very difficult to tell what the actual differences are. This duplicate boilerplates all over the low level drivers also make updating the core layer exteremely difficult and error-prone. When compounded with multi-branched development model, it ends up accumulating inconsistencies over time. Some of those inconsistencies cause immediate problems and fixed. Others just remain there dormant making maintenance increasingly difficult. To rectify the problem, this patch implements ata_port_operations inheritance. To allow LLDs to easily re-use their own ops tables overriding only specific methods, this patch implements poor man's class inheritance. An ops table has ->inherits field which can be set to any ops table as long as it doesn't create a loop. When the host is started, the inheritance chain is followed and any operation which isn't specified is taken from the nearest ancestor which has it specified. This operation is called finalization and done only once per an ops table and the LLD doesn't have to do anything special about it other than making the ops table non-const such that libata can update it. libata provides four base ops tables lower drivers can inherit from - base, sata, pmp, sff and bmdma. To avoid overriding these ops accidentaly, these ops are declared const and LLDs should always inherit these instead of using them directly. After finalization, all the ops table are identical before and after the patch except for setting .irq_handler to ata_interrupt in drivers which didn't use to. The .irq_handler doesn't have any actual effect and the field will soon be removed by later patch. * sata_sx4 is still using old style EH and currently doesn't take advantage of ops inheritance. Signed-off-by: Tejun Heo commit 68d1d07b510bb57a504588adc2bd2758adea0965 Author: Tejun Heo Date: Tue Mar 25 12:22:49 2008 +0900 libata: implement and use SHT initializers libata lets low level drivers build scsi_host_template and register it to the SCSI layer. This allows low level drivers high level of flexibility but also burdens them with lots of boilerplate entries. This patch implements SHT initializers which can be used to initialize all the boilerplate entries in a sht. Three variants of them are implemented - BASE, BMDMA and NCQ - for different types of drivers. Note that entries can be overriden by putting individual initializers after the helper macro. All sht tables are identical before and after this patch. Signed-off-by: Tejun Heo commit 6bd99b4e0998571808fc1f09d5162348f21ff8c1 Author: Tejun Heo Date: Tue Mar 25 12:22:48 2008 +0900 libata: normalize port_info, port_operations and sht tables Over the time, port info, ops and sht structures developed quite a bit of inconsistencies. This patch updates drivers. * Enable/disable_pm callbacks added to all ahci ops tables. * Every driver for SFF controllers now uses ata_sff_port_start() instead of ata_port_start() unless the driver has custom implementation. * Every driver for SFF controllers now uses ata_pci_default_filter() unless the driver has custom implementation. * Removed an odd port_info->sht initialization from ata_piix.c. Likely a merge byproduct. * A port which has ATA_FLAG_SATA set doesn't need to set cable_detect to ata_cable_sata(). Remove it from via and mv port ops. * Some drivers had unnecessary .max_sectors initialization which is ignored and was missing .slave_destroy callback. Fixed. * Removed unnecessary sht initializations port_info's. * Removed onsolete scsi device suspend/resume callbacks from pata_bf54x. * No reason to set ata_pci_default_filter() and bmdma functions for PIO-only drivers. Remove those callbacks and replace ata_bmdma_irq_clear with ata_noop_irq_clear. * pata_platform sets port_start to ata_dummy_ret0. port_start can just be set to NULL. * sata_fsl supports NCQ but was missing qc_defer. Fixed. * pata_rb600_cf implements dummy port_start. Removed. Signed-off-by: Tejun Heo commit 358f9a77a668660729e705fde9c3cf69f013aa98 Author: Tejun Heo Date: Tue Mar 25 12:22:47 2008 +0900 libata: implement and use ata_noop_irq_clear() ->irq_clear() is used to clear IRQ bit of a SFF controller and isn't useful for drivers which don't use libata SFF HSM implementation. However, it's a required callback and many drivers implement their own noop version as placeholder. This patch implements ata_noop_irq_clear and use it to replace those custom placeholders. Also, SFF drivers which don't support BMDMA don't need to use ata_bmdma_irq_clear(). It becomes noop if BMDMA address isn't initialized. Convert them to use ata_noop_irq_clear(). Signed-off-by: Tejun Heo commit c1bc899f5805771926c9198e2ab4d77122c356a1 Author: Tejun Heo Date: Tue Mar 25 12:22:47 2008 +0900 libata: reorganize ata_port_operations Over the time, ops in ata_port_operations has become a bit confusing. Reorganize. SFF/BMDMA ops are separated into separate a group as they will be taken out of ata_port_operations later. Signed-off-by: Tejun Heo commit f08048e94564d009b19038cfbdd800aa83e79c7f Author: Tejun Heo Date: Tue Mar 25 12:22:47 2008 +0900 libata: PCI device should be powered up before being accessed PCI device should be powered up or powered up before its PCI regsiters are accessed. Although PCI configuration register access is allowed in D3hot, PCI device is free to reset its status when transiting from D3hot to D0 causing configuration data to change. Many libata SFF drivers which use ata_pci_init_one() read and update configuration registers before calling ata_pci_init_one() which enables the PCI device. Also, in resume paths, some drivers access registers without resuming the PCI device. This patch adds a call to pcim_enable_device() in init path if register is accessed before calling ata_pci_init_one() and make resume paths first resume PCI devices, access PCI configuration regiters then resume ATA host. While at it... * cmd640 was strange in that it set ->resume even when CONFIG_PM is not. This is by-product of minimal build fix. Updated. * In cs5530, Don't BUG() on reinit failure. Just whine and fail resume. Signed-off-by: Tejun Heo commit b558edddb1c42c70a30cfe494984d4be409f7b2b Author: Tejun Heo Date: Thu Jan 24 00:05:14 2008 +0900 libata: kill ata_ehi_schedule_probe() ata_ehi_schedule_probe() was created to hide details of link-resuming reset magic. Now that all the softreset workarounds are gone, scheduling probe is very simple - set probe_mask and request RESET. Kill ata_ehi_schedule_probe() and open code it. This also increases consistency as ata_ehi_schedule_probe() couldn't cover individual device probings so they were open-coded even when the helper existed. While at it, define ATA_ALL_DEVICES as mask of all possible devices on a link and always use it when requesting probe on link level for simplicity and consistency. Setting extra bits in the probe_mask doesn't hurt anybody. Signed-off-by: Tejun Heo commit 8cebf274dd1c955a6e03385a85fd6569ce445946 Author: Tejun Heo Date: Thu Jan 24 00:05:14 2008 +0900 libata: kill ATA_LFLAG_SKIP_D2H_BSY Some controllers can't reliably record the initial D2H FIS after SATA link is brought online for whatever reason. Advanced controllers which don't have traditional TF register based interface often have this problem as they don't really have the TF registers to update while the controller and link are being initialized. SKIP_D2H_BSY works around the problem by skipping the wait for device readiness before issuing SRST, so for such controllers libata issues SRST blindly and hopes for the best. Now that libata defaults to hardreset, this workaround is no longer necessary. For controllers which have support for hardreset, SRST is never issued by itself. It is only issued as follow-up SRST for device classification and PMP initialization, so there's no need to wait for it from prereset. Kill ATA_LFLAG_SKIP_D2H_BSY. Signed-off-by: Tejun Heo commit 672b2d65ba83a6f3f801fd3d58851aa9c0725a54 Author: Tejun Heo Date: Thu Jan 24 00:05:14 2008 +0900 libata: kill ATA_EHI_RESUME_LINK ATA_EHI_RESUME_LINK has two functions - promote reset to hardreset if ATA_LFLAG_HRST_TO_RESUME is set and preventing EH from shortcutting reset action when probing is requested. The former is gone now and the latter can easily be achieved by making EH to perform at least one reset if reset is requested, which also makes more sense than depending on RESUME_LINK flag. As ATA_EHI_RESUME_LINK was the only EHI reset modifier, this also kills reset modifier handling. Signed-off-by: Tejun Heo commit d692abd92f22a81b38d52c39601871003262841c Author: Tejun Heo Date: Thu Jan 24 00:05:14 2008 +0900 libata: kill ATA_LFLAG_HRST_TO_RESUME Now that hardreset is the preferred method of resetting, there's no need for ATA_LFLAG_HRST_TO_RESUME flag. Kill it. Signed-off-by: Tejun Heo commit cf48062658e7ab3bc55e10c65676c3c73c16f8bf Author: Tejun Heo Date: Thu Jan 24 00:05:14 2008 +0900 libata: prefer hardreset When both soft and hard resets are available, libata preferred softreset till now. The logic behind it was to be softer to devices; however, this doesn't really help much. Rationales for the change: * BIOS may freeze lock certain things during boot and softreset can't unlock those. This by itself is okay but during operation PHY event or other error conditions can trigger hardreset and the device may end up with different configuration. For example, after a hardreset, previously unlockable HPA can be unlocked resulting in different device size and thus revalidation failure. Similar condition can occur during or after resume. * Certain ATAPI devices require hardreset to recover after certain error conditions. On PATA, this is done by issuing the DEVICE RESET command. On SATA, COMRESET has equivalent effect. The problem is that DEVICE RESET needs its own execution protocol. For SFF controllers with bare TF access, it can be easily implemented but more advanced controllers (e.g. ahci and sata_sil24) require specialized implementations. Simply using hardreset solves the problem nicely. * COMRESET initialization sequence is the norm in SATA land and many SATA devices don't work properly if only SRST is used. For example, some PMPs behave this way and libata works around by always issuing hardreset if the host supports PMP. Like the above example, libata has developed a number of mechanisms aiming to promote softreset to hardreset if softreset is not going to work. This approach is time consuming and error prone. Also, note that, dependingon how you read the specs, it could be argued that PMP fan-out ports require COMRESET to start operation. In fact, all the PMPs on the market except one don't work properly if COMRESET is not issued to fan-out ports after PMP reset. * COMRESET is an integral part of SATA connection and any working device should be able to handle COMRESET properly. After all, it's the way to signal hardreset during reboot. This is the most used and recommended (at least by the ahci spec) method of resetting devices. So, this patch makes libata prefer hardreset over softreset by making the following changes. * Rename ATA_EH_RESET_MASK to ATA_EH_RESET and use it whereever ATA_EH_{SOFT|HARD}RESET used to be used. ATA_EH_{SOFT|HARD}RESET is now only used to tell prereset whether soft or hard reset will be issued. * Strip out now unneeded promote-to-hardreset logics from ata_eh_reset(), ata_std_prereset(), sata_pmp_std_prereset() and other places. Signed-off-by: Tejun Heo commit 1a9a3e76dde191f82f7a8a66059dcbb4a9f63ff3 Author: Jason Wessel Date: Tue Apr 1 16:55:28 2008 -0500 kgdb: always use icache flush for sw breakpoints On the ppc 4xx architecture the instruction cache must be flushed as well as the data cache. This patch just makes it generic for all architectures where CACHE_FLUSH_IS_SAFE is set to 1. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 56fb70932964927597ce30bbd820471633c72adc Author: Jason Wessel Date: Tue Apr 1 16:55:27 2008 -0500 kgdb: fix SMP NMI kgdb_handle_exception exit race Fix the problem of protecting the kgdb handle_exception exit which had an NMI race condition, while trying to restore normal system operation. There was a small window after the master processor sets cpu_in_debug to zero but before it has set kgdb_active to zero where a non-master processor in an SMP system could receive an NMI and re-enter the kgdb_wait() loop. As long as the master processor sets the cpu_in_debug before sending the cpu roundup the cpu_in_debug variable can also be used to guard against the race condition. The kgdb_wait() function no longer needs to check kgdb_active because it is done in the arch specific code and handled along with the nmi traps at the low level. This also allows kgdb_wait() to exit correctly if it was entered for some unknown reason due to a spurious NMI that could not be handled by the arch specific code. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 225a4424ade24e913c081d5a4c4bd71a0fe2e0ac Author: Jason Wessel Date: Tue Apr 1 16:55:26 2008 -0500 kgdb: documentation fixes Minor cleanups to kgdb docs. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 974460c5bfd9f6c38aa3dda189a63f9fc351035f Author: Jason Wessel Date: Thu Mar 20 13:43:44 2008 -0500 kgdb: allow static kgdbts boot configuration This patch adds in the ability to compile the kgdb internal test string into the kernel so as to run the tests at boot without changing the kernel boot arguments. This patch also changes all the error paths to invoke WARN_ON(1) which will emit the line number of the file and dump the kernel stack when an error occurs. You can disable the tests in a kernel that is built this way using "kgdbts=" Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit e3e2aaf7dc0d82a055e084cfd48b9257c0c66b68 Author: Jason Wessel Date: Thu Mar 20 13:43:45 2008 -0500 kgdb: add documentation Add in the kgdb documentation for kgdb. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 4a1b5502d426df09b9ba1cbcc74fd09702a74cd8 Author: Andrew Morton Date: Fri Mar 7 15:51:16 2008 -0800 kgdb: Kconfig fix ERROR: "uart_parse_options" [drivers/serial/serial_core.ko] undefined! Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit e8d31c204e36e019b9134f2a11926cac0fcf9b19 Author: Jason Wessel Date: Fri Mar 7 16:34:17 2008 -0600 kgdb: add kgdb internal test suite This patch adds regression tests for testing the kgdb core and arch specific implementation. The kgdb test suite is designed to be built into the kernel and not as a module because it uses a number of low level kernel and kgdb primitives which should not be exported externally. The kgdb test suite is designed as a KGDB I/O module which simulates the communications that a debugger would have with kgdb. The tests are broken up in to a line by line and referenced here as a "get" which is kgdb requesting input and "put" which is kgdb sending a response. The kgdb suite can be invoked from the kernel command line arguments system or executed dynamically at run time. The test suite uses the variable "kgdbts" to obtain the information about which tests to run and to configure the verbosity level. The following are the various characters you can use with the kgdbts= line: When using the "kgdbts=" you only choose one of the following core test types: A = Run all the core tests silently V1 = Run all the core tests with minimal output V2 = Run all the core tests in debug mode You can also specify optional tests: N## = Go to sleep with interrupts of for ## seconds to test the HW NMI watchdog F## = Break at do_fork for ## iterations S## = Break at sys_open for ## iterations NOTE: that the do_fork and sys_open tests are mutually exclusive. To invoke the kgdb test suite from boot you use a kernel start argument as follows: kgdbts=V1 kgdbwait Or if you wanted to perform the NMI test for 6 seconds and do_fork test for 100 forks, you could use: kgdbts=V1N6F100 kgdbwait The test suite can also be invoked at run time with: echo kgdbts=V1N6F100 > /sys/module/kgdbts/parameters/kgdbts Or as another example: echo kgdbts=V2 > /sys/module/kgdbts/parameters/kgdbts When developing a new kgdb arch specific implementation or using these tests for the purpose of regression testing, several invocations are required. 1) Boot with the test suite enabled by using the kernel arguments "kgdbts=V1F100 kgdbwait" ## If kgdb arch specific implementation has NMI use "kgdbts=V1N6F100 2) After the system boot run the basic test. echo kgdbts=V1 > /sys/module/kgdbts/parameters/kgdbts 3) Run the concurrency tests. It is best to use n+1 while loops where n is the number of cpus you have in your system. The example below uses only two loops. ## This tests break points on sys_open while [ 1 ] ; do find / > /dev/null 2>&1 ; done & while [ 1 ] ; do find / > /dev/null 2>&1 ; done & echo kgdbts=V1S10000 > /sys/module/kgdbts/parameters/kgdbts fg # and hit control-c fg # and hit control-c ## This tests break points on do_fork while [ 1 ] ; do date > /dev/null ; done & while [ 1 ] ; do date > /dev/null ; done & echo kgdbts=V1F1000 > /sys/module/kgdbts/parameters/kgdbts fg # and hit control-c Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 737a460f21febe551ff1d2299b63bae9b154078f Author: Jason Wessel Date: Fri Mar 7 16:34:16 2008 -0600 kgdb: fix several kgdb regressions kgdb core fixes: - Check to see that mm->mmap_cache is not null before calling flush_cache_range(), else on arch=ARM it will cause a fatal fault. - Breakpoints should only be restored if they are in the BP_ACTIVE state. - Fix a typo in comments to "kgdb_register_io_module" x86 kgdb fixes: - Fix the x86 arch handler such that on a kill or detach that the appropriate cleanup on the single stepping flags gets run. - Add in the DIE_NMIWATCHDOG call for x86_64 - Touch the nmi watchdog before returning the system to normal operation after performing any kind of kgdb operation, else the possibility exists to trigger the watchdog. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 84b5ae15216aa3ea0314f395536ef9829af21e14 Author: Jason Wessel Date: Wed Feb 20 13:33:39 2008 -0600 kgdb: kgdboc pl011 I/O module Implement the serial polling hooks for the pl011 uart for use with kgdboc. This patch was specifically tested on the ARM Versatile AB reference platform. [ mingo@elte.hu: minor cleanups. ] Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b4b8ac524d9b6ed7229017145afa1d7afbea4a48 Author: Jason Wessel Date: Wed Feb 20 13:33:38 2008 -0600 kgdb: fix optional arch functions and probe_kernel_* Fix two regressions dealing with the kgdb core. 1) kgdb_skipexception and kgdb_post_primary_code are optional functions that are only required on archs that need special exception fixups. 2) The kernel address space scope must be set on any probe_kernel_* function or archs such as ARCH=arm will not allow access to the kernel memory space. As an example, it is required to allow the full kernel address space is when you the kernel debugger to inspect a system call. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 64e9ee3095b61d0300ea548216a57d2536611309 Author: Jason Wessel Date: Fri Feb 15 14:55:56 2008 -0600 kgdb: add x86 HW breakpoints Add HW breakpoints into the arch specific portion of x86 kgdb. In the current x86 kernel.org kernels HW breakpoints are changed out in lazy fashion because there is no infrastructure around changing them when changing to a kernel task or entering the kernel mode via a system call. This lazy approach means that if a user process uses HW breakpoints the kgdb will loose out. This is an acceptable trade off because the developer debugging the kernel is assumed to know what is going on system wide and would be aware of this trade off. There is a minor bug fix to the kgdb core so as to correctly call the hw breakpoint functions with a valid value from the enum. There is also a minor change to the x86_64 startup code when using early HW breakpoints. When the debugger is connected, the cpu startup code must not zero out the HW breakpoint registers or you cannot hit the breakpoints you are interested in, in the first place. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 67baf94cd260dc37504dbd15ba3faa2d8cf8a444 Author: Jason Wessel Date: Fri Feb 15 14:55:55 2008 -0600 kgdb: print breakpoint removed on exception If kgdb does remove a breakpoint that had a problem on the recursion check, it should also print the address of the breakpoint. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 7c3078b637882303b1dcf6a16229d0e35f6b60a5 Author: Jason Wessel Date: Fri Feb 15 14:55:54 2008 -0600 kgdb: clocksource watchdog In order to not trip the clocksource watchdog, kgdb must touch the clocksource watchdog on the return to normal system run state. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit d359752407f8916c29ad53a5c30ac73e338f2797 Author: Jason Wessel Date: Fri Feb 15 14:55:53 2008 -0600 kgdb: fix NMI hangs This patch fixes the hang regression with kgdb when the NMI interrupt comes in while the master core is returning from an exception. Adjust the NMI logic such that KGDB will not stop NMI exceptions from occurring by in general returning NOTIFY_DONE. It is not possible to distinguish the debug NMI sync vs the normal NMI apic interrupt so kgdb needs to catch the unknown NMI if it the debugger was previously active on one of the cpus. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit c191e5ad6b3fd8cc84b2b6d62c02fcd6837c8a8f Author: Jason Wessel Date: Fri Feb 15 14:55:52 2008 -0600 kgdb: fix kgdboc dynamic module configuration Fix the run time configuration of kgdboc such that it does not default to 9600 baud if you use the "echo" command to configure the sysfs module paramater. Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar commit 6cdf6e06d70dcf42314edb2c43b7c7ebc56e32e5 Author: Jason Wessel Date: Thu Apr 17 20:05:38 2008 +0200 kgdb: document parameters document the kgdboc module/boot parameter. Signed-off-by: Jason Wessel Signed-off-by: Jan Kiszka Signed-off-by: Ingo Molnar commit 82da3ff89dc2a1842cff9b0d4cbc345cb90b59e1 Author: Ingo Molnar Date: Thu Apr 17 20:05:37 2008 +0200 x86: kgdb support simplified and streamlined kgdb support on x86, both 32-bit and 64-bit, based on patch from: Subject: kgdb: core-lite From: Jason Wessel [ and countless other authors - see the patch for details. ] Signed-off-by: Ingo Molnar Signed-off-by: Jason Wessel Signed-off-by: Jan Kiszka Reviewed-by: Thomas Gleixner commit f2d937f3bf00665ccf048b3b6616ef95859b0945 Author: Jason Wessel Date: Thu Apr 17 20:05:37 2008 +0200 consoles: polling support, kgdboc polled console handling support, to access a console in an irq-less way while in debug or irq context. absolutely zero impact as long as CONFIG_CONSOLE_POLL is disabled. (which is the default) [ jan.kiszka@siemens.com: lots of cleanups ] [ mingo@elte.hu: redesign, splitups, cleanups. ] Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar Signed-off-by: Jan Kiszka Reviewed-by: Thomas Gleixner commit dc7d552705215ac50a0617fcf51bb9c736255b8e Author: Jason Wessel Date: Thu Apr 17 20:05:37 2008 +0200 kgdb: core kgdb core code. Handles the protocol and the arch details. [ mingo@elte.hu: heavily modified, simplified and cleaned up. ] [ xemul@openvz.org: use find_task_by_pid_ns ] Signed-off-by: Jason Wessel Signed-off-by: Ingo Molnar Signed-off-by: Jan Kiszka Reviewed-by: Thomas Gleixner commit c33fa9f5609e918824446ef9a75319d4a802f1f4 Author: Ingo Molnar Date: Thu Apr 17 20:05:36 2008 +0200 uaccess: add probe_kernel_write() add probe_kernel_read() and probe_kernel_write(). Uninlined and restricted to kernel range memory only, as suggested by Linus. Signed-off-by: Ingo Molnar Reviewed-by: Thomas Gleixner commit 0e4ff797d7f2f2bb860b8f31dc5d1f2273b2f05a Author: Adrian Bunk Date: Thu Apr 17 12:37:01 2008 +0300 [SCSI] qla1280: remove version check There's no point for an in-kernel driver to check whether it's compiled under kernel < 2.6.0 . Signed-off-by: Adrian Bunk Cc: Jes Sorensen Signed-off-by: James Bottomley commit 17b7a8de3bf1eb2cba14d5c8d919e55d511d8a71 Author: Al Viro Date: Wed Apr 16 23:27:45 2008 +0100 [SCSI] libsas: fix endianness bug in sas_ata Signed-off-by: Al Viro Signed-off-by: James Bottomley commit ee95a16d3950367d32beb6ffed287666631dbda9 Author: Martin Peschke Date: Thu Apr 17 00:08:03 2008 +0200 [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next) as seen in linux-next tree: drivers/s390/scsi/zfcp_dbf.c: In function ‘zfcp_rec_dbf_event_thread’: drivers/s390/scsi/zfcp_dbf.c:697: warning: passing argument 1 of ‘atomic_read’ from incompatible pointer type Caused by recent git commit: commit 348447e85749120ad600a5c8e23b6bb7058b931d Author: Martin Peschke Date: Thu Mar 27 14:22:01 2008 +0100 [SCSI] zfcp: Add trace records for recovery thread and its queues We are not supposed to poke inside semaphore. Signed-off-by: Martin Peschke Acked-by: Christof Schmitt Signed-off-by: James Bottomley commit 71b264f85ff50c14fe945ffff06ae0d5e9a9124e Merge: f4df39c... 072f042... Author: Tony Luck Date: Thu Apr 17 10:14:51 2008 -0700 Pull miscellaneous into release branch Conflicts: arch/ia64/kernel/mca.c commit f4df39cbdd9e9ab615e80148cc271db22a8508ad Merge: a49072b... a6c75b86... Author: Tony Luck Date: Thu Apr 17 10:13:57 2008 -0700 Pull nptcg into release branch Conflicts: arch/ia64/mm/tlb.c commit a49072bb367a94a9af6c6a6dcbaa1dc5617d7fa0 Merge: fc494d6... 31a6b11... Author: Tony Luck Date: Thu Apr 17 10:13:09 2008 -0700 Pull kvm-patches into release branch commit fc494d6c1825de37f04abe147741d50be08403ab Merge: 78514c1... 2c6e6db... Author: Tony Luck Date: Thu Apr 17 10:12:55 2008 -0700 Pull percpureserve into release branch commit 78514c106b90b628a90c630a3bc87a6538aed865 Merge: 14d0647... 4cd8dc8... Author: Tony Luck Date: Thu Apr 17 10:12:44 2008 -0700 Pull regset into release branch commit 14d0647c98f52e2d76113d44de6b771ec87a934f Merge: 2a467d5... b64f34c... Author: Tony Luck Date: Thu Apr 17 10:12:27 2008 -0700 Pull virt-cpu-accounting into release branch commit 2a467d5f7d6bdc90c365db167a10022dd8351894 Merge: 4b119e2... 4fe01c6... Author: Tony Luck Date: Thu Apr 17 10:12:07 2008 -0700 Pull fsys_gettimeofday into release branch commit 77ad386e596c6b0930cc2e09e3cce485e3ee7f72 Author: Ingo Molnar Date: Fri Mar 21 15:23:19 2008 +0100 x86: standalone trampoline code move the trampoline setup code out of smpboot.c - UP kernels can have suspend support too. Signed-off-by: Ingo Molnar commit e44b7b7525ad9d43163ab5e60c784325419e0ea6 Author: Pavel Machek Date: Thu Apr 10 23:28:10 2008 +0200 x86: move suspend wakeup code to C Move wakeup code to .c, so that video mode setting code can be shared between boot and wakeup. Remove nasty assembly code in 64-bit case by re-using trampoline code. Stack setup was fixed to clear high 16bits of %esp, maybe that fixes some machines. .c code sharing and morse code was done H. Peter Anvin, Sam Ravnborg reviewed kbuild related stuff, and it seems okay to him. Rafael did some cleanups. [rjw: * Made the patch stop breaking compilation on x86-32 * Added arch/x86/kernel/acpi/sleep.h * Got rid of compiler warnings in arch/x86/kernel/acpi/sleep.c * Fixed 32-bit compilation on x86-64 systems * Added include/asm-x86/trampoline.h and fixed the non-SMP compilation on 64-bit x86 * Removed arch/x86/kernel/acpi/sleep_32.c which was not used * Fixed some breakage caused by the integration of smpboot.c done under us in the meantime] Signed-off-by: Pavel Machek Signed-off-by: H. Peter Anvin Reviewed-by: Sam Ravnborg Signed-off-by: Rafael J. Wysocki Signed-off-by: Ingo Molnar commit f49688d459c5eaa62db3597cbfd3cb13e361d415 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:39 2008 +0100 x86: coding style fixes to arch/x86/kernel/acpi/sleep.c Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit e223f162a1d37aeeaa6c1ee37d81cc084aa2b004 Author: Jacek Luczak Date: Thu Apr 10 21:16:41 2008 +0200 x86: setup_trampoline() - fix section mismatch warning this patch fixes section mismatch warnings (on x86_64 host) in setup_trampoline(), which was referencing __initdata variables trampoline_data and trampoline_end. Warning messages: WARNING: arch/x86/kernel/built-in.o(.cpuinit.text+0x2b6a): Section mismatch in reference from the function setup_trampoline() to the variable .init.data:trampoline_data The function __cpuinit setup_trampoline() references a variable __initdata trampoline_data. If trampoline_data is only used by setup_trampoline then annotate trampoline_data with a matching annotation. WARNING: arch/x86/kernel/built-in.o(.cpuinit.text+0x2b71): Section mismatch in reference from the function setup_trampoline() to the variable .init.data:trampoline_end The function __cpuinit setup_trampoline() references a variable __initdata trampoline_end. If trampoline_end is only used by setup_trampoline then annotate trampoline_end with a matching annotation. Signed-off-by: Ingo Molnar commit df96323dfaebdf7e17cdf0656096e6ab2158ec76 Author: Jacek Luczak Date: Fri Apr 11 13:28:37 2008 +0200 x86: section mismatch fixes, #1 This patch fixes mismatch warnings in smp_checks() (in arch/x86/kernel/smpboot.c): WARNING: arch/x86/kernel/built-in.o(.text+0x11922): Section mismatch in reference from the function smp_checks() to the variable .cpuinit.data:smp_b_stepping The function smp_checks() references the variable __cpuinitdata smp_b_stepping. This is often because smp_checks lacks a __cpuinitdata annotation or the annotation of smp_b_stepping is wrong. Signed-off-by: Jacek Luczak Signed-off-by: Ingo Molnar commit 63d38198a0f57dca87e6cb79931c7bedbb7ab069 Author: Alok Kataria Date: Mon Apr 7 11:38:33 2008 -0700 x86: fix paranoia about using BIOS quickboot mechanism. > > Make sure that we clear the "shutdown status flag" in the CMOS > > register after each CPU is brought up. This fixes a problem where the > > "shutdown status flag" may remain set when a CPU is brought up after > > booting. > > btw., what problem does this result in, exactly? The shutdown status flag set to "0xA", corresponds to "JMP double word request without INT init". This JMP at reboot time is at an unintended location. And results in Triple faults in our case. Though this error at reboot can be safely ignored in a VM environment, am not sure what the effect would be on a physical system. May be it will result in a triple fault and an eventual hardware reset thus masking this BUG in the kernel. This fix just makes sure that we reset that status flag after initialization is done. Fix paranoia about using BIOS quickboot mechanism. Make sure that we clear the "shutdown status flag" in the CMOS register after each CPU is brought up. This fixes a problem where the "shutdown status flag" may remain set when a CPU is brought up after booting. Signed-off-by: Alok N Kataria Signed-off-by: Dan Arai Signed-off-by: Ingo Molnar commit 711554dbc4d5402338ce115dca0df38e9f633330 Author: Yinghai Lu Date: Mon Apr 7 11:36:39 2008 -0700 x86: print out buggy mptable print out buggy mptable, instead of skipping it quietly Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6107a7c4e2a871c37bb6c49e5e8286079f0968f9 Author: Akinobu Mita Date: Sat Apr 5 22:39:09 2008 +0900 x86: use cpu_online() Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit 7281c96f37f784d64b0241a7b082bb13bab9580b Author: Akinobu Mita Date: Sat Apr 5 22:39:08 2008 +0900 x86: use cpumask_of_cpu() Use cpumask_of_cpu() rather than the pair of cpus_clear() and cpu_set(). Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit addfc66bb55234c154bb43f0f7606bc5c9fc511d Author: Akinobu Mita Date: Sat Apr 5 22:39:07 2008 +0900 x86: remove unnecessary tmp local variable There is no reason to use obscurer name. Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit 07004b12a1199f82c016eb976f493e5b70820a1d Author: Akinobu Mita Date: Sat Apr 5 22:39:06 2008 +0900 x86: remove unnecessary memset() No need to clear the memory allocated by alloc_bootmem(). It is already filled with zero. Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit a2249cba2f1d7d06633de09c71353ae6b1567206 Author: Akinobu Mita Date: Sat Apr 5 22:39:05 2008 +0900 x86: use ioapic_read_entry() and ioapic_write_entry() Remove duplicate code by using ioapic_read_entry() and ioapic_write_entry() in io_apic_{32,64}.c Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit 9d25cb0811fd0bca2cfd80095ee7663147363f68 Author: Akinobu Mita Date: Sat Apr 5 22:39:04 2008 +0900 x86: avoid redundant loop in io_apic_level_ack_pending() If one can find an ack pending pin, there is no need to check the rest of them. Signed-off-by: Akinobu Mita Signed-off-by: Ingo Molnar commit 03056c88cf65ec8375753900246b36ae1c4b8a33 Author: Alexander van Heukelum Date: Sun Apr 6 14:47:00 2008 +0200 x86: remove superfluous initialisation in boot code. In arch/x86/boot/compressed/misc.c, the variable vidmem is the only variable that ends up in de data segment. It's also superfluous, because the first thing the code does is: if (RM_SCREEN_INFO.orig_video_mode == 7) { vidmem = (char *) 0xb0000; vidport = 0x3b4; } else { vidmem = (char *) 0xb8000; vidport = 0x3d4; } This patch removes the initialisation. Signed-off-by: Ingo Molnar commit 85bdddec5eaeb2464bf1cad6a17225416e65a8d6 Author: Alexey Starikovskiy Date: Fri Apr 4 23:43:18 2008 +0400 x86: merge mpparse_{32,64}.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit cfa08d6cc3421bb08ebaa34467107e58999a7c28 Author: Alexey Starikovskiy Date: Fri Apr 4 23:43:12 2008 +0400 x86: unify mp_register_gsi Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit c769bfee5731f2614983bd7a9079eb90514e4b9f Author: Alexey Starikovskiy Date: Fri Apr 4 23:43:06 2008 +0400 x86: unify mp_config_acpi_legacy_irqs Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 57b733e902f179dc453609db6334f8e9801cbb7a Author: Alexey Starikovskiy Date: Fri Apr 4 23:43:00 2008 +0400 x86: unify mp_register_ioapic Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 22cbb4bd12a86b80125accb77515482894ee670f Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:53 2008 +0400 x86: unify uniq_io_apic_id Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 92fd4b7abdb2b5b85d73ca0adbb6ad3f8b79f805 Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:46 2008 +0400 x86: unify smp_scan_config Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 4421b1c8b9f5da24f8c737ede2c05d399dea2015 Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:40 2008 +0400 x86: unify get_smp_config Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 62441bf1e0d5153dfb0cf8497df16deacff90789 Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:34 2008 +0400 x86: unify construct_default_ioirq_mptable Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit e950bea8bff23c14eb38dc706aadf197ed81abf4 Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:27 2008 +0400 x86: unify smp_read_mpc Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit f8924e770e048429ae13bfabe1ddad9bf1e64df7 Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:21 2008 +0400 x86: unify mp_bus_info Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 746f2244065ddfbe0c5d339e309db4d2b48f185b Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:15 2008 +0400 x86: unify arch/x86/kernel/mpparse_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 888032cd23f0244fdefdcbe265952e7831a9cacc Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:09 2008 +0400 x86: add early flags to mpparse_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 4ef81297f72655c4f4c1ae9c371453f9ca796aad Author: Alexey Starikovskiy Date: Fri Apr 4 23:42:03 2008 +0400 x86: lindent mpparse_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 31d2092eb0c23636b73d2c24c0c11b66470cef58 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:57 2008 +0400 x86: move mp_register_lapic_address to boot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit dfac2189c2e1fbb90ee83f15b5e404425754e9f4 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:50 2008 +0400 x86: move mp_register_lapic to boot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 2fe60147570231cde0d1f14711d2e34ccdf54b65 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:44 2008 +0400 x86: move up & smp variables to setup.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 350bae1d3f0d0c763c5bb9cc5fb5c363bd0086db Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:38 2008 +0400 x86: move mp_irqs to io_apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 584f734d035db5c5c07f938e464ddeeefde7ec31 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:32 2008 +0400 x86: move mp_irqs to io_apics_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 9e5c5f1dd29c86307e6b3cfa75e85d0efccc1f6b Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:26 2008 +0400 x86: move mp_ioapic_routing to boot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 9c7408f3c491b6fe990cd2dacd5471ca21760551 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:19 2008 +0400 x86: move mp_ioapics to io_apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 9f640ccbc67b7c306206502bca420a80ad15c965 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:13 2008 +0400 x86: move mp_ioapics to io_apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit ba1ce61ff226bddebd2101a29fe56b4664ef7cec Author: Ingo Molnar Date: Mon Apr 7 13:11:09 2008 +0200 x86: don't set io apic features if io-apic is not enabled, fix Signed-off-by: Ingo Molnar commit 61048c6328819b0973ef662f6d46f2e2bc753ceb Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:07 2008 +0400 x86: don't set IO APIC features if IO APIC is not enabled Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 16ecf7a47cf4f1c97189a551b001195aed550cc2 Author: Alexey Starikovskiy Date: Fri Apr 4 23:41:00 2008 +0400 x86: move x86_bios_cpu_apicid_init to smpboot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 708650afe98a50d0b280bea9dcf5f160b94ee9fb Author: Alexey Starikovskiy Date: Fri Apr 4 23:40:54 2008 +0400 x86: move x86_cpu_to_apicid_init to smpboot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 0fc0906e59df1427d194b78376d15ca48079f6bf Author: Alexey Starikovskiy Date: Fri Apr 4 23:40:48 2008 +0400 x86: move phys_cpu_present_map to setup.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 76eb41319d6ab98d17c81a8001a6d7ed9f8359ee Author: Alexey Starikovskiy Date: Fri Apr 4 23:40:41 2008 +0400 x86: move x86_cpu_to_apicid to setup.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit af926a5830079bf36253dcf3a1b75b1497fc7fd1 Author: Alexey Starikovskiy Date: Fri Apr 4 23:40:32 2008 +0400 x86: move x86_bios_cpu_apicid to io_apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit d61ecf0b53131564949bc4196e70f676000a845a Author: Ingo Molnar Date: Fri Apr 4 17:11:09 2008 +0200 x86: 4kstacks default Signed-off-by: Ingo Molnar commit f408b43ceedce49f26c01cd4a68dbbdbe2743e51 Author: Randy Dunlap Date: Tue Apr 1 15:44:01 2008 -0700 x86: fix VisualWS and Voyager kexec build failures without this patch: VOYAGER: kernel/built-in.o: In function `crash_kexec': (.text+0x28588): undefined reference to `machine_crash_shutdown' VISWS: kernel/built-in.o: In function `crash_kexec': /next-20080401/kernel/kexec.c:1074: undefined reference to `machine_crash_shutdown' make[1]: *** [.tmp_vmlinux1] Error 1 because arch/x86/kernel/reboot.c isn't built since CONFIG_X86_BIOS_REBOOT=n, so machine_crash_shutdown() isn't available. This patch does seem a small bit odd since the KEXEC help text says that kexec is independent of the system firmware. Signed-off-by: Randy Dunlap Cc: Eric Biederman Cc: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit d2b3bab63bd9999a29eb74326a7baf61901385e6 Author: Hugh Dickins Date: Thu Apr 3 23:48:29 2008 +0100 x86: MPSC should use P6 NOPs I've now noticed that the machine I call MPENTIUM4 for 32-bit kernels is called MPSC for 64-bit kernels, and in that case it still doesn't get the P6 NOPs it ought to. hpa explains that MK8 should still be excluded, so it's just a matter of including MPSC along with MPENTIUM4. Signed-off-by: Hugh Dickins Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 431ef7a2a486201967304fcc9cfc33e945626fed Author: Cyrill Gorcunov Date: Tue Apr 1 19:41:50 2008 +0400 x86: debug Store - call kfree if only we really need it We should call for kfree if only we really need it. Though it's safe to call kfree with NULL pointer passed in this code we've already tested the pointer and can eliminate the call Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 19b4e7f4e9b1c88459cf2c9b9ccaa09cb8bf854d Author: Ingo Molnar Date: Thu Apr 10 10:12:27 2008 +0200 x86: extend the scheduled bzImage symlinks removal use of the bzImage symlinks in developer scripts is still widespread, so lets extend the removal period by 2 years. These symlinks cost us near nothing. Signed-off-by: Ingo Molnar commit 13af4836b3914b23946f6a8982934e2c828c183f Author: Ingo Molnar Date: Wed Apr 2 13:23:22 2008 +0200 x86: improve default idle Signed-off-by: Ingo Molnar commit f5149a49f994e5c469ac398af7cdeb8eb612d3a4 Author: Jack Steiner Date: Sun Mar 30 21:02:07 2008 -0500 x86: support for new UV apic, fix Yinghai Lu pointed out a bug in the previous patches, fix double-shift of apicid. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 1725037f7232c1518b9be1832f5823b7c576c35c Author: Ingo Molnar Date: Mon Mar 31 14:52:15 2008 +0200 x86: set_cyc2ns_scale() remove prev scale Peter Zijlstra pointed out that it's unused. Signed-off-by: Ingo Molnar commit b447a468fcd130aa8951672b6115c673c274e888 Author: Mike Travis Date: Tue Mar 25 15:06:51 2008 -0700 x86: clean up non-smp usage of cpu maps Cleanup references to the early cpu maps for the non-SMP configuration and remove some functions called for SMP configurations only. Cc: Andi Kleen Cc: Christoph Lameter Signed-off-by: Mike Travis Signed-off-by: Ingo Molnar commit a24eae88ad3767d0a4a940a10e4a9cec849b7778 Author: Ingo Molnar Date: Sun Mar 30 12:17:12 2008 +0200 x86: uv fix Signed-off-by: Ingo Molnar commit ac23d4ee3f84de33c16ed7e68f9adee2386e74fb Author: Jack Steiner Date: Fri Mar 28 14:12:16 2008 -0500 x86: support for new UV apic UV supports really big systems. So big, in fact, that the APICID register does not contain enough bits to contain an APICID that is unique across all cpus. The UV BIOS supports 3 APICID modes: - legacy mode. This mode uses the old APIC mode where APICID is in bits [31:24] of the APICID register. - x2apic mode. This mode is whitebox-compatible. APICIDs are unique across all cpus. Standard x2apic APIC operations (Intel-defined) can be used for IPIs. The node identifier fits within the Intel-defined portion of the APICID register. - x2apic-uv mode. In this mode, the APICIDs on each node have unique IDs, but IDs on different node are not unique. For example, if each mode has 32 cpus, the APICIDs on each node might be 0 - 31. Every node has the same set of IDs. The UV hub is used to route IPIs/interrupts to the correct node. Traditional APIC operations WILL NOT WORK. In x2apic-uv mode, the ACPI tables all contain a full unique ID (note: exact bit layout still changing but the following is close): nnnnnnnnnnlc0cch n = unique node number l = socket number on board c = core h = hyperthread Only the "lc0cch" bits are written to the APICID register. The remaining bits are supplied by having the get_apic_id() function "OR" the extra bits into the value read from the APICID register. (Hmmm.. why not keep the ENTIRE APICID register in per-cpu data....) The x2apic-uv mode is recognized by the MADT table containing: oem_id = "SGI" oem_table_id = "UV-X" Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 570da318cf0e3053e62030253494c410a18d4be7 Author: Ingo Molnar Date: Tue Apr 8 12:20:50 2008 +0200 x86: support for new UV apic, prepare Signed-off-by: Ingo Molnar commit 8400def8252f90ecd056657c0bac806afadd8511 Author: Jack Steiner Date: Fri Mar 28 14:12:14 2008 -0500 x86: define the macros and tables for blade functions Add UV macros for converting between cpu numbers, blade numbers and node numbers. Note that these are used ONLY within x86_64 UV modules, and are not for general kernel use. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 952cf6d7ae52cc5423baa57e978e20e732a89ba6 Author: Jack Steiner Date: Fri Mar 28 14:12:13 2008 -0500 x86: define the macros and tables for the basic UV infrastructure. Define the macros and tables for the basic UV infrastructure. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 0d3e865b2644e4a2250ab25c5475a0cd0d514b7e Author: Jack Steiner Date: Fri Mar 28 14:12:11 2008 -0500 x86: add UV specific header for MMR definitions Definitions of UV MMRs. Note: this file is auto-generated by hardware design tools. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit ac049c1db72963e19b29b63c42ab8759384eef20 Author: Jack Steiner Date: Fri Mar 28 14:12:09 2008 -0500 x86: parsing for ACPI "SAPIC" table Add kernel support for new ACPI "sapic" tables that contain 16-bit APICIDs. This patch simply adds parsing of an optional SAPIC table if present. Otherwise, the traditional local APIC table is used. Note: the SAPIC table is not a new ACPI table - it exists on other architectures but is not currently recognized by x86_64. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit a65d1d644c2b65bfb99e766e7160d764b8b2bfa4 Author: Jack Steiner Date: Fri Mar 28 14:12:08 2008 -0500 x86: increase size of APICID Increase the number of bits in an apicid from 8 to 32. By default, MP_processor_info() gets the APICID from the mpc_config_processor structure. However, this structure limits the size of APICID to 8 bits. This patch allows the caller of MP_processor_info() to optionally pass a larger APICID that will be used instead of the one in the mpc_config_processor struct. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit ae261868658773538ddda829c50224e5851c2342 Author: Jack Steiner Date: Fri Mar 28 14:12:06 2008 -0500 x86: add functions to determine if platform is a UV platform Add functions that can be used to determine if an x86_64 system is a SGI "UV" system. UV systems come in 3 types and are identified by the OEM ID in the MADT. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 05f2d12c3563dea8c81b301f9f3cf7919af23b13 Author: Jack Steiner Date: Fri Mar 28 14:12:02 2008 -0500 x86: change GET_APIC_ID() from an inline function to an out-of-line function Introduce a function to read the local APIC_ID. This change is in preparation for additional changes to the APICID functions that will come in a later patch. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit a5c15d419d4b68535222b51f9054dd08d5e67470 Author: gorcunov@gmail.com Date: Fri Mar 28 17:56:56 2008 +0300 x86: replace most VM86 flags with flags from processor-flags.h Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 6b6891f9c545ccd45d6d8ddfd33ce27c22c271a7 Author: gorcunov@gmail.com Date: Fri Mar 28 17:56:57 2008 +0300 x86: cleanup - rename VM_MASK to X86_VM_MASK This patch renames VM_MASK to X86_VM_MASK (which in turn defined as alias to X86_EFLAGS_VM) to better distinguish from virtual memory flags. We can't just use X86_EFLAGS_VM instead because it is also used for conditional compilation Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 6093015db2bd9e70cf20cdd23be1a50733baafdd Author: Ingo Molnar Date: Sun Mar 30 11:45:23 2008 +0200 x86: cleanup replace most vm86 flags with flags from processor-flags.h, fix - fix build error - fix CONFIG_HEADERS_CHECK error Signed-off-by: Ingo Molnar commit f7743fe676fadac8706e7cbd0176b46d7397996d Author: Jeremy Fitzhardinge Date: Thu Mar 27 17:28:40 2008 -0700 x86: paravirt_ops: don't steal memory resources in paravirt_disable_iospace The memory resource is also used for main memory, and we need it to allocate physical addresses for memory hotplug. Knobbling io space is enough to get the job done anyway. Signed-off-by: Jeremy Fitzhardinge Cc: Rusty Russell Signed-off-by: Ingo Molnar commit fb8e8375394e1156a5a1e7ba53504b141d2365a8 Author: Jeremy Fitzhardinge Date: Thu Mar 27 17:28:39 2008 -0700 x86: sparsemem: reduce i386 PAE section size A 1G section size makes memory hotplug too coarse in a virtual environment. Retuce it by a factor of 2 to 512M. I would have liked to make it smaller, but it runs out of reserved flags in the page flags. Signed-off-by: Jeremy Fitzhardinge Cc: KAMEZAWA Hiroyuki Cc: Yasunori Goto Cc: Christoph Lameter Cc: Dave Hansen Signed-off-by: Ingo Molnar commit e937fcf2fa0c1d21f9c0008ab600d46c240a984c Author: Ingo Molnar Date: Fri Mar 28 12:33:52 2008 +0100 x86: mpparse: 64-bit fix Signed-off-by: Ingo Molnar commit 8be9ac850564a409c1238cd5f53776c340aea4dc Author: Glauber Costa Date: Thu Mar 27 14:06:04 2008 -0300 x86: merge smp_32.h and smp_64.h into smp.h Merge what's left from smp_32.h and smp_64.h into smp.h By now, they're basically extern definitions. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ecaa6c9de759259c5ba517e5442e26452d49107e Author: Glauber Costa Date: Thu Mar 27 14:06:03 2008 -0300 x86: change naming of cpu_initialized_mask for xen xen does not use the global cpu_initialized mask, but rather, a specific one. So we change its name so it won't conflict with the upcoming movement of cpu_initialized_mask from smp_64.h to smp_32.h. Signed-off-by: Glauber Costa CC: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit a9c057c1d1b1080a01004ecac54308365e167b83 Author: Glauber Costa Date: Thu Mar 27 14:06:02 2008 -0300 x86: merge SMP definitions of smp.h we merge everything that is inside CONFIG_SMP to smp.h. They differ a little bit, so we use CONFIG_X86_32_SMP and CONFIG_X86_64_SMP as markers. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 24e8ecffa84dd560e0d4d6fcaeca6950805854e7 Author: Glauber Costa Date: Thu Mar 27 14:06:01 2008 -0300 x86: split safe_smp_processor_id This implementation in x86_64 is clean and consistent, but we sacrifice it for the sake of being equal to i386 (since the other way around would be harder). Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b23dab08fa37b302a8980e4cf925f2cb94288538 Author: Glauber Costa Date: Thu Mar 27 14:06:00 2008 -0300 x86: merge includes in smp.h move all include directives from smp_{32,64}.h to smp.h. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c1fa6c977eb978e1d09867475ec59c9a5799127f Author: Glauber Costa Date: Thu Mar 27 14:05:59 2008 -0300 x86: surround apic headers in apic definitions Although those constants are always defined in x86_64, and will have the effect of just including the headers in the very way we did before, I'm doing this in a separate patch to be conservative and avoid surprises. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1b00084386878f25c2c591ad19cb625880d4089d Author: Glauber Costa Date: Thu Mar 27 14:05:58 2008 -0300 x86: merge hard/logical_smp_processor_id The code is now the same between i386 and x86_64. We already know what happens when it reaches this point: They go away from the arch-specific headers, and suddenly appears in the common header. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 2ba95bcbe68d692f549fb10809f15681a25ff6fb Author: Glauber Costa Date: Thu Mar 27 14:05:57 2008 -0300 x86: provide bogus hard_smp_processor_id We provide a bogus macro for x86_64 in case CONFIG_X86_LOCAL_APIC is not set. It will always be set for x86_64, so the effect is just to make the code equal to i386. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fe874b3edff43f9a74d9903eb3710e5e0511faf1 Author: Glauber Costa Date: Thu Mar 27 14:05:56 2008 -0300 x86: surround hard_smp_processor_id in APIC_DEFINITION APIC_DEFINITION is not defined in x86_64, so in practice, we keep our old code here. But as a nice side effect, the code is now equal to smp_32.h. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fe176de0ffdc2dd300fbcece84434a32b482b5b1 Author: Ben Castricum Date: Thu Mar 27 20:52:35 2008 +0100 x86: microcode: show results on success too Report when microcode was successfully updated. It used to be there but now with DEBUG unset it becomes very silent. Also some cosmetic fixes. Signed-off-by: Ben Castricum Signed-off-by: Ingo Molnar commit be8a5685e4cdb904e6542e741fcc3bae1becb8ee Author: Alexey Starikovskiy Date: Thu Mar 27 23:56:19 2008 +0300 x86: move generic_processor_info to apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 86cc0d916a9cc55b0b46a9b31e9379cd3c9e10dc Author: Alexey Starikovskiy Date: Thu Mar 27 23:56:12 2008 +0300 x86: move boot_cpu_physical_apicid to apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 3103623eed1a3ea4a36ee26725842a8038760648 Author: Alexey Starikovskiy Date: Thu Mar 27 23:56:06 2008 +0300 x86: move disabled_cpus to smpboot.c (64bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 7b8cbd2c2f1bf9e3090d3c3fc09330ed1ca28d25 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:59 2008 +0300 x86: move num_processors to smpboot.c (64 bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 1d8554326533568c7e9d5285600c3d0c027b45cc Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:53 2008 +0300 x86: move phys_cpu_present_map to smpboot.c (64bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 7abb3cca33fe220abaf680afcd247370749622ee Author: Ingo Molnar Date: Tue Apr 8 12:20:07 2008 +0200 x86: move phys cpu present map to smpboot.c, 64-bit, prepare Signed-off-by: Ingo Molnar commit 3f530709d907d93a4d6881e8190916028181a840 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:47 2008 +0300 x86: move mp_lapic_addr to apic_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 468e85b9594ed3000a7076f1caf27aa0cf7799fc Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:41 2008 +0300 x86: don't use MP_processor_info for ACPI mode (64bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 0e01c00c1fadd21356a6cf57d6680497256e1a01 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:34 2008 +0300 x86: separate generic_processor_info into its own function (64bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 8ccab29ca8c441ae00d878d2f0000275f430f8a5 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:28 2008 +0300 x86: don't call MP_processor_info for disabled cpu (64bit) Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 86c9835b46605fb29a3c30c6cc344d9df49e54a3 Author: Ingo Molnar Date: Fri Mar 28 11:59:57 2008 +0100 x86: mpparse, move generic processor info to apic_32.c fix Signed-off-by: Ingo Molnar commit 903dcb5a1bd0ef2b09d756f646e367cd12659b6f Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:22 2008 +0300 x86: move generic_processor_info to apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit acff5a768935f7f39e4e3be03940d70c005ffe96 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:16 2008 +0300 x86: move x86_bios_cpu_apicid to apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit fae9811b775655a02dcb51fa0b6423b546468bd1 Author: Ingo Molnar Date: Fri Mar 28 12:22:10 2008 +0100 x86: mpparse, move boot cpu physical apicid to apic_32.c, fix Signed-off-by: Ingo Molnar commit 837e0e7a7f574220c87c552cca9f425575418621 Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:10 2008 +0300 x86: move boot_cpu_physical_apicid to apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 0c254e38d294d3720588e2a1fd954d828073f1dc Author: Alexey Starikovskiy Date: Thu Mar 27 23:55:04 2008 +0300 x86: move def_to_bigsmp to setup_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 059c9640b57cb8e70c60de141ec817b450431816 Author: Ingo Molnar Date: Fri Mar 28 11:57:55 2008 +0100 x86: mpparse, move disabled cpus to smpboot.c, fix Signed-off-by: Ingo Molnar commit 53c4c793b30bbf6e1a25cab61790b18f205dd365 Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:57 2008 +0300 x86: move disabled_cpus to smpboot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 2bb9e9d7c1b03454665cd99f7d73e67139cdf2e6 Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:50 2008 +0300 x86: move num_processors to smpboot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 40014bace17ba393409fd8a4915a87e43687aac8 Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:44 2008 +0300 x86: move phys_cpu_present_map to smpboot.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 8f6e2ca9f862cb3738ad83fb18c572d8a59c0849 Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:38 2008 +0300 x86: move mp_lapic_addr to apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit e81b2c62d66068d210ddeacd77076068184d414a Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:31 2008 +0300 x86: move apic_ver array to apic_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 08bef9d337f26747b9520278872d20f15983fcda Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:20 2008 +0300 x86: don't use MP_processor_info for ACPI mode Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit c853c67690448415af2d204062028d1456f524de Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:13 2008 +0300 x86: separate generic_processor_info into its own function Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 987dd2d4d465e80e00d6a0b16787a78aa75dd66a Author: Alexey Starikovskiy Date: Thu Mar 27 23:54:06 2008 +0300 x86: don't call MP_processor_info for disabled cpu Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 2df297261903249f5ac2d3d14ededbda229397e2 Author: Alexey Starikovskiy Date: Thu Mar 27 23:53:54 2008 +0300 x86: move es7000_plat closer to its user Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 7219bebd72726c13c1eaaa3ade0e829e998fb3b1 Author: Arjan van de Ven Date: Thu Apr 17 17:41:31 2008 +0200 x86: add comments to describe the new api's in cacheflush.h The new cacheflush.h API's didn't have any comments describing how they're to be used yet and the conventions around these functions. This patch adds comments to this effect; in order for that to be a logical series, some prototypes had to move around. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar commit 0e03eb86b51b21054aea01ada1d03e9c2265dd20 Author: Dave Jones Date: Wed Mar 26 12:09:16 2008 -0400 x86: Centaur Isaiah processor to use sysenter in 64-bit compatibility mode rather than syscall Upcoming 64 bit processors from Centaur can use sysenter. Signed-off-by: Dave Jones Signed-off-by: Jesse Ahrens Signed-off-by: Ingo Molnar commit aa040b2f0693695ae393cd9b8a93055952dbf76f Author: Jeremy Fitzhardinge Date: Sat Mar 22 13:27:38 2008 -0700 x86: simplify sync_test_bit(), improve Using a naked parameterless macro could lead to other tokens being unexpectedly replaced. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 537e33136443bcd53ee13bc32a8f0fa46b1f3fdb Author: Jesper Juhl Date: Wed Mar 26 02:16:15 2008 +0100 x86 floppy: kill off the 'register' keyword from header When compilers became generally better at optimizing code than humans, the register keyword became mostly useless. For the floppy driver it certainly is since it's so slow compared to the rest of the system that optimizing access to a single variable or two isn't going to make any real difference So let's just leave it to the compiler - it'll do a better job anyway. This patch does away with a few register keywords in the x86 floppy driver. Signed-off-by: Jesper Juhl Signed-off-by: Ingo Molnar commit dd46e3ca73d136aa7f9f1813e4cbb6934c3611cc Author: Glauber Costa Date: Tue Mar 25 18:10:46 2008 -0300 x86: move apic declarations to mach_apic.h take them out of the x86_64-specific asm/mach_apic.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ab68ed98f665436601feec853c8f400d28c39e92 Author: Cyrill Gorcunov Date: Tue Mar 25 22:16:32 2008 +0300 x86: entry_32.S - use flags from processor-flags.h By including processor-flags.h we are allowed to use predefined macroses instead of keeping own ones Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 756a6c68556600aec9460346332884d891d5beb4 Author: Ingo Molnar Date: Tue Mar 25 08:31:17 2008 +0100 x86: ioremap of 64-bit resource on 32-bit kernel fix Signed-off-by: Ingo Molnar commit 5af5573ee06c361378e22a9dd71dae0320e841f7 Author: Glauber Costa Date: Tue Mar 25 13:28:56 2008 -0300 x86: move ipi definitions to mach_ipi.h take them out of the x86_64-only asm/mach_apic.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8346ea17aa20e9864b0f7dc03d55f3cd5620b8c1 Author: Andi Kleen Date: Wed Mar 12 03:53:32 2008 +0100 x86: split large page mapping for AMD TSEG On AMD SMM protected memory is part of the address map, but handled internally like an MTRR. That leads to large pages getting split internally which has some performance implications. Check for the AMD TSEG MSR and split the large page mapping on that area explicitely if it is part of the direct mapping. There is also SMM ASEG, but it is in the first 1MB and already covered by the earlier split first page patch. Idea for this came from an earlier patch by Andreas Herrmann On a RevF dual Socket Opteron system kernbench shows a clear improvement from this: (together with the earlier patches in this series, especially the split first 2MB patch) [lower is better] no split stddev split stddev delta Elapsed Time 87.146 (0.727516) 84.296 (1.09098) -3.2% User Time 274.537 (4.05226) 273.692 (3.34344) -0.3% System Time 34.907 (0.42492) 34.508 (0.26832) -1.1% Percent CPU 322.5 (38.3007) 326.5 (44.5128) +1.2% => About 3.2% improvement in elapsed time for kernbench. With GB pages on AMD Fam1h the impact of splitting is much higher of course, since it would split two full GB pages (together with the first 1MB split patch) instead of two 2MB pages. I could not benchmark a clear difference in kernbench on gbpages, so I kept it disabled for that case That was only limited benchmarking of course, so if someone was interested in running more tests for the gbpages case that could be revisited (contributions welcome) I didn't bother implementing this for 32bit because it is very unlikely the 32bit lowmem mapping overlaps into the TSEG near 4GB and the 2MB low split is already handled for both. [ mingo@elte.hu: do it on gbpages kernels too, there's no clear reason why it shouldnt help there. ] Signed-off-by: Andi Kleen Acked-by: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 1de87bd40e119d26533b5135677901990390bfa9 Author: Andi Kleen Date: Sat Mar 22 10:59:28 2008 +0100 x86: re-add rdmsrl_safe RDMSR for 64bit values with exception handling. Makes it easier to deal with 64bit valued MSRs. The old 64bit code base had that too as checking_rdmsrl(), but it got dropped somehow. Signed-off-by: Andi Kleen Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit f5c24a7fd0798d636af184cc7032e7e0cb149112 Author: Andi Kleen Date: Wed Mar 12 03:53:30 2008 +0100 x86: don't use large pages to map the first 2/4MB of memory Intel recommends to not use large pages for the first 1MB of the physical memory because there are fixed size MTRRs there which cause splitups in the TLBs. On AMD doing so is also a good idea. The implementation is a little different between 32bit and 64bit. On 32bit I just taught the initial page table set up about this because it was very simple to do. This also has the advantage that the risk of a prefetch ever seeing the page even if it only exists for a short time is minimized. On 64bit that is not quite possible, so use set_memory_4k() a little later (in check_bugs) instead. Signed-off-by: Andi Kleen Acked-by: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit c9caa02c529d5e113e40cbc77254558fcdfa4215 Author: Andi Kleen Date: Wed Mar 12 03:53:29 2008 +0100 x86: add set_memory_4k to pageattr.c Add a new function to force split large pages into 4k pages. This is needed for some followup optimizations. I had to add a new field to cpa_data to pass down the information that try_preserve_large_page should not run. Right now no set_page_4k() because I didn't need it and all the specialized users I have in mind would be more comfortable with pure addresses. I also didn't export it because it's unlikely external code needs it. Signed-off-by: Andi Kleen Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit cc6150321903ca4c3bc9d53b0cdafb05d77d64d0 Author: Andi Kleen Date: Wed Mar 12 03:53:28 2008 +0100 x86: account overlapped mappings in max_pfn_mapped When end_pfn is not aligned to 2MB (or 1GB) then the kernel might map more memory than end_pfn. Account this in max_pfn_mapped. Signed-off-by: Andi Kleen Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 67794292c8615b05f46419ba8d4fd99e7c9a5db9 Author: Thomas Gleixner Date: Fri Mar 21 21:27:10 2008 +0100 x86: replace the now useless max_pfn_mapped define Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7d1116a92d709c22e7db910724c9fcd2001b0499 Author: Andi Kleen Date: Wed Mar 12 03:53:27 2008 +0100 x86: implement true end_pfn_mapped for 32bit Even on 32bit 2MB pages can map more memory than is in the true max_low_pfn if end_pfn is not highmem and not aligned to 2MB. Add a end_pfn_map similar to x86-64 that accounts for this fact. This is important for code that really needs to know about all mapping aliases. Signed-off-by: Andi Kleen Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 41bd4eac748f39d7f3ed770fae3e595a747172bd Author: Andi Kleen Date: Tue Mar 11 02:23:21 2008 +0100 x86: move early exception handlers into init.text Currently they are in .text.head because the rest of head_64.S. .text.head is not removed as init data, but the early exception handlers should be because they are not needed after early boot of the BP. So move them over. Signed-off-by: Andi Kleen Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 749c970ae9fa43b4fcf17ac53022a953007d58f4 Author: Andi Kleen Date: Tue Mar 11 02:23:22 2008 +0100 x86: replace early exception setup macro recursion with loop The early exception handlers are currently set up using a macro recursion. There is only one user left. Replace the macro with a standard loop in place. Noop patch, just a cleanup. [ tglx@linutronix.de: simplified ] Signed-off-by: Andi Kleen Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 5524ea320d80e3ac6aeeec44216660831c76da08 Author: Andi Kleen Date: Tue Mar 11 02:23:20 2008 +0100 x86: don't set up early exception handlers for external interrupts All of early setup runs with interrupts disabled, so there is no need to set up early exception handlers for vectors >= 32 This saves some minor text size. Signed-off-by: Andi Kleen Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit 366932deb335f0b84a08463c5c912bd42ac3397a Author: gorcunov@gmail.com Date: Sun Mar 23 00:00:09 2008 +0300 x86: relocate_kernel - use predefined macroses for page attributes Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit fd3af53122e616c0ddba44a3da6d1c1877f72d29 Author: gorcunov@gmail.com Date: Sun Mar 23 00:00:08 2008 +0300 x86: relocate_kernel - use predefined macroses for processor state Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit a7bba17bf09e1c5bdbdd6c0ab0c7833baedf4653 Author: gorcunov@gmail.com Date: Sun Mar 23 00:00:07 2008 +0300 x86: relocate_kernel - use PAGE_SIZE instead of numeric constant Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 4039ae538030d1c5fc70a9c4e168a758d35b8159 Author: gorcunov@gmail.com Date: Sun Mar 23 00:00:06 2008 +0300 x86: relocate_kernel_32.S - clear register in more elegant way Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 15a601eb9cdc2a9cc69d5fc745317805a85c064c Author: Mathieu Desnoyers Date: Wed Mar 12 11:54:16 2008 -0400 x86: fix test_poke for vmalloced pages * Ingo Molnar (mingo@elte.hu) wrote: > > * Mathieu Desnoyers wrote: > > > The shadow vmap for DEBUG_RODATA kernel text modification uses > > virt_to_page to get the pages from the pointer address. > > > > However, I think vmalloc_to_page would be required in case the page is > > used for modules. > > > > Since only the core kernel text is marked read-only, use > > kernel_text_address() to make sure we only shadow map the core kernel > > text, not modules. > > actually, i think we should mark module text readonly too. > Yes, but in the meantime, the x86 tree would need this patch to make kprobes work correctly on modules. I suspect that without this fix, with the enhanced hotplug and kprobes patch, kprobes will use text_poke to insert breakpoints in modules (vmalloced pages used), which will map the wrong pages and corrupt random kernel locations instead of updating the correct page. Work that would write protect the module pages should clearly be done, but it can come in a later time. We have to make sure we interact correctly with the page allocation debugging, as an example. Here is the patch against x86.git 2.6.25-rc5 : The shadow vmap for DEBUG_RODATA kernel text modification uses virt_to_page to get the pages from the pointer address. However, I think vmalloc_to_page would be required in case the page is used for modules. Since only the core kernel text is marked read-only, use kernel_text_address() to make sure we only shadow map the core kernel text, not modules. Signed-off-by: Mathieu Desnoyers CC: akpm@linux-foundation.org Signed-off-by: Ingo Molnar commit e5699a8231593d0e11e65ccf248549935304dab1 Author: Ravikiran G Thirumalai Date: Mon Mar 24 14:48:36 2008 -0700 x86: clean up vSMP detection vSMP detection: access pci config space early in boot to detect if the system is a vSMPowered box, and cache the result in a flag, so that is_vsmp_box() retrieves the value of the flag always. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Ingo Molnar commit 43cdf5d6e0a75c1069adc8d126b97b792ff53142 Author: Jiri Slaby Date: Sat Mar 22 18:50:22 2008 +0100 x86: pgtable, document pde bits Some of pde bits weren't documented, add the short description to them. Signed-off-by: Jiri Slaby Cc: H. Peter Anvin Signed-off-by: Ingo Molnar commit 7fda20f146d5d217684ffbc37c6b6c5f82c2dffd Author: Ingo Molnar Date: Fri Feb 29 10:29:38 2008 +0100 x86: spinlock ops are always-inlined Signed-off-by: Ingo Molnar commit d93c870bad38e8daaaf9f7e900a13431f24becbb Author: Jeremy Fitzhardinge Date: Mon Mar 24 16:43:21 2008 -0700 x86: only enable interrupts when kernel state has been set up The sysenter path tries to enable interrupts immediately. Unfortunately this doesn't work in a paravirt environment, because not enough kernel state has been set up at that point (namely, pointing %fs to the kernel percpu data segment). To fix this, defer ENABLE_INTERRUPTS until after the kernel state has been set up. Unfortunately this means that we're running with interrupts disabled for a while without calling the IRQ tracing code, but that can't be called without setting up %fs either. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 687c80540975709844699d9a96070e2cf3bad39d Author: Joe Perches Date: Sun Mar 23 01:04:03 2008 -0700 include/asm-x86/xor_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 8fdf765527920e30d8fd57da3a83d6bf56799114 Author: Joe Perches Date: Sun Mar 23 01:04:02 2008 -0700 include/asm-x86/xor_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit d6ae390a0be73e6b777c6171e6b6f616462f555d Author: Joe Perches Date: Sun Mar 23 01:04:00 2008 -0700 include/asm-x86/voyager.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 8948584eb282c4dc5c54f6f6ebbaf447a665c653 Author: Joe Perches Date: Sun Mar 23 01:03:59 2008 -0700 include/asm-x86/vmi.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 9e8a935bcff6c8154eace12277e6a9d853ef790b Author: Joe Perches Date: Sun Mar 23 01:03:58 2008 -0700 include/asm-x86/vm86.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 364fe5ef4725176324ec17f8dc3fd488d615b0de Author: Joe Perches Date: Sun Mar 23 01:03:57 2008 -0700 include/asm-x86/vga.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit ac1a7b0eaa1db04143ab6132c6ce4489afbb8a18 Author: Joe Perches Date: Sun Mar 23 01:03:56 2008 -0700 include/asm-x86/vdso.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit a206ea11b665cfb5360d05367eea1e9cfd3f3c8b Author: Joe Perches Date: Sun Mar 23 01:03:55 2008 -0700 include/asm-x86/user_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit a31216194c84cfa72515db4f9365ce2c68ed5791 Author: Joe Perches Date: Sun Mar 23 01:03:54 2008 -0700 include/asm-x86/user32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 826700dc9b483d0d0de8ff4901043d54ed8b64f0 Author: Joe Perches Date: Sun Mar 23 01:03:53 2008 -0700 include/asm-x86/user_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c489f4451965f4d355340ea1e60a5863c9ed2890 Author: Joe Perches Date: Sun Mar 23 01:03:52 2008 -0700 include/asm-x86/unistd_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 687fc16b65e96d72a680291670584090207cadf8 Author: Joe Perches Date: Sun Mar 23 01:03:51 2008 -0700 include/asm-x86/unistd_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 6e714b37978bbd2c7a7eb89b4474b6c2133b7796 Author: Joe Perches Date: Sun Mar 23 01:03:50 2008 -0700 include/asm-x86/unaligned.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b896313e53344e79cc8bbc69f0a7d5c2b1735895 Author: Joe Perches Date: Sun Mar 23 01:03:49 2008 -0700 include/asm-x86/uaccess_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b1fcec7f2296c4b9126e1b85b52494ac8910d528 Author: Joe Perches Date: Sun Mar 23 01:03:48 2008 -0700 include/asm-x86/uaccess_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2d86e637d15984e363e8c3f14c8f0470b4a10a3d Author: Joe Perches Date: Sun Mar 23 01:03:47 2008 -0700 include/asm-x86/tsc.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 5d7d03b81af05f3c291b5c6be621a2b53d187e09 Author: Joe Perches Date: Sun Mar 23 01:03:46 2008 -0700 include/asm-x86/topology.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 94cf8de0a0aff39c7b7785af4fc938ecacb79b7c Author: Joe Perches Date: Sun Mar 23 01:03:45 2008 -0700 include/asm-x86/tlbflush.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b98fff30223799c5df444fef1ebcfcddf310f740 Author: Joe Perches Date: Sun Mar 23 01:03:43 2008 -0700 include/asm-x86/thread_info_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 89917f28f3377fa7e38a51e9208e83b7b92542ee Author: Joe Perches Date: Sun Mar 23 01:03:42 2008 -0700 include/asm-x86/thread_info_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7c4d4784db93496791b798e0abab1d056b192ad0 Author: Joe Perches Date: Sun Mar 23 01:03:40 2008 -0700 include/asm-x86/tce.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c5386c200f55940eeeb827df172edf2e0305f23b Author: Joe Perches Date: Sun Mar 23 01:03:39 2008 -0700 include/asm-x86/system.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 26b7fcc4bde28237a906597a809b149fb06713b0 Author: Joe Perches Date: Sun Mar 23 01:03:38 2008 -0700 include/asm-x86/sync_bitops.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit a4c2d7d9285500a9b229bb7ddc7abe0212a0dab0 Author: Joe Perches Date: Sun Mar 23 01:03:37 2008 -0700 include/asm-x86/swiotlb.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 1b17fce6078ab0672f6702097680b65124de5f05 Author: Joe Perches Date: Sun Mar 23 01:03:36 2008 -0700 include/asm-x86/suspend_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cf030ebd40e37cb11d1efa6677890f40f21e16f4 Author: Joe Perches Date: Sun Mar 23 01:03:35 2008 -0700 include/asm-x86/suspend_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 953b2f1ed6f2642e58e7c5b8c1385d132f1b5685 Author: Joe Perches Date: Sun Mar 23 01:03:34 2008 -0700 include/asm-x86/string_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 06b0f574eafdd26d325ce5ab3c38522d0cdd7b7c Author: Joe Perches Date: Sun Mar 23 01:03:33 2008 -0700 include/asm-x86/string_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7f3a9508b5778034091e00e696dc17ca98b8a84c Author: Joe Perches Date: Sun Mar 23 01:03:32 2008 -0700 include/asm-x86/srat.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit d3bf60a6e48c9a451cac345c0ad57552bb299992 Author: Joe Perches Date: Sun Mar 23 01:03:31 2008 -0700 include/asm-x86/spinlock.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit ceb7ce1052a9087bd4752424f253b883ec5e1cec Author: Joe Perches Date: Sun Mar 23 01:03:30 2008 -0700 include/asm-x86/smp_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2fec394adf9445ae6a21c5e67d9ad3f6f5b7c8d1 Author: Joe Perches Date: Sun Mar 23 01:03:29 2008 -0700 include/asm-x86/smp_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 9551b12a51bab7058ad486ba96fd0c27fdafe922 Author: Joe Perches Date: Sun Mar 23 01:03:28 2008 -0700 include/asm-x86/signal.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit af1fec15de17086864fc3917e21a31e303ec0e91 Author: Joe Perches Date: Sun Mar 23 01:03:27 2008 -0700 include/asm-x86/sigcontext.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 895b7643d6d2d04761344e18a2473255f2551e9e Author: Joe Perches Date: Sun Mar 23 01:03:26 2008 -0700 include/asm-x86/sigcontext32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 915cd5aa0adbe0f62b7a56d6eaf6908b47f80395 Author: Joe Perches Date: Sun Mar 23 01:03:25 2008 -0700 include/asm-x86/setup.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 6e5609a97acef44440f233ad435dd0ab563608f9 Author: Joe Perches Date: Sun Mar 23 01:03:21 2008 -0700 include/asm-x86/rwsem.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 0f4fc8c1dca86b519fed50be0962c8def8d3d446 Author: Joe Perches Date: Sun Mar 23 01:03:20 2008 -0700 include/asm-x86/rio.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c6fd5d49ec578e1078331b81ca09008fb361a8ba Author: Joe Perches Date: Sun Mar 23 01:03:19 2008 -0700 include/asm-x86/resume-trace.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 78db4c6be439cd446c94181c73f5e06a89a5aaf3 Author: Joe Perches Date: Sun Mar 23 01:03:18 2008 -0700 include/asm-x86/reboot.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 72f74fa25a468f40781e452f1d2528395090d55f Author: Joe Perches Date: Sun Mar 23 01:03:17 2008 -0700 include/asm-x86/ptrace.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 708c5662975518eeea04de10cb11075d48636180 Author: Joe Perches Date: Sun Mar 23 01:03:16 2008 -0700 include/asm-x86/proto.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cca2e6f87e3856953503aae2c0b8a1d5628796ef Author: Joe Perches Date: Sun Mar 23 01:03:15 2008 -0700 include/asm-x86/processor.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 4943aa4ec25ccc7161f4f4fcdd0018a4c1f6d4e8 Author: Joe Perches Date: Sun Mar 23 01:03:14 2008 -0700 include/asm-x86/posix_types_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2c5d516ca70641e26463e8d24344b515a2973c11 Author: Joe Perches Date: Sun Mar 23 01:03:13 2008 -0700 include/asm-x86/posix_types_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3cbaeafeb10e38bce6c8d4764a254260d5a564bd Author: Joe Perches Date: Sun Mar 23 01:03:12 2008 -0700 include/asm-x86/pgtable.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7f94401e439dc1137319c48dfec0285f681eb3ad Author: Joe Perches Date: Sun Mar 23 01:03:11 2008 -0700 include/asm-x86/pgtable_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 4b01fef89a10cedbae9857e76283616af3f177cd Author: Joe Perches Date: Sun Mar 23 01:03:10 2008 -0700 include/asm-x86/pgtable-3level.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cf840147d48626d5d86d617cbc5b7cddc1bcae14 Author: Joe Perches Date: Sun Mar 23 01:03:09 2008 -0700 include/asm-x86/pgtable_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 65e05d15edfdd6ecb4426894cf6e6b5ae97602e4 Author: Joe Perches Date: Sun Mar 23 01:03:08 2008 -0700 include/asm-x86/pgtable-2level.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit bc9e3be20bab447519e864c4f9e09aae82ed0376 Author: Joe Perches Date: Sun Mar 23 01:03:06 2008 -0700 include/asm-x86/percpu.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 46e1abc63e736644265e7ec2897f963a4ace5993 Author: Joe Perches Date: Sun Mar 23 01:03:05 2008 -0700 include/asm-x86/pda.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 69bdb7bcc6b9494b1738c6f6dd3fe553c9c6978e Author: Joe Perches Date: Sun Mar 23 01:03:04 2008 -0700 include/asm-x86/pci.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 565c6402db09b1d1b7623ebd629f3adf6b86feaa Author: Joe Perches Date: Sun Mar 23 01:03:03 2008 -0700 include/asm-x86/pci-direct.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3cb47d79e99ad7b3a02badd7f64fbb57a1b125b3 Author: Joe Perches Date: Sun Mar 23 01:03:02 2008 -0700 include/asm-x86/pci_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 5269354231c6e960941f6e1fd0737acc003d2353 Author: Joe Perches Date: Sun Mar 23 01:03:01 2008 -0700 include/asm-x86/parport.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 49cd740bb0b5796f34699a0f945b977f6ff34c64 Author: Joe Perches Date: Sun Mar 23 01:03:00 2008 -0700 include/asm-x86/paravirt.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit fad599854e3997a3e93559e19759a26b18c906c6 Author: Joe Perches Date: Sun Mar 23 01:02:59 2008 -0700 include/asm-x86/param.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b20a4615944a0c106fce2aecb7ea1dbc8eefc71b Author: Joe Perches Date: Sun Mar 23 01:02:58 2008 -0700 include/asm-x86/page_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 095d1c4e61d77de4b33ea3b202aa6342f69d9891 Author: Joe Perches Date: Sun Mar 23 01:02:57 2008 -0700 include/asm-x86/page_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 5f4e4b7209deb3cd7cf16ebb7bf84917e4b6682a Author: Joe Perches Date: Sun Mar 23 01:02:56 2008 -0700 include/asm-x86/numaq.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cb046eed76b7f74e619479f1aba17e74ce6f5159 Author: Joe Perches Date: Sun Mar 23 01:02:55 2008 -0700 include/asm-x86/numa_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2c4e8830414de84cc969a1f9685f4c48b91ca6e7 Author: Joe Perches Date: Sun Mar 23 01:02:54 2008 -0700 include/asm-x86/mutex_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b2347fad517f61553e03135db60def2392d9c2bc Author: Joe Perches Date: Sun Mar 23 01:02:53 2008 -0700 include/asm-x86/mutex_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 9969b4405469e12070c560ff27dbe587470fc945 Author: Joe Perches Date: Sun Mar 23 01:02:52 2008 -0700 include/asm-x86/mtrr.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit abb0ade013507c93a9a0b263bbb7b0327d7c38db Author: Joe Perches Date: Sun Mar 23 01:02:51 2008 -0700 include/asm-x86/msr.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 934902b474bdb235a273985ad4c61eb136afe11d Author: Joe Perches Date: Sun Mar 23 01:02:50 2008 -0700 include/asm-x86/msidef.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 30971e17ee484f72e081826a0bf3e489ef3b4c30 Author: Joe Perches Date: Sun Mar 23 01:02:49 2008 -0700 include/asm-x86/mpspec.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 8f08403e61a86c3179642239184aff3a5f636be1 Author: Joe Perches Date: Sun Mar 23 01:02:48 2008 -0700 include/asm-x86/mpspec_def.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 60e9bfd1bd5be433e56b050e025d3d5c91c967a8 Author: Joe Perches Date: Sun Mar 23 01:02:47 2008 -0700 include/asm-x86/mmzone_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7491d33d9ab042f3fdb9ec00054f69737dcd180f Author: Joe Perches Date: Sun Mar 23 01:02:46 2008 -0700 include/asm-x86/mmzone_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit f2334076890bbe3cddca2c053684653c614e9b48 Author: Joe Perches Date: Sun Mar 23 01:02:45 2008 -0700 include/asm-x86/mmx.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 710d0e9cce8bfcfa821c5929c1d4dbf30a660ce6 Author: Joe Perches Date: Sun Mar 23 01:02:44 2008 -0700 include/asm-x86/mmu.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c4fe760efde84e52168a81bf125f25ba2f118b51 Author: Joe Perches Date: Sun Mar 23 01:02:43 2008 -0700 include/asm-x86/mmu_context_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 55464da94a845e057ffb94a9fc7be1aa86ffcd89 Author: Joe Perches Date: Sun Mar 23 01:02:42 2008 -0700 include/asm-x86/mmu_context_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 77d511ed744f7febcd2a3444f63e6c54ac32d0c3 Author: Joe Perches Date: Sun Mar 23 01:02:41 2008 -0700 include/asm-x86/mca_dma.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 933a44155caeb4ff5b58fcf755e3381ae37e72d4 Author: Joe Perches Date: Sun Mar 23 01:02:40 2008 -0700 include/asm-x86/mc146818rtc.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 69cde6512c3a0227878869f9ba8a02cdc72fc253 Author: Joe Perches Date: Sun Mar 23 01:02:39 2008 -0700 include/asm-x86/local.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit fb444c7b25420d57ce5e31cab486f734705bd278 Author: Joe Perches Date: Sun Mar 23 01:02:37 2008 -0700 include/asm-x86/lguest.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit fd1ea0c25ae00e2ac55881af55c3206664dd59a8 Author: Joe Perches Date: Sun Mar 23 01:02:36 2008 -0700 include/asm-x86/lguest_hcall.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 0c7825e64d377409deaaf73cd6311da9df310db3 Author: Joe Perches Date: Sun Mar 23 01:02:35 2008 -0700 include/asm-x86/kvm_x86_emulate.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7d76b4d3767324fa44ac73032d6eeb428e46f004 Author: Joe Perches Date: Sun Mar 23 01:02:34 2008 -0700 include/asm-x86/kvm_host.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 864dfa13bed444d2c6d76d584e81713405d60082 Author: Joe Perches Date: Sun Mar 23 01:02:33 2008 -0700 include/asm-x86/kprobes.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b69a3f9dc0bbdbf9278ac5bc8d4b6347c11a701b Author: Joe Perches Date: Sun Mar 23 01:02:32 2008 -0700 include/asm-x86/kexec.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit f461f1372cef1853534df2115f9ff5b7fbfc6958 Author: Joe Perches Date: Sun Mar 23 01:02:31 2008 -0700 include/asm-x86/kdebug.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cf7f7191cf20011e47243b594e433275a6db811b Author: Joe Perches Date: Sun Mar 23 01:02:30 2008 -0700 include/asm-x86/irqflags.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3ff3522497d7ad383df9770e812fbaf75d19b214 Author: Joe Perches Date: Sun Mar 23 01:02:29 2008 -0700 include/asm-x86/irq_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit f4964d2ac51fcc8cd56975139422cdbb3a1e66dc Author: Joe Perches Date: Sun Mar 23 01:02:28 2008 -0700 include/asm-x86/irq_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 061b3d90bc3490af41c6756189b59713cd9ecaee Author: Joe Perches Date: Sun Mar 23 01:02:27 2008 -0700 include/asm-x86/ipi.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 5ca22aaad9ea078306537b2ef6fb788d931e8502 Author: Joe Perches Date: Sun Mar 23 01:02:26 2008 -0700 include/asm-x86/ipcbuf.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 1774a5bed33d85f250657f397b359b9837390a90 Author: Joe Perches Date: Sun Mar 23 01:02:25 2008 -0700 include/asm-x86/io.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 88b4f6e98f79de31f49036da5bb1482872d512b5 Author: Joe Perches Date: Sun Mar 23 01:02:24 2008 -0700 include/asm-x86/ioctls.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 126f5f35a36b5734026db58263fc1d60e4ae466f Author: Joe Perches Date: Sun Mar 23 01:02:23 2008 -0700 include/asm-x86/io_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit dcd215c9089c1203eed6f84dde2eb2cc0bbf9501 Author: Joe Perches Date: Sun Mar 23 01:02:22 2008 -0700 include/asm-x86/io_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 9bd73425142a610ae72c5e2b89e036e5214bb6ca Author: Joe Perches Date: Sun Mar 23 01:02:20 2008 -0700 include/asm-x86/ia32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit ace4fdbb2fa842fc557bc0ae5909d790eb335ff8 Author: Joe Perches Date: Sun Mar 23 01:02:19 2008 -0700 include/asm-x86/i8259.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit affe66374ca16572fbb22cefe267d6072c49ce9d Author: Joe Perches Date: Sun Mar 23 01:02:18 2008 -0700 include/asm-x86/i387.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit e574b023cf03f796727ea654acfc16a0df805086 Author: Joe Perches Date: Sun Mar 23 01:02:17 2008 -0700 include/asm-x86/hypertransport.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit dbdab9f6308645a4462e81c607d6282bcb27141d Author: Joe Perches Date: Sun Mar 23 01:02:16 2008 -0700 include/asm-x86/hw_irq_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b9c2fcf0eb6190f942312a6e04f91a80efb91b72 Author: Joe Perches Date: Sun Mar 23 01:02:15 2008 -0700 include/asm-x86/highmem.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 6394d982a96a4b8f7973dea1d9d5a99dbe1847f7 Author: Joe Perches Date: Sun Mar 23 01:02:14 2008 -0700 include/asm-x86/geode.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit eee28c251ed8ef2c6b66f0e08e9467a8cc5cf886 Author: Joe Perches Date: Sun Mar 23 01:02:13 2008 -0700 include/asm-x86/genapic_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 9407913fc16dde0e632b9639557422c6a792469d Author: Joe Perches Date: Sun Mar 23 01:02:12 2008 -0700 include/asm-x86/futex.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 4637bc07c85621b0c10320da8cf3b34de83efa0f Author: Joe Perches Date: Sun Mar 23 01:02:11 2008 -0700 include/asm-x86/floppy.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit dca13fb0fc89d4214090a0ae14aeeaa50c42a6c4 Author: Joe Perches Date: Sun Mar 23 01:02:10 2008 -0700 include/asm-x86/fixmap_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit cb7d0617b776b91a0643b8c5988f236414129b7d Author: Joe Perches Date: Sun Mar 23 01:02:09 2008 -0700 include/asm-x86/fixmap_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 486386f6c1b5144ccc8eb2f28def1712e1dd6c3d Author: Joe Perches Date: Sun Mar 23 01:02:08 2008 -0700 include/asm-x86/elf.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 0c6f6abf6e63227b1e6e22e412c3f63c0163a520 Author: Joe Perches Date: Sun Mar 23 01:02:07 2008 -0700 include/asm-x86/efi.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 451dd9835898d4cc3c0ee8f9e4883807b760eb02 Author: Joe Perches Date: Sun Mar 23 01:02:06 2008 -0700 include/asm-x86/edac.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 86bbc83526a4543db0a4ffed8e4cf679eddd534c Author: Joe Perches Date: Sun Mar 23 01:02:05 2008 -0700 include/asm-x86/e820_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 1257d6e0408ba21d72dc3db9ef69d7287c74507b Author: Joe Perches Date: Sun Mar 23 01:02:04 2008 -0700 include/asm-x86/e820_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c884534f7e74e017f96f81efc31f26ef2b15572e Author: Joe Perches Date: Sun Mar 23 01:02:03 2008 -0700 include/asm-x86/dwarf2_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 113cbebac7c88ce78a48801e159108ce6c9d1fb3 Author: Joe Perches Date: Sun Mar 23 01:02:00 2008 -0700 include/asm-x86/dma.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 925a09b27fc73593eb705e50e6db86c4a22091db Author: Joe Perches Date: Sun Mar 23 01:01:59 2008 -0700 include/asm-x86/div64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c1773a167defdec919b1dbfc9100054c44fd0ff5 Author: Joe Perches Date: Sun Mar 23 01:01:58 2008 -0700 include/asm-x86/desc.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b77619001e3acd228209bfdd864734cfdddb3d92 Author: Joe Perches Date: Sun Mar 23 01:01:57 2008 -0700 include/asm-x86/desc_defs.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2cade899df7d9cc9e977a24898b0bd5a6f4a8dfd Author: Joe Perches Date: Sun Mar 23 01:01:56 2008 -0700 include/asm-x86/current_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 83ecfdd0a0a065e55172889dc660c5db3c14633a Author: Joe Perches Date: Sun Mar 23 01:01:55 2008 -0700 include/asm-x86/current_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit c96a6d41aa033c03b43e5a09448bddcc971797b1 Author: Joe Perches Date: Sun Mar 23 01:01:53 2008 -0700 include/asm-x86/compat.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit e52da357a15db9e12b96b4e40dffe6b9e54bb976 Author: Joe Perches Date: Sun Mar 23 01:01:52 2008 -0700 include/asm-x86/cmpxchg_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 8121019cad7bfe61f8f626a85427aca66dfe0f1e Author: Joe Perches Date: Sun Mar 23 01:01:51 2008 -0700 include/asm-x86/cmpxchg_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3d3c6e10036dcbbe9fe7d69911f5638faecfbaeb Author: Joe Perches Date: Sun Mar 23 01:01:50 2008 -0700 include/asm-x86/checksum_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 0883e91ae209f4ada4db9b383026df77351c1320 Author: Joe Perches Date: Sun Mar 23 01:01:49 2008 -0700 include/asm-x86/checksum_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3f61b19a9f60a0469a19113be8bb3b3623006de2 Author: Joe Perches Date: Sun Mar 23 01:01:48 2008 -0700 include/asm-x86/cacheflush.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 346050952cac11b25a98c7e1743412b416827314 Author: Joe Perches Date: Sun Mar 23 01:01:47 2008 -0700 include/asm-x86/byteorder.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 86d8a08616ecbc510323bfca591816a5709c6e54 Author: Joe Perches Date: Sun Mar 23 01:01:46 2008 -0700 include/asm-x86/bug.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 286275c90f148562b973b1e1f39f9689e6676dc4 Author: Joe Perches Date: Sun Mar 23 01:01:45 2008 -0700 include/asm-x86/bitops.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 49f74946f008add0b22723244976a32b365de06f Author: Joe Perches Date: Sun Mar 23 01:01:44 2008 -0700 include/asm-x86/bitops_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit fd591acd0f0b2382e8c0a839be9974e7c019bdb6 Author: Joe Perches Date: Sun Mar 23 01:01:43 2008 -0700 include/asm-x86/bitops_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 7edb3cd6cbadb686864b8f180232e4dc69d959e8 Author: Joe Perches Date: Sun Mar 23 01:01:42 2008 -0700 include/asm-x86/atomic_64.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 78ff12eec42a4141d22dac4fdab04994384f6385 Author: Joe Perches Date: Sun Mar 23 01:01:41 2008 -0700 include/asm-x86/atomic_32.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 3c311febfa8cc240e2922931d7403a6bb7f3fa1b Author: Joe Perches Date: Sun Mar 23 01:01:40 2008 -0700 include/asm-x86/apic.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 79a4a961ef92744dd8876963690a8beb56758457 Author: Joe Perches Date: Sun Mar 23 01:01:39 2008 -0700 include/asm-x86/apicdef.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit b03aa8c6eb2d743ef4658b494dc1780e7740efc0 Author: Joe Perches Date: Sun Mar 23 01:01:38 2008 -0700 include/asm-x86/a.out-core.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 2ac1ea7ccd81f0383c6525e495a31d18fcac92db Author: Joe Perches Date: Sun Mar 23 01:01:37 2008 -0700 include/asm-x86/alternative.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 8dbeeb24e4d64a8a4bb49d54a6e4d987b9d3b6fc Author: Joe Perches Date: Sun Mar 23 01:01:36 2008 -0700 include/asm-x86/acpi.h: checkpatch cleanups - formatting only Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit d3463c5a66147bdd21b5865ea29fdca50ea28f7f Author: Ingo Molnar Date: Fri Apr 4 13:31:15 2008 +0200 undo "x86: fix breakage of vSMP irq operations" revert: "x86: fix breakage of vSMP irq operations" the irqflags.h unification will solve this in a cleaner way. Signed-off-by: Ingo Molnar commit dcfe946520719943fabd3e5ed13813956e48e37c Author: Yinghai Lu Date: Tue Apr 15 23:17:42 2008 -0700 x86: fix memtest print out Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit c64df70793a9c344874eb4af19f85e0662d2d3ee Author: Yinghai Lu Date: Fri Mar 21 18:56:19 2008 -0700 x86: memtest bootparam Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 9b967106da0357ef8b08847dce35584a04134f20 Author: Yinghai Lu Date: Fri Mar 21 15:14:07 2008 -0700 x86: fix smpboot integration > yhlu@mpk:~/xx/xx/kernel/x86/linux-2.6> git-bisect bad > d1c707188ad646c8094cac9afb1738e7d0196ff2 is first bad commit > commit d1c707188ad646c8094cac9afb1738e7d0196ff2 > Author: Glauber de Oliveira Costa > Date: Wed Mar 19 14:25:53 2008 -0300 > > x86: include mach_apic.h in smpboot_64.c and smpboot.c > > After the inclusion, a lot of files needs fixing for conflicts, > some of them in the headers themselves, to accomodate for both > i386 and x86_64 versions. > > [ mingo@elte.hu: build fix ] > > Signed-off-by: Glauber Costa > Signed-off-by: Ingo Molnar > > :040000 040000 19f574e64bb8003bbe984f3a8c1315db969dfdcd > 6ffe96588c77bc936705599fa110107856201115 M arch > :040000 040000 61269347ad4f384ed85cc87c4f2d004ed94492ac > 8f5c713da25579a3cdf63db3d4c2f795261d0521 M include > yhlu@mpk:~/xx/xx/kernel/x86/linux-2.6> > attached patch fixes that. commit 288621e32a7ae3a29c37b45297136c0264e2ff7b Author: Cyrill Gorcunov Date: Fri Mar 21 23:12:14 2008 +0300 x86: relocate_kernel - use predefined PAGE_SIZE instead of own alias This patch does clean up relocate_kernel_(32|64).S a bit by getting rid of local PAGE_ALIGNED macro. We should use well-known PAGE_SIZE instead Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 89bda4fccbd49f4b2bf59d0165391696037be856 Author: Alexey Starikovskiy Date: Fri Mar 21 20:18:17 2008 +0300 x86: use same index for processor maps Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit fa3f1f42b4efac84c459383218c20ab39e4df566 Author: Jack Steiner Date: Fri Mar 21 08:34:25 2008 -0500 x86: allow NODES_SHIFT to be a config option on x86_64 Allow the maximum number of nodes in an x86_64 system to be configurable. This patch does NOT change the default value but allows the value to be a config option. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 8434e73d9ec2aeaa86389e362b960ffba5edd9c9 Author: Jack Steiner Date: Fri Mar 21 08:31:57 2008 -0500 x86: increase max physical memory size of 64-bit Increase the maximum physical address size of x86_64 system to 44-bits. This is in preparation for future chips that support larger physical memory sizes. Signed-off-by: Jack Steiner Signed-off-by: Ingo Molnar commit 709f744f18ebc3a810d29c8d5502bf20c3cecc70 Author: Jan Beulich Date: Thu Mar 13 09:08:51 2008 +0000 x86: bitops asm constraint fixes This (simplified) piece of code didn't behave as expected due to incorrect constraints in some of the bitops functions, when X86_FEATURE_xxx is referring to other than the first long: int test(struct cpuinfo_x86 *c) { if (cpu_has(c, X86_FEATURE_xxx)) clear_cpu_cap(c, X86_FEATURE_xxx); return cpu_has(c, X86_FEATURE_xxx); } I'd really like understand, though, what the policy of (not) having a "memory" clobber in these operations is - currently, this appears to be totally inconsistent. Also, many comments of the non-atomic functions say those may also be re-ordered - this contradicts the use of "asm volatile" in there, which again I'd like to understand. As much as all of these, using 'int' for the 'nr' parameter and 'void *' for the 'addr' one is in conflict with Documentation/atomic_ops.txt, especially because bt{,c,r,s} indeed take the bit index as signed (which hence would really need special precaution) and access the full 32 bits (if 'unsigned long' was used properly here, 64 bits for x86-64) pointed at, so invalid uses like referencing a 'char' array cannot currently be caught. Finally, the code with and without this patch relies heavily on the -fno-strict-aliasing compiler switch and I'm not certain this really is a good idea. In the light of all of this I'm sending this as RFC, as fixing the above might warrant a much bigger patch... Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar commit 6e908947b4995bc0e551a8257c586d5c3e428201 Author: Ingo Molnar Date: Fri Mar 21 14:32:36 2008 +0100 x86: fix ioapic bug again un-revert: commit 4960c9df1407c2723459c60ff13e6efe0c209c62 Author: Thomas Gleixner Date: Tue Jan 22 10:23:01 2008 +0100 Revert "x86: fix NMI watchdog & 'stopped time' problem" This reverts commit d4d25deca49ec2527a634557bf5a6cf449f85deb. needs a proper fix though ... Signed-off-by: Ingo Molnar commit f2e576b8141ec1cf2669ff7bbc92f0a9c147f34f Author: Andrew Morton Date: Tue Mar 18 18:54:45 2008 -0700 i386: arch/x86/math-emu/reg_ld_str.c: fix warning arch/x86/math-emu/reg_ld_str.c:380: warning: 'l[0]' may be used uninitialized in this function arch/x86/math-emu/reg_ld_str.c:380: warning: 'l[1]' may be used uninitialized in this function I can't actually spot the bug here. There's one obvious place, but fixing that didn't shut the warning up. Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit cc7594e420283cf6070538655f1a4fbebb3fb853 Author: Andrew Morton Date: Tue Mar 18 18:46:06 2008 -0700 i386: arch/x86/math-emu/fpu_entry.c warning fix arch/x86/math-emu/fpu_entry.c:555: warning: 'entry_sel_off.empty' is used uninitialized in this function Presumably it's harmless, but I'll sleep better at night knowing that we initialised it. Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit b450e5e816d10893e17f57b3eb9d29c52635862a Author: Venki Pallipadi Date: Tue Mar 25 16:51:26 2008 -0700 x86: PAT bug fix for attribute type check after reserve_memtype, debug Make the PAT related printks in ioremap pr_debug. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar commit dee7cbb210fdd266ad81af4689bcbac3649f38ff Author: Venki Pallipadi Date: Mon Mar 24 14:39:55 2008 -0700 x86: PAT bug fix for attribute type check after reserve_memtype Bug fixes for reserve_memtype() call in __ioremap and pci_mmap_page_range(). If reserve_memtype returns non-zero, then it is an error and subsequent free is not required. Requested and returned prot value check should be done when reserve_memtype returns success. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 9307cacad0dfe3749f00303125c6f7f0523e5616 Author: Yinghai Lu Date: Mon Mar 24 23:24:34 2008 -0700 x86: pat cpu feature bit setting for known cpus Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a7c7d0e91daebd7c5e51f9416d612b6a15e7e79a Author: Ingo Molnar Date: Tue Apr 8 16:25:42 2008 +0200 x86: tom2 warning fix Signed-off-by: Ingo Molnar commit 35605a1027ac630f85a1b95684f7e86b82498cd6 Author: Yinghai Lu Date: Mon Mar 24 16:02:01 2008 -0700 x86: enable PAT for amd k8 and fam10h make known_pat_cpu to think amd k8 and fam10h is ok too. also make tom2 below to be WRBACK Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 52783fa8d6b847857fdd86df418e09c026d816f5 Author: Ingo Molnar Date: Fri Mar 21 15:42:28 2008 +0100 x86: PAT fix build fix for !CONFIG_MTRR. Signed-off-by: Ingo Molnar commit 042b78e4dbb8919a59e77ba5d502a5a14405dea1 Author: Venki Pallipadi Date: Mon Mar 24 14:22:35 2008 -0700 x86: PAT infrastructure patch, documentation updates Fix double help section in PAT Kconfig. Thanks to Randy Dunlap for catching this bug. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Ingo Molnar commit 6997ab4982a29925e79f72c3a59823cf944c3529 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:25 2008 -0700 x86: add PAT related debug prints Adds debug prints at critical code. Adds enough info in dmesg to allow us to do effective first round of analysis of any issues that may result due to PAT patch series. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit b310f381d220b2c6e3fab16e8c6e4ca13eea75b2 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:24 2008 -0700 x86: PAT add ioremap_wc() interface Introduce ioremap_wc for wc remap. (generic wrapper is in a later patch) Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit ef354af4629e5cc76a3f64fc46d452f2b56d5a59 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:23 2008 -0700 x86: PAT add set_memory_wc() interface Add a set_memory_wc interface(), similar to set_memory_uc interface. Callers has to call set_memory_uc, set_memory_wb and set_memory_wc, set_memory_wb as pairs. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 03d72aa18f15df9987fe5837284e15b9ccf6e3f8 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:19 2008 -0700 x86: PAT use reserve free memtype in pci_mmap_page_range Add reserve_memtype and free_memtype wrapper for pci_mmap_page_range. Free is called on unmap, but identity map continues to be mapped as per pci_mmap_page_range request, until next request for the same region calls ioremap_change_attr(), which will go through without conflict. This way of mapping is identical to one used in ioremap/iounmap. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 1219333dfdd488e85f08cf07881b8bc63cf92f21 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:18 2008 -0700 x86: PAT use reserve free memtype in set_memory_uc Use reserve_memtype and free_memtype interfaces in set_memory_uc/set_memory_wb interfaces to avoid aliasing. Usage model of set_memory_uc and set_memory_wb is for RAM memory and users will first call set_memory_uc and call set_memory_wb after use to reset the attribute. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit d7677d4034f040f4ce565713e0b83a31cc26f23e Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:17 2008 -0700 x86: PAT use reserve free memtype in ioremap and iounmap Use reserve_memtype and free_memtype interfaces in ioremap/iounmap to avoid aliasing. If there is an existing alias for the region, inherit the memory type from the alias. If there are conflicting aliases for the entire region, then fail ioremap. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 3a96ce8cac808fbed5493adc5c605bced28e2ca1 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:16 2008 -0700 x86: PAT make ioremap_change_attr non-static Make ioremap_change_attr() non-static and use prot_val in place of ioremap_mode. This interface is used in subsequent PAT patches. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 55c626820a82b25d7fceca702e9422037ae80626 Author: Ingo Molnar Date: Wed Mar 26 06:19:45 2008 +0100 x86: revert ucminus change Signed-off-by: Ingo Molnar commit 2e5d9c857d4e6c9e7b7d8c8c86a68a7842d213d6 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:14 2008 -0700 x86: PAT infrastructure patch Sets up pat_init() infrastructure. PAT MSR has following setting. PAT |PCD ||PWT ||| 000 WB _PAGE_CACHE_WB 001 WC _PAGE_CACHE_WC 010 UC- _PAGE_CACHE_UC_MINUS 011 UC _PAGE_CACHE_UC We are effectively changing WT from boot time setting to WC. UC_MINUS is used to provide backward compatibility to existing /dev/mem users(X). reserve_memtype and free_memtype are new interfaces for maintaining alias-free mapping. It is currently implemented in a simple way with a linked list and not optimized. reserve and free tracks the effective memory type, as a result of PAT and MTRR setting rather than what is actually requested in PAT. pat_init piggy backs on mtrr_init as the rules for setting both pat and mtrr are same. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit d27554d874c7eeb14c8bfecdc39c3a8618cd8d32 Author: venkatesh.pallipadi@intel.com Date: Tue Mar 18 17:00:13 2008 -0700 x86: PAT documentation Documentation about PAT related interfaces, intended usage and memory attribute relationship. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Suresh Siddha Signed-off-by: Ingo Molnar commit 7de6a4cdac6341807261a33896f9ab5a502a4e74 Author: Pavel Machek Date: Thu Mar 13 11:03:58 2008 +0100 x86: clean up aperture_64.c Initializing to zero is generally bad idea, I hope it is right for __init data, too. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 01561264bd1ea1d654d09babe02d784a5b150124 Author: Yinghai Lu Date: Thu Mar 20 23:57:21 2008 -0700 x86: allocate e820 resource struct all together don't need to allocate that one by one Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 272b9cad6e7a2f61b13cfcd7dde0010e02e9376e Author: Yinghai Lu Date: Thu Mar 20 23:58:33 2008 -0700 x86: early memtest to find bad ram do simple memtest after init_memory_mapping use find_e820_area_size to find all ram range that is not reserved. and do some simple bits test to find some bad ram. if find some bad ram, use reserve_early to exclude that range. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a5ae1c372dc5bbaee905bcede524d7180d22b362 Author: Cyrill Gorcunov Date: Thu Mar 13 19:44:56 2008 +0300 x86: processor.h - use PAGE_SIZE instead of numeric value This patch replaces numeric constant with an appropriate macro Also 0x800000000000UL is changed to bit shifting which is complement to the code comment (thanks hpa for notice) Signed-off-by: Cyrill Gorcunov Signed-off-by: Ingo Molnar commit 0054f4b708d21bd0032480cf7309d17753bc17bb Author: Robert P. J. Day Date: Thu Mar 13 21:47:32 2008 -0400 x86: Explicitly include required header files. After an experimental cleanup of , these files were exposed as invoking kmalloc() without including . Signed-off-by: Robert P. J. Day Signed-off-by: Ingo Molnar commit f7d909d5475bb27d261389a3902860e086b0d4c9 Author: Jan Beulich Date: Fri Mar 14 07:56:32 2008 +0000 x86: simplify sync_test_bit() There really is no need for a redundant implementation here, just keep the alternative name for allowing consumers to use consistent naming. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar commit acb5b8a2dd0f901463d075382ea548935e679f4e Author: Yakov Lerner Date: Sun Mar 16 03:21:21 2008 -0500 x86, kprobes: correct post-eip value in post_hander() I was trying to get the address of instruction to be executed next after the kprobed instruction. But regs->eip in post_handler() contains value which is useless to the user. It's pre-corrected value. This value is difficult to use without access to resume_execution(), which is not exported anyway. I moved the invocation of post_handler() to *after* resume_execution(). Now regs->eip contains meaningful value in post_handler(). I do not think this change breaks any backward-compatibility. To make meaning of the old value, post_handler() would need access to resume_execution() which is not exported. I have difficulty to believe that previous, uncorrected, regs->eip can be meaningfully used in post_handler(). Signed-off-by: Yakov Lerner Acked-by: Ananth N Mavinakayanahalli Acked-by: Masami Hiramatsu Signed-off-by: Ingo Molnar commit 0f54091051c450bab751c3ca0cb45d61a67a683b Author: Roland McGrath Date: Mon Mar 17 02:21:08 2008 -0700 x86: handle_vm86_trap cleanup Use force_sig in handle_vm86_trap like other machine traps do. Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit b00de174e3d52d9185e2e9937a6a2704c9d7d520 Author: Roland McGrath Date: Sun Mar 16 22:00:05 2008 -0700 x86: sys32_execve PT_DTRACE The PT_DTRACE flag is meaningless and obsolete. Don't touch it. Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit 48ee679a02406c65ced67c3951ad19744eb21083 Author: Roland McGrath Date: Tue Mar 18 18:23:50 2008 -0700 x86: ia32 ptrace vs -ENOSYS sysenter/syscall The previous "x86_64 ia32 ptrace vs -ENOSYS" fix only covered the int $0x80 system call entries. This does the same fix for the sysenter and syscall instruction paths. Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit a31f8dd7ee3b2f5645c220406b1e21f82971f32b Author: Roland McGrath Date: Sun Mar 16 21:59:11 2008 -0700 x86: ptrace vs -ENOSYS When we're stopped at syscall entry tracing, ptrace can change the %rax value from -ENOSYS to something else. If no system call is actually made because the syscall number (now in orig_rax) is bad, then we now always reset %rax to -ENOSYS again. This changes it to leave the return value alone after entry tracing. That way, the %rax value set by ptrace is there to be seen in user mode (or in syscall exit tracing). This is consistent with what the 32-bit kernel does. Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit 8ab32bb89b5b9bf06147c31947eba65f0f21c3c0 Author: Roland McGrath Date: Sun Mar 16 21:57:41 2008 -0700 x86: ia32 ptrace vs -ENOSYS When we're stopped at syscall entry tracing, ptrace can change the %eax value from -ENOSYS to something else. If no system call is actually made because the syscall number (now in orig_eax) is bad, then the %eax value set by ptrace should be returned to the user. But, instead it gets reset to -ENOSYS again. This is a regression from the native 32-bit kernel. This change fixes it by leaving the return value alone after entry tracing. Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit ede1389f8ab4f3a1343e567133fa9720a054a3aa Author: Adrian Bunk Date: Mon Mar 17 22:29:32 2008 +0200 x86: remove the write-only timer_uses_ioapic_pin_0 This patch removes the write-only timer_uses_ioapic_pin_0 (gsi can't be <= 15 in the line of it's fake usage in mpparse_32.c). Spotted by the GNU C compiler. Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar commit 6542fe80e6296cde50c1c3b8a9eede701ee51907 Author: Ingo Molnar Date: Fri Mar 21 09:55:06 2008 +0100 x86: vsmp fix x86 vsmp fix is vsmp box cleanup code got a bit smaller: arch/x86/kernel/vsmp_64.o: text data bss dec hex filename 205 4 0 209 d1 vsmp_64.o.before 181 4 0 185 b9 vsmp_64.o.after Signed-off-by: Ingo Molnar commit 1cb68487f5898dd97460e5b6bda9619ec3549361 Author: Ravikiran G Thirumalai Date: Thu Mar 20 00:45:08 2008 -0700 x86: apic_is_clustered_box to indicate unsynched TSC's on multiboard vSMP systems Indicate TSCs are unreliable as time sources if the platform is a multi chassi ScaleMP vSMPowered machine. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Ingo Molnar commit 9f6d8552a9cb49dc556777bbdf7ac8b3d7e18edb Author: Ravikiran G Thirumalai Date: Thu Mar 20 00:43:16 2008 -0700 x86: vSMP: use pvops only if platform has the capability to support it Re-arrange set_vsmp_pv_ops so that pv_ops are set only if the platform has capability to support paravirtualized irq ops Signed-off-by: Ravikiran Thirumalai Signed-off-by: Ingo Molnar commit aa7d8e25eca5deb33eb08013bc78a80514349b40 Author: Ravikiran G Thirumalai Date: Thu Mar 20 00:41:16 2008 -0700 x86: fix build breakage when PCI is define and PARAVIRT is not - Fix the the build breakage when PARAVIRT is defined but PCI is not This fixes problem reported at: http://marc.info/?l=linux-kernel&m=120525966600698&w=2 - Make is_vsmp_box() available even when PARAVIRT is not defined. This is needed to determine if tsc's are reliable as a time source even when PARAVIRT is not defined. - split vsmp_init to use is_vsmp_box() and set_vsmp_pv_ops() set_vsmp_pv_ops will do nothing if PCI is not enabled in the config. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Ingo Molnar commit 3250c91ada16a06de5afef55bce7b766c894d75c Author: Ravikiran G Thirumalai Date: Thu Mar 20 00:39:02 2008 -0700 x86: vSMP: Fix is_vsmp_box() is_vsmp_box() currently does not work on vSMPowered systems, as pci cfg space is not read correctly -- This patch fixes it. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Ingo Molnar commit 864205062f1c752c80077be8ec2b15c81f4a6525 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:55 2008 +0300 x86: make struct mpc_config_translation NUMAQ-only Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 0ec153af4dec8944e6da558093914a3bce4c76f9 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:48 2008 +0300 x86: remove mpc_oem_bus_info() Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit d285e338899a4ff662a17b22d3bb0e48bb1465d4 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:42 2008 +0300 x86: remove mpc_oem_pci_bus() Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 4655c7deca112bea86ca00f616f19c3717f687aa Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:36 2008 +0300 x86: remove mpc_apic_id() Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 555b07646d5bd0bcd4825e83580d5f6bb34259ea Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:30 2008 +0300 x86: rename gsi_start to gsi_base to match mpparse_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 85e46035bec6f114ad07ce8a9c70388568b1afd4 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:24 2008 +0300 x86: limit scan to 1k of EBDA. Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit ce3fe6b2bfded4f5d931c5f2f9325dc2e3fd3a74 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:17 2008 +0300 x86: use get_bios_ebda in mpparse_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit e3e3ffa20351b32b5eaa6020d051305c8d803ed4 Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:11 2008 +0300 x86: add uniq_ioapic_id to mpparse_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 857033a696996beb1cdc0d5ee5cfcfa91c8bbece Author: Alexey Starikovskiy Date: Mon Mar 17 22:08:05 2008 +0300 x86: add bad_ioapic to mpparse_32.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit d2953315c70a4783c94ae6af04f4b0aaad2f09c5 Author: Alexey Starikovskiy Date: Mon Mar 17 22:07:59 2008 +0300 x86: lindent mpparse_64.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 4cedb3343f0b087275b9a8e23fc90737881ac91c Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:14 2008 -0300 x86: remove smpboot_32.c and smpboot_64.c Remove the last leftovers from the files. Move the ones that are still used to the files they belong, the others that grep can't reach, simply throw away. Merge comments ontop of file and that's it: smpboot integrated Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit acbb67341805d3b9ef263d8cbd103a6054164491 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:13 2008 -0300 x86: move apicid mappings to smpboot.c They are i386 specific (the x86_64 definitions live elsewhere, and should remain there), so are enclosed around an ifdef Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 2cd9fb71eedffb3a208a84daff705b9da5c915e8 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:12 2008 -0300 x86: merge cpu_exit_clear this is the last remaining function in smpboot_32.c Since it is i386 specific, move it around an ifdef to smpboot.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8aef135c73436fa46fdb4dc8aba49d5539dee72d Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:11 2008 -0300 x86: merge native_smp_prepare_cpus With the previous changes, code for native_smp_prepare_cpus() in i386 and x86_64 now look very similar. merge them into smpboot.c. Minor differences are inside ifdef Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 9f3734f631267d2f36008833b62670ca342ac000 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:10 2008 -0300 x86: introduce smpboot_clear_io_apic x86_64 has two nr_ioapics = 0 statements. In 32-bit, it can be done too. We do it through the smpboot_clear_io_apic() inline function, to cope with subarchitectures (visws) that does not compile mpparse in Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 771263d31114adb5e234364a58280c876c2ed182 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:09 2008 -0300 x86: change x86_64 sanity checks to match i386. They are mostly inocuous. APIC_INTEGRATED will expand to 1, check_phys_apicid_present is checking for the same thing it was before, etc. But the code is identical to i386 now, and will allow us to integrate it. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 0df1ba8cabc6c2d613921c75e525826e6eb3210b Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:08 2008 -0300 x86: add extra sanity check This test exists in x86_64 and also applies to i386. So we add it Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1db17f553425ae679bc771d4796b7349f00cb1d9 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:07 2008 -0300 x86: change x86_64 native_smp_prepare_cpus to match i386 An APIC test is moved, and code is replaced by the mach-default already defined function (smpboot_setup_io_apic). setup_portio_remap() is added, but it is a nop in mach-default. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3fa7b3487a1317f7d3be3043dbea316ca75abed5 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:06 2008 -0300 x86: assign nr_ioapics = 0 in smpboot_hooks.h change smpboot_setup_io_apic() by to match x86_64 behaviour Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7cefaa20e798c547f569ca3f79547f820c802997 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:05 2008 -0300 x86: additions to i386 native_smp_prepare_cpus. Add function calls to native_smp_prepare_cpus in i386 to match x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e7bc8fbad4c582639334285dd1d9571578c58674 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:04 2008 -0300 x86: get rid of smp_boot_cpus This patch get rid of smp_boot_cpus(), since it does not boot any cpu anymore. Its code is split in a way to make it closer to x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit bd7b47ba5e4ced4e20bed2394c9580637d44550a Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:03 2008 -0300 x86: use physical id when disabling smp if smp configuration is not found at all, hook into 0. This is done to match x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 83f7eb9c674c1bcaad6ca258fdd7dd3b96465a62 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:02 2008 -0300 x86: merge native_smp_cpus_done They look similar enough, and are merged. Only difference (zap_low_mapping for i386) is inside ifdef Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit a8db8453ff52609b14716361651ad10d2ab66682 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:01 2008 -0300 x86: merge smp_prepare_boot_cpu it is practically the same between arches now, so it is moved to smpboot.c. Minor differences (gdt initialization) live inside an ifdef Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit bbc2ff6a91a4eef8030018cd389bb12352d11b34 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:26:00 2008 -0300 x86: integrate start_secondary It now looks the same between architectures, so we merge it in smpboot.c. Minor differences goes inside an ifdef Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit cb3c8b9003f15efa4a750a32d2d602d40cc45d5a Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:59 2008 -0300 x86: integrate do_boot_cpu This is a very large patch, because it depends on a lot of auxiliary static functions. But they all have been modified to the point that they're sufficiently close now. So they're just merged in smpboot.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c70dcb74309cedfa64f0060f4a84792e873ceb53 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:58 2008 -0300 x86: change boot_cpu_id to boot_cpu_physical_apicid This is to match i386. The former name was cuter, but the current is more meaningful and more general, since cpu_id can be a logical id. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 9d97d0da71ad6c7ceb76b4e29b02bed1ee9d4cd2 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:57 2008 -0300 x86: move stack_start to smp.h voyager would conflict with it, but the types are ultimately compatible. So remove the extern definition from voyager_smp.c in favour of the common one Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7cc3959ecd830796231f50bf5e42dc018b3694f2 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:56 2008 -0300 x86: move {un}map_cpu_to_logical_apicid to smpboot.c Move map_cpu_to_logical_apicid() and unmap_cpu_to_logical_apicid() to smpboot.c. They take together all the bunch of static functions they rely upon Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b9f9294a86fd274e4055891450033e8bc9d68f66 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:55 2008 -0300 x86: add callin tests to cpu_up Now that we boot cpus here, callin_map has this meaning (same as x86_64) Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 071782692798d7a6e0a5679f3186ea7fea49fd62 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:54 2008 -0300 x86: change wakeup_secondary name wakeup_secondary_via_INIT => wakeup_secondary_cpu. This is to match i386, where init is not always used. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f6bc40290964b5fcb48c226ccafa4b7536d62663 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:53 2008 -0300 x86: include mach_apic.h in smpboot_64.c and smpboot.c After the inclusion, a lot of files needs fixing for conflicts, some of them in the headers themselves, to accomodate for both i386 and x86_64 versions. [ mingo@elte.hu: build fix ] Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4370ee4d3b7772158174bf6f0bf08359c2ccf54b Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:52 2008 -0300 x86: call do_boot_cpu directly from native_cpu_up We don't need __smp_prepare_cpu anymore. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 6becedbb06072c5741d4057b9facecb4b3143711 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:51 2008 -0300 x86: minor adjustments for do_boot_cpu This patch provides minor adjustments for do_boot_cpus in both architectures to allow for integration Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e481fcf8563d300e7f8875cae5fdc41941d29de0 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:50 2008 -0300 x86: calibrate delay with irqs enabled We do it to make it close to x86_64. The later needs it, otherwise the nmi watchdog can get into the scene and kill us with a hammer. Enabling irqs here used to trigger a bug in i386. This is because time irq handling relies upon structures that are only initialized after smp initcalls (More precisely, it will find per_cpu(hrtimer_bases, cpu)->cb_pending list not initialized and crash) Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ac60aae561fff99d38beba82d84277b12437c05e Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:49 2008 -0300 x86: provide an end_local_APIC_setup function It splits setup_local_APIC in two, providing a function corresponding to the ending part of it. As a side effect, smp_callin looks the same between i386 and x86_64. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit df7939ae8bee101d9d79d104e17f14b60845cf0f Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:48 2008 -0300 x86: wrap esr setting up in i386 in lapic_setup_esr it is a little bit more complicated than x86_64 due to erratas and other stuff, but its existance will ease integration Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ea0cadbfed09674bcc2b3e1e7f2d7317ddde4e95 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:47 2008 -0300 x86: modify smp_callin in x86_64 to look like i386 We introduce empty macros just to make them look like the same Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4c07ad6950c2c7077c6d60a3ce83fdbbb553bd65 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:46 2008 -0300 x86: don't span a new worker in __smp_prepare_cpu We can do it now that do_boot_cpu has its own worker. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 365c894c65b98da944992199ea24206f531674de Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:45 2008 -0300 x86: use create_idle struct in do_boot_cpu Use a new worker, with help of the create_idle struct to fork the idle thread. We now have two workers, the first of them triggered by __smp_prepare_cpu. But the later is going away soon. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ddd10ecfa231c88382fc2f10a3120d2ad8e92381 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:44 2008 -0300 x86: get rid of commenced mask. As we now boot cpus from cpu_up, we don't need it. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 9713277607f9eac7d655c6854dd92bc2ce1b6f02 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:43 2008 -0300 x86: boot cpus from cpu_up, instead of prepare_cpus After all the infrastructure work, we're now prepared to boot the cpus from cpu_up, and not from prepare_cpus. So the difference between cold boot and hotplug is effectively over, and the functions are used to the purposes they're meant to. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit d2bcbad5f3ad38a1c09861bca7e252dde7bb8259 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:42 2008 -0300 x86: do not zap_low_mappings in __smp_prepare_cpus It was okay when cpus were cold booted before this point. But with the new state machine, they will not have arrived to the trampoline yet. zapping low mappings will have the bad effect of breaking it completely after paging enablement Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 802b8133b4f78c30a2668d142d78861e27c0c6a7 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:41 2008 -0300 x86: schedule work only if keventd is already running Only call schedule_work if keventd is already running. This is already the way x86_64 does Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e7f8b14e028f7a2f9e5c83c17164aeeeb9c61f17 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:39 2008 -0300 x86: don't initialize sibling and core maps during preparation it is redundant, since it is already done by set_cpu_sibling_map() Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 50e440aa5323860d9e5960143b720e461ed0c582 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:38 2008 -0300 x86: call nmi_watchdog_default in i386 this does not exist, so it will be an empty macro Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4626df1801dc03de42f1c155417393b91c8f5d97 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:37 2008 -0300 x86: call check_nmi_watchdog explicitly in native_smp_cpus_done With this, remove its late_initcall marker from nmi_32.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 6d60cd5359e261cad1e519e77ca733c05c2f8025 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:36 2008 -0300 x86: unify nmi_32.h and nmi_64.h Two more files goes away. nmi_64.h and nmi_32.h gives birth to nmi.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e32ede19ac64b5cd896e6d28aa51d34887791ab2 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:35 2008 -0300 x86: wipe get_nmi_reason out of nmi_64.h use mach_traps when it is supposed to be used. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3cf19f31d967da2c1279142d4dbafe18f521a1bf Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:34 2008 -0300 x86: don't set maps in native_smp_prepare_boot_cpu() By this time, they are already set in init routines Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 17c9ab1eabcc08794064a6e3232ac421664c9ce1 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:33 2008 -0300 x86: move smp_intr_init away from smpboot_32.c We move it to apic_32.c, since it's irq related anyway, and only called from that file. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit eb44d0a2a9c4d64ed89044fcf1f75e6a27c42ea7 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:32 2008 -0300 x86: include smpboot_hooks.h in smpboot_64.c We do it and also fix conflicts, which makes x86_64 automatically closer to i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8d77010f8c93b4d41ffd71c7ad9d07fc1668cd5a Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:31 2008 -0300 x86: include mach_wakecpu.h in smpboot_64 Do it and also fix conflicts, which automatically makes x86_64 look closer to i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ee09efc3e4173632471d2dff6ca42e21930c94fe Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:30 2008 -0300 x86: add subarch support (for headers) to x86_64 this patch allows x86_64 to use subarch mach_ headers in practice, since x86_64 does not have any subarch, it will use mach_default. But it will allow for substantially less code duplication Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f68e00a32b4f5a2881c3a39d71cc2c22e92f1d99 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:29 2008 -0300 x86: move impress_friends and smp_check to cpus_done the cpu count is changed accordingly: now, what matters is online cpus. Also, we add those functions for x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 693d4b8a6429af7f2029df20a59e22f4d752e141 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:28 2008 -0300 x86: do smp tainting checks in a separate function It will ease integration for x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 904541e2f76bc3efe4cc9978b7adb3323ea8607e Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:27 2008 -0300 x86: allow user to impress friends. Impressing friends is a very important thing. Do it in a separate function to make it even more explicit, and ease integration. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e1a14d0c1391627d869c0f97bb5e2382bf36d8dc Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:26 2008 -0300 x86: get rid of cpucount weighting a map will do. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1161705bd66df0c80fa45e87190e456c02e6f145 Author: Ingo Molnar Date: Wed Mar 19 20:26:15 2008 +0100 x86: fill cpu to apicid and present map in mpparse, fix Signed-off-by: Ingo Molnar commit a6c422ccdb57924bd20ae408dba8e9db01d09677 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:25 2008 -0300 x86: fill cpu to apicid and present map in mpparse This is the way x86_64 does, and complement the already present patch that does the bios cpu to apicid mapping here Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 73bf102b1cadc53d418df02ba687769a9f916a6d Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:24 2008 -0300 x86: fill bios cpu to apicid maps We fill the per-cpu (or array) that maps bios cpu id to apicid in mpparse_32.c, the way x86_64 does Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4fe29a85642544503cf81e9cf251ef0f4e65b162 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:23 2008 -0300 x86: use specialized routine for setup per-cpu area We use the same routing as x86_64, moved now to setup.c. Just with a few ifdefs inside. Note that this routing uses prefill_possible_map(). It has the very nice side effect of allowing hotplugging of cpus that are marked as present but disabled by acpi bios. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fbac7fcbadc54cc5d374873a2e60e924a056d198 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:22 2008 -0300 x86: fix alloc_bootmem_pages_node macro missing a semicolon Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 04d1dd20f64f2b41baf5c01f57c574ca942ab4eb Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:21 2008 -0300 x86: make node to apic mapping declarations unconditional Instead of declaring them inside of X86_64 ifdef, do it unconditionally Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ccf82085ee32c9b171183d8042e8a6e2776ec628 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:20 2008 -0300 x86: initialize map pointers in setup_32.c this will serve as a reference as to whether or not to use the per_cpu variables in mpparse. Done the same way as x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit cbe879fc6c77b5751a91167654b75a39421d0f3f Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:19 2008 -0300 x86: define bios to apicid mapping This mapping already exists in x86_64, just provide it for i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7e1efc0cde2a266fc31932ea7aed4bb20f524544 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:18 2008 -0300 x86: unify extern masks declaration take them off smp_{32,64}.h and move to smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8154fa3740d2bbc64aa46e75bcccb71dd82280d3 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:17 2008 -0300 x86: move assignment of CPU_PREPARE before do_boot_cpu Done to match x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f3ce4466abd6f5173db98b5cc2269c139cd1790a Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:16 2008 -0300 x86: make __smp_prepare_cpu void We have already removed the only condition that could fail here. so just don't test for any return value Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f915d7f46b84192a19647c8e6b111a7e518875cb Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:15 2008 -0300 x86: do tests before do_boot_cpu in i386 Do tests before do_boot_cpu in native_cpu_up for i386. Tests are a little bit broader than originally, and are the same as x86_64. Test for smp_callin is not applicable right now and is deferred. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b675f11127291cdb6a090ece289e4f9a0b1d609e Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:14 2008 -0300 x86: isolate logic to disable smp Put it in a disable_smp() function, as x86_64 does Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4780b261e2b71ca72804b26479d794839e68d9ab Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:13 2008 -0300 x86: isolate sanity checking Isolate all sanity checking in a smp_sanity_check() function as x86_64 does. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fa8004d8e0c2ba21a44bdc95c44c6c5267a991ec Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:12 2008 -0300 x86: add barriers statement goal is to have i386 and x86_64 closer, so we add barriers to match Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 148a30f8cf2ac72b7ea6e5c8971fad8d80ec3879 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:11 2008 -0300 x86: use APIC_INTEGRATED tests in x86_64 This patch does not change the behaviour of x86_64, since APIC_INTEGRATED is always defined as (1). But the code now matches exactly i386 version (well, this part of the code, at least) Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ac56ef61a1f65aaf1cb31dca2a407322c5f0a4dd Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:10 2008 -0300 x86: provide APIC_INTEGRATED definition for x86_64 it is always integrated, so define as 1. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 5733f627498121870b081b7ab73ffba01348f8cd Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:09 2008 -0300 x86: move state update out of ipi_lock it does not need to be inside lock. Do the way i386 does. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8f15b82e22779fd44baeb78515c9c154b407eff0 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:08 2008 -0300 x86: move setup_secondary_clock a little bit down in the function This is done so we call setup_secondary_clock() in the same place x86_64 does. A separate patch for this is appearantly not needed. But clock initialization is such a delicate thing, that it's safer to do this way Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3ff8171feecfcdee46be7d6e92259debe46ac87f Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:07 2008 -0300 x86: don't call local_irq_enable before entering idle the call to idle is guaranteed to do it. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3b22ec7b13cb31e0d87fbc0aabe14caaaad309e8 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:06 2008 -0300 x86: always enable irqs when entering idle This matches x86_64 behaviour, which is a superior one IMHO Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1d89a7f072d4f76f0538edfb474d527066ee7838 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:05 2008 -0300 x86: merge smp_store_cpu_info now that it is the same between arches, put it into smpboot.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f7401f7fe653f90f8f80a241840b9b499779e87d Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:04 2008 -0300 x86: call identify_secondary_cpu in smp_store_cpu_info Call it conditionally for secondary cpus. This behaviour matches i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 5745abfe86841a97fbe9e3f1e4f881a01b0c5f5b Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:03 2008 -0300 x86: use identify_boot_cpu Call this function instead of identify_cpu in bugs_64.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7a636af66404766df60acff88c475df8e8d79347 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:02 2008 -0300 x86: provide specialized identification routines for x86_64 provide two specialized identify_secondary_cpu() and identify_boot_cpu() routines for x86_64. Although not strictly needed, they are functionally correct, and will ease integration with i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 4f3ab1959a63a2686524f17665d799fac28eb271 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:01 2008 -0300 x86: decouple call to print_cpu_info from smp_store_cpu_info This will ease integration with i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 82389871b89467b4478e02d13be2f776e0138b5b Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:25:00 2008 -0300 x86: add an smp_apply_quirks to smpboot_32.c The split of smp_store_cpu_info in a quirks-only part will ease integration with x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit d0173aeac4f7fa90a63319b817bd207bdc0ac87e Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:24:59 2008 -0300 x86: use start_ipi_hook in x86_64 It is used to match i386. The definition for the non-paravirt case is moved to smp.h instead of smp_32.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1af8a0c1b3b85b1007f49917ea6a351b7aeb7562 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:24:58 2008 -0300 x86: use apic_*_around instead of apic_write in x86_64 This patch replaces apic_read() for apic_read_around() and apic_write for apic_write_around() in smpboot_64.c We do it to have a common usage between x86_64 and i386. In the former, it will always simply expand to apic_write Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit ba10485c2f5a9482d93b095960cbe7d865d59e04 Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:24:57 2008 -0300 x86: add loglevel to printks Add loglevel facilities to printks in __inquire_remote_apic. the levels are the ones to match x86_64 ones. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 26c6b5ea5575a5a4886dc45f889e7b783641f2de Author: Glauber de Oliveira Costa Date: Wed Mar 19 14:24:56 2008 -0300 x86: change var types in __inquire_remote_apic change some variables' types in __inquire_remote_apic to match x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit b552da8740222c35bcd83c9be7b27185bfb6d53c Author: Pavel Machek Date: Wed Mar 19 15:58:11 2008 +0100 x86 iommu: add more documentation Fix coding style in pci-dma_64.c and add stubs for documentation. I hope someone fills the rest, I understand maybe off and soft... Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 037cab07e9515149fecc2274775807f06ea6b036 Author: Alexey Starikovskiy Date: Tue Mar 11 22:55:48 2008 +0300 x86: move mp_bus_id_to_node to numa.c Signed-off-by: Ingo Molnar commit e129cb490e842753b43af7aae136935fc0928dc8 Author: Alexey Starikovskiy Date: Tue Mar 11 22:55:42 2008 +0300 x86: move mp_bus_id_to_local to numa.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit c0a282c251181aa423d4831719613b8286b5b839 Author: Alexey Starikovskiy Date: Thu Mar 20 14:55:02 2008 +0300 x86: make mp_bus_id_to_type optional [ mingo@elte.hu: fix boot regression. ] Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 9e0a2de2684372f16130b753efdbf226a997efb0 Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:56 2008 +0300 x86: rearrange bus_type parse Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 643befed1090af5f0000297ce11fa23e2777f42b Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:49 2008 +0300 x86: use not_pci bitmap #6 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 9c0076cb34a0ea968413d9a1ccb6c7c850d3a1ee Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:43 2008 +0300 x86: use not_pci bitmap #5 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 6728801dce13f83ee7e1778b137ceebab61b71c4 Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:36 2008 +0300 x86: use not_pci bitmap #4 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 47cab822d6b25d8e130da00edef91ec3eef0efab Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:30 2008 +0300 x86: use not_pci bitmap #3 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 73b2961bfa003518bb9cdd3c4003fad4d474ec13 Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:24 2008 +0300 x86: use not_pci bitmap #2 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit d27e2b8e2ac34b62aca95d3cd7efe9708b718fde Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:18 2008 +0300 x86: use not_pci bitmap #1 Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit a6333c3ccbdc0ae001cff6ee1d3633942ef763f4 Author: Alexey Starikovskiy Date: Thu Mar 20 14:54:09 2008 +0300 x86: add mp_bus_not_pci bitmap to mpparse_32.c Signed-off: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 8643f9d02a7bb9db74634b4c062d8e70ce7c59b9 Author: Yinghai Lu Date: Tue Feb 19 03:21:06 2008 -0800 x86: get boot_cpu_id as early for k8_scan_nodes When acpi=off or there is no SRAT defined, apicid_to_node is got from K8 Northbridge PCI configuration space in k8_scan_nodes() in arch/x86_64/mm/k8toplogy.c. The problem is that it assumes bsp apic id is 0 at that point. For four socket system with Quad core cpus installed, all cpus apic id is offset by 4, and bsp apic id is 4. For eight socket system with dual core cpus installed, all cpus apic id is offset by 2, and bsp apic id is 2. We need get boot_cpu_id --- bsp apic id, before k8_scan_nodes by called. So create early_acpi_boot_init and early_get_smp_config for get boot_cpu_id. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 6079d2d5d11122eb52721f0f3c828952a490e6c1 Author: Alexey Starikovskiy Date: Tue Mar 11 19:45:48 2008 +0300 x86: move quad_local_to_mp_bus_id to numa.c Signed-off-by: Alexey Starikovskiy Signed-off-by: Ingo Molnar commit 5d570cbbf25a62e9c077f5b351fb142dbfc67288 Author: Mikael Pettersson Date: Tue Mar 11 16:43:31 2008 +0100 x86: correct/clarify comment in nops.h describes certain multibyte instructions as "generic" nops when in fact they aren't nops at all in 64-bit mode (missing REX.W causing truncation of a register). Update the comment to state that K8 or P6 style nops should be used in 64-bit mode. This matches what the alternatives code does. Signed-off-by: Mikael Pettersson Signed-off-by: Ingo Molnar commit 1415d160c7f7fe8f1026735d5b6cc19aec7a367f Author: Johannes Weiner Date: Mon Mar 10 21:10:57 2008 +0100 x86: Remove redundant display of free swap space in show_mem() Signed-off-by: Johannes Weiner Signed-off-by: Ingo Molnar commit 5b0e508415a83989fe704b4718a1a214bc333ca7 Author: Jan Beulich Date: Mon Mar 10 13:11:17 2008 +0000 x86: prevent unconditional writes to DebugCtl MSR Otherwise, enabling (or better, subsequent disabling) of single stepping would cause a kernel oops on CPUs not having this MSR. The patch could have been added a conditional to the MSR write in user_disable_single_step(), but centralizing the updates seems safer and (looking forward) better manageable. Signed-off-by: Jan Beulich Cc: Markus Metzger Signed-off-by: Ingo Molnar commit f694010185c429629ad5a65245da08103e611852 Author: Gautham R Shenoy Date: Mon Mar 10 17:44:03 2008 +0530 x86: Don't send RESCHEDULE_VECTOR to offlined cpus In the x86 native_smp_send_reschedule_function(), don't send the IPI if the cpu has gone offline already. Warn nevertheless!! Signed-off-by: Gautham R Shenoy Signed-off-by: Ingo Molnar commit 12db648c1518b2627cc983199a97ec6f5d6a1de2 Author: stephane eranian Date: Fri Mar 7 13:05:39 2008 -0800 x86: add AMD Northbridge MSR definition adds AMD Northbridge config MSR definition Signed-off-by: Stephane Eranian Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar commit 86975101e46ec93be972d8f46715aa6273102545 Author: stephane eranian Date: Fri Mar 7 13:05:27 2008 -0800 x86: add cpu_has_arch_perfmon adds cpu_has_arch_perfmon to test presence of architectural perfmon on Intel x86 processor Signed-off-by: Stephane Eranian Signed-off-by: Ingo Molnar commit e40c0fe6b0b5dd16aec3c0dad311d36b19d78fd9 Author: Joe Perches Date: Sun Mar 9 12:35:00 2008 -0700 x86: cleanup duplicate includes Signed-off-by: Joe Perches arch/x86/kernel/reboot.c | 1 - include/asm-x86/elf.h | 5 ++--- include/asm-x86/posix_types.h | 8 +------- include/asm-x86/processor.h | 3 +-- include/asm-x86/unistd.h | 8 +------- 5 files changed, 5 insertions(+), 20 deletions(-) Signed-off-by: Ingo Molnar commit 537d916066f66de18dbca79adf82933cd12d2a36 Author: Paolo Ciarrocchi Date: Fri Mar 7 19:26:26 2008 +0100 x86: coding style fixes to arch/x86/kernel/setup_32.c Fix: ERROR: do not initialise externals to 0 or NULL Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 9a79cf9c1aa671325fa5ba37576c2cee23823d04 Author: Yinghai Lu Date: Fri Mar 7 19:17:55 2008 -0800 x86: sort address_markers for dump_pagetables otherwise Vmemmap and High Kernel Mapping string is not showing up. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 01aaea1afbcdb7c49fe4a567ebe3e295db9f720d Author: Yinghai Lu Date: Thu Mar 6 13:46:39 2008 -0800 x86: introduce initial apicid store initial_apicid from early identify. it is could be different from phys_proc_id later. also print it out in /proc/cpuinfo. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 459cce726730ca0ac93701e53aa1d0d055ce9e90 Author: Ingo Molnar Date: Thu Mar 6 18:38:52 2008 +0100 x86: remove mach_reboot.h all reboot details are handled in reboot.c and quirks are handled via reboot_fixups_32.c. Signed-off-by: Ingo Molnar commit 4e4eee0e0139811b36a07854dcfa9746bc8b16d3 Author: Mathieu Desnoyers Date: Sat Feb 2 15:42:20 2008 -0500 x86: enhance DEBUG_RODATA support for hotplug and kprobes Standardize DEBUG_RODATA, removing special cases for hotplug and kprobes. Signed-off-by: Mathieu Desnoyers Cc: Andi Kleen Cc: pageexec@freemail.hu Cc: akpm@linux-foundation.org CC: Andi Kleen CC: pageexec@freemail.hu CC: H. Peter Anvin Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e587cadd8f47e202a30712e2906a65a0606d5865 Author: Mathieu Desnoyers Date: Thu Mar 6 08:48:49 2008 -0500 x86: enhance DEBUG_RODATA support - alternatives Fix a memcpy that should be a text_poke (in apply_alternatives). Use kernel_wp_save/kernel_wp_restore in text_poke to support DEBUG_RODATA correctly and so the CPU HOTPLUG special case can be removed. Add text_poke_early, for alternatives and paravirt boot-time and module load time patching. Changelog: - Fix text_set and text_poke alignment check (mixed up bitwise and and or) - Remove text_set - Export add_nops, so it can be used by others. - Document text_poke_early. - Remove clflush, since it breaks some VIA architectures and is not strictly necessary. - Add kerneldoc to text_poke and text_poke_early. - Create a second vmap instead of using the WP bit to support Xen and VMI. - Move local_irq disable within text_poke and text_poke_early to be able to be sleepable in these functions. Signed-off-by: Mathieu Desnoyers CC: Andi Kleen CC: pageexec@freemail.hu CC: H. Peter Anvin CC: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit 77bf90ed66116a1fc0e2f0554ecac75a54290cc0 Author: Harvey Harrison Date: Mon Mar 3 11:37:23 2008 -0800 x86: replace remaining __FUNCTION__ occurances __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Ingo Molnar commit 282bfe21cf0e2af9eac052c89bcc0a5ace80352f Author: Yinghai Lu Date: Thu Mar 6 01:13:34 2008 -0800 x86: show apicid for cpu in proc Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit a7062211865efb53cda253d6e33a106f0fe20ebe Author: Yinghai Lu Date: Thu Mar 6 01:11:11 2008 -0800 x86: fix amd_detect_cmp for system with apicid lifting, boot cpu apicid will be 4 got: CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 512K (64 bytes/line) CPU 0/4 -> Node 0 CPU: Physical Processor ID: 1 CPU: Processor Core ID: 0 so try to offset apicid back before get phys_proc_id with bits shift. then we can get correct socket ID also remove remove cpu_data(0) reference. because cpu_data(0) only be ready after smp_prepare_cpus with the assignment from boot_cpu_data to current_cpu_data aka cpu_data(0). and check_bugs()==>identify_cpu(&boot_cpu_data) is quite before than smp_prepare_cpus. So just use boot_cpu_id instead. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 97b44ae6cd8117212d41bedc433b5571ee3b79d9 Author: Ingo Molnar Date: Thu Mar 6 10:43:17 2008 +0100 x86: add KERN_INFO to show_unhandled_signals printout Before: total: 0 errors, 1 warnings, 678 lines checked After: total: 0 errors, 0 warnings, 678 lines checked No code changed: arch/x86/kernel/signal_32.o: text data bss dec hex filename 5333 0 4 5337 14d9 signal_32.o.before 5336 0 4 5340 14dc signal_32.o.after md5: c279e98012a2808e90cfa2a7787e42a4 signal_32.o.before.asm c279e98012a2808e90cfa2a7787e42a4 signal_32.o.after.asm Signed-off-by: Ingo Molnar commit eee6dd15723639f9270e4c561a0c82e8e18bd587 Author: Ingo Molnar Date: Thu Mar 6 10:39:07 2008 +0100 x86: move extern declaration to vdso.h Before: total: 0 errors, 3 warnings, 685 lines checked After: total: 0 errors, 1 warnings, 678 lines checked No code changed: arch/x86/kernel/signal_32.o: text data bss dec hex filename 5333 0 4 5337 14d9 signal_32.o.before 5333 0 4 5337 14d9 signal_32.o.after md5: c279e98012a2808e90cfa2a7787e42a4 signal_32.o.before.asm c279e98012a2808e90cfa2a7787e42a4 signal_32.o.after.asm Signed-off-by: Ingo Molnar commit 7e907f48980d6668f99206ba0dded40dca2d086f Author: Ingo Molnar Date: Thu Mar 6 10:33:08 2008 +0100 x86: clean up arch/x86/kernel/signal_32.c Before: total: 21 errors, 6 warnings, 665 lines checked After: total: 0 errors, 3 warnings, 685 lines checked No code changed: arch/x86/kernel/signal_32.o: text data bss dec hex filename 5333 0 4 5337 14d9 signal_32.o.before 5333 0 4 5337 14d9 signal_32.o.after md5: c279e98012a2808e90cfa2a7787e42a4 signal_32.o.before.asm c279e98012a2808e90cfa2a7787e42a4 signal_32.o.after.asm Signed-off-by: Ingo Molnar commit a7113170214b569d24e413326a56c4cc5cc1a152 Author: Ingo Molnar Date: Thu Mar 6 10:24:04 2008 +0100 x86: remove DEBUG_SIG Signed-off-by: Ingo Molnar commit c1db29dbc761e9a464b417df7d4dbbae7df81f4c Author: Joe Perches Date: Tue Mar 4 16:47:00 2008 -0800 x86: arch/x86/kernel/cpu/feature_names.c - use angle brackets for include Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit 16281a998d7340a5bee4078f6f9a26c47208eb86 Author: Joe Perches Date: Tue Mar 4 16:46:27 2008 -0800 x86: include/asm-x86/mutex_32.h - use angle brackets for include Signed-off-by: Joe Perches Signed-off-by: Ingo Molnar commit f668964ea1485c64cc9ab0721679fe9cd90cc406 Author: Ingo Molnar Date: Wed Mar 5 15:37:32 2008 +0100 x86: clean up i387.c minor coding style cleanups. Before: total: 0 errors, 3 warnings, 479 lines checked After: total: 0 errors, 1 warnings, 483 lines checked No code changed: arch/x86/kernel/i387.o: text data bss dec hex filename 2379 4 8 2391 957 i387.o.before 2379 4 8 2391 957 i387.o.after md5: e1434553a3b4ff1f52ad97a68b1fad8a i387.o.before.asm e1434553a3b4ff1f52ad97a68b1fad8a i387.o.after.asm Signed-off-by: Ingo Molnar commit ca9cda2f7b53da619fabde4c0c1bd5f61039bd5b Author: Ingo Molnar Date: Wed Mar 5 15:15:42 2008 +0100 x86: add comments to processor.h add comments to the FPU structures of processor.h. Signed-off-by: Ingo Molnar commit e104383fbf26570968cbf060955f67cd5378300a Author: Glauber Costa Date: Mon Mar 3 14:13:14 2008 -0300 x86: use cpu_relax instead of rep_nop This is done for smpboot_32.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e90009bcc1137c51d677262417f16c00ad2ce9a9 Author: Glauber Costa Date: Mon Mar 3 14:13:13 2008 -0300 x86: use wait_for_init_deassert in x86_64 wraps the busy loop for wait_for_init_deasserted() in a function, so smp_callin in x86_64 looks like more i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 91718e8d13c23bfe0aa6fa6b730c5c33ee9771bf Author: Glauber Costa Date: Mon Mar 3 14:13:12 2008 -0300 x86: unify setup_trampoline setup_trampoline() looks very similar between architectures, and this patch unifies them. The i386 version allocates bootmem memory, while the x86_64 version uses a fixed address. In this patch, we initialize the global trampoline_base to the x86_64 version, and i386 allocation can later override it. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit da522b07293756b9cb4e2c570454f95b8e79e189 Author: Glauber Costa Date: Mon Mar 3 14:13:11 2008 -0300 x86: adapt voyager's setup_trampoline make setup_trampoline non-static. This way, it won't conflict with the extern declaration in smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit d507897b2f179a9b30ce2f91b768ed2ee84575bc Author: Glauber Costa Date: Mon Mar 3 14:13:10 2008 -0300 x86: adapt voyager's trampoline_base Change voyager's trampoline base to unsigned char * instead of u32. This way, it won't conflict with the other architectures when including smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 420688293927a590d092ec76ef97c2565ae21aff Author: Glauber Costa Date: Mon Mar 3 14:13:09 2008 -0300 x86: move trampoline arrays extern definition to smp.h In here, they can serve both architectures Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 89b08200ad8bc8fb860da218c4f3bcc292bf286c Author: Glauber Costa Date: Mon Mar 3 14:13:08 2008 -0300 x86: make x86_64 accept the max_cpus parameter The parameter passing parsing is done in the common smpboot.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 69c18c15d39c4622c6e2f97e5db4d8c9c43adaaa Author: Glauber Costa Date: Mon Mar 3 14:13:07 2008 -0300 x86: merge __cpu_disable and cpu_die They are now equal, and are moved to a common file Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e9a6cb96fafa4d4df2033ab6cf9c817f6f47e052 Author: Glauber Costa Date: Mon Mar 3 14:13:06 2008 -0300 x86: do not clear cpu_online_map it was already cleared two lines above, and so, this removal is bogus Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 045f9d22029e94d6609d46f8ee07c63f4693dfb3 Author: Glauber Costa Date: Mon Mar 3 14:13:05 2008 -0300 x86: use remove_from_maps in cpu_disable it is already used in x86_64. In i386, it only removes from cpu_online_map Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fc25da9ec6c910976b76c70f7604a838679f75b2 Author: Glauber Costa Date: Mon Mar 3 14:13:04 2008 -0300 x86: remove vector_lock around cpu_online_map This lock does not protect cpu_online_map, so its length can be shortened, and in some cases, removed. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 70708a18e834fd709a4f497bb419ec84d1eb3511 Author: Glauber Costa Date: Mon Mar 3 14:13:03 2008 -0300 x86: move cpu_coregroup_map to common file it is equal between architectures Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 768d95051bdaf60b4eb89b42c133b14627f478f2 Author: Glauber Costa Date: Mon Mar 3 14:13:02 2008 -0300 x86: move sibling functions to common file set_cpu_sibling_map() and remove_sibling_info() are equal between architectures, and are now moved to common file Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1dbb4726faebe9e64a1e9cf40e3b39fffa065a65 Author: Glauber Costa Date: Mon Mar 3 14:13:01 2008 -0300 x86: move hotplug related extern definitions to smp.h definitions that are inside CONFIG_HOTPLUG_CPU in the arch-specific smp*.h files are moved to common header Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 61d5989973cc52b0ef0f781e870dfe5da6d5023e Author: Glauber Costa Date: Mon Mar 3 14:13:00 2008 -0300 x86: make remove_siblinginfo non-static this is done to match i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1452207689b3c0dd2ffed40735289a3a4a8c0c7c Author: Glauber Costa Date: Mon Mar 3 14:12:59 2008 -0300 x86: make set_cpu_sibling_map nonstatic And move its extern definition to smp.h, the common header Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit a355352b97901d987f54ea7c7d7161eb51a3799c Author: Glauber Costa Date: Mon Mar 3 14:12:58 2008 -0300 x86: move equal types to common file move definitions that are now equal in type from smpboot_{32,64}.c to smpboot.c cpu_callin_map is put temporarily in smp_64.h (already exists in smp_32.h), and will soon be merged. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 5382e89670399f9db8a58b3c6f850fa4a94f6cca Author: Glauber Costa Date: Mon Mar 3 14:12:57 2008 -0300 x86: adjust types in smpcommon_32.c so they can have the same type as x86_64 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit fe6762030ca3728d3e24b556676114a6a64a97be Author: Glauber Costa Date: Mon Mar 3 14:12:56 2008 -0300 x86: remove cpu_llc_id from processor.h it is already defined in smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 0941ecb55fbfd2d8bcc62dfd2fcaba1b35f2f196 Author: Glauber Costa Date: Mon Mar 3 14:12:55 2008 -0300 x86: get rid of smp_32.c and smp_64.c This patch merges the copyright notices, and valuable comments that were left back on smp_{32,64}.c. With that, files are empty, and are deleted Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c048fdfe6178e082be918d4062c86d9764979112 Author: Glauber Costa Date: Mon Mar 3 14:12:54 2008 -0300 x86: create tlb files this patch creates tlb_32.c and tlb_64.c, with tlb-related functions that used to live in smp*.c files. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8202350367ac11d571f6dd4c21c2027a4d235276 Author: Glauber Costa Date: Mon Mar 3 14:12:53 2008 -0300 x86: create ipi.c This patch moves all ipi and apic related functions from smp_32.c to ipi.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit f9e47a126be2eaabf04a1a5c71ca7b23a473d0d8 Author: Glauber Costa Date: Mon Mar 3 14:12:52 2008 -0300 x86: create smp.c this patch moves all the functions and data structures that look like exactly the same from smp_{32,64}.c to smp.c Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 377d698426b8c685fb6d48fe89694fe4ce3aa1f8 Author: Glauber Costa Date: Mon Mar 3 14:12:51 2008 -0300 x86: unify smp_send_stop function definition is moved to common header. x86_64 version is now called native_smp_send_stop Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 321183c145a37e6d31cc55e0f69a226f9006e621 Author: Glauber Costa Date: Mon Mar 3 14:12:50 2008 -0300 x86: add reboot_force test to native_smp_send_stop This can be safely added to i386. After that, functions look exactly the same for both arches Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3be5b49e8f1002bc562a2b4670093e4ebf27b4e9 Author: Glauber Costa Date: Mon Mar 3 14:12:49 2008 -0300 x86: make stop_this_cpu looks exactly equal in both arches with the hlt_works change, it is possible to have i386 and x86_64 stop_this_cpu() looking exactly the same. They can, after that, be merged. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3d3f487c58ef1ece714af280b29411960908149c Author: Glauber Costa Date: Mon Mar 3 14:12:48 2008 -0300 x86: provide hlt_works function. In x86_64, hlt always work. in i386, we'll query the cpuinfo associated with this cpu Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 2513926c286ca1d0d189c206966011bdd4080354 Author: Glauber Costa Date: Mon Mar 3 14:12:47 2008 -0300 x86: change x86_64 smp_call_function_mask to look alike i386 the two versions (the inner version, and the outer version, that takes the locks) of smp_call_function_mask are made into one. With the changes, i386 and x86_64 versions look exactly the same. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3a36d1e435af79ec3bc5ead871e5b22d5558ebf3 Author: Glauber Costa Date: Mon Mar 3 14:12:46 2008 -0300 x86: provide __smp_call_function This function is used in smp_send_stop(). It's like smp_call_function_mask, but always go to all online cpus, and does not take any locks. It is added to x86_64, but will soon be unified in a common file Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit e32640a2cd530e1259a06e34a72b0cdb73738ce2 Author: Glauber Costa Date: Mon Mar 3 14:12:45 2008 -0300 x86: create smpcommon.c This patch creates smpcommon.c with functions that are equal between architectures. The i386-only init_gdt is ifdef'd. Note that smpcommon.o figures twice in the Makefile: this is because sub-architectures like voyager that does not use the normal smp_$(BITS) files also have to access them Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 3428f3d6caa3bc2adde050a2771a2821eb46f901 Author: Glauber Costa Date: Mon Mar 3 14:12:44 2008 -0300 x86: remove irqs disabled warning. there's already a warning in the topmost function Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7930e53422d3d06ea873199f66c288806d37cc94 Author: Glauber Costa Date: Mon Mar 3 14:12:43 2008 -0300 x86: remove export for smp_call_function_mask. with this removal, exports for both i386 and x86_64, regarding the "smp_call_function" series are now the same. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 68a1c3f8cd893f5c3c1396fec5be7d8acac4fc93 Author: Glauber Costa Date: Mon Mar 3 14:12:42 2008 -0300 x86: move prefill_possible_map to common file this patches moves prefill_possible_map() to smpboot.c Right now it is x86_64-specific, but nothing intrinsically prevents it to be used by i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7b1292e2371e3ae2ac69fbb899d539ddc7b53a27 Author: Glauber Costa Date: Mon Mar 3 14:12:41 2008 -0300 x86: use disabled_cpus in i386 this patch allows a cpu to be marked as present but disabled in i386, just as x86_64 currently does. Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 93b016f8f393c1f8c27e8c4df06ad1420fac65f5 Author: Glauber Costa Date: Mon Mar 3 14:12:40 2008 -0300 x86: move disabled_cpus to common header disabled_cpus is (up to now) a x86_64-only contruction. But it's extern declaration can be moved to common header anyway Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c559764923dacef301116a248695856e6eb96e48 Author: Glauber Costa Date: Mon Mar 3 14:12:39 2008 -0300 x86: unify smp_cpus_done definition is moved to common header. x86_64 version is now called native_smp_cpus_done Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 7557da67208f6ed3a1073594b7597bf20c9eb63a Author: Glauber Costa Date: Mon Mar 3 14:12:38 2008 -0300 x86: unify smp_prepare_cpus definition is moved to common header. x86_64 version is now called native_smp_prepare_cpus Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 1e3fac83da056f26bcb96e13967c157de55bf2ef Author: Glauber Costa Date: Mon Mar 3 14:12:37 2008 -0300 x86: unify prepare_boot_cpu definition is moved to common header. x86_64 version is now called native_prepare_boot_cpu Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 71d195492a6e0b22135a7156af1b41c0f99a116b Author: Glauber Costa Date: Mon Mar 3 14:12:36 2008 -0300 x86: unify __cpu_up. function definition is moved to common header. x86_64 version is now called native_cpu_up Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 64b1a21e0924dca7ea3b7cf4287fa719c8ba7fc5 Author: Glauber Costa Date: Mon Mar 3 14:12:35 2008 -0300 x86: unify smp_call_function_mask definition is moved to common header, x86_64 function name now is native_smp_call_function_mask Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8678969e60d80527d96d2af0011e72c87c9c1fe5 Author: Glauber Costa Date: Mon Mar 3 14:12:34 2008 -0300 x86: merge smp_send_reschedule function definition is moved to common header, x86_64 version is now called native_smp_send_reschedule Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c76cb36846da6d5d6fb2951968869faa4fd1001d Author: Glauber Costa Date: Mon Mar 3 14:12:33 2008 -0300 x86: move smp_ops extern declaration to common header the smp_ops symbol is temporarily defined in smp_64.c, but it will soon be unified Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 16694024d6d6fa84dfcf5400b53afe1e75cebf0d Author: Glauber Costa Date: Mon Mar 3 14:12:32 2008 -0300 x86: define smp_ops in common header x86_64 will benefit from it Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 53ebef4961c7d5347b4fa2b878258ccd11fc9663 Author: Glauber Costa Date: Mon Mar 3 14:12:31 2008 -0300 x86: merge extern variables definitions move extern definitions that are the same between smp_{32,64}.h to smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 639acb16e6b93342a786c01425cf8eb8ebbb1351 Author: Glauber Costa Date: Mon Mar 3 14:12:30 2008 -0300 x86: merge extern function definitions move extern function definitions that are the same between smp_{32,64}.h to smp.h Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit c27cfeffad436816ecd500b8dc94acf348182b13 Author: Glauber Costa Date: Mon Mar 3 14:12:29 2008 -0300 x86: commonize smp.h this is the first step of integrating smp.h between x86_64 and i386 Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar commit 8b6451fe5cf78909f28d3762f77df060c8603cd0 Author: Ingo Molnar Date: Wed Mar 5 10:46:38 2008 +0100 x86: fix switch_to() clobbers Liu Pingfan noticed that switch_to() clobbers more registers than its asm constraints specify. We get away with this due to luck mostly - schedule() by its nature only has 'local' state which gets reloaded automatically. Fix it nevertheless, we could hit this anytime. it turns out that with the extra constraints gcc manages to make schedule() even more compact: text data bss dec hex filename 28626 684 2640 31950 7cce sched.o.before 28613 684 2640 31937 7cc1 sched.o.after Reported-by: Liu Pingfan Signed-off-by: Ingo Molnar commit 23b55bd9f33a1812a664e548803db34c9bec56e8 Author: Ingo Molnar Date: Wed Mar 5 10:24:37 2008 +0100 x86: clean up switch_to() Make the code more readable and more hackable: - use symbolic asm parameters - use readable indentation - add comments that explains the details No code changed: kernel/sched.o: text data bss dec hex filename 28626 684 2640 31950 7cce sched.o.before 28626 684 2640 31950 7cce sched.o.after md5: 2823d406c18b781975cdb2e7cfea0059 sched.o.before.asm 2823d406c18b781975cdb2e7cfea0059 sched.o.after.asm Signed-off-by: Ingo Molnar commit ecd94c0809eb0ff50b628fa061c531a6fbf2fbbc Author: Alexander van Heukelum Date: Tue Mar 4 20:12:28 2008 +0100 x86: reserve end-of-conventional-memory to 1MB, 64-bit, use paravirt_enabled Jeremy Fitzhardinge pointed out that looking at the boot_params struct to determine if the system is running in a paravirtual environment is not reliable for the Xen case, currently. He also points out that there already exists a function to determine if the system is running in a paravirtual environment. So let's use that instead. This gets rid of the preprocessor test too. Signed-off-by: Alexander van Heukelum Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 2fde61fdb00c2337efc56cfbb05bde8a42864e65 Author: Alexander van Heukelum Date: Tue Mar 4 19:57:42 2008 +0100 x86: reserve end-of-conventional-memory to 1MB, 32-bit, use paravirt_enabled Jeremy Fitzhardinge pointed out that looking at the boot_params struct to determine if the system is running in a paravirtual environment is not reliable for the Xen case, currently. He also points out that there already exists a function to determine if the system is running in a paravirtual environment. So let's use that instead. This gets rid of the preprocessor test too. Signed-off-by: Alexander van Heukelum Acked-by: H. Peter Anvin Signed-off-by: Ingo Molnar commit 0d7a1819e97ef89be5bcbb4b724acb9f6c873c97 Author: Pavel Machek Date: Mon Mar 3 12:49:09 2008 +0100 x86: wmb() confusion in system.h Comment says wmb is a nop, but it is implemented as lock addl below... Should it be compiled to nop if we know we are running on "good" Intel cpu? At least remove confusing comment for now. Signed-off-by: Pavel Machek Signed-off-by: Ingo Molnar commit 3c2047cd32b1a8c782d7efab72707e7daa251625 Author: Rusty Russell Date: Tue Mar 4 23:07:50 2008 +1100 x86: if we cannot calibrate the TSC, we panic. The current tsc_init() clears the TSC feature bit if the TSC khz cannot be calculated, causing us to panic in arch/x86/kernel/cpu/bugs.c check_config(). We should simply mark it unstable. Frankly, someone should take an axe to this code. mark_tsc_unstable() not only marks it unstable, but sets tsc_enabled to 0, which seems redundant but is actually important here because means it won't be used by sched_clock() either. Perhaps a tristate enum "UNUSABLE, UNSTABLE, OK" would be clearer, and separate mark_tsc_unstable() and mark_tsc_broken() functions? Signed-off-by: Rusty Russell Signed-off-by: Ingo Molnar commit 9fc34113f6880b215cbea4e7017fc818700384c2 Author: Ingo Molnar Date: Mon Mar 3 09:53:17 2008 +0100 x86: debug pmd_bad() Signed-off-by: Ingo Molnar commit 40869cd038a0ecb867a7227aba46806224e4d11d Author: Ingo Molnar Date: Mon Mar 3 13:55:32 2008 +0100 x86: redo cded932b75ab0a5f9181e redo commit cded932b75ab0a5f9181e. Signed-off-by: Ingo Molnar commit ba748d221eb74b849453a94fdf0e1d0566b407d7 Author: Ingo Molnar Date: Mon Mar 3 09:37:41 2008 +0100 x86: warn about RAM pages in ioremap() Signed-off-by: Ingo Molnar commit 320a6b2efceccb652befca0b1c9a92d6e4256ef6 Author: Alexander van Heukelum Date: Sat Mar 1 17:12:43 2008 +0100 x86: reserve end-of-conventional-memory to 1MB, 64-bit This patch is an add-on to the 64-bit ebda patch. It makes the functions reserve_ebda_region (renamed from reserve_ebda) and copy_e820_map equal to the 32-bit versions of the previous patch. Changes: Use u64 and u32 for local variables in copy_e820_map. The amount of conventional memory and the start of the EBDA are detected by reading the BIOS data area directly. Paravirtual environments do not provide this area, so we bail out early in that case. They will just have to set up a correct memory map to start with. Add a safety net for zeroed out BIOS data area. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar commit f6eb62b6924b99ec7da97fb6f554685a9ad6dce4 Author: Alexander van Heukelum Date: Mon Feb 25 19:07:51 2008 +0100 x86: reserve_early end-of-conventional-memory to 1MB, 64-bit Explicitly reserve_early the whole address range from the end of conventional memory as reported by the bios data area up to the 1Mb mark. Regard the info retrieved from the BIOS data area with a bit of paranoia, though, because some biosses forget to register the EBDA correctly. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar commit dedd04be71cea3d5adb14c8f674e801911c89a2f Author: Alexander van Heukelum Date: Sat Mar 1 17:09:12 2008 +0100 x86: reserve end-of-conventional-memory to 1MB on 32-bit This patch adds explicit detection of the EBDA and reservation of the rom and adapter address space 0xa0000-0x100000 to the i386 kernels. Before this patch, the EBDA size was hardcoded as 4Kb. Also, the reservation of the adapter range was done by modifying the e820 map which is now not necessary any longer, and that code is removed from copy_e820_map. The amount of conventional memory and the start of the EBDA are detected by reading the BIOS data area directly. Paravirtual environments do not provide this area, so we bail out early in that case. They will just have to set up a correct memory map to start with. Signed-off-by: Alexander van Heukelum Signed-off-by: Ingo Molnar commit 823c248e7cc75b4f22da914b01f8e5433cff197e Author: Roman Zippel Date: Fri Feb 29 05:09:02 2008 +0100 x86: fix recursive dependencies The proper dependency check uncovered a few dependency problems, the subarchitecture used a mixture of selects and depends on SMP and PCI dependency was messed up. Signed-off-by: Roman Zippel Signed-off-by: Ingo Molnar commit 81e103f1f1bb0d35000f0e99626bf7abf864b486 Author: Jeremy Fitzhardinge Date: Thu Apr 17 17:40:51 2008 +0200 xen: use iret instruction all the time Change iret implementation to not be dependent on direct-access vcpu structure. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar commit c9cf39ae64a6c86872e580f921afec64ab9770f8 Author: Paolo Ciarrocchi Date: Fri Feb 29 13:26:56 2008 +0100 x86: coding style fixes to x86/kernel/early_printk.c Depends on: [PATCH 2/3] x86: coding style fixes to arch/x86/kernel/early_printk.c Remove two: ERROR: do not initialise statics to 0 or NULL paolo@paolo-desktop:/tmp/c$ size * text data bss dec hex filename 1172 280 12 1464 5b8 early_printk.o.after 1172 280 12 1464 5b8 early_printk.o.before This patch is changing the binary output: paolo@paolo-desktop:/tmp/c$ md5sum * dad9a9a881e0eeda62cc5645bd3d7cad early_printk.o.after da32f5cd8f248970e4809e1005393e95 early_printk.o.before because the two variables moved to another section. No change in functionality. Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit e941f27a7a0f4ecac9ba8237b8a329bab4bd622f Author: Paolo Ciarrocchi Date: Fri Feb 29 13:25:30 2008 +0100 x86: coding style fixes to arch/x86/kernel/early_printk.c Before: total: 17 errors, 3 warnings, 254 lines checked After: total: 2 errors, 3 warnings, 254 lines checked paolo@paolo-desktop:/tmp/b$ md5sum * da32f5cd8f248970e4809e1005393e95 early_printk.o.after da32f5cd8f248970e4809e1005393e95 early_printk.o.before paolo@paolo-desktop:/tmp/b$ size * text data bss dec hex filename 1172 280 12 1464 5b8 early_printk.o.after 1172 280 12 1464 5b8 early_printk.o.befor Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 3f50dbc1aec96c4d66ffa1c564014f9f43fb9e11 Author: Paolo Ciarrocchi Date: Fri Feb 29 12:50:56 2008 +0100 x86: coding style fixes to arch/x86/lib/usercopy_32.c Before: total: 63 errors, 2 warnings, 878 lines checked After: total: 0 errors, 2 warnings, 878 lines checked Compile tested, no change in the binary output: text data bss dec hex filename 3231 0 0 3231 c9f usercopy_32.o.after 3231 0 0 3231 c9f usercopy_32.o.before md5sum: 9f9a3eb43970359ae7cecfd1c9e7cf42 usercopy_32.o.after 9f9a3eb43970359ae7cecfd1c9e7cf42 usercopy_32.o.before Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit bdd3cee2e4b7279457139058615ced6c2b41e7de Author: Ingo Molnar Date: Thu Feb 28 14:10:49 2008 +0100 x86: ioremap(), extend check to all RAM pages Suggested by Jan Beulich. Signed-off-by: Ingo Molnar Acked-by: Jan Beulich commit b089c12b25284a5e31ede7c98936a2b36a41e090 Author: Hiroshi Shimamoto Date: Wed Feb 27 13:16:30 2008 -0800 x86: X86_HT always enable on X86_64 SMP X86_HT is used for hyperthreading or multicore on 32-bit. The X86_HT on 64-bit is different from 32-bit, it means hyperthreading only. And X86_HT is not used on 64-bit except from cpu/initel_cacheinfo.c. Unify X86_HT for hyperthreading or multicore. Turn X86_HT on when X86_64 and SMP are enabled. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit e3100c82abd9aa643dc15828202aceeae3504e03 Author: Thomas Gleixner Date: Wed Feb 27 20:57:40 2008 +0100 x86: check physical address range in ioremap Roland Dreier reported in http://lkml.org/lkml/2008/2/27/194 [ 8425.915139] BUG: unable to handle kernel paging request at ffffc20001a0a000 [ 8425.919087] IP: [] clflush_cache_range+0xc/0x25 [ 8425.919087] PGD 1bf80e067 PUD 1bf80f067 PMD 1bb497067 PTE 80000047000ee17b This is on a Intel machine with 36bit physical address space. The PTE entry references 47000ee000, which is outside of it. Add a check for the physical address space and warn/printk about the stupid caller. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit b8c2d3dfbc117dff26058fbac316b8acfc2cb5f7 Author: Markus Armbruster Date: Wed Feb 27 14:56:35 2008 +0100 xen: make hvc0 the preferred console in domU This makes the Xen console just work. Before, you had to ask for it on the kernel command line with console=hvc0 Signed-off-by: Markus Armbruster Signed-off-by: Ingo Molnar commit 78a9909aab54123c7c471022389b36972e13b48e Author: Ingo Molnar Date: Thu Apr 17 17:40:51 2008 +0200 x86, tracing: add notrace to asm-x86/linkage.h notrace signals that a function should not be traced. Most of the time this is used by tracers to annotate code that cannot be traced - it's in a volatile state (such as in user vdso context or NMI context) or it's in the tracer internals. Signed-off-by: Ingo Molnar commit 11ae9dd48128790d3d2ece6bc916c001b4a1d147 Author: Alexey Dobriyan Date: Tue Feb 26 13:23:32 2008 +0300 x86: switch to proc_create() Signed-off-by: Alexey Dobriyan Signed-off-by: Ingo Molnar commit b5964405fbc4fd4c57e0e1f86bc9f1b3dbfa040a Author: Ingo Molnar Date: Tue Feb 26 11:15:50 2008 +0100 x86: clean up traps_32.c Before: total: 86 errors, 29 warnings, 1248 lines checked After: total: 0 errors, 17 warnings, 1281 lines checked No code changed: arch/x86/kernel/traps_32.o: text data bss dec hex filename 8711 2168 72 10951 2ac7 traps_32.o.before 8711 2168 72 10951 2ac7 traps_32.o.after (md5 sums differ because some stack offset positions changed.) Signed-off-by: Ingo Molnar commit 10cd5a1e5403d79a2d53425e6a4c8612e02ba973 Author: Ingo Molnar Date: Tue Feb 26 08:52:39 2008 +0100 x86: clean up cpu capabilities accesses, transmeta.c Signed-off-by: Ingo Molnar commit d0e95ebdc5cf5fe6fa29f2e0a5c6a0fe5c5aa50f Author: Ingo Molnar Date: Tue Feb 26 08:52:33 2008 +0100 x86: clean up cpu capabilities in arch/x86/kernel/cpu/intel.c Signed-off-by: Ingo Molnar commit 1d007cd5aeea2c9283e01433dbce4c9f91dd7823 Author: Ingo Molnar Date: Tue Feb 26 08:52:27 2008 +0100 x86: clean up cpu capabilities accesses, cyrix.c Signed-off-by: Ingo Molnar commit 4cbe668add030a35e0592a9bb292e0f2a1bcea88 Author: Ingo Molnar Date: Tue Feb 26 08:51:32 2008 +0100 x86: clean up cpu capabilities accesses, common.c Signed-off-by: Ingo Molnar commit e1a94a974c2aa3c0a7c1a915c805211fb6773de1 Author: Ingo Molnar Date: Tue Feb 26 08:51:22 2008 +0100 x86: clean up cpu capabilities accesses, centaur.c Signed-off-by: Ingo Molnar commit 16282a8e25f1783f296e5116dcef810a8e68d1a0 Author: Ingo Molnar Date: Tue Feb 26 08:49:57 2008 +0100 x86: clean up cpu capabilities accesses, amd.c Signed-off-by: Ingo Molnar commit 9716951efd98ada69c417adddc85d9bbe1d7835a Author: Ingo Molnar Date: Tue Feb 26 08:54:01 2008 +0100 x86: clean up cpu capabilities accesses, generic Signed-off-by: Ingo Molnar commit 0f8d2b926d15a68eac9c19edfdcb58a5d80b2960 Author: Ingo Molnar Date: Tue Feb 26 08:34:21 2008 +0100 x86: clean up cpu capabilities accesses introduce test_cpu_cap() for raw access to the real CPU capabilities as they are present in x86_capability. (cpu_has() will shortcut certain tests during build-time) Signed-off-by: Ingo Molnar commit d32de19ca9076eeed1e9bfd678e550fbad437535 Author: Yinghai Lu Date: Mon Feb 25 23:20:01 2008 -0800 x86: remove wrong setting about CONSTANT_TSC for intel cpu early_init_intel() on 64-bit is introduced by commit 2b16a2353814a513cdb5c5c739b76a19d7ea39ce Author: Andi Kleen Date: Wed Jan 30 13:32:40 2008 +0100 x86: move X86_FEATURE_CONSTANT_TSC into early cpu feature detection sets CONSTANT_TSC for intel cpus - but it is already set in init_intel(). don't need to set that two times in early_init_intel() and init_intel(). this patch removes the init_intel() one. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 4edbfa789b32bebf0b7fb71d5b2913a91ac4d0b1 Author: Florian Fainelli Date: Mon Feb 25 11:44:07 2008 +0100 x86, rdc321x: remove watchdog file remove the arch/x86/mach-rdc321x/wdt.c file. Signed-off-by: Florian Fainelli Signed-off-by: Ingo Molnar commit f8fffa458368ed3d57385698f775880db629bd1a Author: Yinghai Lu Date: Sun Feb 24 21:36:28 2008 -0800 x86: apic_is_clustered_box for vsmp quad core 8 socket system will have apic id lifting.the apic id range could be [4, 0x23]. and apic_is_clustered_box will think that need to three clusters and that is larger than 2. So it is treated as a clustered_box. and will get: Marking TSC unstable due to TSCs unsynchronized even if the CPUs have X86_FEATURE_CONSTANT_TSC set. this quick fix will check if the cpu is from AMD. but vsmp still needs that checking... this patch is fix to make sure that vsmp not to be passed. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 34048c9e927d5ae29c6ba802c826370de2a046d2 Author: Paolo Ciarrocchi Date: Sun Feb 24 11:58:13 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/common.c Before: total: 55 errors, 6 warnings, 727 lines checked After: total: 0 errors, 3 warnings, 734 lines checked No code changed: arch/x86/kernel/cpu/common.o: text data bss dec hex filename 3500 4611 44 8155 1fdb common.o.before 3500 4611 44 8155 1fdb common.o.after md5: e37091f11fbeb682c0db152ac3022a38 common.o.before.asm e37091f11fbeb682c0db152ac3022a38 common.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit db96598494f2a2ab9ab79999dd8fc365a906914b Author: Paolo Ciarrocchi Date: Sun Feb 24 11:57:22 2008 +0100 x86: coding style fixes to arch/x86/power/cpu_32.c Before: total: 15 errors, 3 warnings, 133 lines checked After: total: 0 errors, 0 warnings, 138 lines checked No code changed: arch/x86/power/cpu_32.o: text data bss dec hex filename 739 0 84 823 337 cpu_32.o.before 739 0 84 823 337 cpu_32.o.after md5: eb0726223a5e26b195e65f0ae2c0ec66 cpu_32.o.before.asm eb0726223a5e26b195e65f0ae2c0ec66 cpu_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 7ebed39ff7eec204850736a662828da0b942b8c0 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:59 2008 +0100 x86: coding style fixes to arch/x86/xen/multicalls.c Before: total: 2 errors, 2 warnings, 138 lines checked After: total: 0 errors, 2 warnings, 138 lines checked No code changed: arch/x86/xen/multicalls.o: text data bss dec hex filename 887 2832 0 3719 e87 multicalls.o.before 887 2832 0 3719 e87 multicalls.o.after md5: cf6d72d9db6dc5a3ebe01eec9f05e95f multicalls.o.before.asm cf6d72d9db6dc5a3ebe01eec9f05e95f multicalls.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 94a9fa41421625caedc328a2b0a0d5c78919a20f Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:52 2008 +0100 x86: coding style fixes to arch/x86/kernel/msr.c Before: total: 2 errors, 0 warnings, 231 lines checked After: total: 0 errors, 0 warnings, 231 lines checked No code changed: arch/x86/kernel/msr.o: text data bss dec hex filename 1199 12 4 1215 4bf msr.o.before 1199 12 4 1215 4bf msr.o.after md5: 604be0d07d829bc52a9346babd084bdc msr.o.before.asm 604be0d07d829bc52a9346babd084bdc msr.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 0fb90297dc69b87333c0afae537b1bff847e0397 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:34 2008 +0100 x86: coding style fixes to arch/x86/oprofile/nmi_timer_int.c Before: total: 3 errors, 0 warnings, 69 lines checked After: total: 0 errors, 0 warnings, 69 lines checked No code changed: arch/x86/oprofile/nmi_timer_int.o: text data bss dec hex filename 180 12 0 192 c0 nmi_timer_int.o.before 180 12 0 192 c0 nmi_timer_int.o.after md5: 0433c31d758e81da574e01722a8036ea nmi_timer_int.o.before.asm 0433c31d758e81da574e01722a8036ea nmi_timer_int.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit adf85265b455f096fa9caf4aea51f274cdaca3c6 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:23 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/cyrix.c Before: total: 46 errors, 10 warnings, 450 lines checked After: total: 1 errors, 10 warnings, 449 lines checked No code changed: arch/x86/kernel/cpu/cyrix.o: text data bss dec hex filename 2048 908 4 2960 b90 cyrix.o.before 2048 908 4 2960 b90 cyrix.o.after md5: 9add5e69dbd788f91ff24eea8462dad7 cyrix.o.before.asm 9add5e69dbd788f91ff24eea8462dad7 cyrix.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 7030760ae5d29d637d1e962c70d1d9c58be3306f Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:12 2008 +0100 x86: coding style fixes to arch/x86/boot/cpucheck.c Before: total: 30 errors, 0 warnings, 262 lines checked After: total: 0 errors, 0 warnings, 262 lines checked No code changed: arch/x86/boot/cpucheck.o: text data bss dec hex filename 989 0 96 1085 43d cpucheck.o.before 989 0 96 1085 43d cpucheck.o.after md5: 06634cfefb8438fa284ff903b4cafbce cpucheck.o.before.asm 06634cfefb8438fa284ff903b4cafbce cpucheck.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit d677759e99b51f50a75b2adfabb25e9d656ee33c Author: Paolo Ciarrocchi Date: Fri Feb 22 23:11:07 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/mce_32.c Before: total: 10 errors, 3 warnings, 90 lines checked After: total: 0 errors, 3 warnings, 90 lines checked No code changed: arch/x86/kernel/cpu/mcheck/mce_32.o: text data bss dec hex filename 287 42 12 341 155 mce_32.o.before 287 42 12 341 155 mce_32.o.after md5: fede5ff8e6bc3f62e8e691ca6c45eb39 mce_32.o.before.asm fede5ff8e6bc3f62e8e691ca6c45eb39 mce_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 4de816297d96a96b60007f3065a07f3937fd7c6e Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:57 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/winchip.c Before: total: 4 errors, 0 warnings, 36 lines checked After: total: 0 errors, 0 warnings, 36 lines checked No code changed: arch/x86/kernel/cpu/mcheck/winchip.o: text data bss dec hex filename 222 0 4 226 e2 winchip.o.before 222 0 4 226 e2 winchip.o.after md5: 9caefa12256c5f7d71ef324f6d01a2d5 winchip.o.before.asm 9caefa12256c5f7d71ef324f6d01a2d5 winchip.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 714a9ac2efe5e20fdccfcf91b27dbd384bd34685 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:49 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/non-fatal.c Before: total: 5 errors, 5 warnings, 91 lines checked After: total: 0 errors, 0 warnings, 94 lines checked No code changed: arch/x86/kernel/cpu/mcheck/non-fatal.o: text data bss dec hex filename 441 80 4 525 20d non-fatal.o.before 441 80 4 525 20d non-fatal.o.after md5: 137bc114d2020ad331d5e76444a2c7d3 non-fatal.o.before.asm 137bc114d2020ad331d5e76444a2c7d3 non-fatal.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 83e714e82f3434a32c3f54f7223f78345d873218 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:40 2008 +0100 x86: coding style fixes to arch/x86/kernel/vm86_32.c Before: total: 64 errors, 18 warnings, 840 lines checked After: total: 12 errors, 15 warnings, 844 lines checked No code changed: arch/x86/kernel/vm86_32.o: text data bss dec hex filename 4449 28 132 4609 1201 vm86_32.o.before 4449 28 132 4609 1201 vm86_32.o.after md5: e4e51ed7689d17f04148554a3c6d5bb6 vm86_32.o.before.asm e4e51ed7689d17f04148554a3c6d5bb6 vm86_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit fb87a298fb79357fa5b27e6916ae1c45bf94dac7 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:33 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/amd.c Before: total: 42 errors, 26 warnings, 350 lines checked After: total: 0 errors, 26 warnings, 352 lines checked No code changed: arch/x86/kernel/cpu/amd.o: text data bss dec hex filename 1936 328 0 2264 8d8 amd.o.before 1936 328 0 2264 8d8 amd.o.after md5: 873430a88faaf31bb4bbfe3a2a691e45 amd.o.before.asm 873430a88faaf31bb4bbfe3a2a691e45 amd.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit f97518271941fdb2dab07d7bd58bf9fa39ba3f65 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:28 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/transmeta.c Before: total: 13 errors, 3 warnings, 105 lines checked After: total: 0 errors, 3 warnings, 107 lines checked No code changed: arch/x86/kernel/cpu/transmeta.o: text data bss dec hex filename 713 324 0 1037 40d transmeta.o.before 713 324 0 1037 40d transmeta.o.after md5: 19abe2cafac617e1e2aadc4aa4e9923b transmeta.o.before.asm 19abe2cafac617e1e2aadc4aa4e9923b transmeta.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 93d8bd3d4f070014e1e73c0ac618ac33924a7b96 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:23 2008 +0100 x86: coding style fixes to arch/x86/lib/memcpy_32.c Before: total: 2 errors, 0 warnings, 43 lines checked After: total: 0 errors, 0 warnings, 43 lines checked No code changed: arch/x86/lib/memcpy_32.o: text data bss dec hex filename 164 0 0 164 a4 memcpy_32.o.before 164 0 0 164 a4 memcpy_32.o.after md5: d759f55621af27f51720b59c8ca96a4d memcpy_32.o.before.asm d759f55621af27f51720b59c8ca96a4d memcpy_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit e0f025704437dfd6cb5adc077f05709c31189edc Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:16 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mtrr/state.c Before: total: 6 errors, 5 warnings, 80 lines checked After: total: 0 errors, 4 warnings, 82 lines checked No code changed: arch/x86/kernel/cpu/mtrr/state.o: text data bss dec hex filename 313 0 4 317 13d state.o.before 313 0 4 317 13d state.o.after md5: a0fbd61096205f9180f0bf45ed386d61 state.o.before.asm a0fbd61096205f9180f0bf45ed386d61 state.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 0067cc996ee7a0dd282d8da5b64fa60aa2066bb2 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:10:06 2008 +0100 x86: coding style fixes to arch/x86/kernel/mca_32.c Before: total: 42 errors, 3 warnings, 469 lines checked After: total: 0 errors, 3 warnings, 479 lines checked No code changed: arch/x86/kernel/mca_32.o: text data bss dec hex filename 1832 288 5 2125 84d mca_32.o.before 1832 288 5 2125 84d mca_32.o.after md5: c0e45e2b743ce26349eb07dc53e80b94 mca_32.o.before.asm c0e45e2b743ce26349eb07dc53e80b94 mca_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit f73920cd63d316008738427a0df2caab6cc88ad7 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:09:56 2008 +0100 x86: coding style fixes to arch/x86/lib/strstr_3 Before: total: 3 errors, 0 warnings, 31 lines checked After: total: 0 errors, 0 warnings, 31 lines checked No code changed: arch/x86/lib/strstr_32.o: text data bss dec hex filename 49 0 0 49 31 strstr_32.o.before 49 0 0 49 31 strstr_32.o.after md5: a224a7c4082e75a4f31f9d91dd34fe8e strstr_32.o.before.asm a224a7c4082e75a4f31f9d91dd34fe8e strstr_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit d717ca84c02f4b60a85502c23bca5698801dfaae Author: Paolo Ciarrocchi Date: Fri Feb 22 23:09:50 2008 +0100 x86: coding style fixes to arch/x86/oprofile/init.c Before: total: 5 errors, 4 warnings, 48 lines checked After: total: 0 errors, 4 warnings, 49 lines checked No code changed: arch/x86/oprofile/init.o: text data bss dec hex filename 42 0 0 42 2a init.o.before 42 0 0 42 2a init.o.after md5: 74c94c315cfbf245aeba36eceac57e66 init.o.before.asm 74c94c315cfbf245aeba36eceac57e66 init.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 65eb6b4326daddd1cccd003bd4df3fd75b06f0e1 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:09:42 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/intel.c Before: total: 37 errors, 16 warnings, 366 lines checked After: total: 0 errors, 15 warnings, 369 lines checked No code changed: arch/x86/kernel/cpu/intel.o: text data bss dec hex filename 1534 452 0 1986 7c2 intel.o.before 1534 452 0 1986 7c2 intel.o.after md5: 1ca348a06de6eb354c4b6ea715a57db5 intel.o.before.asm 1ca348a06de6eb354c4b6ea715a57db5 intel.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 60e11746d97c099b305e25e587731148387d02eb Author: Paolo Ciarrocchi Date: Fri Feb 22 23:09:34 2008 +0100 x86: coding style fixes to arch/x86/kernel/summit_32.c Before: total: 20 errors, 17 warnings, 180 lines checked After: total: 0 errors, 17 warnings, 183 lines checked No code changed: arch/x86/kernel/summit_32.o: text data bss dec hex filename 932 192 0 1124 464 summit_32.o.before 932 192 0 1124 464 summit_32.o.after md5: 217aa5f002f217e56ef9d8e5c74b60e0 summit_32.o.before.asm 217aa5f002f217e56ef9d8e5c74b60e0 summit_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 023196a3be708657d828bb139343bceb2c1c9649 Author: Paolo Ciarrocchi Date: Fri Feb 22 23:09:26 2008 +0100 x86: coding style fix to arch/x86/boot/pm.c Before: total: 1 errors, 0 warnings, 178 lines checked After: total: 0 errors, 0 warnings, 178 lines checked No code changed: arch/x86/boot/pm.o: text data bss dec hex filename 351 0 6 357 165 pm.o.before 351 0 6 357 165 pm.o.after md5: 81de3616bceb29691bf835bb62a84ff1 pm.o.before.asm 81de3616bceb29691bf835bb62a84ff1 pm.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 1e934dda0c77c8ad13fdda02074f2cfcea118a56 Author: Yinghai Lu Date: Fri Feb 22 13:37:26 2008 -0800 x86: insert_resorce for lapic addr after e820_reserve_resources when comparing the e820 direct from BIOS, and the one by kexec: BIOS-provided physical RAM map: - BIOS-e820: 0000000000000000 - 0000000000097400 (usable) + BIOS-e820: 0000000000000100 - 0000000000097400 (usable) BIOS-e820: 0000000000097400 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 00000000dffa0000 (usable) - BIOS-e820: 00000000dffae000 - 00000000dffb0000 type 9 + BIOS-e820: 00000000dffae000 - 00000000dffb0000 (reserved) BIOS-e820: 00000000dffb0000 - 00000000dffbe000 (ACPI data) BIOS-e820: 00000000dffbe000 - 00000000dfff0000 (ACPI NVS) BIOS-e820: 00000000dfff0000 - 00000000e0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved) - BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) =======> that is the local apic address... somewhere we lost it BIOS-e820: 00000000ff700000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000004020000000 (usable) found one entry about reserved is missing for the kernel by kexec. it turns out init_apic_mappings is called before e820_reserve_resources in setup_arch. but e820_reserve_resources is using request_resource. it will not handle the conflicts. there are three ways to fix it: 1. change request_resource in e820_reserve_resources to to insert_resource 2. move init_apic_mappings after e820_reserve_resources 3. use late_initcall to insert lapic resource. this patch is using method 3, that is less intrusive. in later version could consider to use method 1. before patch fed20000-ffffffff : PCI Bus #00 fee00000-fee00fff : Local APIC fefff000-feffffff : pnp 00:09 ff700000-ffffffff : reserved with patch will get map in first kernel fed20000-ffffffff : PCI Bus #00 fee00000-fee00fff : Local APIC fee00000-fee00fff : reserved fefff000-feffffff : pnp 00:09 ff700000-ffffffff : reserved Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 3def3d6ddf43dbe20c00c3cbc38dfacc8586998f Author: Yinghai Lu Date: Fri Feb 22 17:07:16 2008 -0800 x86: clean up e820_reserve_resources on 64-bit e820_resource_resources could use insert_resource instead of request_resource also move code_resource, data_resource, bss_resource, and crashk_res out of e820_reserve_resources. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 700efc1b9f6afe34caae231b87d129ad8ffb559f Author: Eric W. Biederman Date: Sat Feb 23 09:58:20 2008 +0100 x86: introduce kernel/head32.c Copy x86_64 and add a head32.c so we can start moving early architecture initialization out of assembly. [ Sam Ravnborg : updated it to x86 ] Signed-off-by: Eric W. Biederman Signed-off-by: Sam Ravnborg Cc: H. Peter Anvin Signed-off-by: Ingo Molnar commit 322850af8d93735f67b8ebf84bb1350639be3f34 Author: Yinghai Lu Date: Sat Feb 23 21:48:42 2008 -0800 x86: make amd quad core 8 socket system not be clustered_box, #2 quad core 8 socket system will have apic id lifting.the apic id range could be [4, 0x23]. and apic_is_clustered_box will think that need to three clusters and that is large than 2. So it is treated as clustered_box. and will get Marking TSC unstable due to TSCs unsynchronized even the CPUs have X86_FEATURE_CONSTANT_TSC set. this patch will check if the cpu is from AMD. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar commit 513ad84bf60d96a6998bca10ed07c3d340449be8 Author: Ingo Molnar Date: Thu Feb 21 05:18:40 2008 +0100 x86: de-macro start_thread() Signed-off-by: Ingo Molnar commit 1180e01de50c0c7683c6648251f32957bc2d7850 Author: Ingo Molnar Date: Thu Feb 21 05:03:48 2008 +0100 x86: more cleanups in arch/x86/boot/compressed/misc.c Before: total: 7 errors, 8 warnings, 471 lines checked After: total: 5 errors, 5 warnings, 479 lines checked ( the rest cannot be eliminated due to zlib interface cruftiness. ) No code changed: arch/x86/boot/compressed/misc.o: text data bss dec hex filename 10716 8 2152 12876 324c misc.o.before 10716 8 2152 12876 324c misc.o.after md5: 2c20c903986a3c9bca44306c6646067e misc.o.before.asm 2c20c903986a3c9bca44306c6646067e misc.o.after.asm Signed-off-by: Ingo Molnar commit fd77c7cabd71ab0c31758f5faf1b92b66e9fe461 Author: Paolo Ciarrocchi Date: Thu Feb 21 00:19:10 2008 +0100 x86: coding style fixes to arch/x86/boot/compressed/misc.c Fix lots of style errors and warnings. Before: total: 58 errors, 9 warnings, 469 lines checked After: total: 7 errors, 8 warnings, 471 lines checked No code changed: arch/x86/boot/compressed/misc.o: text data bss dec hex filename 10716 8 2152 12876 324c misc.o.before 10716 8 2152 12876 324c misc.o.after md5: 2c20c903986a3c9bca44306c6646067e misc.o.before.asm 2c20c903986a3c9bca44306c6646067e misc.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 48e6b7a050971dd42122f6db7a43467794075c02 Author: Paolo Ciarrocchi Date: Thu Feb 21 00:18:34 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/umc.c Before: total: 3 errors, 1 warnings, 23 lines checked After: total: 0 errors, 0 warnings, 25 lines checked No code changed: arch/x86/kernel/cpu/umc.o: text data bss dec hex filename 24 616 0 640 280 umc.o.before 24 616 0 640 280 umc.o.after md5: e8daa3eaed0963a0cdd2e83c2e1f9823 umc.o.before.asm e8daa3eaed0963a0cdd2e83c2e1f9823 umc.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 2c5847837fe76497934734330151f240f3e04925 Author: Paolo Ciarrocchi Date: Thu Feb 21 00:10:54 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/p6.c Before: total: 16 errors, 13 warnings, 122 lines checked After: total: 0 errors, 0 warnings, 122 lines checked No code changed: arch/x86/kernel/cpu/mcheck/p6.o: text data bss dec hex filename 1082 0 8 1090 442 p6.o.before 1082 0 8 1090 442 p6.o.after md5: 4e283fbc1b68240f1724d9725007d379 p6.o.before.asm 4e283fbc1b68240f1724d9725007d379 p6.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 4d46a89e7c867718020b2d5fd8f9e775293304be Author: Ingo Molnar Date: Thu Feb 21 04:24:40 2008 +0100 x86: clean up include/asm-x86/processor.h basic style cleanup to flush out years of neglect: - consistent indentation - whitespace fixes - consistent comments Signed-off-by: Ingo Molnar commit eb19067d160416cd61fc92a8913ccfb3497b20b7 Author: Hiroshi Shimamoto Date: Wed Feb 20 10:48:55 2008 -0800 x86: unify cpu/proc|_64.c Now cpu/proc.c and cpu/proc_64.c are same. So cpu/proc_64.c can be removed. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit 2aef77204e1e3a8ed6345727afbcb2c1efdf7fc0 Author: Hiroshi Shimamoto Date: Wed Feb 20 10:48:02 2008 -0800 x86: cosmetic unification cpu/proc|_64.c make cpu/proc.c and cpu/proc_64.c same. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit f84c3a429f83a98bb0b0fd7eed7ad1edc512b91c Author: Hiroshi Shimamoto Date: Wed Feb 20 10:47:12 2008 -0800 x86: add power management line in /proc/cpuinfo Change /proc/cpuinfo on 32-bit, it will look like on 64-bit. 'power management' line is added and power management information will be printed at the line. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit a967ceac01cd3847011e2a777b8365b30afa770a Author: Hiroshi Shimamoto Date: Wed Feb 20 10:45:29 2008 -0800 x86: make cpu/proc|_64.c similar clean up for unification. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit 8fa6878ffc6366f490e99a1ab31127fb599657c9 Author: Hiroshi Shimamoto Date: Wed Feb 20 10:41:51 2008 -0800 x86: split cpuinfo from setup_64.c into cpu/proc_64.c x86 /proc/cpuinfo code can be unified. This is the first step of unification. Signed-off-by: Hiroshi Shimamoto Signed-off-by: Ingo Molnar commit 637cba02618c1373eb9d2b70a53c17832e27d090 Author: Paolo Ciarrocchi Date: Wed Feb 20 00:18:52 2008 +0100 x86: coding style fixes to arch/x86/mach-generic/bigsmp.c arch/x86/mach-generic/bigsmp.o: text data bss dec hex filename 1271 144 4 1419 58b bigsmp.o.before 1271 144 4 1419 58b bigsmp.o.after md5: b83aad375294c002c79b03c3a2e4be35 bigsmp.o.before.asm b83aad375294c002c79b03c3a2e4be35 bigsmp.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit c99aa3804eecbeadabcf658a535e8a00d0f2b6e6 Author: Paolo Ciarrocchi Date: Wed Feb 20 00:18:05 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/nexgen.c arch/x86/kernel/cpu/nexgen.o: text data bss dec hex filename 111 316 0 427 1ab nexgen.o.before 111 316 0 427 1ab nexgen.o.after md5: e796efefea9ebc6644338bad226599ee nexgen.o.before.asm e796efefea9ebc6644338bad226599ee nexgen.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 8108576a78a68851de194d6ed2aa0a951de7bb7f Author: Paolo Ciarrocchi Date: Wed Feb 20 00:17:34 2008 +0100 x86: coding style fixes to arch/x86/mach-generic/summit.c File is now error/warning free. arch/x86/mach-generic/summit.o: text data bss dec hex filename 1481 140 0 1621 655 summit.o.before 1481 140 0 1621 655 summit.o.after md5: 7b7dc1cbd381af7b9393da989da5b0fd summit.o.before.asm 7b7dc1cbd381af7b9393da989da5b0fd summit.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 651bbe16d05ea51fc102e1bf5765687ab32485c6 Author: Paolo Ciarrocchi Date: Wed Feb 20 00:02:58 2008 +0100 x86: coding style fixes to arch/x86/mach-generic/default.c Just whitespace cleanups. total: 0 errors, 0 warnings, 26 lines checked arch/x86/mach-generic/default.c has no obvious style problems and is ready for submission. arch/x86/mach-generic/default.o: text data bss dec hex filename 1036 140 0 1176 498 default.o.before 1036 140 0 1176 498 default.o.after md5: f283c53022c568f3162bbcde44f65762 default.o.before.asm f283c53022c568f3162bbcde44f65762 default.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 9b0c5028825df9d99a430c9963c45e02a2b185c6 Author: Paolo Ciarrocchi Date: Tue Feb 19 23:57:17 2008 +0100 x86: coding style fixes to arch/x86/mach-generic/probe.c The patch kills 20 errors and a few warnings. arch/x86/mach-generic/probe.o: text data bss dec hex filename 578 45 0 623 26f probe.o.before 578 45 0 623 26f probe.o.after md5: 86eb1c3e3cf37f81d37bcd9a0c9f14ad probe.o.before.asm 86eb1c3e3cf37f81d37bcd9a0c9f14ad probe.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit d4413732b54a17684e48fbb4b52fade5bf965b5d Author: Paolo Ciarrocchi Date: Tue Feb 19 23:51:27 2008 +0100 x86: coding style fixes to arch/x86/oprofile/op_model_athlon.c The patch fixes 33 errors and a few warnings reported by checkpatch.pl arch/x86/oprofile/op_model_athlon.o: text data bss dec hex filename 1691 0 32 1723 6bb op_model_athlon.o.before 1691 0 32 1723 6bb op_model_athlon.o.after md5: c354bc2d7140e1e626c03390eddaa0a6 op_model_athlon.o.before.asm c354bc2d7140e1e626c03390eddaa0a6 op_model_athlon.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 8b45b72b04061b9d39208b0843007d62b463c211 Author: Paolo Ciarrocchi Date: Tue Feb 19 23:43:25 2008 +0100 x86: coding style fixes to arch/x86/oprofile/op_model_ppro.c no code changed: arch/x86/oprofile/op_model_ppro.o: text data bss dec hex filename 1765 0 16 1781 6f5 op_model_ppro.o.before 1765 0 16 1781 6f5 op_model_ppro.o.after md5: 71c7f68d2197d686e3d1121bc18a6b6e op_model_ppro.o.before.asm 71c7f68d2197d686e3d1121bc18a6b6e op_model_ppro.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 8000a83f43f2d943eebeee9e070beb45949858ec Author: Paolo Ciarrocchi Date: Tue Feb 19 23:34:02 2008 +0100 x86: coding style fixes to arch/x86/kernel/x8664_ksyms_64.c arch/x86/kernel/x8664_ksyms_64.o: text data bss dec hex filename 0 0 0 0 0 x8664_ksyms_64.o.before 0 0 0 0 0 x8664_ksyms_64.o.after md5: 2dd2d82a2b440a3c29b9ac9ce3221994 x8664_ksyms_64.o.before.asm 2dd2d82a2b440a3c29b9ac9ce3221994 x8664_ksyms_64.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 1577720524bab104eeb605c810963a2106cf4575 Author: Paolo Ciarrocchi Date: Tue Feb 19 23:20:45 2008 +0100 x86: coding style fixes to arch/x86/kernel/cpu/mcheck/p5.c The patch make the file errors free. Only 4 "WARNING: line over 80 characters" left. arch/x86/kernel/cpu/mcheck/p5.o: text data bss dec hex filename 452 0 4 456 1c8 p5.o.before 452 0 4 456 1c8 p5.o.after md5: 50c945ef150aa95bf0481cc3e1dc3315 p5.o.before.asm 50c945ef150aa95bf0481cc3e1dc3315 p5.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 8cf36d2bc5832da17a58c5f10adf2d92d138c992 Author: Paolo Ciarrocchi Date: Tue Feb 19 23:09:59 2008 +0100 x86: coding style fixes to arch/x86/lib/string_32.c The patch kills 45 errors and a few warnings. The file is now error/warning free: total: 0 errors, 0 warnings, 237 lines checked arch/x86/lib/string_32.c has no obvious style problems and is ready for submission. no code changed: arch/x86/lib/string_32.o: text data bss dec hex filename 639 0 0 639 27f string_32.o.before 639 0 0 639 27f string_32.o.after md5: 2db1c48187cf5113bb595153ee1fc73d string_32.o.before.asm 2db1c48187cf5113bb595153ee1fc73d string_32.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 325f86ec6d2ae4ab9879e745a92444f8bac20233 Author: Paolo Ciarrocchi Date: Tue Feb 19 21:02:16 2008 +0100 x86: coding style fixes to arch/x86/kernel/syscall_64.c After the patch: total: 0 errors, 1 warnings, 29 lines checked no code changed: arch/x86/kernel/syscall_64.o: text data bss dec hex filename 2304 0 0 2304 900 syscall_64.o.before 2304 0 0 2304 900 syscall_64.o.after md5: 0fdbb875cde8892296585226b92f4333 syscall_64.o.before.asm 0fdbb875cde8892296585226b92f4333 syscall_64.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit e9406597884b5c2f196b124bdd6af47351562a9d Author: Paolo Ciarrocchi Date: Tue Feb 19 20:53:38 2008 +0100 x86: coding style fixes to arch/x86/lib/memmove_64.c After the patch: total: 0 errors, 0 warnings, 21 lines checked no code changed: arch/x86/lib/memmove_64.o: text data bss dec hex filename 116 0 0 116 74 memmove_64.o.before 116 0 0 116 74 memmove_64.o.after md5: 2d6b0951cafb86a11a222cdd70f6104f memmove_64.o.before.asm 2d6b0951cafb86a11a222cdd70f6104f memmove_64.o.after.asm Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar commit 87253d1b4f2b5a29bdfc6275b9fb52a47d72df64 Author: Ian Campbell Date: Tue Feb 19 11:12:30 2008 +0000 x86: boot protocol updates Also update field names to simply payload_{offset,length} so as to not rule out uncompressed images. Signed-off-by: Ian Campbell Cc: H. Peter Anvin Cc: Jeremy Fitzhardinge Cc: virtualization@lists.linux-foundation.org Signed-off-by: Ingo Molnar commit bc0a733facbbde6c464e3ba5e165607fe4824cca Author: David P. Reed Date: Mon Feb 18 13:58:34 2008 -0500 x86: define outb_pic and inb_pic to stop using outb_p and inb_p x86: define outb_pic and inb_pic to stop using outb_p and inb_p The delay between io port accesses to the PIC is now defined using outb_pic and inb_pic. This fix provides the next step, using udelay(2) to define the *PIC specific* timing requirements, rather than on bus-oriented timing, which is not well calibrated. Again, the primary reason for fixing this is to use proper delay strategy, and in particular to fix crashes that can result from using port 80 writes on machines that have resources on port 80, such as the ENE chips used by Quanta in latops it designs and sells to, e.g. HP. Signed-off-by: David P. Reed Signed-off-by: Ingo Molnar commit c92a7a54d6579c9c01374092e7b61a6161f2ef70 Author: Ian Campbell Date: Sun Feb 17 19:09:42 2008 +0000 x86: reduce arch/x86/mm/ioremap.o size > Don't we have a special section for page-aligned data so it doesn't > waste most of two pages? We have .bss.page_aligned and it seems appropriate to use it. text data bss dec hex filename - 3388 8236 4 11628 2d6c ../build-32/arch/x86/mm/ioremap.o + 3388 48 4100 7536 1d70 ../build-32/arch/x86/mm/ioremap.o Signed-off-by: Ian Campbell Cc: Matt Mackall Cc: Sam Ravnborg Cc: Huang Ying Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit edc05e6de3e2fd203da21ba984b19d92e5398b62 Author: Ingo Molnar Date: Mon Feb 18 03:30:47 2008 +0100 x86: more coding style fixes in centaur.c no code changed: arch/x86/kernel/cpu/centaur.o: text data bss dec hex filename 1031 324 0 1355 54b centaur.o.before 1031 324 0 1355 54b centaur.o.after md5: 4f306a7f980b58eb69c4bdcfcde565f1 centaur.o.before.asm 4f306a7f980b58eb69c4bdcfcde565f1 centaur.o.after.asm Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 29a9994bd8dbafc17f43d31651d31ea7b0add6a4 Author: Paolo Ciarrocchi Date: Sun Feb 17 23:30:23 2008 +0100 x86: coding style fixes for arch/x86/kernel/cpu/centaur.c Kills more than 150 errors/warnings Signed-off-by: Paolo Ciarrocchi Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ca5d3f14915f5f8db75f7b0c198c0c154947fc5e Author: Ingo Molnar Date: Mon Feb 18 08:53:56 2008 +0100 x86: clean up mmx_32.c checkpatch.pl --file cleanups: before: total: 74 errors, 3 warnings, 386 lines checked after: total: 0 errors, 0 warnings, 377 lines checked no code changed: arch/x86/lib/mmx_32.o: text data bss dec hex filename 1323 0 8 1331 533 mmx_32.o.before 1323 0 8 1331 533 mmx_32.o.after md5: 4cc39f1017dc40a5ebf02ce0ff7312bc mmx_32.o.before.asm 4cc39f1017dc40a5ebf02ce0ff7312bc mmx_32.o.after.asm Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 04aaa7ba096c707a8df337b29303f1a5a65f0462 Author: David P. Reed Date: Sun Feb 17 16:56:39 2008 -0500 x86: fix cmos read and write to not use inb_p and outb_p fix code to access CMOS rtc registers so that it does not use inb_p and outb_p routines, which are deprecated. Extensive research on all known CMOS RTC chipset timing shows that there is no need for a delay in accessing the registers of these chips even on old machines. These chipa are never on an expansion bus, but have always been "motherboard" resources, either in the processor chipset or explicitly on the motherboard, and they are not part of the ISA/LPC or PCI buses, so delays should not be based on bus timing. The reason to fix it: 1) port 80 writes often hang some laptops that use ENE EC chipsets, esp. those designed and manufactured by Quanta for HP; 2) RTC accesses are timing sensitive, and extra microseconds may matter; 3) the new "io_delay" function is calibrated by expansion bus timing needs, thus is not appropriate for access to CMOS rtc registers. Signed-off-by: David P. Reed Acked-by: Alan Cox Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 03ae5768b6110ebaa97dc3e7abf1c3d8bec5f874 Author: Thomas Petazzoni Date: Fri Feb 15 12:00:23 2008 +0100 x86: use ELF section to list CPU vendor specific code Replace the hardcoded list of initialization functions for each CPU vendor by a list in an ELF section, which is read at initialization in arch/x86/kernel/cpu/cpu.c to fill the cpu_devs[] array. The ELF section, named .x86cpuvendor.init, is reclaimed after boot, and contains entries of type "struct cpu_vendor_dev" which associates a vendor number with a pointer to a "struct cpu_dev" structure. This first modification allows to remove all the VENDOR_init_cpu() functions. This patch also removes the hardcoded calls to early_init_amd() and early_init_intel(). Instead, we add a "c_early_init" member to the cpu_dev structure, which is then called if not NULL by the generic CPU initialization code. Unfortunately, in early_cpu_detect(), this_cpu is not yet set, so we have to use the cpu_devs[] array directly. This patch is part of the Linux Tiny project, and is needed for further patch that will allow to disable compilation of unused CPU support code. Signed-off-by: Thomas Petazzoni Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit bc7c314d7048017caa0725b41cc577cccf4fc53b Author: Glauber Costa Date: Mon Feb 11 17:16:05 2008 -0200 x86, vsmp: use the paravirt helpers Signed-off-by: Glauber Costa Signed-off-by: Ravikiran Thirumalai Acked-by: Shai Fultheim Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 96597fd2be7070631ad0776cd8bced21415fd5e3 Author: Glauber Costa Date: Mon Feb 11 17:16:04 2008 -0200 x86: introduce vsmp paravirt helpers Signed-off-by: Glauber Costa Signed-off-by: Ravikiran Thirumalai Acked-by: Shai Fultheim Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2785c8d052278228cc3806233c09295088f83d42 Author: Glauber Costa Date: Mon Feb 11 17:16:03 2008 -0200 x86: call vsmp_init explicitly It becomes to early for ioremap, so we use early_ioremap Signed-off-by: Glauber Costa Signed-off-by: Ravikiran Thirumalai Acked-by: Shai Fultheim Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit a2beab31b167bd8ba49bb84944e07ac096f2ab0a Author: Glauber Costa Date: Mon Feb 11 17:16:02 2008 -0200 x86: make vsmp_init void, instead of static int Signed-off-by: Glauber Costa Signed-off-by: Ravikiran Thirumalai Acked-by: Shai Fultheim Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 270883a8b98af5e6ed591b4762fb046e9f044dfb Author: Glauber Costa Date: Mon Feb 11 17:16:01 2008 -0200 x86: change vsmp compile dependency Change Makefile so vsmp_64.o object is dependent on PARAVIRT, rather than X86_VSMP Signed-off-by: Glauber Costa Signed-off-by: Ravikiran Thirumalai Acked-by: Shai Fultheim Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e319e76521767f7f64cd1fb6f58d4d36bc861a67 Author: Robert Richter Date: Wed Feb 13 16:19:36 2008 +0100 x86: apic: extended interrupt LVT support for AMD Signed-off-by: Robert Richter Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 04adf11435a5187383c35017a94b55701984243b Author: Yinghai Lu Date: Sat Feb 16 23:02:03 2008 -0800 x86: remove never used nodenumer in pda Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit beafe91f1c2c49713221ca2616755e1f3d472084 Author: Yinghai Lu Date: Sat Feb 16 23:00:22 2008 -0800 x86: get apic_id later in acpi_numa_processor_affinity_init we don't need get that so early. Signed-off-by: Yinghai Lu Cc: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 28d23128814dca9b90f04739b12f967f4248c584 Author: Arnaldo Carvalho de Melo Date: Thu Feb 7 21:03:04 2008 -0200 x86: reducing debuginfo size by removing unneeded includes I found it strange that the struct sk_buff definition was found inside the DWARF debugging sections in the generated object, so I verified and found that there is no need for the files that bring struct sk_buff definition into this file and verified also that sk_buff is not brought in indirectly too, thru other headers. I went on and removed many other unneeded includes and the end result is: [acme@doppio net-2.6]$ l /tmp/sys_ia32.o.before /tmp/sys_ia32.o.after -rw-rw-r-- 1 acme acme 185240 2008-02-06 19:19 /tmp/sys_ia32.o.after -rw-rw-r-- 1 acme acme 248328 2008-02-06 19:00 /tmp/sys_ia32.o.before Almost 64KB only on this object file! There were no other side effects from this change: [acme@doppio net-2.6]$ objcopy -j "text" /tmp/sys_ia32.o.before /tmp/text.before [acme@doppio net-2.6]$ objcopy -j "text" /tmp/sys_ia32.o.after /tmp/text.after [acme@doppio net-2.6]$ md5sum /tmp/text.before /tmp/text.after b7ac9b17942add68494e698e4f965d36 /tmp/text.before b7ac9b17942add68494e698e4f965d36 /tmp/text.after One of the complaints about using tools such as systemtap is that one has to install the huge kernel-debuginfo package: [acme@doppio net-2.6]$ rpm -q --qf "%{size}\n" kernel-rt-debuginfo 471737710 543867594 [acme@doppio net-2.6]$ Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 52b387197beb5c89f734f057553fdf7d417b448c Author: Ingo Molnar Date: Sun Feb 17 20:06:36 2008 +0100 x86: bump image header to version 2.08. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 7d6e737c8d2698b63ad10fd75cc6793380395d0e Author: Ian Campbell Date: Sun Feb 17 20:06:35 2008 +0100 x86: add a crc32 checksum to the kernel image. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 099e1377269a47ed30a00ee131001988e5bcaa9c Author: Ian Campbell Date: Wed Feb 13 20:54:58 2008 +0000 x86: use ELF format in compressed images. Signed-off-by: Ian Campbell Cc: Ian Campbell Cc: Jeremy Fitzhardinge Cc: virtualization@lists.linux-foundation.org Cc: H. Peter Anvin Cc: Jeremy Fitzhardinge Cc: virtualization@lists.linux-foundation.org Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e0bf0f75bdc441abb05365abc56ee96ba44ca073 Author: Harvey Harrison Date: Fri Feb 8 12:10:03 2008 -0800 x86: define DEBUG_SIG in signal_64.c Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 866bc13fc4c625186dd01429c68c5cf708f1cfd5 Author: Harvey Harrison Date: Fri Feb 8 12:10:02 2008 -0800 x86: Unify argument names in signal_32|64.c Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 123a63476cafcede1c70529f62a5bfb96a0efc1b Author: Harvey Harrison Date: Fri Feb 8 12:10:00 2008 -0800 x86: move struct definitions to unifed sigframe.h [ tglx@linutronix.de: cleanup the other structs as well ] Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2d19c4580682511be1eadf47cdee22d5eb002f94 Author: Harvey Harrison Date: Fri Feb 8 12:10:00 2008 -0800 x86: use sizeof(long) to unify signal_32|64.c Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 1a1768039c8fdd48d69a6bc3b7f56943b2b20567 Author: Harvey Harrison Date: Fri Feb 8 12:09:59 2008 -0800 x86: Use FIX_EFLAGS define in X86_64 [ tglx@linutronix.de: simplified ] Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ac66f3fd89ee20b73b3374e6343c5e36e3e3c51a Author: Harvey Harrison Date: Fri Feb 8 12:09:58 2008 -0800 x86: reduce trivial style differences in signal_32|64.c Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c3e6ff87a3ad9124a67e149e4f9c080626a0d83e Author: Harvey Harrison Date: Fri Feb 8 12:09:57 2008 -0800 x86: regparm(3) is mandatory, no need to annotate Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 9902a702c76f904be0057f8647dda9d6f89d4847 Author: Harvey Harrison Date: Fri Feb 8 12:09:57 2008 -0800 x86: make X86_32 pt_regs members unsigned long Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 92bc2056855b3250bf6fd5849f05f88d85839efa Author: Harvey Harrison Date: Fri Feb 8 12:09:56 2008 -0800 x86: change most X86_32 pt_regs members to unsigned long Signed-off-by: Harvey Harrison Cc: Roland McGrath Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 45de70791165ce7eac5232ed5a7c31152567f4da Author: Andi Kleen Date: Sat Feb 9 16:17:01 2008 +0100 x86: enable ACPI extended century handling for 32bit The extended century readout does not solve the year 2038 problem on 32bit! v2: Fix compilation on !ACPI, pointed out by tglx Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 068c9222d0206e8a6a905efeb9f4fe8dde8b5ff5 Author: Andi Kleen Date: Sat Feb 9 16:16:59 2008 +0100 x86: add warning when RTC clock reports binary We assume that the RTC clock is BCD, so print a warning if it claims to be binary. [ tglx@linutronix.de: changed to WARN_ON - we want to know that! If no one reports it we can remove the complete if (RTC_ALWAYS_BCD) magic, which has RTC_ALWAYS_BCD defined to 1 since Linux 1.0 ... ] Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b62576a2f53ad7edf604fedba0da1d4329749b7d Author: Andi Kleen Date: Sat Feb 9 16:16:58 2008 +0100 x86: use year 2000 offset for cmos clock We know it is already after 2000. Use the year 2000 offset for both 32 and 64 bit, which removes ifdefs and the 1970 magic. [ tglx@linutronix.de: remove 1970 magic, replace bogus commit message ] Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 48c508b364324c35018284328b5b92c51d2b30e0 Author: Yinghai Lu Date: Thu Apr 17 17:40:45 2008 +0200 x86: clean up find_e820_area(), 64-bit Change size to unsigned long, becase caller and user all used unsigned long. Also make bad_addr take an alignment parameter. Signed-off-by: Yinghai Lu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ef9257668e3199f9566dc4a31f5292838bd99b49 Author: Andi Kleen Date: Thu Apr 17 17:40:45 2008 +0200 x86: do kernel direct mapping at boot using GB pages The AMD Fam10h CPUs support new Gigabyte page table entry for mapping 1GB at a time. Use this for the kernel direct mapping. Only done for 64bit because i386 does not support GB page tables. This only applies to the data portion of the direct mapping; the kernel text mapping stays with 2MB pages because the AMD Fam10h microarchitecture does not support GB ITLBs and AMD recommends against using GB mappings for code. Can be disabled with disable_gbpages on the kernel command line [ tglx@linutronix.de: simplify enable code ] [ Yinghai Lu : boot fix on 256 GB RAM ] Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 00d1c5e05736f947687be27706bda01cec104e57 Author: Ingo Molnar Date: Thu Apr 17 17:40:45 2008 +0200 x86: add gbpages switches These new controls toggle experimental support for a new CPU feature, the straightforward extension of largepages from the pmd level to the pud level, which allows 1GB (kernel) TLBs instead of 2MB TLBs. Turn it off by default, as this code has not been tested well enough yet. Use the CONFIG_DIRECT_GBPAGES=y .config option or gbpages on the boot line can be used to enable it. If enabled in the .config then nogbpages boot option disables it. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit fe770bf0310d90b3b033c19044d45b7de5f2041c Author: H. Peter Anvin Date: Thu Apr 17 17:40:45 2008 +0200 x86: clean up the page table dumper and add 32-bit support Clean up the page table dumper (fix boundary conditions, table driven address ranges, some formatting changes since it is no longer using the kernel log but a separate virtual file), and generalize to 32 bits. [ mingo@elte.hu: x86: fix the pagetable dumper ] Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 926e5392ba8a388ae32ca0d2714cc2c73945c609 Author: Arjan van de Ven Date: Thu Apr 17 17:40:45 2008 +0200 x86: add code to dump the (kernel) page tables for visual inspection by kernel developers This patch adds code to the kernel to have an (optional) /proc/kernel_page_tables debug file that basically dumps the kernel pagetables; this allows us kernel developers to verify that nothing fishy is going on and that the various mappings are set up correctly. This was quite useful in finding various change_page_attr() bugs, and is very likely to be useful in the future as well. Signed-off-by: Arjan van de Ven Cc: mingo@elte.hu Cc: tglx@tglx.de Cc: hpa@zytor.com Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 2596e0fae094be9354b29ddb17e6326a18012e8c Author: H. Peter Anvin Date: Thu Apr 17 17:40:45 2008 +0200 x86: unify arch/x86/mm/Makefile Unify arch/x86/mm/Makefile between 32 and 64 bits. All configuration variables that are protected by Kconfig constraints have been put in the common part of the Makefile; however, the NUMA files are totally different between 32 and 64 bits and are handled via an ifdef. Signed-off-by: H. Peter Anvin Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit ee7ae7a1981caaa4a5b14d8c75692a9dccd52105 Author: Thomas Gleixner Date: Thu Apr 17 17:40:45 2008 +0200 x86: add debug info to DEBUG_PAGEALLOC Add debug information for DEBUG_PAGEALLOC to get some statistics about the pool usage and split status. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 5de253cc5b1f565f7aeb5bacd67bac37e943ceef Author: Roland McGrath Date: Wed Apr 9 01:30:06 2008 -0700 x86 vDSO: don't map 32-bit vdso when disabled We map a VMA for the 32-bit vDSO even when it's disabled, which is stupid. For the 32-bit kernel it's the vdso_enabled boot parameter/sysctl and for the 64-bit kernel it's the vdso32 boot parameter/syscall32 sysctl. When it's disabled, we don't pass AT_SYSINFO_EHDR so processes don't use the vDSO for anything, but we still map it. For the non-compat vDSO, this means we're always putting an extra VMA somewhere, maybe lousing up the control of the address space the user was hoping for. Honor the setting by doing nothing in arch_setup_additional_pages. [ also see: "x86 vDSO: don't use disabled vDSO for signal trampoline" ] Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit 1a3e4ca41c5a38975023a6e8831c309d3322889c Author: Roland McGrath Date: Wed Apr 9 01:29:27 2008 -0700 x86 vDSO: don't use disabled vDSO for signal trampoline If the vDSO was not mapped, don't use it as the "restorer" for a signal handler. Whether we have a pointer in mm->context.vdso depends on what happened at exec time, so we shouldn't check any global flags now. Background: Currently, every 32-bit exec gets the vDSO mapped even if it's disabled (the process just doesn't get told about it). Because it's in fact always there, the bug that this patch fixes cannot happen now. With the second patch, it won't be mapped at all when it's disabled, which is one of the things that people might really want when they disable it (so nothing they didn't ask for goes into their address space). The 32-bit signal handler setup when SA_RESTORER is not used refers to current->mm->context.vdso without regard to whether the vDSO has been disabled when the process was exec'd. This patch fixes this not to use it when it's null, which becomes possible after the second patch. (This never happens in normal use, because glibc's sigaction call uses SA_RESTORER unless glibc detected the vDSO.) Signed-off-by: Roland McGrath Signed-off-by: Ingo Molnar commit 85eb69a16aab5a394ce043c2131319eae35e6493 Author: Ingo Molnar Date: Thu Feb 21 12:50:51 2008 +0100 x86: increase the kernel text limit to 512 MB people sometimes do crazy stuff like building really large static arrays into their kernels or building allyesconfig kernels. Give more space to the kernel and push modules up a bit: kernel has 512 MB and modules have 1.5 GB. Should be enough for a few years ;-) Signed-off-by: Ingo Molnar commit b4e0409a36f4533770a12095bde2a574a08a319e Author: Ingo Molnar Date: Thu Feb 21 13:45:16 2008 +0100 x86: check vmlinux limits, 64-bit these build-time and link-time checks would have prevented the vmlinux size regression. Signed-off-by: Ingo Molnar commit 223ac2f42d49dd0324ca02ea15897ead1a2f5133 Author: Björn Steinbrink Date: Mon Mar 31 04:22:53 2008 +0200 x86, pci: fix off-by-one errors in some pirq warnings fix bogus pirq warnings reported in: http://bugzilla.kernel.org/show_bug.cgi?id=10366 safe to be backported to v2.6.25 and earlier. Cc: stable@kernel.org Signed-off-by: Björn Steinbrink Signed-off-by: Ingo Molnar commit 2342e51ba2b52a7f5b78227e6faa4603ed3632a0 Author: Matthew Wilcox Date: Thu Apr 17 10:53:01 2008 -0400 Remove DEBUG_SEMAPHORE from Kconfig Alpha and FRV mutexes had an option to print lots of debugging messages in their semaphore implementation. This feature has not been carried over to the generic semaphores, so remove the stale Kconfig option. Signed-off-by: Matthew Wilcox commit 714493cd5468f42ca3c4f730a9c17c203abd5059 Author: Matthew Wilcox Date: Fri Apr 11 15:23:52 2008 -0400 Improve semaphore documentation Move documentation from semaphore.h to semaphore.c as requested by Andrew Morton. Also reformat to kernel-doc style and add some more notes about the implementation. Signed-off-by: Matthew Wilcox commit b17170b2fac96705db3188f093f89e8e838418e4 Author: Matthew Wilcox Date: Fri Mar 14 14:35:22 2008 -0400 Simplify semaphore implementation By removing the negative values of 'count' and relying on the wait_list to indicate whether we have any waiters, we can simplify the implementation by removing the protection against an unlikely race condition. Thanks to David Howells for his suggestions. Signed-off-by: Matthew Wilcox commit f1241c87a16c4fe9f4f51d6ed3589f031c505e8d Author: Matthew Wilcox Date: Fri Mar 14 13:43:13 2008 -0400 Add down_timeout and change ACPI to use it ACPI currently emulates a timeout for semaphores with calls to down_trylock and sleep. This produces horrible behaviour in terms of fairness and excessive wakeups. Now that we have a unified semaphore implementation, adding a real down_trylock is almost trivial. Signed-off-by: Matthew Wilcox commit f06d96865861c3dd01520f47e2e61c899db1631f Author: Matthew Wilcox Date: Fri Mar 14 13:19:33 2008 -0400 Introduce down_killable() down_killable() is the functional counterpart of mutex_lock_killable. Signed-off-by: Matthew Wilcox commit 64ac24e738823161693bf791f87adc802cf529ff Author: Matthew Wilcox Date: Fri Mar 7 21:55:58 2008 -0500 Generic semaphore implementation Semaphores are no longer performance-critical, so a generic C implementation is better for maintainability, debuggability and extensibility. Thanks to Peter Zijlstra for fixing the lockdep warning. Thanks to Harvey Harrison for pointing out that the unlikely() was unnecessary. Signed-off-by: Matthew Wilcox Acked-by: Ingo Molnar commit e48b3deee475134585eed03e7afebe4bf9e0dba9 Author: Matthew Wilcox Date: Tue Feb 26 18:34:25 2008 -0500 Add semaphore.h to kernel_lock.c kernel_lock.c uses DECLARE_MUTEX, up() and down() without explicitly including asm/semaphore.h. This is fragile and leaves it vulnerable to breakage during header reorganisations. Signed-off-by: Matthew Wilcox commit 8b91de2e58318d1168bc13d164478c1a7217a63a Author: Matthew Wilcox Date: Tue Feb 26 09:53:20 2008 -0500 Fix quota.h includes quota.h currently relies on asm/semaphore.h (through some chain; it doesn't actually include semaphore.h itself) to include wait.h. As well as being bad practice to rely on an implicit include, subsequent patches will break this. While I'm in this file, add atomic.h and list.h, and sort the list of includes. Signed-off-by: Matthew Wilcox commit 6993fc5bbc5d63ccd55985b39c34417e430e75e9 Author: Andi Kleen Date: Wed Jan 30 13:30:02 2008 +0100 clocksource: make clocksource watchdog cycle through online CPUs This way it checks if the clocks are synchronized between CPUs too. This might be able to detect slowly drifting TSCs which only go wrong over longer time. Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3833eecc183ce052e9ac96b39b45121a2d11ac16 Author: Thomas Gleixner Date: Wed Mar 5 18:28:15 2008 +0100 Documentation: move timer related documentation to a single place We have two directories with timer related information in Documentation/: hrtimers/ and hrtimer/. timer_stats are not restricted to hrtimers. Move all those files into Documentation/timers where we can pile up other timer related docs as well. Pointed-out-by: Randy Dunlap Signed-off-by: Thomas Gleixner commit 903b8a8d4835a796f582033802c83283886f4a3d Author: Karsten Wiese Date: Thu Feb 28 15:10:50 2008 +0100 clockevents: optimise tick_nohz_stop_sched_tick() a bit Call ts = &per_cpu(tick_cpu_sched, cpu); and cpu = smp_processor_id(); once instead of twice. No functional change done, as changed code runs with local irq off. Reduces source lines and text size (20bytes on x86_64). [ akpm@linux-foundation.org: Build fix ] Signed-off-by: Karsten Wiese Cc: Andrew Morton Signed-off-by: Thomas Gleixner commit 3f3eafc921e2378954c28cfd0eb10910449f4c11 Author: Oleg Nesterov Date: Fri Apr 4 20:54:10 2008 +0200 locking: remove unused double_spin_lock() double_spin_lock() has no callers, and it can't be used without additional lockdep annotations, remove it. Signed-off-by: Oleg Nesterov Cc: Arjan van de Ven Cc: Heiko Carstens Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit 8e60e05fdc7344415fa69a3883b11f65db967b47 Author: Oleg Nesterov Date: Fri Apr 4 20:54:10 2008 +0200 hrtimers: simplify lockdep handling In order to avoid the false positive from lockdep, each per-cpu base->lock has the separate lock class and migrate_hrtimers() uses double_spin_lock(). This is overcomplicated: except for migrate_hrtimers() we never take 2 locks at once, and migrate_hrtimers() can use spin_lock_nested(). Signed-off-by: Oleg Nesterov Cc: Arjan van de Ven Cc: Heiko Carstens Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit 0d180406f2914aea3a78ddb880e2fe9ac78a9372 Author: Oleg Nesterov Date: Fri Apr 4 20:54:10 2008 +0200 timers: simplify lockdep handling In order to avoid the false positive from lockdep, each per-cpu base->lock has the separate lock class and migrate_timers() uses double_spin_lock(). This all is overcomplicated: except for migrate_timers() we never take 2 locks at once, and migrate_timers() can use spin_lock_nested(). Signed-off-by: Oleg Nesterov Cc: Arjan van de Ven Cc: Heiko Carstens Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit ee7dd205b5cdbc3231d48e38641efd05f572c52a Author: WANG Cong Date: Fri Apr 4 20:54:10 2008 +0200 posix-timers: fix shadowed variables Fix sparse warnings like this: kernel/posix-cpu-timers.c:1090:25: warning: symbol 't' shadows an earlier one kernel/posix-cpu-timers.c:1058:21: originally declared here Signed-off-by: WANG Cong Signed-off-by: Andrew Morton Signed-off-by: Thomas Gleixner commit d59b949f771eb3cbe50865c72e13e2a0a8d4d781 Author: Pavel Machek Date: Tue Feb 5 00:48:13 2008 +0100 timer_list: add annotations to workqueue.c Add timer list annotations to workqueue.c so we can see the call site in the timer stats. Signed-off-by: Pavel Machek Signed-off-by: Thomas Gleixner commit 029a07e0311c7fef968d44b50beca53969cee40b Author: Thomas Gleixner Date: Sun Feb 10 09:17:43 2008 +0100 hrtimer: use nanosleep specific restart_block fields Convert all the nanosleep related users of restart_block to the new nanosleep specific restart_block fields. Signed-off-by: Thomas Gleixner commit a332d86d3c262cddd3de0bfa90e1910de60b4f95 Author: Thomas Gleixner Date: Sun Feb 10 09:04:12 2008 +0100 hrtimer: add nanosleep specific restart_block member The back and forth typecasting of restart_block->args is horrible. We added a separate union member for futex already. Do the same for nanosleep. Signed-off-by: Thomas Gleixner commit ca68305bf3c76c4a7cd1c77d5423219f39164df8 Author: Martin Schwidefsky Date: Thu Apr 17 07:46:31 2008 +0200 [S390] Remove code duplication from monreader / dcssblk. Move the function that prints the segment warning messages found in the monreader driver and the dcssblk driver to the extmem base code. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 9e74a6b8983c2653dd2a6f51e634efa281e95d59 Author: Christian Borntraeger Date: Thu Apr 17 07:46:30 2008 +0200 [S390] kernel: show last breaking-event-address on oops Newer s390 models have a breaking-event-address-recording register. Each time an instruction causes a break in the sequential instruction execution, the address is saved in that hardware register. On a program interrupt the address is copied to the lowcore address 272-279, which makes it software accessible. This patch changes the program check handler and the stack overflow checker to copy the value into the pt_regs argument. The oops output is enhanced to show the last known breaking address. It might give additional information if the stack trace is corrupted. The feature is only available on 64 bit. The new oops output looks like: [---------snip----------] Modules linked in: vmcp sunrpc qeth_l2 dm_mod qeth ccwgroup CPU: 2 Not tainted 2.6.24zlive-host #8 Process modprobe (pid: 4788, task: 00000000bf3d8718, ksp: 00000000b2b0b8e0) Krnl PSW : 0704200180000000 000003e000020028 (vmcp_init+0x28/0xe4 [vmcp]) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3 Krnl GPRS: 0000000004000002 000003e000020000 0000000000000000 0000000000000001 000000000015734c ffffffffffffffff 000003e0000b3b00 0000000000000000 000003e00007ca30 00000000b5bb5d40 00000000b5bb5800 000003e0000b3b00 000003e0000a2000 00000000003ecf50 00000000b2b0bd50 00000000b2b0bcb0 Krnl Code: 000003e000020018: c0c000040ff4 larl %r12,3e0000a2000 000003e00002001e: e3e0f0000024 stg %r14,0(%r15) 000003e000020024: a7f40001 brc 15,3e000020026 >000003e000020028: e310c0100004 lg %r1,16(%r12) 000003e00002002e: c020000413dc larl %r2,3e0000a27e6 000003e000020034: c0a00004aee6 larl %r10,3e0000b5e00 000003e00002003a: a7490001 lghi %r4,1 000003e00002003e: a75900f0 lghi %r5,240 Call Trace: ([<000000000014b300>] blocking_notifier_call_chain+0x2c/0x40) [<000000000015735c>] sys_init_module+0x19d8/0x1b08 [<0000000000110afc>] sysc_noemu+0x10/0x16 [<000002000011cda2>] 0x2000011cda2 Last Breaking-Event-Address: [<000003e000020024>] vmcp_init+0x24/0xe4 [vmcp] [---------snip----------] Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 1a5debaaace41f1e91014332e6eedde4499e5638 Author: Heiko Carstens Date: Thu Apr 17 07:46:29 2008 +0200 [S390] lowcore: Change type of lowcores softirq_pending to __u32. As noted by akpm: > kernel/time/tick-sched.c: In function 'tick_nohz_stop_sched_tick': > kernel/time/tick-sched.c:229: warning: format '%02x' expects type 'unsigned int', but argument 2 has type '__u64' > > I don't think the architecture's local_softirq_pending() should return u64. > This is the sort of thing which should be consistent across architectures. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 1749a81d629b1295b38071914728cc2e72066f4d Author: Felix Beck Date: Thu Apr 17 07:46:28 2008 +0200 [S390] zcrypt: Comments and kernel-doc cleanup Comments, which suggested to be kernel-doc but were not in the right formatting, have been corrected. Additionally some minor cleanup in the comments has been done. Signed-off-by: Felix Beck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 3f12ebce6a004c8e9bf639801842f67e578ee7c6 Author: Heiko Carstens Date: Thu Apr 17 07:46:27 2008 +0200 [S390] uaccess: Always access the correct address space. The current uaccess page table walk code assumes at a few places that any access is a user space access. This is not correct if somebody has issued a set_fs(KERNEL_DS) in advance. Add code which checks which address space we are in and with this make sure we access the correct address space. This way we get also rid of the dirty if (!currrent-mm) return -EFAULT; hack in futex_atomic_cmpxchg_pt. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit a806170e29c5468b1d641a22518243bdf1b8d58b Author: Heiko Carstens Date: Thu Apr 17 07:46:26 2008 +0200 [S390] Fix a lot of sparse warnings. Most noteable part of this commit is the new local header file entry.h which contains all the function declarations of functions that get only called from asm code or are arch internal. That way we can avoid extern declarations in C files. This is more or less the same that was done for sparc64. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 5a62b192196af9a798e2f2f4c6a1324e7edf2f4b Author: Heiko Carstens Date: Thu Apr 17 07:46:25 2008 +0200 [S390] Convert s390 to GENERIC_CLOCKEVENTS. This way we get rid of s390's NO_IDLE_HZ and use the generic dynticks variant instead. In addition we get high resolution timers for free. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d7b906897e9caae452947e33674df0a2d6f7e10f Author: Russell King Date: Thu Apr 17 07:46:24 2008 +0200 [S390] genirq/clockevents: move irq affinity prototypes/inlines to interrupt.h > Generic code is not supposed to include irq.h. Replace this include > by linux/hardirq.h instead and add/replace an include of linux/irq.h > in asm header files where necessary. > This change should only matter for architectures that make use of > GENERIC_CLOCKEVENTS. > Architectures in question are mips, x86, arm, sh, powerpc, uml and sparc64. > > I did some cross compile tests for mips, x86_64, arm, powerpc and sparc64. > This patch fixes also build breakages caused by the include replacement in > tick-common.h. I generally dislike adding optional linux/* includes in asm/* includes - I'm nervous about this causing include loops. However, there's a separate point to be discussed here. That is, what interfaces are expected of every architecture in the kernel. If generic code wants to be able to set the affinity of interrupts, then that needs to become part of the interfaces listed in linux/interrupt.h rather than linux/irq.h. So what I suggest is this approach instead (against Linus' tree of a couple of days ago) - we move irq_set_affinity() and irq_can_set_affinity() to linux/interrupt.h, change the linux/irq.h includes to linux/interrupt.h and include asm/irq_regs.h where needed (asm/irq_regs.h is supposed to be rarely used include since not much touches the stacked parent context registers.) Build tested on ARM PXA family kernels and ARM's Realview platform kernels which both use genirq. [ tglx@linutronix.de: add GENERIC_HARDIRQ dependencies ] Signed-off-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 43ca5c3a1cefdaa09231d64485b8f676118bf1e0 Author: Heiko Carstens Date: Thu Apr 17 07:46:23 2008 +0200 [S390] Convert monitor calls to function calls. Remove the program check generating monitor calls and use function calls instead. Theres is no real advantage in using monitor calls, but they do make debugging harder, because of all the program checks it generates. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit e1776856286bef076f400ec062b150b6f3c353cd Author: Ursula Braun Date: Thu Apr 17 07:46:22 2008 +0200 [S390] qdio (new feature): enhancing info-retrieval from QDIO-adapters Next generation of OSA adapters allows retrieval of further self-describing infos. This is the preparational infrastructure patch for further exploitation in the qeth driver. Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 2a2cf6b18626e66b7898013dfa4df8fe2feca568 Author: Harvey Harrison Date: Thu Apr 17 07:46:21 2008 +0200 [S390] replace remaining __FUNCTION__ occurrences __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 1e42f32785dc252191bc8a4825e1fee77519d947 Author: Johannes Weiner Date: Thu Apr 17 07:46:20 2008 +0200 [S390] remove redundant display of free swap space in show_mem() Signed-off-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit efca13bc70dc2458cd36cc5ae3ffc240b9719222 Author: Ursula Braun Date: Thu Apr 17 07:46:19 2008 +0200 [S390] qdio: remove outdated developerworks link. Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 9637c3f318374e2fcc37e354f9782a705b517387 Author: Michael Holzheu Date: Thu Apr 17 07:46:18 2008 +0200 [S390] Add debug_register_mode() function to debug feature API The new function supports setting of permissions for the debugfs files created by the debug feature. In addition to that, the function provides uid and gid as parameters for future use. Currently only root is allowed for uid and gid. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 9f7819c1e51d5310d012426599a5f49d8678119d Author: Heiko Carstens Date: Thu Apr 17 07:46:17 2008 +0200 [S390] crypto: use more descriptive function names for init/exit routines. Not very helpful when code dies in "init". See also http://lkml.org/lkml/2008/3/26/557 . Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c0015f91d8414f55d2debfe9984a04b98b48f087 Author: Jan Glauber Date: Thu Apr 17 07:46:16 2008 +0200 [S390] switch sched_clock to store-clock-extended. Add get_clock_xt to read an 8 byte clock value using store clock extended (STCKE) and use get_clock_xt for sched_clock. STCKE should be faster than STCK on newer machines. Signed-off-by: Jan Glauber Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 2f7c8bd6dc6540aa3275c0ad9f657401985c00e9 Author: Ralph Wuerthner Date: Thu Apr 17 07:46:15 2008 +0200 [S390] zcrypt: add support for large random numbers This patch allows user space applications to access large amounts of truly random data. The random data source is the build-in hardware random number generator on the CEX2C cards. Signed-off-by: Ralph Wuerthner Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 893f11286644780fc7d6d415e537644da7bdaaf8 Author: Ralph Wuerthner Date: Thu Apr 17 07:46:14 2008 +0200 [S390] hw_random: allow rng_dev_read() to return hardware errors. The api for hardware random number generators is currently limited to devices that never fail. If the hardware is registered as a source for random numbers it has to work. This prevents the use of i/o based random number devices where the i/o might fail. Add a check for errors after the read from a hardware random number device. This patch is required to support large random numbers retrieved from the CEX2C cards on System z. Signed-off-by: Ralph Wuerthner Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c10fde0d9e2112c25052a8742e893ec5965c0007 Author: Heiko Carstens Date: Thu Apr 17 07:46:13 2008 +0200 [S390] Vertical cpu management. If vertical cpu polarization is active then the hypervisor will dispatch certain cpus for a longer time than other cpus for maximum performance. For example if a guest would have three virtual cpus, each of them with a share of 33 percent, then in case of vertical cpu polarization all of the processing time would be combined to a single cpu which would run all the time, while the other two cpus would get nearly no cpu time. There are three different types of vertical cpus: high, medium and low. Low cpus hardly get any real cpu time, while high cpus get a full real cpu. Medium cpus get something in between. In order to switch between the two possible modes (default is horizontal) a 0 for horizontal polarization or a 1 for vertical polarization must be written to the dispatching sysfs attribute: /sys/devices/system/cpu/dispatching The polarization of each single cpu can be figured out by the polarization sysfs attribute of each cpu: /sys/devices/system/cpu/cpuX/polarization horizontal, vertical:high, vertical:medium, vertical:low or unknown. When switching polarization the polarization attribute may contain the value unknown until the configuration change is done and the kernel has figured out the new polarization of each cpu. Note that running a system with different types of vertical cpus may result in significant performance regressions. If possible only one type of vertical cpus should be used. All other cpus should be offlined. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit dbd70fb499952d0ba282f0159dafacfc31d50313 Author: Heiko Carstens Date: Thu Apr 17 07:46:12 2008 +0200 [S390] cpu topology support for s390. Add s390 backend so we can give the scheduler some hints about the cpu topology. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 7b758389a29cb7f456ec2d27b7a08cb3cc4e1f1c Author: Heiko Carstens Date: Thu Apr 17 07:46:11 2008 +0200 [S390] Export stfle. Make stfle visible so other code can call this. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit cbce70e687bf9c7968d63f058b4c3d2e90008ce2 Author: Martin Schwidefsky Date: Thu Apr 17 07:46:10 2008 +0200 [S390] Add new fields for System z10 to /proc/sysinfo Add permanent and temporary model capacity and the corresponding capacity value fields for the three capacity identifiers to the output of /proc/sysinfo. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit aa24f7f08baca5aa9201901131cbdd0b14deceb6 Author: Christian Borntraeger Date: Thu Apr 17 07:46:09 2008 +0200 [S390] KVM preparation: split sysinfo definitions for kvm use drivers/s390/sysinfo.c uses the store system information intruction to query the system about information of the machine, the LPAR and additional hypervisors. KVM has to implement the host part for this instruction. To avoid code duplication, this patch splits the common definitions from sysinfo.c into a separate header file include/asm-s390/sysinfo.h for KVM use. Signed-off-by: Christian Borntraeger Signed-off-by: Carsten Otte Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit f60c768c387026499bbdefdd807d9124ae2b3a8c Author: Stefan Haberland Date: Thu Apr 17 07:46:08 2008 +0200 [S390] dasd: add sim handling. Now the system reports system information messages (SIM) to the user. The System Reference Code (SRC) which is reported to the user gives the abbility to lookup the reason of the SIM online in the documentation of the storage server. Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit c2e8b8531b162fb314434f1f2608ba1ddf46b98f Author: Heiko Carstens Date: Thu Apr 17 07:46:07 2008 +0200 [S390] exec_protect: Fix incorrect extern declarations. sys_sigreturn and sys_rt_sigreturn don't take any arguments. So luckily this resulted only in unneeded instead of incorrect code. But still this clearly shows why one should not put extern declarations in C files (will be fixed with a larger sparse patch). Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit a695f16729e00995fe72baf0e8bee4bf9c232ae0 Author: Frank Munzert Date: Thu Apr 17 07:46:06 2008 +0200 [S390] vmur: Use wait queue instead of mutex to serialize open If user space opens a unit record device node then vmur is leaving the kernel with lock open_mutex still held to prevent other processes from opening the device simultaneously. This causes lockdep to complain about a lock held when returning to user space. Now the mutex is replaced by a wait queue to serialize device open. Signed-off-by: Frank Munzert Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 92bf435f383a6193d59c687ce87ccca3529c68a1 Author: Michael Holzheu Date: Thu Apr 17 07:46:05 2008 +0200 [S390] tape: duplicate sysfs filename when setting tape device online When a tape device is set online, offline and online again, the following error message is printed on the console: "sysfs: duplicate filename 'non-rewinding' can not be created". The reason is that when setting a device online, the tape driver creates a sysfs symlink from the tape device to the tape class device. Unfortunately the symlink is not removed correctly, when the device is set offline. Instead of passing the tape device object to sysfs_remove_link, the class device object is used. This patch fixes this problem and uses the correct tape device object now. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 00966c0a5b00bc0afdc0bd0446adec271f8b098b Author: Stefan Haberland Date: Thu Apr 17 07:46:04 2008 +0200 [S390] dasd: use GFP_DMA for fba private data allocation allocating dasd_fba_private without GFP_DMA results in IO error during read device characteristics of a FBA disk Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 35b58b028dfc99dd390a09f66945947c4945fa64 Author: Ursula Braun Date: Thu Apr 17 07:46:03 2008 +0200 [S390] qdio: Unrecognized inbound traffic if many FCP devices are online Problem: Usually every FCP device has its own indicator field the adapter uses to signal outstanding work. Once a certain limit of devices is reached, a common indicator field is used. In certain scenarios qdio resets this common indicator field, but handles only part of the FCP-devices sharing the common indicator field. Thus inbound traffic on the non-processed shared FCP-devices is not recognized immediately. Solution: Make sure common indicator field is reset only, if all FCP-devices sharing the indicator are processed. Signed-off-by: Ursula Braun Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit d1e23375bf5d1079cd54a1c6bc8592c42061f1e1 Author: Heiko Carstens Date: Thu Apr 17 07:46:02 2008 +0200 [S390] sclp: Get rid of in_atomic() use. Reintroduces in_interrupt() check in sclp_tty code. Add may_schedule parameter to vt220 write function, so we can let the write function know if it may schedule or not. So we disallow scheduling for all console calls and may allow them for tty calls. Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 8284fb19efa1f11ea8dd213e9e227fc1fcb20586 Author: Michael Ernst Date: Thu Apr 17 07:46:01 2008 +0200 [S390] cio: fix parallel cm_enable processing. It is now possible to trigger cm_enable processing several times in parallel without causing a kernel panic. Signed-off-by: Michael Ernst Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit fe6173d9b33dba18ec462051750fb1b9abcd796d Author: Cornelia Huck Date: Thu Apr 17 07:46:00 2008 +0200 [S390] cio: Trigger verification on device/path not operational. Currently, we don't do much on no path or no device situations during normal user I/O, since we rely on reports regarding those events by the machine. If we trigger a path verification to bring our device state up-to-date, we (a) may recover from path failures earlier and (b) better handle situations where the hardware/hypervisor doesn't give us enough notifications. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 22806dc1a8ffd88a7c7bdd070879e6e323db496a Author: Cornelia Huck Date: Thu Apr 17 07:45:59 2008 +0200 [S390] cio: Fix race for "fast" path gone/path back situations. Make sure we wait for previous evaluations triggered by path state changes to have settled before we manipulate path states again. Signed-off-by: Cornelia Huck Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 374b8f45f1d5cb17f45ba1d7c74ce8cc9e2f1407 Author: Martin Schwidefsky Date: Thu Apr 17 07:45:58 2008 +0200 [S390] allnoconfig build error. Fix the following link error with allnoconfig: vmem.c:(.text+0x175c): undefined reference to `smp_ptlb_all' vmem.c:(.text+0x1b24): undefined reference to `smp_ptlb_all' fork.c:(.text+0x4190): undefined reference to `smp_ptlb_all' : undefined reference to `smp_ptlb_all' : undefined reference to `smp_ptlb_all' mm/built-in.o:: more undefined references to `smp_ptlb_all' follow make[1]: *** [.tmp_vmlinux1] Error 1 make: *** [sub-make] Error 2 Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit de553438eb6c487f72d46019eb3821f6687ce011 Author: Heiko Carstens Date: Thu Apr 17 07:45:57 2008 +0200 [S390] Protect against sigaltstack wraparound. This is just a port of 83bd01024b1fdfc41d9b758e5669e80fca72df66 "x86: protect against sigaltstack wraparound". Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 08a8a0c59e54f7eb80897c1e77efa4a541d11008 Author: Josef 'Jeff' Sipek Date: Thu Apr 17 07:45:56 2008 +0200 [S390] dasd: fix double elevator_exit call when deadline iosched fails to load I compiled the kernel without deadline, and the dasd code exits the old scheduler (CFQ), fails to load the new one (deadline), and then things just hang - with one of these (sorry about the weird chars - I copy & pasted it from a 3270 console): dasd(eckd): 0.0.0151: 3390/0A(CU:3990/01) Cyl:3338 Head:15 Sec:224 ------------ cut here ------------ Badness at kernel/mutex.c:134 Modules linked in: dasd_eckd_mod dasd_mod CPU: 0 Not tainted 2.6.25-rc3 #9 Process exe (pid: 538, task: 000000000d172000, ksp: 000000000d21ef88) Krnl PSW : 0404000180000000 000000000022fb5c (mutex_lock_nested+0x2a4/0x2cc) R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3 Krnl GPRS: 0000000000024218 000000000076fc78 0000000000000000 000000000000000f 000000000022f92e 0000000000449898 000000000f921c00 000003e000162590 00000000001539c4 000000000d172000 070000007fffffff 000000000d21f400 000000000f8f2560 00000000002413f8 000000000022fb44 000000000d21f400 Krnl Code: 000000000022fb50: bf2f1000 icm %r2,15,0(%r1) 000000000022fb54: a774fef6 brc 7,22f940 000000000022fb58: a7f40001 brc 15,22fb5a >000000000022fb5c: a7f4fef2 brc 15,22f940 000000000022fb60: c0e5fffa112a brasl %r14,171db4 000000000022fb66: 1222 ltr %r2,%r2 000000000022fb68: a784fedb brc 8,22f91e 000000000022fb6c: c010002a0086 larl %r1,76fc78 Call Trace: (<000000000022f92e> mutex_lock_nested+0x76/0x2cc) <00000000001539c4> elevator_exit+0x38/0x80 <0000000000156ffe> blk_cleanup_queue+0x62/0x7c <000003e0001d5414> dasd_change_state+0xe0/0x8ec <000003e0001d5cae> dasd_set_target_state+0x8e/0x9c <000003e0001d5f74> dasd_generic_set_online+0x160/0x284 <000003e00011e83a> dasd_eckd_set_online+0x2e/0x40 <0000000000199bf4> ccw_device_set_online+0x170/0x2c0 <0000000000199d9e> online_store_recog_and_online+0x5a/0x14c <000000000019a08a> online_store+0xbe/0x2ec <000000000018456c> dev_attr_store+0x38/0x58 <000000000010efbc> sysfs_write_file+0x130/0x190 <00000000000af582> vfs_write+0xb2/0x160 <00000000000afc7c> sys_write+0x54/0x9c <0000000000025e16> sys32_write+0x2e/0x50 <0000000000024218> sysc_noemu+0x10/0x16 <0000000077e82bd2> 0x77e82bd2 Set elevator pointer to NULL in order to avoid double elevator_exit calls when elevator_init call for deadline iosched fails. Also make sure the dasd device driver depends on IOSCHED_DEADLINE so the default IO scheduler of the dasd driver is present. Signed-off-by: Josef 'Jeff' Sipek Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit 0a22ab92f51478796d5f3997f4f5922409c98b10 Author: Erez Zilber Date: Wed Apr 16 21:09:35 2008 -0700 IB/iser: Don't change itt endianness The itt field in struct iscsi_data is not defined with any particular endianness. open-iscsi should use it as-is without byte-swapping it. This fixes sparse warnings coming from doing ntohl(hdr->itt). Signed-off-by: Erez Zilber Signed-off-by: Roland Dreier commit 068c4ea1bb9ef733961d3d7a104fa9250ba80087 Author: Jack Morgenstein Date: Wed Apr 16 21:09:35 2008 -0700 IB/mlx4: Update module version and release date The mlx4_ib driver is stable enough for production use, so bump the version number to 1.0 to indicate this. Signed-off-by: Jack Morgenstein Signed-off-by: Roland Dreier commit 9fdd5e5bf682130d1e1dd83d06e99eeafa645c0c Author: Roland Dreier Date: Wed Apr 16 21:09:35 2008 -0700 IPoIB: Handle case when P_Key is deleted and re-added at same index If a P_Key is deleted and then re-added at the same index, then IPoIB gets confused because __ipoib_ib_dev_flush() only checks whether the index is the same without checking whether the P_Key was present, so the interface is stopped when the P_Key is deleted, but the event when the P_Key is re-added gets ignored and the interface never gets restarted. Also, switch to using ib_find_pkey() instead of ib_find_cached_pkey() everywhere in IPoIB, since none of the places that look for P_Keys are in a fast path or in non-sleeping context, and in general we want to kill off the whole caching infrastructure eventually. This also fixes consistency problems caused because some IPoIB queries were cached and some were uncached during the window where the cache was not updated. Thanks to Venkata Subramonyam for debugging this problem and testing this fix. Signed-off-by: Roland Dreier commit d97c51707d7d0716881be84ffd2100449852e44b Author: Erez Zilber Date: Wed Apr 16 21:09:35 2008 -0700 IB/iser: Release connection resources on RDMA_CM_EVENT_DEVICE_REMOVAL event When a RDMA_CM_EVENT_DEVICE_REMOVAL event is raised, iSER should release the connection resources. This is necessary when the IB HCA module is unloaded while open-iscsi is still running. Currently, iSER just BUG()s. Signed-off-by: Erez Zilber Signed-off-by: Roland Dreier commit 4ff08a76bce3ed5f7d109c646dcfc474d7946213 Author: Eli Cohen Date: Wed Apr 16 21:09:35 2008 -0700 IB/mlx4: Fix incorrect comment mlx4 hardware does not support external DDR memory. Moreover, UAR area (BAR 2) can change depending on FW version. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 4dc51b32582d45cb7e8322d750ffe0e6d82b506d Author: Eli Cohen Date: Wed Apr 16 21:09:35 2008 -0700 IB/mlx4: Fix race when detaching a QP from a multicast group When detaching the last QP from an MCG entry, we need to make sure that at any time, there will be no entry with zero number of QPs which is linked to the list of the MCGs of the corresponding hash index. So don't write back the MCG entry if we are removing the last QP; just unlink the entry. Also, remove an unnecessary MCG read when attaching a QP requires allocation of a new entry in the AMGM. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit c83b5b1cb2b050c7a9054f330598df99c31abb98 Author: Stefan Roscher Date: Wed Apr 16 21:09:35 2008 -0700 IB/ehca: Support all ibv_devinfo values in query_device() and query_port() Also, introduce a few inline helper functions to make the code more readable. Signed-off-by: Stefan Roscher Signed-off-by: Roland Dreier commit 4cd1e5eb3cbe6e0cc934959770b4c60eac6ecf66 Author: Roland Dreier Date: Wed Apr 16 21:09:34 2008 -0700 RDMA/nes: Free IRQ before killing tasklet Move the free_irq() call in nes_remove() to before the tasklet_kill(); otherwise there is a window after tasklet_kill() where a new interrupt can be handled and reschedule the tasklet, leading to a use-after-free crash. Cc: Signed-off-by: Roland Dreier commit 940801b27e021b3494a44bc93be3c73fadbe4c2f Author: Jack Morgenstein Date: Wed Apr 16 21:09:34 2008 -0700 IB/mthca: Update module version and release date The ib_mthca driver has been stable for a while, so bump the version number to 1.0 to indicate this. Signed-off-by: Jack Morgenstein Signed-off-by: Roland Dreier commit 0df67030958bad07c3f82f392e3ffb785c56e48d Author: Dotan Barak Date: Wed Apr 16 21:09:34 2008 -0700 IB/mlx4: Update QP state if query QP succeeds If the QP was moved to another state (such as SQE) by the hardware, then after this change the user won't have to set the IBV_QP_CUR_STATE mask in order to execute modify QP in order to recover from this state. Signed-off-by: Dotan Barak Signed-off-by: Roland Dreier commit 5121df3ae45731ce98374a1b0b4d48f072643f42 Author: Dotan Barak Date: Wed Apr 16 21:09:34 2008 -0700 IB/mthca: Update QP state if query QP succeeds If the QP was moved to another state (such as SQE) by the hardware, then after this change the user won't have to set the IBV_QP_CUR_STATE mask in order to execute modify QP in order to recover from this state. Signed-off-by: Dotan Barak Signed-off-by: Roland Dreier commit 9285faa1e7c8ffcc8901c40f6e1cc06d93e92431 Author: Tom Tucker Date: Wed Apr 16 21:09:34 2008 -0700 RDMA/amso1100: Add check for NULL reply_msg in c2_intr() Fix a place where we might dereference a NULL pointer; this fixes Coverity CID 1392. On inspection I also found a place where we could attempt to kmem_cache_free() a NULL pointer, so fix this too. Signed-off-by: Tom Tucker Signed-off-by: Roland Dreier commit bbf8eed1a0f8949f7385146624f736f829992a70 Author: Vladimir Sokolovsky Date: Wed Apr 16 21:09:33 2008 -0700 IB/mlx4: Add support for resizing CQs Signed-off-by: Vladimir Sokolovsky Signed-off-by: Roland Dreier commit 3fdcb97f0b8d8a29117dc36acd0b15965d2a2160 Author: Eli Cohen Date: Wed Apr 16 21:09:33 2008 -0700 IB/mlx4: Add support for modifying CQ moderation parameters Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 28d52b3cd8d48ef0ff77d4a8a7a21fc2816bb0a5 Author: Eli Cohen Date: Wed Apr 16 21:09:33 2008 -0700 IPoIB: Support modifying IPoIB CQ event moderation This can be used to tune at run time the parameters controlling the event (interrupt) generation rate and thus reduce the overhead incurred by handling interrupts resulting in better throughput. Since IPoIB uses a single CQ for both RX and TX, RX is chosen to dictate configuration for both RX and TX. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 2dd5716227878d5950988514a2cbabf72f7fc888 Author: Eli Cohen Date: Wed Apr 16 21:09:33 2008 -0700 IB/core: Add support for modify CQ Add support for modifying CQ parameters for controlling event generation moderation. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 82c24c18afc5e1c2a955bdc2762b19721283365c Author: Eli Cohen Date: Wed Apr 16 21:09:32 2008 -0700 IPoIB: Add basic ethtool support Just add the infrastructure so we can add functionality later. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 9b1f38515c41a5f13021e15b50b6558db236d6d5 Author: Jack Morgenstein Date: Wed Apr 16 21:09:32 2008 -0700 mlx4_core: Increase max number of QPs to 128K With the advent large clusters which utilize multicore hosts, 64K QPs is not enough. We should increase the default maximum for QPs to 128K. Signed-off-by: Jack Morgenstein Signed-off-by: Roland Dreier commit 139b2db7951ed0c808884cfebca02a884aebe0c3 Author: Roland Dreier Date: Wed Apr 16 21:09:32 2008 -0700 RDMA/amso1100: Add support for "send with invalidate" work requests Handle IB_WR_SEND_WITH_INV work requests. This resurrects a patch sent long ago by Mikkel Hagen . Signed-off-by: Roland Dreier commit 0f39cf3d54e67a705773fd0ec56ca3dcd3e9272f Author: Roland Dreier Date: Wed Apr 16 21:09:32 2008 -0700 IB/core: Add support for "send with invalidate" work requests Add a new IB_WR_SEND_WITH_INV send opcode that can be used to mark a "send with invalidate" work request as defined in the iWARP verbs and the InfiniBand base memory management extensions. Also put "imm_data" and a new "invalidate_rkey" member in a new "ex" union in struct ib_send_wr. The invalidate_rkey member can be used to pass in an R_Key/STag to be invalidated. Add this new union to struct ib_uverbs_send_wr. Add code to copy the invalidate_rkey field in ib_uverbs_post_send(). Fix up low-level drivers to deal with the change to struct ib_send_wr, and just remove the imm_data initialization from net/sunrpc/xprtrdma/, since that code never does any send with immediate operations. Also, move the existing IB_DEVICE_SEND_W_INV flag to a new bit, since the iWARP drivers currently in the tree set the bit. The amso1100 driver at least will silently fail to honor the IB_SEND_INVALIDATE bit if passed in as part of userspace send requests (since it does not implement kernel bypass work request queueing). Remove the flag from all existing drivers that set it until we know which ones are OK. The values chosen for the new flag is not consecutive to avoid clashing with flags defined in the XRC patches, which are not merged yet but which are already in use and are likely to be merged soon. This resurrects a patch sent long ago by Mikkel Hagen . Signed-off-by: Roland Dreier commit e7eacd36865ae0707f5efae8e4dda421ffcd1b66 Author: Ralph Campbell Date: Wed Apr 16 21:09:32 2008 -0700 IB/ipath: Update copyright dates for files changed in 2008 Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 124b4dcb1dd3a6fb80051f1785117a732d785f70 Author: Dave Olson Date: Wed Apr 16 21:09:32 2008 -0700 IB/ipath: add calls to new 7220 code and enable in build This patch adds the initialization calls into the new 7220 HCA files, changes the Makefile to compile and link the new files, and code to handle send DMA. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit bb9171448deb1f7ece27674e2e431e4f267fd453 Author: Arthur Jones Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: Misc changes to prepare for IB7220 introduction The patch adds a number of minor changes to support newer HCAs: - New send buffer control bits - New error condition bits - Locking and initialization changes - More send buffers Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 8babfa4fb9bfe93d57c700410a4f8be9fbd3edd7 Author: Arthur Jones Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: User mode send DMA A new file which allows the IBA7220 send DMA engine to be used from userland. The routines here are not linked in yet, that will happen in a follow-on patch... Signed-off-by: Arthur Jones Signed-off-by: Roland Dreier commit 909c0faa8fd8a68fab34f099fe8469e608d8b362 Author: Arthur Jones Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: User mode send DMA header file A new header file which allows the IBA7220 send DMA engine to be used from userland. The definitions here are not used yet, that will happen in a follow-on patch... Signed-off-by: Arthur Jones Signed-off-by: Roland Dreier commit f7a60d71af49d7d23d8b827833e4258eba00479d Author: John Gregor Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: Add code for IBA7220 send DMA The IBA7220 HCA has a new feature to DMA data to the on chip send buffers instead of or in addition to the host CPU doing the data transfer. This patch adds code to support the send DMA queue. Signed-off-by: John Gregor Signed-off-by: Roland Dreier commit 2c19643563aed5593c62525e9941a47e56273ccf Author: Ralph Campbell Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: Add IBA7220-specific SERDES initialization data This patch adds binary data to initialize the IB SERDES. Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit ab0fb2e0490e5e453a02ad72fd3529ce1561e1c6 Author: Michael Albaugh Date: Wed Apr 16 21:09:31 2008 -0700 IB/ipath: Support for SerDes portion of IBA7220 The control and initialization of the SerDes blocks of the IBA7220 is sufficiently complex to merit a separate file. Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit 843e6ab489cb5a2fd5df45bed1254812bc8ed8fa Author: Ralph Campbell Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: HCA-specific code to support IBA7220 This patch adds the HCA-specific code for the IBA7220 HCA. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit dd042d59c18b2f26375494af7f5b6d1499acd2bb Author: Michael Albaugh Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: Isolate 7220-specific content This patch adds a new ASIC-specific header file for the HCAs using the IBA7220. Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit afce688ba968723a9e281b141bf7b0ab43a36968 Author: Ralph Campbell Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: Header file changes to support IBA7220 This is part of a patch series to add support for a new HCA. This patch adds new fields to the header files. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 6bb68835d3eb72cd490056fda75d95493c31461b Author: Ralph Campbell Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: Fix up error handling This patch makes chip reset more robust and reduces lock contention between user and kernel TID register updates. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 9b436eb4f8ec39238582d4fe11b7d20e9ae3c45b Author: Dave Olson Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: Fix check for no interrupts to reliably fallback to INTx Newer HCAs support MSI interrupts and also INTx interrupts. Fix the code so that INTx can be reliably enabled if MSI interrupts are not working. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 1d7c2e529fb6d4143d294ade7d99e29cb6b3775f Author: Dave Olson Date: Wed Apr 16 21:09:30 2008 -0700 IB/ipath: Enable reduced PIO update for HCAs that support it. Newer HCAs have a threshold counter to reduce the number of DMAs the chip makes to update the PIO buffer availability status bits. This patch enables the feature. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 0ab6b2b9abb692919902edb6606c3b898f2dac17 Author: Dave Olson Date: Wed Apr 16 21:09:29 2008 -0700 IB/ipath: Set LID filtering for HCAs that support it. Whenever the LID is set, notify the HCA specific code so that the appropriate HW registers can be updated. Also log the info on the console at low priority. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit b3e8f541072ec688738abf8de4ef158127a6b5f2 Author: Dave Olson Date: Wed Apr 16 21:09:29 2008 -0700 IB/ipath: Add support for IBTA 1.2 Heartbeat This patch adds code to enable/disable the IBTA 1.2 heartbeat for testing if the HCA supports it. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 555b203e48faeacc0373eda7bc87db874db37136 Author: Dave Olson Date: Wed Apr 16 21:09:29 2008 -0700 IB/ipath: Make link state transition code ignore (transient) link recovery The hardware-based recovery doesn't need any intervention, and in a few cases we can get a bit confused about state and skip steps such as turning off the link state LED when we consider recovery to be "down". So ignore this transition, and either we recover in hardware, or we transition to down, and will handle it then. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 9355fb6a064723c71e80e9c78de3140b43bfb52d Author: Ralph Campbell Date: Wed Apr 16 21:09:29 2008 -0700 IB/ipath: Add support for 7220 receive queue changes Newer HCAs have a HW option to write a sequence number to each receive queue entry and avoid a separate DMA of the tail register to memory. This patch adds support for these changes. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 2ba3f56eb402672ff83601b5990b219d39577636 Author: Ralph Campbell Date: Wed Apr 16 21:09:29 2008 -0700 IB/ipath: Fix some white space and code style issues This patch makes some white space changes and minor non-functional changes to more closely match the code in OFED-1.3. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit afd9970f957454782795b23c89fd6d7dde973cc0 Author: Michael Albaugh Date: Wed Apr 16 21:09:28 2008 -0700 IB/ipath: Allow old and new diagnostic packet formats This patch checks for old and new format writes to send a packet via the diagnostic interface. Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit 7ce5eacb45a7c819a6bec6ed486f27db9aab6ab6 Author: Dotan Barak Date: Wed Apr 16 21:09:28 2008 -0700 IB/core: Check optional verbs before using them Make sure that a device implements the modify_srq and reg_phys_mr optional methods before calling them. Signed-off-by: Dotan Barak Signed-off-by: Roland Dreier commit b3b8128fd3b0966830ee90f1162173d07cb496a0 Author: Robert P. J. Day Date: Wed Apr 16 21:09:28 2008 -0700 IB/ipath: Fix time comparison to use time_after_eq() Raw comparison against jiffies will fail if jiffies wraps, although since ipath currently only supports 64-bit architectures, this is rather far-fetched. Still, it's better to use time_after_eq(). Signed-off-by: Robert P. J. Day Signed-off-by: Roland Dreier commit f438000f7a31fad7cfd27f33ad324a250f4cd2df Author: Roland Dreier Date: Wed Apr 16 21:09:28 2008 -0700 IB/mlx4: Micro-optimize mlx4_ib_post_send() Rather than have build_mlx_header() return a negative value on failure and the length of the segments it builds on success, add a pointer parameter to return the length and return 0 on success. This matches the calling convention used for build_lso_seg() and generates slightly smaller code -- eg, on 64-bit x86: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-22 (-22) function old new delta mlx4_ib_post_send 2023 2001 -22 Signed-off-by: Roland Dreier commit b832be1e4007f4a54954ec68bd865ff05d6babca Author: Eli Cohen Date: Wed Apr 16 21:09:27 2008 -0700 IB/mlx4: Add IPoIB LSO support Add TSO support to the mlx4_ib driver. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 40ca1988e03c001747d0b4cc1b25cf38297c9f9e Author: Eli Cohen Date: Wed Apr 16 21:09:27 2008 -0700 IPoIB: Add LSO support For HCAs that support TCP segmentation offload (IB_DEVICE_UD_TSO), set NETIF_F_TSO and use HW LSO to offload TCP segmentation. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit c93570f23a98c633570397aedc6d1808f5d5846a Author: Eli Cohen Date: Wed Apr 16 21:09:27 2008 -0700 IB/core: Add IPoIB UD LSO support LSO (large send offload) allows the networking stack to pass SKBs with data size larger than the MTU to the IPoIB driver and have the HCA HW fragment the data to multiple MSS-sized packets. Add a device capability flag IB_DEVICE_UD_TSO for devices that can perform TCP segmentation offload, a new send work request opcode IB_WR_LSO, header, hlen and mss fields for the work request structure, and a new IB_WC_LSO completion type. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit b846f25aa2a353355aec5202fe4dbdc6674dfc64 Author: Eli Cohen Date: Wed Apr 16 21:09:27 2008 -0700 IB/core: Add creation flags to struct ib_qp_init_attr Add a create_flags member to struct ib_qp_init_attr that will allow a kernel verbs consumer to create a pass special flags when creating a QP. Add a flag value for telling low-level drivers that a QP will be used for IPoIB UD LSO. The create_flags member will also be useful for XRC and ehca low-latency QP support. Since no create_flags handling is implemented yet, add code to all low-level drivers to return -EINVAL if create_flags is non-zero. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit d84e0b28d3a0b41fc574ea50d60522ae0fba75f4 Author: Michael Albaugh Date: Wed Apr 16 21:09:27 2008 -0700 IB/ipath: EEPROM support for 7220 devices, robustness improvements, cleanup Add support for reading newer card's EEPROMs while continuing to support older EEPROMs. Also, add support for the temperature sensor if present. Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit d98b1937768c9f4e4420bd25406e5f0304d224bb Author: Ralph Campbell Date: Wed Apr 16 21:09:27 2008 -0700 IB/ipath: Use PIO buffer for RC ACKs This reduces the latency for RC ACKs when a PIO buffer is available. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit c4b4d16e090e1b68d1d4d20a28757070982b9725 Author: Ralph Campbell Date: Wed Apr 16 21:09:26 2008 -0700 IB/ipath: Make send buffers available for kernel if not allocated to user A fixed partitioning of send buffers is determined at driver load time for user processes and kernel use. Since send buffers are a scarce resource, it makes sense to allow the kernel to use the buffers if they are not in use by a user process. Also, eliminate code duplication for ipath_force_pio_avail_update(). Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 4330e4dad780467d930b394b5119c0218a1e2dbe Author: Michael Albaugh Date: Wed Apr 16 21:09:26 2008 -0700 IB/ipath: Prevent link-recovery code from negating admin disable The link can be put in LINKDOWN_DISABLE state either locally or via a MAD. However, the link-recovery code will take it out of that state as a side-effect of attempts to clear SerDes/XGXS issues. We add a flag to indicate "link is down on purpose, leave it alone." Signed-off-by: Michael Albaugh Signed-off-by: Roland Dreier commit 8c641d4b5f6653b6c486eab4d8e8d59539066f31 Author: Ralph Campbell Date: Wed Apr 16 21:09:26 2008 -0700 IB/ipath: Remove some useless (void) casts Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 928e3e4bb9b0d3172bdb44d49b604fa6601078bb Author: Ralph Campbell Date: Wed Apr 16 21:09:26 2008 -0700 IB/ipath: Change the module author Update the module author to the current email address. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 4e96a774407b98c8095cfbd6c7202cb7fdf0d7be Author: Robert P. J. Day Date: Wed Apr 16 21:09:26 2008 -0700 RDMA/nes: Use more concise list_for_each_entry() In list iteration code, you normally wouldn't be calling "container_of()" directly anyway, you'd be invoking "list_entry()". But you don't even need that here, "list_for_each_entry()" is fine. Signed-off-by: Robert P. J. Day Acked-by: Glenn Streiff Signed-off-by: Roland Dreier commit 157de229468b2a63bbc8f9a7d37c70a2c9731ac8 Author: Robert P. J. Day Date: Wed Apr 16 21:09:26 2008 -0700 IB: Use shorter list_splice_init() for brevity Convert list_splice() + INIT_LIST_HEAD() to the equivalent list_splice_init() Signed-off-by: Robert P. J. Day Signed-off-by: Roland Dreier commit 10f32065a25d22bf7894fa39ff2ce8492922086a Author: Julia Lawall Date: Wed Apr 16 21:09:25 2008 -0700 RDMA/iwcm: Test rdma_create_id() for IS_ERR rather than 0 The function rdma_create_id() always returns either a valid pointer or a value made with ERR_PTR, so its result should be tested with IS_ERR, not with a test for 0. The problem was found using the following semantic match. (http://www.emn.fr/x-info/coccinelle/) // @a@ expression E, E1; statement S,S1; position p; @@ E = rdma_create_id(...) ... when != E = E1 if@p (E) S else S1 @n@ position a.p; expression E,E1; statement S,S1; @@ E = NULL ... when != E = E1 if@p (E) S else S1 @depends on !n@ expression E; statement S,S1; position a.p; @@ * if@p (E) S else S1 // Signed-off-by: Julia Lawall Signed-off-by: Roland Dreier commit 4d43653263084bff55691ae9cbb3c53c9044f064 Author: Roland Dreier Date: Wed Apr 16 21:09:25 2008 -0700 RDMA/nes: Remove session_id from nes_cm stuff The session_id members of struct nes_cm_listener and struct nes_cm_node are write-only, so remove them. This allows the session_id member of struct nes_cm_core to be removed as well, since it is only used to write those other session_id values. This removes the use of current->tgid (which will be deprecated) pointed out by Pavel Emelyanov . Acked-by: Glenn Streiff Signed-off-by: Roland Dreier commit 782203884eea5f610444bcf4ed1b4af0010911eb Author: Roland Dreier Date: Wed Apr 16 21:09:25 2008 -0700 IB/ipath: Fix PCI config write size used to clear linkctrl error bits In slave_or_pri_blk(), pci_write_config_byte() is used to write a 16-bit quantity to clear linkctrl CRC error bits. This is clearly a bug and also causes the warning drivers/infiniband/hw/ipath/ipath_iba6110.c: In function 'slave_or_pri_blk': drivers/infiniband/hw/ipath/ipath_iba6110.c:849: warning: overflow in implicit constant conversion Fix this by using pci_write_config_word() instead. Acked-by: Ralph Campbell Signed-off-by: Roland Dreier commit 10a8c3cd0157948ba421b3b69b89edfba6ddb4a5 Author: Ralph Campbell Date: Wed Apr 16 21:09:25 2008 -0700 IB/ipath: Fix sanity checks on QP number of WRs and SGEs The receive queue number of WRs and SGEs shouldn't be checked if a SRQ is specified. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 69bd74c6968f45a864a394338a63da4b768da6ec Author: Ralph Campbell Date: Wed Apr 16 21:09:25 2008 -0700 IB/ipath: Remove useless comments Remove useless comment about list removal since locks are held and the code checks that the QP is on the list before removing it. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 72708a0a2b60e83255631f2557a85ac7daf33fac Author: Dave Olson Date: Wed Apr 16 21:09:25 2008 -0700 IB/ipath: HW workaround for case where chip can send but not receive Workaround a QLE7140 problem that in rare cases causes flow control problems after link recovery by forcing a link retrain after recovery. A module parameter is provided to control the behavior in case it causes problems. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit a51a2513a8cb201f02d83c37e106909938d2f761 Author: Ralph Campbell Date: Wed Apr 16 21:09:24 2008 -0700 IB/ipath: Add code to support multiple link speeds and widths This patch adds code to get/set portinfo to support multiple link speeds and widths. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 58411d1c012dca53ec9107bd98acb63f648e2435 Author: John Gregor Date: Wed Apr 16 21:09:24 2008 -0700 IB/ipath: Head of Line blocking vs forward progress of user apps There's a conflict between our need to quiesce PSM-based applications to avoid HoL blocking when the IB link goes down and the apps' desire to remain running so that their quiescence timout mechanism can keep running. The compromise is to STOP the processes for a fixed period of time and then alternate between CONT and STOP until the link is again active. If there are poor interactions with subnet manager configuration at a given site, the interval can be adjusted via a module paramter. Signed-off-by: John Gregor Signed-off-by: Roland Dreier commit 6be979d71a5e8720c8560cc58713407947e5f691 Author: Ralph Campbell Date: Wed Apr 16 21:09:24 2008 -0700 IB/ipath: Make debug error message match the constraint that is checked for Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit c1702be20fd44f4c878a182be1559c2242916820 Author: Ralph Campbell Date: Wed Apr 16 21:01:14 2008 -0700 IB/ipath: Don't try to handle freeze mode HW errors if diagnostic mode Don't try to handle freeze mode HW errors if the driver is in diagnostic mode since some tests can cause errors that shouldn't be processed. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit b84888215310002e3d266d5a7fe458bb224f6881 Author: Arthur Jones Date: Wed Apr 16 21:01:13 2008 -0700 IB/ipath: Fix link up LED display The check for link up was incorrect, thus setting the LED display inconsistently with the link state. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 8bae0ff2590c0b709d217da4466c6dba0b6b885c Author: Ralph Campbell Date: Wed Apr 16 21:01:13 2008 -0700 IB/ipath: Fix error recovery for send buffer status after chip freeze mode The error recovery code for updating the driver's cached status information for which send buffers are busy or free wasn't updated for IBA7220. It should be similar to the initialization code in enable_chip(). Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit 0349d1662027fee36e590640b3b05fd979ae26f8 Author: Ralph Campbell Date: Wed Apr 16 21:01:13 2008 -0700 IB/ipath: Fix byte order of pioavail in handle_errors() Fix byte order of value assigned to pioavailshadow. This bug was detected by sparse endianness warnings. Signed-off-by: Ralph Campbell Signed-off-by: Roland Dreier commit c263ff65d5936113cfcbb8139d34122361e2306e Author: Roland Dreier Date: Wed Apr 16 21:01:13 2008 -0700 IB/mthca: Avoid integer overflow when allocating huge ICM table In mthca_alloc_icm_table(), the number of entries to allocate for the table->icm array is computed by calculating obj_size * nobj and then dividing by MTHCA_TABLE_CHUNK_SIZE. If nobj is really large, then obj_size * nobj may overflow and the division may get the wrong value (even a negative value). Fix this by calculating the number of objects per chunk and then dividing nobj by this value instead. This patch allows crazy configurations such as loading ib_mthca with the module parameter num_mtt=33554432 to work properly. Signed-off-by: Roland Dreier commit 19773539d6369c54fbb0c870de0c75417b0020d1 Author: Roland Dreier Date: Wed Apr 16 21:01:13 2008 -0700 IB/mthca: Avoid integer overflow when dealing with profile size mthca_make_profile() returns the size in bytes of the HCA context layout it creates, or a negative value if an error occurs. However, the return value is declared as u64 and the memfree initialization path casts this value to int to test if it is negative. This makes it think incorrectly than an error has occurred if the context size happens to be bigger than 2GB, since this turns into a negative int. Fix this by having mthca_make_profile() return an s64 and testing for an error by checking whether this 64-bit value itself is negative. Signed-off-by: Roland Dreier commit f4f82994d1ea0cd01058a245985f1eb5e569e6d3 Author: Hoang-Nam Nguyen Date: Wed Apr 16 21:01:13 2008 -0700 IB/ehca: Remove tgid checking Pavel Emelyanov mentioned in that the task_struct->tgid field is about to become deprecated, so the uses in the ehca driver need to be fixed up. However, all the uses in ehca are for some object ownership checking that is not really needed, and anyway is implementing a policy that should be in common code rather than a low-level driver. So just remove all the checks. Signed-off-by: Hoang-Nam Nguyen Signed-off-by: Roland Dreier commit 1e89a1946cfd906d12eff437d2a76b3aa7f5e731 Author: David Dillow Date: Wed Apr 16 21:01:12 2008 -0700 IB/srp: Enforce protocol limit on srp_sg_tablesize The current SRP initiator will allow unlimited s/g entries in the indirect descriptors lists, but the entry count field in the SRP_CMD request is 8 bits, so setting srp_sg_tablesize too large will open the possibility of wrapping the count and generating invalid requests. Clamp srp_sg_tablesize to the protocol limits to prevent surprises. Reported by Martin W. Schlining III . Signed-off-by: David Dillow Signed-off-by: Roland Dreier commit 826d801009fb3c82832f2d92149446cce354bf61 Author: Dave Olson Date: Wed Apr 16 21:01:12 2008 -0700 IB/ipath: Enable 4KB MTU Enable use of 4KB MTU. Since the driver uses more pinned memory for receive buffers when the 4KB MTU is enabled, whether or not the fabric supports that MTU, add a "mtu4096" module parameter that can be used to limit the MTU to 2KB when it is known that 4KB MTUs can't be used anyway. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 5d1ce03dd335abaef50dc615137cac2a22c5cee0 Author: Dave Olson Date: Wed Apr 16 21:01:12 2008 -0700 IB/ipath: Shared context code needs to be sure device is usable The code was checking if units are present, but not that present units were usable (link up, etc.) Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit 6ca2abf4c02fb3e35247a985c2b6f5834e995033 Author: Arthur Jones Date: Wed Apr 16 21:01:12 2008 -0700 IB/ipath: Provide I/O bus speeds for diagnostic purposes Modern I/O buses like PCIe and HT can be configured for multiple speeds and widths. When an ipath HCA seems to have lower than expected performance, it is very useful to be able to display what the driver thinks the bus speed is. Signed-off-by: Dave Olson Signed-off-by: Roland Dreier commit f2ceb4929ab543e54efaadcad215a105df684f36 Author: Dave Olson Date: Wed Apr 16 21:01:12 2008 -0700 IB/ipath: Make some constants chip-specific, related cleanup This patch makes some constants chip-specific, and makes some related changes to prepare for supporting another HCA. Signed-off-by: Dave Olson commit 3dd59e226e01ddb5b041eb0b2e7c7f28b1f730c9 Author: Arthur Jones Date: Wed Apr 16 21:01:11 2008 -0700 IB/ipath: Misc sparse warning cleanup Recent sparse versions and kernel cleanups knock down the false positive rate of the ipath driver code to a point where having it be sparse clean is worthwhile. Here we fixup the sparse warnings. Some of these warnings (and the impetus to run sparse again) are due to work by Roland Dreier. Signed-off-by: Arthur Jones Signed-off-by: Roland Dreier commit 680b575f6d1ae8aa39c4d7ee7e40b749d277fa9f Author: Eli Cohen Date: Wed Apr 16 21:01:11 2008 -0700 IB/mthca: Add IPoIB checksum offload support Arbel and Sinai devices support checksum generation and verification of TCP and UDP packets for UD IPoIB messages. This patch checks if the HCA supports this and sets the IB_DEVICE_UD_IP_CSUM capability flag if it does. It implements support for handling the IB_SEND_IP_CSUM send flag and setting the csum_ok field in receive work completions. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 8ff095ec4bce7be943beff3b330562e2f0e42167 Author: Eli Cohen Date: Wed Apr 16 21:01:10 2008 -0700 IB/mlx4: Add IPoIB checksum offload support ConnectX devices support checksum generation and verification of TCP and UDP packets for UD IPoIB messages. This patch checks if the HCA supports this and sets the IB_DEVICE_UD_IP_CSUM capability flag if it does. It implements support for handling the IB_SEND_IP_CSUM send flag and setting the csum_ok field in receive work completions. Signed-off-by: Eli Cohen Signed-off-by: Ali Ayub Signed-off-by: Roland Dreier commit 6046136c742e32d5e6431cdcd8957638d1816821 Author: Eli Cohen Date: Wed Apr 16 21:01:10 2008 -0700 IPoIB: Use checksum offload support if available For HCAs that support checksum offload (ie that set IB_DEVICE_UD_IP_CSUM in the device capabilities flags), have IPoIB set NETIF_F_IP_CSUM and use the HCA to generate and verify IP checksums. Signed-off-by: Eli Cohen Signed-off-by: Roland Dreier commit 3371836383d63b627b228875f5ac63023cbf11d2 Author: Harvey Harrison Date: Wed Apr 16 21:01:10 2008 -0700 IB: Replace remaining __FUNCTION__ occurrences with __func__ __FUNCTION__ is gcc-specific, use __func__ instead. Signed-off-by: Harvey Harrison Signed-off-by: Andrew Morton Signed-off-by: Roland Dreier commit e8e91f6b4dc1179a70b0d21241b769c0ebfaa129 Author: Roland Dreier Date: Wed Apr 16 21:01:10 2008 -0700 IB/ehca: Make symbols used only in a single source file static Allow the compiler to optimize better and generate smaller code: add/remove: 0/6 grow/shrink: 2/0 up/down: 1528/-1864 (-336) function old new delta .ehca_set_pagebuf 1344 2172 +828 .ehca_probe 2312 3012 +700 ehca_set_pagebuf_phys 24 - -24 ehca_set_pagebuf_fmr 24 - -24 ehca_init_device 24 - -24 .ehca_set_pagebuf_fmr 480 - -480 .ehca_set_pagebuf_phys 512 - -512 .ehca_init_device 800 - -800 Also this fixes warnings like: drivers/infiniband/hw/ehca/ehca_mrmw.c:2015:5: warning: symbol 'ehca_set_pagebuf_fmr' was not declared. Should it be static? Signed-off-by: Roland Dreier commit 1a855fbfb65e0b7b5cce00d7c6a61185ed765edf Author: Roland Dreier Date: Wed Apr 16 21:01:09 2008 -0700 RDMA/nes: Make symbols used only in a single source file static Avoid namespace pollution and allow the compiler to optimize better. Signed-off-by: Roland Dreier commit 71e0957c6291da030e6f89351846225876731df3 Author: Roland Dreier Date: Wed Apr 16 21:01:09 2008 -0700 RDMA/nes: Use proper format and cast to print dma_addr_t On some platforms, eg sparc64, dma_addr_t is not the same size as a pointer, so printing dma_addr_t values by casting to void * and using a %p format generates warnings. Fix this by casting to unsigned long and using %lx instead. This fixes the warnings: drivers/infiniband/hw/nes/nes_verbs.c: In function 'nes_setup_virt_qp': drivers/infiniband/hw/nes/nes_verbs.c:1047: warning: cast to pointer from integer of different size drivers/infiniband/hw/nes/nes_verbs.c:1078: warning: cast to pointer from integer of different size drivers/infiniband/hw/nes/nes_verbs.c:1078: warning: cast to pointer from integer of different size drivers/infiniband/hw/nes/nes_verbs.c: In function 'nes_reg_user_mr': drivers/infiniband/hw/nes/nes_verbs.c:2657: warning: cast to pointer from integer of different size Reported by Andrew Morton . Signed-off-by: Roland Dreier commit 9d84ab9c7e82e7b6b9f8c25794f64f65d021c8fd Author: Roland Dreier Date: Wed Apr 16 21:01:09 2008 -0700 RDMA/nes: Remove unused nes_netdev_exit() function nes_netdev_exit() has no callers, so delete it. Signed-off-by: Roland Dreier commit 5bd8341ce2bb5ef575b3501a8c13f22ae9f0b2ad Author: Roland Dreier Date: Wed Apr 16 21:01:09 2008 -0700 RDMA/nes: Remove redundant NULL check in nes_unregister_ofa_device() nes_unregister_ofa_device() dereferences the nesibdev pointer before testing if it's NULL. Also, the test is doubly redundant because the only caller of nes_unregister_ofa_device() is nes_destroy_ofa_device(), which already tests if nesibdev is NULL. Remove the unnecessary test. This was spotted by the Coverity checker (CID 2190). Signed-off-by: Roland Dreier commit a7dab9e887ce37391f004ffd6ce0ffed7272fd69 Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 IB/uverbs: Use alloc_file() instead of get_empty_filp() Christoph Hellwig wants to unexport get_empty_filp(), which is an ugly internal interface. Change the modular user in ib_uverbs_alloc_event_file() to use the better alloc_file() interface; this makes the code cleaner too. Signed-off-by: Roland Dreier commit 1ae5c187acb67c2929428479c23a79c4288f0c68 Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 IB/uverbs: Don't store struct file * for event files The file member of struct ib_uverbs_event_file was only used to keep track of whether the file had been closed or not. The only thing we ever did with the value was check if it was NULL or not. Simplify the code and get rid of the need to keep track of the struct file * we allocate by replacing the file member with an is_closed member. Signed-off-by: Roland Dreier commit 37608eea86a358ac6a18df0af55d4f77d08a1f30 Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums The struct mlx4_interface.event() method was supposed to get an enum mlx4_dev_event, but the driver code was actually passing in the hardware enum mlx4_event values. Fix up the callers of mlx4_dispatch_event() so that they pass in the right type of value, and fix up the event method in mlx4_ib so that it can handle the enum mlx4_dev_event values. This eliminates the need for the subtype parameter to the event method, so remove it. This also fixes the sparse warning drivers/net/mlx4/intf.c:127:48: warning: mixing different enum types drivers/net/mlx4/intf.c:127:48: int enum mlx4_event versus drivers/net/mlx4/intf.c:127:48: int enum mlx4_dev_event Signed-off-by: Roland Dreier commit 26c4fc26d0af9b16a6a234318d15ee0b3896a63d Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 RDMA/amso1100: Endian annotate mqsq allocator Signed-off-by: Roland Dreier commit dc544bc9cb8aa91c5d7fc9116a302f88a8a97250 Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 RDMA/amso1100: Start of endianness annotation Signed-off-by: Roland Dreier Acked-by: Steve Wise commit d23b9d8ff2fcadc6f2fba83f654a122b9e16f02c Author: Roland Dreier Date: Wed Apr 16 21:01:08 2008 -0700 RDMA/nes: Delete unused variables None of the cqp_reqs_XXX counters were ever used anywhere, and neither was the nics_per_function variable. Signed-off-by: Roland Dreier commit b30db1c186635c72683324ddfd10a387ce449075 Author: Roland Dreier Date: Wed Apr 16 21:01:07 2008 -0700 RDMA/nes: Trivial endianness annotations Fix a couple of htonl() that should really be ntohl(). Signed-off-by: Roland Dreier commit 9cda779cc2d0acf30e0fda67897a14c78b34f5a3 Author: Roland Dreier Date: Wed Apr 16 21:01:07 2008 -0700 RDMA/ucma: Endian annotation Add __force cast of node_guid to __u64, since we are sticking it into a structure whose definition is shared with userspace. Signed-off-by: Roland Dreier commit a88f488857cd2e54789791d2b5e8d116721d5cb7 Author: Roland Dreier Date: Wed Apr 16 21:01:07 2008 -0700 IB/cm: Endianness annotations Mostly update the RB tree comparisons to force __be types to normal integers, but the change to cm_format_sidr_req() is a real fix: param->path->pkey is already __be16. Signed-off-by: Roland Dreier Acked-by: Sean Hefty commit d2ae16d576086bd3e539f4e94f95df4e37ea2419 Author: Roland Dreier Date: Wed Apr 16 21:01:07 2008 -0700 IB/mlx4: Endianness annotations Trivial fixes to stamp_send_wqe(). Signed-off-by: Roland Dreier commit 6358ae25fd0d8cb4eab5e4e152ade8ac406b5278 Author: Roland Dreier Date: Wed Apr 16 21:01:07 2008 -0700 IB/ipath: Fix sparse warning about shadowed symbol Fix drivers/infiniband/hw/ipath/ipath_init_chip.c:526:10: warning: symbol 'val' shadows an earlier one drivers/infiniband/hw/ipath/ipath_init_chip.c:473:6: originally declared here by giving the second val a different name. Signed-off-by: Roland Dreier Acked-by: Arthur Jones commit 6ef6aee2f0ff111a2439b02b9d788097ca82f9d1 Author: Arthur Jones Date: Wed Apr 16 21:01:06 2008 -0700 IB/ipath: Fix sparse warning about pointer signedness There's no reason for the third parameter of ipath_count_units() to be a u32 *, so change it to be an int * instead. This fixes the sparse warning: drivers/infiniband/hw/ipath/ipath_file_ops.c:1654:47: warning: incorrect type in argument 3 (different signedness) drivers/infiniband/hw/ipath/ipath_file_ops.c:1654:47: expected unsigned int [usertype] *maxportsp drivers/infiniband/hw/ipath/ipath_file_ops.c:1654:47: got int * Signed-off-by: Arthur Jones Signed-off-by: Roland Dreier commit b3d636b0d1b2eb870a55ae196b8f3838e1399554 Author: Roland Dreier Date: Wed Apr 16 21:01:06 2008 -0700 IB: Make struct ib_uobject.id a signed int IDR IDs are signed, so struct ib_uobject.id should be signed. This avoids some sparse pointer signedness warnings. Signed-off-by: Roland Dreier commit edba846af9e1f27bab00d5aebfeef01386e00af0 Author: Roland Dreier Date: Wed Apr 16 21:01:06 2008 -0700 RDMA/cxgb3: IDR IDs are signed Fix sparse warnings about pointer signedness by using a signed int when calling idr_get_new_above(). Signed-off-by: Roland Dreier Acked-by: Steve Wise commit 4b29043921ef021443c5e0d055b7b8dd5df88258 Author: Roland Dreier Date: Wed Apr 16 21:01:06 2008 -0700 RDMA/amso1100: Don't use 0UL as a NULL pointer Write tests for NULL pointers as if (!ptr) instead of if (ptr == 0UL) to fix sparse warnings. Signed-off-by: Roland Dreier Acked-by: Steve Wise commit ca2812111433284024386a8cfd4151651469523e Author: Roland Dreier Date: Wed Apr 16 21:01:04 2008 -0700 mlx4_core: Move opening brace of function onto a new line Signed-off-by: Roland Dreier commit 5d5e815db9651909e435918e46c84dfcbc36154f Author: Roland Dreier Date: Wed Apr 16 21:01:04 2008 -0700 IB/mlx4: Convert "if(foo)" to "if (foo)" Signed-off-by: Roland Dreier commit b39993936d3b192ea088995f7ba882a49e4bf09c Author: Roland Dreier Date: Wed Apr 16 21:01:03 2008 -0700 IB/mthca: Formatting cleanups Fix a few whitespace and other coding style problems. Signed-off-by: Roland Dreier commit 95e7a8efd79d4eb74646ed5cb998599f21627091 Author: Paul Bolle Date: Wed Apr 16 14:43:00 2008 +0200 [SCSI] aacraid: Do not describe check_reset parameter with its value Describe check_reset parameter with its name (and not its value) Signed-off-by: Paul Bolle Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit e6990c6448ca9359b6d4ad027c0a6efbf4379e64 Author: Mark Salyzyn Date: Mon Apr 14 14:20:16 2008 -0400 [SCSI] aacraid: Fix down_interruptible() to check the return value Instead of ignoring the return value in aac_fib_send() return 2 to indicate to the layers above that fib transmission was aborted due to timeout. Signed-off-by: Mark Salyzyn Signed-off-by: James Bottomley commit 582df15327828570595d4be55b2b300dac5271c1 Author: Adrian Bunk Date: Mon Apr 14 17:17:26 2008 +0300 [SCSI] sun3_scsi_vme: add MODULE_LICENSE This patch adds the missing MODULE_LICENSE("GPL"). Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley commit 8ef8d5941cdc6ab616334e14306c39f7aceb780c Author: Adrian Bunk Date: Mon Apr 14 17:17:16 2008 +0300 [SCSI] st: rename flush_write_buffer() This patch fixes the following namespace collision with include/asm-avr32/cacheflush.h : <-- snip --> ... CC [M] drivers/scsi/st.o /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/scsi/st.c:629:53: error: macro "flush_write_buffer" passed 1 arguments, but takes just 0 ... make[3]: *** [drivers/scsi/st.o] Error 1 <-- snip --> st now uses st_flush_write_buffer() Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley commit b312bab3b961de21c5a98bd70e04070eaa61817c Author: FUJITA Tomonori Date: Thu Apr 10 23:48:14 2008 +0900 [SCSI] tgt: use KMEM_CACHE macro This uses new KMEM_CACHE() macro instead of kmem_cache_create directly to simplify slab cache creation. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 072f042df335d7e0da2027637bcf720d7ff1589b Author: Takao Indoh Date: Tue Apr 15 05:59:54 2008 -0400 [IA64] kdump: Add crash_save_vmcoreinfo for INIT This patch fixes the problem that kdump by INIT does not work if we use makedumpfile. The problem is that after INIT is issued, 2nd kernel starts and makedumpfile fails with the following error message. /proc/vmcore doesn't contain vmcoreinfo. '-x' or '-i' must be specified. makedumpfile Failed. The cause of this problem is that kernel does not call crash_save_vmcoreinfo. When kdump starts by panic or sysrq-trigger, crash_save_vmcoreinfo is called by crash_kexec. But this function is not called when kdump starts by INIT. The Attached patch fixes this. This patch just adds crash_save_vmcoreinfo into machine_kdump_on_init so that crash_save_vmcoreinfo can be called when kdump starts by INIT. I tested this patch with linux-2.6.25-rc9 and I confirmed it worked. Signed-off-by: Takao Indoh Signed-off-by: Tony Luck commit 0f389ec63077521166f071e1e970aed36147fd45 Author: Christoph Lameter Date: Mon Apr 14 18:53:02 2008 +0300 slub: No need for per node slab counters if !SLUB_DEBUG The per node counters are used mainly for showing data through the sysfs API. If that API is not compiled in then there is no point in keeping track of this data. Disable counters for the number of slabs and the number of total slabs if !SLUB_DEBUG. Incrementing the per node counters is also accessing a potentially contended cacheline so this could actually be a performance benefit to embedded systems. SLABINFO support is also affected. It now must depends on SLUB_DEBUG (which is on by default). Patch also avoids a check for a NULL kmem_cache_node pointer in new_slab() if the system is not compiled with NUMA support. [penberg@cs.helsinki.fi: fix oops and move ->nr_slabs into CONFIG_SLUB_DEBUG] Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 49bd5221ce8fb55d12c04a3ffd375201c5bbfb7a Author: Christoph Lameter Date: Mon Apr 14 18:52:18 2008 +0300 slub: Move map/flag clearing to __free_slab __free_slab does some diagnostics. The resetting of mapcount etc in discard_slab() can interfere with debug processing. So move the reset immediately before the page is freed. Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 50ef37b96c11e76625067ae413dc54585ea22585 Author: Christoph Lameter Date: Mon Apr 14 18:52:05 2008 +0300 slub: Fixes to per cpu stat output in sysfs Only output per cpu stats if the kernel is build for SMP. Use a capital "C" as a leading character for the processor number (same as the numa statistics that also use a capital letter "N"). Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 5b06c853ad447636e31d105e95c48ae9abb6bfb5 Author: Christoph Lameter Date: Mon Apr 14 18:51:34 2008 +0300 slub: Deal with config variable dependencies count_partial() is used by both slabinfo and the sysfs proc support. Move the function directly before the beginning of the sysfs code so that it can be easily found. Rework the preprocessor conditional to take into account that slub sysfs support depends on CONFIG_SYSFS *and* CONFIG_SLUB_DEBUG. Make CONFIG_SLUB_STATS depend on CONFIG_SLUB_DEBUG and CONFIG_SYSFS. There is no point of keeping statistics if no one can restrive them. Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 4097d6017576a5e138f442f5e3c393ad00d10f58 Author: Christoph Lameter Date: Mon Apr 14 18:51:18 2008 +0300 slub: Reduce #ifdef ZONE_DMA by moving kmalloc_caches_dma near dma logic Move the definition of kmalloc_caches_dma() into a later #ifdef CONFIG_ZONE_DMA. This saves one #ifdef and leaves us with a total of two #ifdefs for dma slab support. Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 62f75532b583c03840f31e40386ce2df73be9ca0 Author: Pekka Enberg Date: Mon Apr 14 18:50:44 2008 +0300 slub: Initialize per-cpu stats As spotted by kmemcheck, we need to initialize the per-CPU ->stat array before using it. [kmem_cache_cpu structures are usually allocated from arrays defined via DEFINE_PER_CPU that are zeroed so we have not noticed this so far --cl]. Reported-by: Vegard Nossum Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 98075d245a5bc4aeebc2e9f16fa8b089a5c200ac Author: Zoltan Menyhart Date: Fri Apr 11 15:21:35 2008 -0700 [IA64] Fix NUMA configuration issue There is a NUMA memory configuration issue in 2.6.24: A 2-node machine of ours has got the following memory layout: Node 0: 0 - 2 Gbytes Node 0: 4 - 8 Gbytes Node 1: 8 - 16 Gbytes Node 0: 16 - 18 Gbytes "efi_memmap_init()" merges the three last ranges into one. "register_active_ranges()" is called as follows: efi_memmap_walk(register_active_ranges, NULL); i.e. once for the 4 - 18 Gbytes range. It picks up the node number from the start address, and registers all the memory for the node #0. "register_active_ranges()" should be called as follows to make sure there is no merged address range at its entry: efi_memmap_walk(filter_memory, register_active_ranges); "filter_memory()" is similar to "filter_rsvd_memory()", but the reserved memory ranges are not filtered out. Signed-off-by: Zoltan Menyhart Signed-off-by: Tony Luck commit 423eef6fbb989f316d268d0d96812165fbaed26c Author: Grant Grundler Date: Sat Apr 5 10:14:22 2008 -0600 [SCSI] initio: fix big endian problems for auto request sense Most of the cpu_to_le32() usage was wrong in one way or another. Compiler warning on BE builds was just the tip of the iceberg. This patch attempts to make this driver work on BE though I don't have the HW to test it. Signed-off-by: Grant Grundler Signed-off-by: James Bottomley commit 9f448b5554b485012b8a80c1c889175b3cb84940 Author: James Smart Date: Mon Apr 7 10:16:10 2008 -0400 [SCSI] lpfc 8.2.6 : Update lpfc driver version to 8.2.6 Update lpfc driver version to 8.2.6 Signed-off-by: James Smart Signed-off-by: James Bottomley commit 97eab63490452f0a5242fa94ddaa9b727d69cb25 Author: James Smart Date: Mon Apr 7 10:16:05 2008 -0400 [SCSI] lpfc 8.2.6 : Miscellaneous Fixes Miscellaneous Fixes - Allow WRITE_VPARAM command when the virtual port is in a stopped state - Fixed handling of our queue depth max that was unconditionally raising the depth on all vports, rather than just the vport affected. - Fix race in interrupt handler for mailbox processing that did not take out the host lock. - Removed unused functions: find_node, findnode_rpi, and fabric_abort_flogi - Correct misspelled word unsolicited in message 0146 - Correct HW-error 5 handling - it should not reset the adapter - Correct handling of IOCBs, which did not null out our pCmd field before invoking the midlayer io done function. - Changed our maximum supported target id to 4096 Signed-off-by: James Smart Signed-off-by: James Bottomley commit 9b37960523afb1b519b406dec4c4f3155b82b2ba Author: James Smart Date: Mon Apr 7 10:16:00 2008 -0400 [SCSI] lpfc 8.2.6 : PCI Parity and EEH handling fixes PCI Parity and EEH handling Fixes: - Under a PCI Data Parity Error, remove a completion routine callback that was on a command that we had already failed and released. - Under PCI parity error, we were not reinstalling the interrupt handler in the slot_reset callback, so we never became functional again. Signed-off-by: James Smart Signed-off-by: James Bottomley commit 58da1ffb2b1234e9c6c75013a649c659cc38ebd4 Author: James Smart Date: Mon Apr 7 10:15:56 2008 -0400 [SCSI] lpfc 8.2.6 : Multiple discovery fixes Multiple Discovery Fixes: - Fix race on discovery due to link events coinciding with vport_delete. - Use NLP_FABRIC state to filter out switch-based pseudo initiators that reuse the same WWNs. - Correct erroneous setting of DID=0 in lpfc_matchdid() - Correct extra reference count that was in the lookup path for the remoteid from an unsolicited ELS. - Correct double-free bug in els abort path. - Correct FDMI server discovery logic for switch that return a WWN of 0. - Fix bugs in ndlp mgmt when a node changes address - Correct bug that did not delete RSCNs for vports upon link transitions - Fix "0216 Link event during NS query" error which pops up when vports are swapped to different switch ports. - Add sanity checks on ndlp structures - Fix devloss log message to dump WWN correctly - Hold off mgmt commands that were interferring with discovery mailbox cmds - Remove unnecessary FC_ESTABLISH_LINK logic. - Correct some race conditions in the worker thread, resulting in devloss: - Clear the work_port_events field before handling the work port events - Clear the deferred ring event before handling a deferred ring event - Hold the hba lock when waking up the work thread - Send an acc for the rscn even when we aren't going to handle it - Fix locking behavior that was not properly protecting the ACTIVE flag, thus allowing mailbox command order to shift. Signed-off-by: James Smart Signed-off-by: James Bottomley commit 16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445 Author: Josef Bacik Date: Wed Apr 9 09:33:41 2008 -0400 [GFS2] fix GFP_KERNEL misuses There are several places where GFP_KERNEL allocations happen under a glock, which will result in hangs if we're under memory pressure and go to re-enter the fs in order to flush stuff out. This patch changes the culprits to GFS_NOFS to keep this problem from happening. Thank you, Signed-off-by: Josef Bacik Signed-off-by: Steven Whitehouse commit c19b2930df0621500913c005c06978bd8933110b Author: Russ Anderson Date: Fri Feb 29 17:14:44 2008 -0600 [IA64] Itanium Spec updates Updates based on the "Intel® Itanium® Architecture Software Developer's Manual Specification Update October 2007". http://download.intel.com/design/itanium/specupdt/24869911.pdf Signed-off-by: Russ Anderson Signed-off-by: Tony Luck commit 273988fa4dffd1b1e6deb3de18b979a44e9d8732 Author: Christoph Lameter Date: Wed Apr 9 13:05:41 2008 -0700 [IA64] Untangle sync_icache_dcache() page size determination Untangle the chaos of page size determination in this function by simply using PAGE_SIZE << compound_order(). Signed-off-by: Christoph Lameter Signed-off-by: Tony Luck commit 5cf1f7cef1c67b5c81736f00e81a2890e07041b9 Author: S.Caglar Onur Date: Fri Mar 28 14:27:05 2008 -0700 [IA64] arch/ia64/kernel/: use time_* macros The functions time_before, time_before_eq, time_after, and time_after_eq are more robust for comparing jiffies against other values. So use the time_after() & time_before() macros, defined at linux/jiffies.h, which deal with wrapping correctly [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: S.Caglar Onur Reviewed-by: KOSAKI Motohiro Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 734bc367b4830a4c80502a3f9ded7428b1c652e3 Author: Johannes Weiner Date: Fri Mar 28 14:27:04 2008 -0700 [IA64] remove redundant display of free swap space in show_mem() show_mem() has no need to print the amount of free swap space manually because show_free_areas() does this already and is called by the former. The two outputs only differ in text formatting: printk("Free swap = %lukB\n", ...); printk("Free swap: %6ldkB\n", ...); Signed-off-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit b34eb53cdcb4f49fd31d78d0e385240820ed9063 Author: FUJITA Tomonori Date: Fri Mar 28 14:27:03 2008 -0700 [IA64] make IOMMU respect the segment boundary limits IA64's IOMMU implementation allocates memory areas spanning LLD's segment boundary limit. It forces low level drivers to have a workaround to adjust scatter lists that the IOMMU builds. We are in the process of making all the IOMMUs respect the segment boundary limits to remove such work around in LLDs. This patch is for IA64's IOMMU. Signed-off-by: FUJITA Tomonori Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 34e1ceb1881ec895ad9b1b52d073f414f3aa87a9 Author: Masami Hiramatsu Date: Fri Mar 28 14:27:02 2008 -0700 [IA64] kprobes: kprobe-booster for ia64 Add kprobe-booster support on ia64. Kprobe-booster improves the performance of kprobes by eliminating single-step, where possible. Currently, kprobe-booster is implemented on x86 and x86-64. This is an ia64 port. On ia64, kprobe-booster executes a copied bundle directly, instead of single stepping. Bundles which have B or X unit and which may cause an exception (including break) are not executed directly. And also, to prevent hitting break exceptions on the copied bundle, only the hindmost kprobe is executed directly if several kprobes share a bundle and are placed in different slots. Note: set_brl_inst() is used for preparing an instruction buffer(it does not modify any active code), so it does not need any atomic operation. Signed-off-by: Masami Hiramatsu Cc: Anil S Keshavamurthy Cc: Ananth N Mavinakayanahalli Cc: bibo,mao Cc: Rusty Lynch Cc: Prasanna S Panchamukhi Cc: Jim Keniston Cc: Shaohua Li Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 96ded9dadde397a9e372a650534a9ffbba97194a Author: Pavel Emelyanov Date: Fri Mar 28 14:27:00 2008 -0700 [IA64] fix getpid and set_tid_address fast system calls for pid namespaces The sys_getpid() and sys_set_tid_address() behavior changed from return current->tgid to struct pid *pid; pid = current->pids[PIDTYPE_PID].pid; return pid->numbers[pid->level].nr; But the fast system calls on ia64 still operate the old way. Patch them appropriately to let ia64 work with pid namespaces. Besides, this is one more step in deprecating of pid and tgid on task_struct. The fsys_getppid() is to be patched as well, but its logic is much more complex now, so I will make it later. One thing I'm not 100% sure is the trick with the IA64_UPID_SHIFT. On order to access the pid->level's element of an array I have to perform the following calculations pid + sizeof(struct upid) * pid->level The problem is that ia64 can only multiply float point registers, while all the offsets I have in code are in rXX ones. Fortunately, the sizeof(struct upid) is 32 bytes on ia64 (and is very unlikely to ever change), so the calculations get simpler: pid + pid->level << 5 So, I introduce the IA64_UPID_SHIFT and use the shl instruction. I also looked at how gcc compiles the similar place and found that it makes it with shift as well. Is this OK to do so? Tested with ski emulator with 2.6.24 kernel, but fits 2.6.25-rc4 and 2.6.25-rc4-mm1 as well. Signed-off-by: Pavel Emelyanov Cc: David Mosberger-Tang Cc: Hidetoshi Seto Cc: Fenghua Yu Cc: Amy Griffis Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit d167cb85150bd473a27df71e3116a9cc0008f5dd Author: Robert P. J. Day Date: Sat Mar 29 10:05:30 2008 -0400 [IA64] Replace explicit jiffies tests with time_* macros. In arch/ia64/sn/kernel/xpc_{main,partition}.c Signed-off-by: Robert P. J. Day Signed-off-by: Tony Luck commit 6794c7526651160a75e90322cb750dcceb310d34 Author: Li Zefan Date: Tue Apr 1 12:29:34 2008 +0800 [IA64] use goto to jump out do/while_each_thread do_each_thread/while_each_thread is a double loop, so should use 'goto' rather than 'break' to break out the loop. Signed-off-by: Li Zefan Signed-off-by: Tony Luck commit e91450161186a926d16d8fdc8669aa1998bce148 Author: Alan D. Brunelle Date: Thu Apr 3 14:30:36 2008 -0400 [IA64] Fix unlock ordering in smp_callin One should normally unlock in the reverse order of the lock calls, and in this case there certainly is no reason not to. Signed-off-by: Alan D. Brunelle Signed-off-by: Tony Luck commit e4b05d4097eb6dab08bda86a72f6fdfdd9816395 Author: KOSAKI Motohiro Date: Wed Apr 9 12:26:10 2008 +0900 [IA64] pgd_offset() constfication. when compile 2.6.25-rc8-mm1, below warning happend. because walk_page_range pass argument as "const struct mm*", but pgd_offset() receive as "struct mm*". CC mm/pagewalk.o mm/pagewalk.c: In function 'walk_page_range': mm/pagewalk.c:111: warning: passing argument 1 of 'pgd_offset' discards qualifiers from pointer target type Signed-off-by: KOSAKI Motohiro Signed-off-by: Tony Luck commit 3975afffd32b84c0ad6797debe5abd179f44a698 Author: Hidetoshi Seto Date: Tue Apr 8 13:33:08 2008 +0900 [IA64] kdump: crash.c coding style fix Fix indenting of switch statement to follow Documentation/CodingStyle. Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck commit b0247a55f4cdd7a270e938aa39f9edb5b005a88c Author: Hidetoshi Seto Date: Tue Apr 8 13:31:47 2008 +0900 [IA64] kdump: add kdump_on_fatal_mca While it is convenient that we can invoke kdump by asserting INIT via button on chassis etc., there are some situations that invoking kdump on fatal MCA is not welcomed rather than rebooting fast without dump. This patch adds a new flag 'kdump_on_fatal_mca' that is independent from 'kdump_on_init' currently available. Adding this flag enable us to turning on/off of kdump depend on the event, INIT and/or fatal MCA. Default for this flag is to take the dump. Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck commit 2c6e6db41f01b6b4eb98809350827c9678996698 Author: holt@sgi.com Date: Thu Apr 3 15:17:13 2008 -0500 [IA64] Minimize per_cpu reservations. This attached patch significantly shrinks boot memory allocation on ia64. It does this by not allocating per_cpu areas for cpus that can never exist. In the case where acpi does not have any numa node description of the cpus, I defaulted to assigning the first 32 round-robin on the known nodes.. For the !CONFIG_ACPI I used for_each_possible_cpu(). Signed-off-by: Robin Holt Signed-off-by: Tony Luck commit 41bd26d67c41e325c6b9e56aadfe9dad8af9a565 Author: holt@sgi.com Date: Thu Apr 3 15:17:12 2008 -0500 [IA64] Correct pernodesize calculation. A simple fix. The existing pernodesize reservation is not taking into account a second array of pg_data_t structures. This is normally not important because the PAGE_ALIGN macro reserves adequate space. I made the compute_pernodesize steps in the same order as the fill_pernode steps to make the correlation more clear. Signed-off-by: Robin Holt Signed-off-by: Tony Luck commit b35c07d00751c3d554dd6e582b661ac2e8ffc162 Author: Andrew Vasquez Date: Thu Apr 3 13:13:32 2008 -0700 [SCSI] qla2xxx: Update version number to 8.02.01-k1. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 221726d41a6c351fd8ea7d4b11ab13085f7a8647 Author: Seokmann Ju Date: Thu Apr 3 13:13:31 2008 -0700 [SCSI] qla2xxx: Correct vport configuration-change handling. Upon having configuration changes on vports only, the driver handles SCR regardless physical port state and, in turn, it results mailbox error as below: Mar 20 11:24:20 dl585 kernel: qla2x00_mailbox_command(9): **** FAILED. mbx0=4005, mbx1=1, mbx2=8100, cmd=70 **** With the changes, driver checks physical port loop_state and make sure the port is ready to take commands. Signed-off-by: Seokmann Ju Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit bd2a1846b2313e32d0270151a31a6b8335384a20 Author: Seokmann Ju Date: Thu Apr 3 13:13:30 2008 -0700 [SCSI] qla2xxx: Use proper HA during asynchrounous event handling. Changes are added to the driver so that it can behave properly upon having asynchronous events, for example, addition of target devices to the VPs. Signed-off-by: Seokmann Ju Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 463717edc9d675ead14b02f060425ff7860d1dc1 Author: Seokmann Ju Date: Thu Apr 3 13:13:29 2008 -0700 [SCSI] qla2xxx: Check DFLG_NO_CABLE only on physical port. As there is no actual cable connection on vports, made change so that the driver checks DFLG_NO_CABLE against ha->device_flags only for physical port. Signed-off-by: Seokmann Ju Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit d4486fd6deb3354aa39cfedfcfd114cfe9ff9238 Author: Seokmann Ju Date: Thu Apr 3 13:13:28 2008 -0700 [SCSI] qla2xxx: Consistently access the physical HA port. There were several places where referencing ha structure of virtual ports for resources. Among those refereces, certain fields are get up-to-dated only on ha structure of physical port. Signed-off-by: Seokmann Ju Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 73f0f0f24ad898db8316d1c8bf877fbe7b60b015 Author: Andrew Vasquez Date: Thu Apr 3 13:13:27 2008 -0700 [SCSI] qla2xxx: Remove unused member (dma_handle) from srb_t structure. The member is not needed as there's no non-scatter-gather list I/Os submitted by the upper-layers. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 4d4df1932b6b116aecc81039066fec27f2050762 Author: Harihara Kadayam Date: Thu Apr 3 13:13:26 2008 -0700 [SCSI] qla2xxx: Add ISP84XX support. Signed-off-by: Ravi Anand Additional cleanups and Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit b93480e319654b8921364b49528532dff4822a45 Author: Ravi Anand Date: Thu Apr 3 13:13:25 2008 -0700 [SCSI] qla2xxx: Assign mailbox command timeout values in a consistent manner. Signed-off-by: Ravi Anand Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 523ec773b8ffb1c607bc3a54c9526558e3b1eab1 Author: Andrew Vasquez Date: Thu Apr 3 13:13:24 2008 -0700 [SCSI] qla2xxx: Add midlayer target/device reset support. Now that infrastructure is present within the midlayer and there is a clear distinction between what is expected from a device and target reset, convert the current device-reset codes to a target-reset, and add codes to perform a proper device-reset (LUN reset). In the process of adding reset support, collapse and consolidate large sections of mailbox-command (TMF issuance) codes, generalize the two 'wait-for-commands-to-complete' functions, and add a generic-reset routine for use by midlayer reset functions. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 3fe7cfb910ea138ae623d1320c71e2a7a0bdc527 Author: Andrew Vasquez Date: Thu Apr 3 13:13:23 2008 -0700 [SCSI] qla2xxx: Check alternate 'reason' code during GPSC status handling. Some switches return 0x09 (Command not supported) as the reason code for GPSC failure. Check for this code, and disable additional GPSC queries if found. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 7d232c745ef2ce141cc9d9538421affa32846fdb Author: Andrew Vasquez Date: Thu Apr 3 13:13:22 2008 -0700 [SCSI] qla2xxx: Add Flash Descriptor Table layout support. The Flash Descriptor Table (FDT) present on many recent HBAs encodes flash accessing characteristics of the flash-part used on the HBA. Use this information during flash manipulation (writes) rather than using specific hard-coded values based on queried manufacturer and device IDs. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit c87a0d8c8de7e191cd59779560d8df2e935c7dc7 Author: Andrew Vasquez Date: Thu Apr 3 13:13:21 2008 -0700 [SCSI] qla2xxx: Use PCI-SIG nomenclature for PCIe bandwidth units. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 587f4cae4a8ce1315c3def2229c2a912637269b6 Author: Andrew Vasquez Date: Thu Apr 3 13:13:20 2008 -0700 [SCSI] qla2xxx: Cruft cleanup of functions and structures. Strip unused (DEBUG-ONLY) enabled functions, inlines, useless wrappers, and unused DPC flags from the code. Another step in the migration towards a cleaner (less-crusty) driver. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit cb8dacbf1110d8bd39413f3116ff1720f757854e Author: Andrew Vasquez Date: Thu Apr 3 13:13:19 2008 -0700 [SCSI] qla2xxx: Add hardware trace-logging support. Recent ISPs have a region within FLASH which acts as a repository for the logging of serious hardware and software failures. Currently, the region is large enough to support up to 255 entries. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 0971de7f56f809f40edae6fd372745e429e970e9 Author: Andrew Vasquez Date: Thu Apr 3 13:13:18 2008 -0700 [SCSI] qla2xxx: Add FC-transport Asynchronous Event Notification support. Supported events include LIP, LIP reset, RSCN, link up, and link down. To support AEN (and additional forthcoming features), we also introduce a simple deferred-work construct to manage events which require a non-atomic sleeping-capable context. This work-list is processed as part of the driver's standard DPC routine. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit c6952483b070ec8a4f2450d1116be908fe59edcc Author: Andrew Vasquez Date: Thu Apr 3 13:13:17 2008 -0700 [SCSI] qla2xxx: Simplify interrupt handler locking. There's no need to use the heavier (albiet safer) *_irq[save|restore]() locking primitives within the driver's interrupt handlers, interrupts are guaranteed to be non-reentrant. Use lightweight spin_lock() and spin_unlock() primitives while acquiring the hardware_lock. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 5ab5a4dd5444db0715b5748bab916725138d3a32 Author: Andrew Vasquez Date: Thu Apr 3 13:13:16 2008 -0700 [SCSI] qla2xxx: Use an rport's scsi_target_id member consistently throughout driver. Rather than using a duplicate/cached value stored in the driver's internal fcport structure. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 0ddda2d1529f2d01d3b043782d2efcf0499fc3db Author: Andrew Vasquez Date: Thu Apr 3 13:13:15 2008 -0700 [SCSI] qla2xxx: Remove unused and obsolete #define's. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 2ae2b3709542a4b5b691985ecbdf3b79303d9e56 Author: Andrew Vasquez Date: Thu Apr 3 13:13:14 2008 -0700 [SCSI] qla2xxx: Add support for host supported speeds FC transport attribute. Use generic FC transport #defines for speed values. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 01e58d8eac93f3b73246b8d0bdee071d9fb85661 Author: Andrew Vasquez Date: Thu Apr 3 13:13:13 2008 -0700 [SCSI] qla2xxx: Update copyright banner. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit 203c29102b8e76f088440099af01677cfb1cfdf9 Author: Andrew Vasquez Date: Thu Apr 3 13:13:12 2008 -0700 [SCSI] qla2xxx: Update firmware filenames for new ISP parts. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley commit db3cc200a6ecf9681d598bfe1c3df9dac1afa40a Author: James Bottomley Date: Thu Apr 3 12:28:20 2008 -0500 [SCSI] ips: remove spurious cpu_to_leX on outX statements These are completely wrong because both outX and writeX do an automatic reverse of their arguments if necessary, so having an extra cpu_to_leX gives us the wrong ordering on BE platforms again. Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit 79bc14813cd7e1b75d2e4cbbc17043261cf4bcdc Author: James Bottomley Date: Thu Apr 3 09:04:31 2008 -0500 [SCSI] libsas: fix missing inlines in header file Two functions in include/scsi/sas_ata.h don't have static inlines leading to problems if they're built in: On Thu, 2008-04-03 at 14:06 +0200, Toralf Förster wrote: > drivers/scsi/mvsas.o: In function `sas_ata_init_host_and_port': > mvsas.c:(.text+0x0): multiple definition of `sas_ata_init_host_and_port' > drivers/scsi/libsas/built-in.o:(.text+0x37f4): first defined here > drivers/scsi/mvsas.o: In function `sas_ata_task_abort': > mvsas.c:(.text+0x7): multiple definition of `sas_ata_task_abort' > drivers/scsi/libsas/built-in.o:(.text+0x37fb): first defined here > make[2]: *** [drivers/scsi/built-in.o] Error 1 > make[1]: *** [drivers/scsi] Error 2 > make: *** [drivers] Error 2 Add the correct static inline modifiers. Tested-by: Toralf Förster Signed-off-by: James Bottomley commit 2f3edc6936e3f6be3f1df1e89c141ae028fa605e Author: James Bottomley Date: Wed Apr 2 10:05:48 2008 -0500 [SCSI] transport_class: BUG if we can't release the attribute container Every current transport class calls transport_container_release but ignores the return value. This is catastrophic if it returns an error because the containers are part of a global list and the next action of almost every transport class is to free the memory used by the container. Fix this by making transport_container_release a void, but making it BUG if attribute_container_release returns an error ... this catches the root cause of a system panic much earlier. If we don't do this, we get an eventual BUG when the attribute container list notices the corruption caused by the freed memory it's still referencing. Also made attribute_container_release __must_check as a reminder. Cc: Greg KH Signed-off-by: James Bottomley commit fa8e36c39b00a219d2c37250e493c3421e0e67e9 Author: James Bottomley Date: Wed Apr 2 18:11:52 2008 -0500 [SCSI] fix barrier failure issue Currently, if the barrier command fails, the error return isn't seen by the block layer and it proceeds on regardless. The problem is that SCSI always returns no error for REQ_TYPE_BLOCK_PC ... it expects the submitter to pick the errors out of req->errors, which the block barrier functions don't do. Since it appears that the way SG_IO and scsi_execute_request() work they discard the block error return and always use req->errors, the best fix for this is to have the SCSI layer return an error to block if one actually occurred (this also allows us to filter out spurious errors, like deferred sense). This patch is a bug fix that will need backporting to stable, but it's also quite a big change and in need of testing, so we'll incubate in the main kernel tree and backport at the -rc2 or so stage if no problems turn up. Acked-by: Jens Axboe Cc: Marcelo Tosatti Signed-off-by: James Bottomley commit bfab1637b5d0c9683016917fa8e082ba6ce8d5a6 Author: Martin Peschke Date: Mon Mar 31 11:15:31 2008 +0200 [SCSI] zfcp: Add docbook comments to debug trace. Add missing docbook-comments for functions forming zfcp's internal trace API. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 92c7a83fc1fe7b9c3b26831cf84aedd3962d13ee Author: Martin Peschke Date: Mon Mar 31 11:15:30 2008 +0200 [SCSI] zfcp: Cleanup line breaks in debug trace. Remove line breaks that do not conform to coding style. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 6bc473dd324237acbaa7a4c5e73d00dd5fc389ec Author: Martin Peschke Date: Mon Mar 31 11:15:29 2008 +0200 [SCSI] zfcp: Shorten excessive names in debug trace. Saving on line breaks, improving readability, by shortening excessive function names and identifiers, by simplifying some functions call chains, and by simplifying nesting of some data structure. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 2b604c9b909ce1c98e51208eee2f70ee3e604079 Author: Christof Schmitt Date: Mon Mar 31 11:15:28 2008 +0200 [SCSI] zfcp: Move DBF definitions to private header file Unclutter the global zfcp_def.h header. Move everything required to call into the debug feature to a new header file. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit a9c857757ea09b63040bba7ab149557ac2bfb274 Author: Martin Peschke Date: Mon Mar 31 11:15:27 2008 +0200 [SCSI] zfcp: Simplify zfcp_dbf_tag and related functions in debug trace. Simplify usage of zfcp_dbf_tag() and calling functions. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit df29f4ac4d3e8fcc8d8c85b7aeb8cc0df2a3f68a Author: Martin Peschke Date: Mon Mar 31 11:15:26 2008 +0200 [SCSI] zfcp: Simplify usage of hex dump output function for debug trace. Simplify usage of output function for hex dumps. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c7b7fc8c30df49a4ca5743d5f062666adcc1dc15 Author: Martin Peschke Date: Mon Mar 31 11:15:25 2008 +0200 [SCSI] zfcp: Remove obsolete output function from debug trace. Remove obsolete output function. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit b634fff743be5e6010c5cbe36ea1e68ff56a6aee Author: Martin Peschke Date: Mon Mar 31 11:15:24 2008 +0200 [SCSI] zfcp: Cleanup debug trace view functions. Improve readability of code by using more convenient output function. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 8fc5af168753239d7bf77ccca831196bcdffbfbe Author: Martin Peschke Date: Mon Mar 31 11:15:23 2008 +0200 [SCSI] zfcp: simplify zfcp_dbf_timestamp() Change zfcp_dbf_timestamp() so that it just calculates timespec from timestamp. First step to be able to rip this code out of zfcp. Besides, this change makes it easier to rip out old-style debug view functions. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 81e56ded878aeb8730f18c1d0a70d5face788be3 Author: Adrian Bunk Date: Fri Mar 28 14:48:34 2008 -0700 [SCSI] aic94xx: cleanups - static functions in .c files shouldn't be marked inline - make needlessly global code static - remove the unused aic94xx_seq.c:asd_unpause_lseq() - #if 0 other unused code [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: James Bottomley commit d70d4667e9eead06aa38be947274fda22dcf923b Author: Harvey Harrison Date: Mon Mar 31 22:05:30 2008 -0700 [SCSI] ch: fix sparse shadowed variable warnings Replace the global err array with ch_err. drivers/scsi/ch.c:271:6: warning: symbol 'err' shadows an earlier one drivers/scsi/ch.c:116:3: originally declared here Replace the temporary cmd buffer with ch_err to avoid shadowing the cmd function parameter. drivers/scsi/ch.c:724:11: warning: symbol 'cmd' shadows an earlier one drivers/scsi/ch.c:596:20: originally declared here Signed-off-by: Harvey Harrison Signed-off-by: James Bottomley commit 8c5e03d3cf70161413aaf7152dafa96daca5bb2f Author: Adrian Bunk Date: Mon Mar 31 01:53:55 2008 +0300 [SCSI] make scsi_end_bidi_request() static This patch makes the needlessly global scsi_end_bidi_request() static. Signed-off-by: Adrian Bunk Acked-by: Boaz Harrosh Signed-off-by: James Bottomley commit f6b196a2f3058c6f70bb36ab61ff8aa996fca301 Author: James Bottomley Date: Sun Mar 30 12:36:26 2008 -0500 [SCSI] hptiop: fix header.context usage header.context is a 64 bit field, but it's deliberately split into context and context_hi32. Thus cpu_to_le64 assignments are wrong on this. Replace them with the correct settings of both the low and high words. Cc: HighPoint Linux Team Signed-off-by: James Bottomley commit a579dab1c19104fe82e864513cb17c6803dd7840 Author: James Bottomley Date: Mon Mar 31 22:06:50 2008 -0500 [SCSI] wd33c93: fix up cut and paste error The three drivers: a2091, gvp11 and mvme147 have erroneous references to a3000_host. Fix these to be references to the proper host variable. Cc: Thomas Bogendoerfer Signed-off-by: James Bottomley commit 8dea0d02f8bb7103ec0818bd2e856f30f2d1bcf1 Author: FUJITA Tomonori Date: Sun Mar 30 00:59:58 2008 +0900 [SCSI] scsi_debug: remove unnecessary function declarations This patch removes function declarations with moving some functions. This cleans up them a bit to silence checkpatch.pl. There is no functional change. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 5f2578e579ab74b4e3cfd1431bfa976e906594f6 Author: FUJITA Tomonori Date: Sun Mar 30 00:59:57 2008 +0900 [SCSI] scsi_debug: support large non-fake virtual disk Currently, the maximum amount of RAM that scsi_debug can allocate is 4GB. This patch increases it to 2TB; scsi_debug can allocates 2TB memory and export it as if it were 2TB scsi disk. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 1978910062c38394570c48b3065f37060be31b91 Author: FUJITA Tomonori Date: Sun Mar 30 00:59:56 2008 +0900 [SCSI] scsi_debug: remove the duplicated code in resp_read and resp_write resp_read and resp_write performs READ_* and WRITE_* commands respectively. This sweeps up the similar code in them. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 28898873b0049d4271c0ff3eb57eb329bbc4d9df Author: FUJITA Tomonori Date: Sun Mar 30 00:59:55 2008 +0900 [SCSI] scsi_debug: sweep up sdebug_capacity calculation sdebug_capacity is calculated at five different places. This add a helper function to calculate sdebug_capacity to sweep up the duplicatated code. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit f58b0efbf49ec54c82b8904c64a6498f829e7544 Author: FUJITA Tomonori Date: Sun Mar 30 00:59:54 2008 +0900 [SCSI] scsi_debug: remove unnecessary sdebug_store_size sdebug_store_size doesn't need to be static global. It's used at startup only. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 540d9b40faa8fcf094cb1fbf9224406bb13e3307 Author: Denis Cheng Date: Thu Mar 20 03:10:20 2008 +0800 [SCSI] hosts.c: removed one unneeded shost->active_mode assignment In the following if/else statement, shost->active_mode will always be set, so this assignment is unneeded. Signed-off-by: Denis Cheng Signed-off-by: James Bottomley commit 36b8dd1bf787512e33efa7ce88eff437404ab22d Author: Marcin Slusarz Date: Fri Mar 28 14:48:35 2008 -0700 [SCSI] aacraid, ips: leX_add_cpu conversion replace all: little_endian_variable = cpu_to_leX(leX_to_cpu(little_endian_variable) + expression_in_cpu_byteorder); with: leX_add_cpu(&little_endian_variable, expression_in_cpu_byteorder); generated with semantic patch Signed-off-by: Marcin Slusarz Acked-by: "Salyzyn, Mark" Signed-off-by: Andrew Morton Signed-off-by: James Bottomley commit 507e49693a074e878f20718fb97a5da01ccd9cbd Author: Martin Peschke Date: Thu Mar 27 14:22:05 2008 +0100 [SCSI] zfcp: Remove obsolete erp_dbf trace This patch removes the now obsolete erp_dbf trace. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 6f4f365e9c5d721c4d03ee8009dd6fab47feb045 Author: Martin Peschke Date: Thu Mar 27 14:22:04 2008 +0100 [SCSI] zfcp: Add trace records for recovery actions. This patch writes trace records for various phases of a recovery action: action being created, action being processed, action continueing asynchronously, action gone, action timed out, action dismissed etc. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 9467a9b3efdd9041202f71cc270bda827a7ec777 Author: Martin Peschke Date: Thu Mar 27 14:22:03 2008 +0100 [SCSI] zfcp: Trace all triggers of error recovery activity This patch allows any recovery event to be traced back to an exact cause, e.g. a particular request identified by an id (address). Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 698ec01635819c5ae60090bb4efcbeffc41642fb Author: Martin Peschke Date: Thu Mar 27 14:22:02 2008 +0100 [SCSI] zfcp: Add traces for state changes. This patch writes a trace record which provides information about state changes for adapters, ports and units, e.g. target failure, targets becoming online, targets being temporarily blocked due to pending recovery, targets which have been recovered successfully etc. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 348447e85749120ad600a5c8e23b6bb7058b931d Author: Martin Peschke Date: Thu Mar 27 14:22:01 2008 +0100 [SCSI] zfcp: Add trace records for recovery thread and its queues This patch writes trace records which provide information about the operation of the zfcp error recovery thread and the queues it works on. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit d79a83dbffe2e49e73f2903c350937faf2e0c2f1 Author: Martin Peschke Date: Thu Mar 27 14:22:00 2008 +0100 [SCSI] zfcp: Register new recovery trace. This patch registers the new recovery trace with the s390 debug feature. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 10223c60daf226ee2248b772892abc83cd875aa7 Author: Martin Peschke Date: Thu Mar 27 14:21:59 2008 +0100 [SCSI] zfcp: Introduce printf helper functions for debug trace. Introducing helper functions that allow for code simpfifications. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit b75db73159ccffaf60a67896fdfed3856b1f65e3 Author: Martin Peschke Date: Thu Mar 27 14:21:58 2008 +0100 [SCSI] zfcp: Add qtcb dump to hba debug trace This patch adds per request hardware debugging data to the trace record which is written per request. It's a replacement for some sad kernel message based debugging code. Considering the amount of trace data, printk() is not suitable for this stuff. Writing binary traces is more efficient. In addition we got all information in one place. The QTCB trace data is only dumped for requests other than SCSI requests. Otherwise we would flood the trace ring buffer. We are mostly interested in non-SCSI, recovery related requests here anyway. This patch also works around a known hardware bug. It truncates QTCB traces so that we do not save unused areas of the hardware trace. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 07c70d26b556b342e7ad285963974808efba3104 Author: Martin Peschke Date: Thu Mar 27 14:21:57 2008 +0100 [SCSI] zfcp: Remove qtcb dump to kernel log Is not appropriate to printk() tons of hardware trace data. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit 0f65e951ee0c4a7506c6c0489b59a6fb1d2f0e75 Author: Martin Peschke Date: Thu Mar 27 14:21:56 2008 +0100 [SCSI] zfcp: Clean up _zfcp_san_dbf_event_common_els Clean up _zfcp_san_dbf_event_common_els using zfcp_dbf_hexdump() helper. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit c15450e33d198334291d50b5a95337c6b90cdab0 Author: Martin Peschke Date: Thu Mar 27 14:21:55 2008 +0100 [SCSI] zfcp: Introduce a helper function that dumps hex data to a zfcp trace. Signed-off-by: Martin Peschke Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit d5cdc9898b5589acc77db91a1e9c0feb9f32abef Author: FUJITA Tomonori Date: Tue Mar 25 17:04:46 2008 +0900 [SCSI] scsi_debug: fix lba and data length calculation bugs For example, `modprobe scsi_debug virtual_gb=1100` gives: scsi7 : scsi_debug, version 1.81 [20070104], dev_size_mb=8, opts=0x0 scsi 7:0:0:0: Direct-Access Linux scsi_debug 0004 PQ: 0 ANSI: 5 sd 7:0:0:0: [sdc] 2306867200 512-byte hardware sectors (1181116 MB) sd 7:0:0:0: [sdc] Write Protect is off sd 7:0:0:0: [sdc] Mode Sense: 73 00 10 08 sd 7:0:0:0: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA sd 7:0:0:0: [sdc] 2306867200 512-byte hardware sectors (1181116 MB) sd 7:0:0:0: [sdc] Write Protect is off sd 7:0:0:0: [sdc] Mode Sense: 73 00 10 08 sd 7:0:0:0: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA sdc: unknown partition table sd 7:0:0:0: [sdc] Attached SCSI disk sd 7:0:0:0: Attached scsi generic sg6 type 0 end_request: I/O error, dev sdc, sector 2306867072 Buffer I/O error on device sdc, logical block 288358384 end_request: I/O error, dev sdc, sector 2306867072 Buffer I/O error on device sdc, logical block 288358384 end_request: I/O error, dev sdc, sector 2306867192 (snip) Note that this converts all the calculations (including the correct calculations) for unification. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit b8e3d3aeabe3be471e448ff5e51b6e57b5819913 Author: James Bottomley Date: Sun Mar 30 11:38:07 2008 -0500 [SCSI] mpt fusion: fix up msi_enable in mpt_suspend There's a problem with the combination of the upstream power management fixes and the enabling of MSI by default in that the suspend path still uses the global variable. Convert it to check ioc->msi_enable. Cc: "Moore, Eric" Cc: "Prakash, Sathya" Signed-off-by: James Bottomley commit 53df8ba801b835ebbd116b4585adfe7ce4efd2b3 Author: FUJITA Tomonori Date: Tue Mar 25 09:26:53 2008 +0900 [SCSI] ps3rom: use scsi_build_sense_buffer Signed-off-by: FUJITA Tomonori Acked-by: Geert Uytterhoeven Signed-off-by: James Bottomley commit 11002fbcb472cf1176d97eac214df98f7c17f69c Author: FUJITA Tomonori Date: Tue Mar 25 09:26:52 2008 +0900 [SCSI] stex: use scsi_build_sense_buffer Signed-off-by: FUJITA Tomonori Acked-by: Ed Lin Signed-off-by: James Bottomley commit 526917641aa50eb852591cc3953a92374bedc836 Author: FUJITA Tomonori Date: Tue Mar 25 09:26:51 2008 +0900 [SCSI] libata: use scsi_build_sense_buffer Signed-off-by: FUJITA Tomonori Cc: Jeff Garzik Cc: Tejun Heo Signed-off-by: James Bottomley commit a34c4e98367965402134f2e66c3cdc4416f109e4 Author: FUJITA Tomonori Date: Tue Mar 25 09:26:50 2008 +0900 [SCSI] scsi_debug: use scsi_build_sense_buffer Signed-off-by: FUJITA Tomonori Cc: Douglas Gilbert Signed-off-by: James Bottomley commit 3bc6a26192d2548397a3e721d786cf8345ee54e1 Author: FUJITA Tomonori Date: Tue Mar 25 09:26:49 2008 +0900 [SCSI] add scsi_build_sense_buffer helper function This adds scsi_build_sense_buffer, a simple helper function to build sense data in a buffer. Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit be3cb3d84bb8dffecb7c5570355866075caa7e95 Author: Thomas Bogendoerfer Date: Fri Mar 21 22:25:43 2008 +0100 [SCSI] WD33C93: let platform stub override no_sync/fast/dma_mode SGI machines with WD33C93 allow usage of burst mode DMA, which increases performance noticable. To make this selectable by the sgiwd93 stub, setting the values for no_sync, fast and dma_mode has been moved to the individual platform stubs. Signed-off-by: Thomas Bogendoerfer Acked-by: Ralf Baechle Signed-off-by: James Bottomley commit 7748369f49d428e558c519ed344d3005d38347b7 Author: Michael Reed Date: Thu Mar 20 17:32:05 2008 -0500 [SCSI] mptsas: do not use ioc->handle to locate hba portinfo structure While performing hardware raid reset testing via the raid's client, I noticed that sometimes, following the reset, that there would be more raid targets in the lsscsi output than there actually were raid targets. I tracked this down to the following issue. Fusion cannot always find the mptsas_portinfo structure for the hba because it uses the handle stored in ioc->handle to locate it. The problem is that the firmware can change the handle associated with the hba when h/w raid is reset (via the raid client). When this happens, the driver will allocate another mptsas_portinfo structure and link it into the chain of said structures. This ultimately causes confusion within the driver resulting in targets not being removed when they should be. Eric Moore pointed out that the hba's portinfo structure is always the first structure on the sas_topology list. This patch modifies mptsas.c to access the hba's portinfo structure by taking the first structure on said list. Signed-off-by: Michael Reed Acked-by: "Moore, Eric" Signed-off-by: James Bottomley commit 9d56291366cd6ab156be722e42cf487bef20f5fd Author: David C Somayajulu Date: Wed Mar 19 11:23:03 2008 -0700 [SCSI] qla4xxx: fix scsi command completion, lun reset and target reset code This patch contains the following: 1. when hba completion status is good, check for iscsi transport errors (underflow/overflow) prior to checking the scsi status 2. New firmware requires that one marker iocb be issued for each task management command. The patch issues marker iocb immediately following a LUN or Target reset. Signed-off-by: David C Somayajulu Signed-off-by: James Bottomley commit af7a5647c03c18f5ea58033710ccb23d71727e0c Author: bo yang Date: Mon Mar 17 04:13:07 2008 -0400 [SCSI] megaraid_sas: Add the new controller(1078DE) support to the driver Add the new Controller (ID: 007C) support to driver. Signed-off-by Bo Yang Signed-off-by: James Bottomley commit d532dbe2cb71586ab520dbef732d1af54a689313 Author: bo yang Date: Mon Mar 17 03:36:43 2008 -0400 [SCSI] megaraid_sas: Fix the frame count calculation When Driver sent wrong frame count to firmware. As this particular command is sent to drive, FW is seeing continuous chip resets and so the command will timeout. Signed-off-by Bo Yang Signed-off-by: James Bottomley commit b70a41e077b3405d4b41d34db31b39c05bf142b5 Author: bo yang Date: Tue Mar 18 03:13:06 2008 -0400 [SCSI] megaraid_sas: rollback the sense info implementation Sense buffer ptr data type in the ioctl path is reverted back to u32 * as in previous versions of driver. Signed-off-by Bo Yang Signed-off-by: James Bottomley commit ccde6b8d6217834def292030a1864d517f55ded5 Author: Denis Cheng Date: Tue Mar 4 15:24:23 2008 -0800 [SCSI] 3w-9xxx, 3w-xxxx: memset not needed in probe The memory return from scsi_host_alloc is alloced by kzalloc, which is already zero initilized, so memset not needed. Signed-off-by: Denis Cheng Cc: Adam Radford Signed-off-by: Andrew Morton Signed-off-by: James Bottomley commit 0b6c4b14cfb2fd89064d29bdead62f9ed8631399 Author: Roel Kluin <12o3l@tiscali.nl> Date: Mon Jan 28 14:09:54 2008 +0100 [SCSI] aic7xxx: Test opcode, not definition in aicasm:type_check() This fixes a bug that we treat all sequencer operations as ands and never do the additional invalid bit checks non-and operations require because the if () to determine this has an operand which is always true at the end of the or statement. Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Acked-by: Hannes Reinecke Signed-off-by: James Bottomley commit 639db475c8bb77f915f79f567ee98ac673d6edf3 Author: FUJITA Tomonori Date: Thu Mar 20 11:09:19 2008 +0900 [SCSI] scsi_debug: remove unnecessary function declarations This patch removes lots of function declarations with moving scsi_debug_queuecommand. This cleans up scsi_debug_queuecommand a bit to silence checkpatch.pl Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 8b40228f3f5b1fa926c116ec444476d32bc470f6 Author: FUJITA Tomonori Date: Thu Mar 20 11:09:18 2008 +0900 [SCSI] scsi_debug: use list_for_each_entry_safe This replaces list_for_each_safe and list_entry with list_for_each_entry_safe. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit a75869d1ff73de74249373c2a1d80fbbc3b6c8fc Author: FUJITA Tomonori Date: Thu Mar 20 11:09:17 2008 +0900 [SCSI] scsi_debug: remove unnecessary condition test in devInfoReg open_devip is always non NULL. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 5cb2fc06107fe343a9488b32ddf3d9b4596b7090 Author: FUJITA Tomonori Date: Thu Mar 20 11:09:16 2008 +0900 [SCSI] scsi_debug: create new scsi_debug devices at a single place Two functions, sdebug_add_adapter and devInfoReg, creates new scsi_debug devices. To simplify the code, this patch adds a new helper function to create new scsi_debug devices (sdebug_device_create) and converts both functions to use it. I plan to add more to scsi_debug devices (e.g. using a thread for a scsi_debug device for scalability testings). This patch enable me to add such to just the new helper function instead of touching two functions, sdebug_add_adapter and devInfoReg. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit f3df41cff40992499d3c693251622299e4ce18c3 Author: FUJITA Tomonori Date: Thu Mar 20 11:09:15 2008 +0900 [SCSI] scsi_debug: remove temporary hack around sscanf for negative values sscanf can handle negative values. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 1c353f7d616a4ef04b5e73fe7a2184baa039f06f Author: James Bottomley Date: Thu Mar 13 11:19:36 2008 -0500 [SCSI] export command allocation and freeing functions independently of the host This is needed by things like USB storage that want to set up static commands for later use at start of day. Signed-off-by: James Bottomley commit e507e30b803fb56d768ed9a597e7609b74d2db21 Author: James Bottomley Date: Thu Mar 13 11:16:33 2008 -0500 [SCSI] consolidate command allocation in a single place Since the way we allocate commands with a separate sense buffer is getting complicated, we should isolate setup and teardown to a single routine so that if it gets even more complex, there's only one place in the code that needs to be altered. Signed-off-by: James Bottomley commit 035f5e06515a66827015202685e457a5534441b7 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:37 2008 +0900 [SCSI] 3w-9xxx: use sg buffer copy helper functions Signed-off-by: FUJITA Tomonori Cc: Adam Radford Signed-off-by: James Bottomley commit e943752ecf0ce41cdf949d565140d91c7711dfd9 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:36 2008 +0900 [SCSI] 3w-xxxx: use sg buffer copy helper functions This rewrites tw_transfer_internal with scsi_sg_copy_from/to_buffer. Signed-off-by: FUJITA Tomonori Cc: Adam Radford Signed-off-by: James Bottomley commit 31fe47d4374eb29d914333aa26bcb7ca9f1545f3 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:35 2008 +0900 [SCSI] stex: use sg buffer copy helper functions This replaces stex_internal_copy with scsi_sg_copy_to/from_buffer. Signed-off-by: FUJITA Tomonori Acked-by: Ed Lin Signed-off-by: James Bottomley Signed-off-by: James Bottomley commit d4345028d4c20407c313061b1bd49ba1aee81f94 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:34 2008 +0900 [SCSI] aacraid: use sg buffer copy helper functions This replaces aac_internal_transfer with scsi_sg_copy_to/from_buffer. Signed-off-by: FUJITA Tomonori Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit 6690bae7e0279451ee92580bf1c5d39a76e3687e Author: FUJITA Tomonori Date: Sun Mar 9 13:44:33 2008 +0900 [SCSI] ips: use sg buffer copy helper funcitons This rewrites ips_scmd_buf_write/read with scsi_sg_copy_from/to_buffer respectively. Signed-off-by: FUJITA Tomonori Acked-by: Salyzyn, Mark Signed-off-by: James Bottomley commit 1a7a2e1a77f29179f997ca5e873c50ae2fb7fcc1 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:32 2008 +0900 [SCSI] simscsi: use sg buffer copy helper funcitons This replaces simscsi_fillresult with scsi_sg_copy_from_buffer. Signed-off-by: FUJITA Tomonori Cc: Tony Luck Signed-off-by: James Bottomley commit 944cf8b4cba42fcb284a29e4817831471adb4fad Author: FUJITA Tomonori Date: Sun Mar 9 13:44:31 2008 +0900 [SCSI] ps3rom: use sg buffer copy helper funcitons Note that if scsi_bufflen(cmd) is not zero, the command always has an sg list. So this patch doesn't do the error checking in fill_from_dev_buffer and fetch_to_dev_buffer did. Signed-off-by: FUJITA Tomonori Looks-OK-to: Geert Uytterhoeven Signed-off-by: James Bottomley commit 21a6182924d531b41cb8c24e0344213f4c90c335 Author: FUJITA Tomonori Date: Sun Mar 9 13:44:30 2008 +0900 [SCSI] scsi_debug: use sg buffer copy helper functions Signed-off-by: FUJITA Tomonori Cc: Douglas Gilbert Signed-off-by: James Bottomley commit 9ac16b616ab117dab3fce9790368d3b58ca441ef Author: FUJITA Tomonori Date: Sun Mar 9 13:44:29 2008 +0900 [SCSI] scsi: add wrapper functions for sg buffer copy helper functions LLDs need to copies data between the SG table in struct scsi_cmnd and liner buffer. So they use the helper functions like sg_copy_from_buffer(scsi_sglist(sc), scsi_sg_count(sc), buf, buflen) sg_copy_to_buffer(scsi_sglist(sc), scsi_sg_count(sc), buf, buflen) This patch just adds wrapper functions: scsi_sg_copy_from_buffer(sc, buf, buflen) scsi_sg_copy_to_buffer(sc, buf, buflen) Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit b1adaf65ba0398c9a1adc8f3a274533165a4df61 Author: FUJITA Tomonori Date: Tue Mar 18 00:15:03 2008 +0900 [SCSI] block: add sg buffer copy helper functions This patch adds new three helper functions to copy data between an SG list and a linear buffer. - sg_copy_from_buffer copies data from linear buffer to an SG list - sg_copy_to_buffer copies data from an SG list to a linear buffer When the APIs copy data from a linear buffer to an SG list, flush_kernel_dcache_page is called. It's not necessary for everyone but it's a no-op on most architectures and in general the API is not used in performance critical path. Signed-off-by: FUJITA Tomonori Acked-by: Jens Axboe Signed-off-by: James Bottomley commit 78b4b05db57b04b3ed17dc71259bf1402c04abfa Author: Matthew Wilcox Date: Thu Mar 13 06:55:08 2008 -0600 [SCSI] BusLogic: make FlashPoint support x86-32 only We've verified that there are 64 bit and endianness problems in the flashpoint driver. Reverse the logic of CONFIG_OMIT_FLASHPOINT (make it CONFIG_SCSI_FLASHPOINT) and make it depend on X86_32 so it can't appear for any other architectures. Long term, if someone chooses, they could make FlashPoint 64 bit compliant (it looks like its a question of fixing up the sizes in some of the packed descriptors) Signed-off-by: James Bottomley commit 5c815d1501a9ce84578cb3ec64c9d31ef91e3de2 Author: Christof Schmitt Date: Mon Mar 10 16:18:54 2008 +0100 [SCSI] zfcp: Fix handling for boxed port after physical close When a FSF physical close returns the status boxed, this means that another system already closed the port. For our system this is the same status as in the good path, we have to send the normal close. So, set the status for the boxed response to the same as for the good status. Signed-off-by: Christof Schmitt Signed-off-by: Martin Peschke Signed-off-by: James Bottomley commit 2505873afe510d8db05665684c056ac8f0b24563 Author: FUJITA Tomonori Date: Sun Mar 9 22:50:40 2008 +0900 [SCSI] aic79xx: fix IOMMU mapping failure handling Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 647b24256241e144fe8369244da1730b577211e9 Author: FUJITA Tomonori Date: Sun Mar 9 22:50:41 2008 +0900 [SCSI] aic7xxx: fix IOMMU mapping failure handling Signed-off-by: FUJITA Tomonori Signed-off-by: James Bottomley commit ed5f606fef22e515331aab4c1f927775cf4af70e Author: Matthias Kaehlcke Date: Sun Mar 9 12:16:27 2008 +0100 [SCSI] mpt fusion: convert inactive_list_mutex to a mutex the semaphore inactive_list_mutex is used as a mutex, convert it to the mutex API Signed-off-by: Matthias Kaehlcke Acked-by: "Moore, Eric" Signed-off-by: James Bottomley commit 23a274c8a5adafc74a66f16988776fc7dd6f6e51 Author: Prakash, Sathya Date: Fri Mar 7 15:53:21 2008 +0530 [SCSI] mpt fusion: Enable MSI by default for SAS controllers This patch modifies the driver to enable MSI by default for all SAS chips. Signed-off-by: Sathya Prakash Signed-off-by: James Bottomley commit 74b2e047ecda7a82c3327a0d0bb45ee2ccf301ca Author: Christof Schmitt Date: Mon Mar 3 12:19:28 2008 +0100 [SCSI] zfcp: convert zfcp to use target reset and device reset handler [based on proposal from Mike Christie , this patch adds some simplifications to the handler functions] With the new target reset handler callback in the SCSI midlayer, the device reset handler in zfcp can be split in two parts. Now, zfcp does not have to track anymore whether the device supports LUN resets, so remove this flag and let the SCSI midlayer decide what to do. The device reset handler simply issues a LUN reset and the target reset handler a target reset. Signed-off-by: Christof Schmitt Signed-off-by: James Bottomley commit ce5450392fa3ab54f0a84aa3b7589f8d6f2a58af Author: Mike Christie Date: Fri Feb 29 18:25:20 2008 -0600 [SCSI] qla4xxx: Add target reset functionality This patch adds target reset functionalty. Signed-off-by: Mike Christie Acked-by: David Somayajulu Signed-off-by: James Bottomley commit 30bd7df8ced23eefec87a5cda96dc99b002ed9da Author: Mike Christie Date: Fri Feb 29 18:25:19 2008 -0600 [SCSI] scsi_error: add target reset handler The problem is that serveral drivers are sending a target reset from the device reset handler, and if we have multiple devices a target reset gets sent for each device when only one would be sufficient. And if we do a target reset it affects all the commands on the target so the device reset handler code only cleaning up one devices's commands makes programming the driver a little more difficult than it should be. This patch adds a target reset handler, which drivers can use to send a target reset. If successful it cleans up the commands for a devices accessed through that starget. Signed-off-by: Mike Christie Signed-off-by: James Bottomley commit f7441a791aeaeac2e1f1f71b485d1372016f9285 Author: Geert Uytterhoeven Date: Mon Feb 25 14:24:31 2008 +0100 [SCSI] ps3rom: Simplify fill_from_dev_buffer() As we no longer need to calculate the data length of the whole scatterlist, we can abort the loop earlier and coalesce req_len and act_len into one variable, making fill_from_dev_buffer() more similar to fetch_to_dev_buffer(). Signed-off-by: Geert Uytterhoeven Signed-off-by: James Bottomley commit d1e4c9c57c2ed4722795443db22a5d813cd4f0e5 Author: FUJITA Tomonori Date: Sun Mar 2 18:30:18 2008 +0900 [SCSI] scsi_debug: use shost_priv macro Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 96ad0dfe8388428acc10c1bd96573f893fc79439 Author: FUJITA Tomonori Date: Sun Mar 2 18:30:17 2008 +0900 [SCSI] scsi_debug: remove unnecessary checking Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 9e603ca06a538ba6eae29f9785aa47bc53920a15 Author: FUJITA Tomonori Date: Sun Mar 2 18:30:16 2008 +0900 [SCSI] scsi_debug: remove scsi_debug.h scsi_debug.h just incldues some function declarations. This patch removes it with moving the scsi_host_template. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 9ff26eefd4f19051ce13bbba6847871626680e91 Author: FUJITA Tomonori Date: Sun Mar 2 18:30:15 2008 +0900 [SCSI] scsi_debug: stop including drivers/scsi/scsi.h This converts scsi_debug to include header files in include/scsi/ instead of drivers/scsi/scsi.h. Signed-off-by: FUJITA Tomonori Acked-by: Douglas Gilbert Signed-off-by: James Bottomley commit 9924a781f3e746ba5aa54cf96ca462b8d0915221 Author: Andi Kleen Date: Mon Feb 25 00:35:21 2008 +0100 [SCSI] Remove random noop unchecked_isa_dma users Lots of drivers set it to 0. Remove that. Patch should be a nop. Signed-off-by: Andi Kleen Signed-off-by: James Bottomley commit b271f1c881ff301ba1fbb52698d4f2b91858f421 Author: FUJITA Tomonori Date: Sun Feb 24 15:25:23 2008 -0800 [SCSI] aacraid: READ_CAPACITY_16 shouldn't trust allocation length in cdb When aacraid spoofs READ_CAPACITY_16, it assumes that the data length in the sg list is equal to allocation length in cdb. But sg can put any value in scb so the driver needs to check both the data length in the sg list and allocation length in cdb. If allocation length is larger than the response length that the driver expects, it clears the data buffer in the sg list to zero but it doesn't need to do. Just setting resid is fine. Signed-off-by: FUJITA Tomonori Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit b174be02f3634460ac215d249617dee5ae446ae1 Author: Kai Makisara Date: Sun Feb 24 22:29:12 2008 +0200 [SCSI] st: show options currently set in sysfs Show the current binary tape driver and mode options is sysfs. A file (options) is created in each directory in /sys/class/scsi_tape. The files contain masks showing the options. The mask bit definitions are the same as used when setting the options using the MTSETDRVBUFFER function in the MTIOCTOP ioctl (defined in include/linux/mtio.h). For example: > cat /sys/class/scsi_tape/nst0/options 0x00000d07 [jejb: updated doc with correction from Randy Dunlap] Signed-off-by: Kai Makisara Signed-off-by: James Bottomley commit 40f6b36c6243462fb95d0343237331c423494b03 Author: Kai Makisara Date: Sun Feb 24 22:23:24 2008 +0200 [SCSI] st: add option to use SILI in variable block reads Add new option MT_ST_SILI to enable setting the SILI bit in reads in variable block mode. If SILI is set, reading a block shorter than the byte count does not result in CHECK CONDITION. The length of the block is determined using the residual count from the HBA. Avoiding the REQUEST SENSE command for every block speeds up some real applications considerably. Signed-off-by: Kai Makisara Signed-off-by: James Bottomley commit d35055a0f2637f29f95001a67b464fe833b09ebc Author: Boaz Harrosh Date: Wed Feb 27 15:31:20 2008 -0800 [SCSI] gdth: remove command accessors These are no longer necessary. Signed-off-by: Boaz Harrosh Tested-by: Joerg Dorchain: Tested-by: Stefan Priebe Tested-by: Jon Chelton Signed-off-by: James Bottomley commit 68066c3ed14b529331bc2ff12470e9ca1cae5c3f Author: Darrick J. Wong Date: Tue Feb 19 10:50:49 2008 -0800 [SCSI] aic94xx: Use sas_request_addr() to provide SAS WWN if the adapter lacks one If the aic94xx chip doesn't have a SAS address in the chip's flash memory, make libsas get one for us. Signed-off-by: Darrick J. Wong Signed-off-by: James Bottomley commit 45e6cdf41437c72ed79cee64dc69e7f740511e50 Author: Darrick J. Wong Date: Tue Feb 19 10:49:40 2008 -0800 [SCSI] libsas: Provide a transport-level facility to request SAS addrs Provide a facility to use the request_firmware() interface to get a SAS address from userspace. This can be used by SAS LLDDs that cannot obtain the address from the host adapter. Signed-off-by: Darrick J. Wong Signed-off-by: James Bottomley commit 7e23ea488488400127a2da19c0d89f1723117504 Author: FUJITA Tomonori Date: Tue Feb 19 18:41:30 2008 +0900 [SCSI] ips: sg chaining support to the path to non I/O commands I overlooked ips_scmd_buf_write and ips_scmd_buf_read when I converted ips to use the data buffer accessors. ips is unlikely to use sg chaining (especially in this path) since a) this path is used only for non I/O commands (with little data transfer), b) ips's sg_tablesize is set to just 17. Thanks to Tim Pepper for testing this patch. Signed-off-by: FUJITA Tomonori Acked-by: Mark Salyzyn Signed-off-by: James Bottomley commit cff2680643f9288a1cd4e27c241e1da51f476d66 Author: Jeff Garzik Date: Fri Feb 15 22:20:09 2008 -0500 [SCSI] gdth: convert to PCI hotplug API - remove PCI device sort, which greatly simplifies PCI probe, permitting direct, per-HBA function calls rather than an indirect route to the same end result. - remove need for pcistr[] Signed-off-by: Jeff Garzik Signed-off-by: James Bottomley commit 4c9c8d782c8dddc5e97d33210e8a993cec6bc168 Author: Jeff Garzik Date: Fri Feb 15 21:35:26 2008 -0500 [SCSI] gdth: PCI probe cleanups, prep for PCI hotplug API conversion - Reduce uses of gdth_pci_str::pdev, preferring a local variable (or function arg) 'pdev' instead. - Reduce uses of gdth_pcistr array, preferring local variable (or function arg) 'pcistr' instead. - Eliminate lone use of gdth_pci_str::irq, using equivalent pdev->irq instead - Eliminate assign-only gdth_pci_str::io_mm Note: If the indentation seems weird, that's because a line was converted from spaces to tabs, when it was modified. Signed-off-by: Jeff Garzik Signed-off-by: James Bottomley commit a6c75b86ce9f01db4ea9912877b526c2dc4d2f0a Author: Fenghua Yu Date: Fri Mar 14 13:57:08 2008 -0700 [IA64] Kernel parameter for max number of concurrent global TLB purges The patch defines kernel parameter "nptcg=". The parameter overrides max number of concurrent global TLB purges which is reported from either PAL_VM_SUMMARY or SAL PALO. Signed-off-by: Fenghua Yu Signed-off-by: Tony Luck commit 2046b94e7c4fce92eb8165c2c36c6478f4927178 Author: Fenghua Yu Date: Fri Apr 4 11:05:59 2008 -0700 [IA64] Multiple outstanding ptc.g instruction support According to SDM2.2, Itanium supports multiple outstanding ptc.g instructions. But current kernel function ia64_global_tlb_purge() uses a spinlock to serialize ptc.g instructions issued by multiple processors. This serialization might have scalability issue on a big SMP machine where many processors could purge TLB in parallel. The patch fixes this problem by issuing multiple ptc.g instructions in ia64_global_tlb_purge(). It also adds support for the "PALO" table to get a platform view of the max number of outstanding ptc.g instructions (which may be different from the processor view found from PAL_VM_SUMMARY). PALO specification can be found at: http://www.dig64.org/home/DIG64_PALO_R1_0.pdf spinaphore implementation by Matthew Wilcox. Signed-off-by: Fenghua Yu Signed-off-by: Tony Luck commit 31a6b11fed6ceec07ec4bdfefae56b8252d450cf Author: Xiantao Zhang Date: Thu Apr 3 11:39:43 2008 -0700 [IA64] Implement smp_call_function_mask for ia64 This interface provides more flexible functionality for smp infrastructure ... e.g. KVM frequently needs to operate on a subset of cpus. Signed-off-by: Xiantao Zhang Signed-off-by: Tony Luck commit 96651896b8d9ad4244a1c3ed9691faa3e382f503 Author: Xiantao Zhang Date: Thu Apr 3 11:02:58 2008 -0700 [IA64] Add API for allocating Dynamic TR resource. Dynamic TR resource should be managed in the uniform way. Add two interfaces for kernel: ia64_itr_entry: Allocate a (pair of) TR for caller. ia64_ptr_entry: Purge a (pair of ) TR by caller. Signed-off-by: Xiantao Zhang Signed-off-by: Anthony Xu Signed-off-by: Tony Luck commit 773adff8e983cba1f5844c3be3be224ca6645f26 Author: Julia Lawall Date: Mon Mar 24 19:08:48 2008 +0100 [GFS2] test for IS_ERR rather than 0 The function gfs2_inode_lookup always returns either a valid pointer or a value made with ERR_PTR, so its result should be tested with IS_ERR, not with a test for 0. The problem was found using the following semantic match. (http://www.emn.fr/x-info/coccinelle/) // @a@ expression E, E1; statement S,S1; position p; @@ E = gfs2_inode_lookup(...) ... when != E = E1 if@p (E) S else S1 @n@ position a.p; expression E,E1; statement S,S1; @@ E = NULL ... when != E = E1 if@p (E) S else S1 @depends on !n@ expression E; statement S,S1; position a.p; @@ * if@p (E) S else S1 // Signed-off-by: Julia Lawall Signed-off-by: Steven Whitehouse commit 58e9fee13e579df44922172dbe3c9e3ba3edf7a3 Author: Benjamin Marzinski Date: Fri Mar 14 13:52:52 2008 -0500 [GFS2] Invalidate cache at correct point GFS2 wasn't invalidating its cache before it called into the lock manager with a request that could potentially drop a lock. This was leaving a window where the lock could be actually be held by another node, but the file's page cache would still appear valid, causing coherency problems. This patch moves the cache invalidation to before the lock manager call when dropping a lock. It also adds the option to the lock_dlm lock manager to not use conversion mode deadlock avoidance, which, on a conversion from shared to exclusive, could internally drop the lock, and then reacquire in. GFS2 now asks lock_dlm to not do this. Instead, GFS2 manually drops the lock and reacquires it. Signed-off-by: Benjamin Marzinski Signed-off-by: Steven Whitehouse commit f5a8cd020173c455705fc0095b7d299da6f8f87b Author: akpm@linux-foundation.org Date: Wed Mar 12 14:01:29 2008 -0700 [GFS2] fs/gfs2/recovery.c: suppress warnings fs/gfs2/recovery.c: In function 'get_log_header': fs/gfs2/recovery.c:152: warning: 'lh.lh_sequence' may be used uninitialized in this function fs/gfs2/recovery.c:152: warning: 'lh.lh_flags' may be used uninitialized in this function fs/gfs2/recovery.c:152: warning: 'lh.lh_tail' may be used uninitialized in this function fs/gfs2/recovery.c:152: warning: 'lh.lh_blkno' may be used uninitialized in this function fs/gfs2/recovery.c:152: warning: 'lh.lh_hash' may be used uninitialized in this function Cc: David Teigland Cc: Bob Peterson Signed-off-by: Andrew Morton Signed-off-by: Steven Whitehouse commit 1f466a47e8a3a3e3b527b3285c7b9c8a837fb7ec Author: Bob Peterson Date: Mon Mar 10 18:17:47 2008 -0500 [GFS2] Faster gfs2_bitfit algorithm This version of the gfs2_bitfit algorithm includes the latest suggestions from Steve Whitehouse. It is typically eight to ten times faster than the version we're using today. If there is a lot of metadata mixed in (lots of small files) the algorithm is often 15 times faster, and given the right conditions, I've seen peaks of 20 times faster. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit d82661d96993ac4efc1d54259ea85ffcd9b8bec6 Author: Steven Whitehouse Date: Mon Mar 10 15:34:50 2008 +0000 [GFS2] Streamline quota lock/check for no-quota case This patch streamlines the quota checking in the "no quota" case by making the check inline in the calling function, thus reducing the number of function calls. Eventually we might be able to remove the checks from the gfs2_quota_lock() and gfs2_quota_check() functions, but currently we can't as there are a very few places in the code which need to call these functions directly still. Signed-off-by: Steven Whitehouse Cc: Abhijith Das commit 860b25d4a913a00331d333f8e207a088c7a1b84a Author: Steven Whitehouse Date: Mon Mar 10 10:13:31 2008 +0000 [GFS2] Remove drop of module ref where not needed In an earlier patch "[GFS2] fix file_system_type leak on gfs2meta mount" we removed the code to grab a ref to the module which was not needed (since we know that the module cannot be unloaded at that time) so this patch removes the code to drop that reference. Signed-off-by: Steven Whitehouse commit 20b95bf2c4c5c28e093aa42699e67829b6cd7fd0 Author: Abhijith Das Date: Thu Mar 6 17:43:52 2008 -0600 [GFS2] gfs2_adjust_quota has broken unstuffing code This patch combines the 2 patches in bug 434736 to correct the lock ordering in the unstuffing of the quota inode in gfs2_adjust_quota and adjusting the number of revokes in gfs2_write_jdata_pagevec Signed-off-by: Abhijith Das Signed-off-by: Steven Whitehouse commit 182fe5abd8ebbb3a00c1be91f44e4783e139918c Author: Cyrill Gorcunov Date: Mon Mar 3 21:54:21 2008 +0300 [GFS2] possible null pointer dereference fixup gfs2_alloc_get may fail so we have to check it to prevent NULL pointer dereference. Signed-off-by: Cyrill Gorcunov Signed-off-by: Steven Whitehouse commit 105284970ba7d0d0ff4b97e57728eac7adf6a42a Author: Steven Whitehouse Date: Wed Feb 27 17:56:27 2008 +0000 [GFS2] Need to ensure that sector_t is 64bits for GFS2 We need to ensure that sector_t is 64bits for GFS2, so that we need to depend on LBD as well as LSF. Signed-off-by: Steven Whitehouse commit 43a33c53cc9131a537522ab9736c6e4c03ddf57a Author: Denis Cheng Date: Tue Feb 26 15:25:04 2008 +0800 [GFS2] re-support special inode a previous commit removed call to init_special_inode from inode lookuping, this cause problems as: # mknod /mnt/gfs2/dev/null c 1 3 # cat /mnt/gfs2/dev/null cat: /mnt/gfs2/dev/null: Invalid argument without special inode, GFS2 cannot support char device file, block device file, fifo pipe, and socket file, lose many important features as a common file system. this one line patch re add special inode support. Signed-off-by: Denis Cheng Signed-off-by: Steven Whitehouse commit d83225d45d2b76175279abb2a3d7ee325a09aba8 Author: Denis Cheng Date: Tue Feb 26 15:25:03 2008 +0800 [GFS2] remove gfs2_dev_iops struct inode_operations gfs2_dev_iops is always the same as gfs2_file_iops, since Jan 2006, when GFS2 merged into mainstream kernel. So one of them could be removed. Signed-off-by: Denis Cheng Signed-off-by: Steven Whitehouse commit 7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc Author: Christoph Hellwig Date: Mon Feb 25 18:58:36 2008 +0100 [GFS2] fix file_system_type leak on gfs2meta mount get_gfs2_sb does a get_fs_type without doing a put_filesystem and thus leaking a file_system_type reference everytime it's called. Just use gfs2_fs_type directly instead of doing the lookup and thus fix the problem. Signed-off-by: Christoph Hellwig Signed-off-by: Steven Whitehouse commit 9b8c81d1de49943ec69d157234b8981008c30d31 Author: Steven Whitehouse Date: Fri Feb 22 16:09:31 2008 +0000 [GFS2] Allow bmap to allocate extents We've supported mapping of extents when no block allocation is required for some time. This patch extends that to mapping of extents when an allocation has been requested. In that case we try to allocate as many blocks as are requested, but we might return fewer in case there is something preventing us from returning the complete amount (e.g. an already allocated block is in the way). Currently the only code path which can actually request multiple data blocks in a single bmap call is the page_mkwrite path and even then it only happens if there are multiple blocks per page. What this patch does do however, is merge the allocation requests for metadata (growing the metadata tree in either height or depth) with the allocation of the data blocks in the case that both are needed. This results in lower overheads even in the single block allocation case. The one thing which we can't handle here at the moment is unstuffing. I would like to be able to do that, but the problem which arises is that in order to unstuff one has to get a locked page from the page cache which results in locking problems in the (usual) case that the caller is holding the page lock on the page it wishes to map. So that case will have to be addressed in future patches. Signed-off-by: Steven Whitehouse commit 7afd88d9166a752b52517648bcbe923e05d393fc Author: Steven Whitehouse Date: Fri Feb 22 16:07:18 2008 +0000 [GFS2] Fix a page lock / glock deadlock We've previously been using a "try lock" in readpage on the basis that it would prevent deadlocks due to the inverted lock ordering (our normal lock ordering is glock first and then page lock). Unfortunately tests have shown that this isn't enough. If the glock has a demote request queued such that run_queue() in the glock code tries to do a demote when its called under readpage then it will try and write out all the dirty pages which requires locking them. This then deadlocks with the page locked by readpage. The solution is to always require two calls into readpage. The first unlocks the page, gets the glock and returns AOP_TRUNCATED_PAGE, the second does the actual readpage and unlocks the glock & page as required. Signed-off-by: Steven Whitehouse commit 60b779cfc1fa52034a996ee12a23b62d32e86000 Author: Adrian Bunk Date: Sun Feb 17 10:20:34 2008 +0200 [GFS2] proper extern for gfs2/locking/dlm/mount.c:gdlm_ops This patch adds a proper extern declaration for gdlm_ops in fs/gfs2/locking/dlm/lock_dlm.h Signed-off-by: Adrian Bunk Signed-off-by: Steven Whitehouse commit 8af4c72f7df2442230fca3ff49a97f978cfb4a04 Author: Adrian Bunk Date: Sun Feb 17 10:17:12 2008 +0200 [GFS2] gfs2/ops_file.c should #include "ops_inode.h" Every file should include the headers containing the prototypes for its global functions (in this case for gfs2_set_inode_flags()). Signed-off-by: Adrian Bunk Signed-off-by: Steven Whitehouse commit bb16b342b2e2c83fa47dbb042400db91b748ded7 Author: Marcin Slusarz Date: Wed Feb 13 00:06:10 2008 +0100 [GFS2] be*_add_cpu conversion replace all: big_endian_variable = cpu_to_beX(beX_to_cpu(big_endian_variable) + expression_in_cpu_byteorder); with: beX_add_cpu(&big_endian_variable, expression_in_cpu_byteorder); generated with semantic patch Signed-off-by: Marcin Slusarz Signed-off-by: Steven Whitehouse commit 840ca0ec70903ce8e0fba1596460876c796e4f60 Author: Steven Whitehouse Date: Tue Feb 12 15:28:21 2008 +0000 [GFS2] Fix bug where we called drop_bh incorrectly As a result of an earlier patch, drop_bh was being called in cases when it shouldn't have been. Since we never have a gh in the drop case and we always have a gh in the promote case, we can use that extra information to tell which case has been seen. Signed-off-by: Steven Whitehouse Cc: Bob Peterson commit e23159d2a7b2df5bce5f0ee8d57d3292243abf66 Author: Steven Whitehouse Date: Tue Feb 12 14:48:39 2008 +0000 [GFS2] Get inode buffer only once per block map call In the case that we needed to grow the height of the metadata tree we were looking up the inode buffer and then brelse()ing it despite the fact that it is needed later in the block map process. This patch ensures that we look up the inode's buffer once and only once during the block map process. Signed-off-by: Steven Whitehouse commit 77658aad226866fb94097236d14d41a88aaab2ec Author: Steven Whitehouse Date: Tue Feb 12 14:17:27 2008 +0000 [GFS2] Eliminate (almost) duplicate field from gfs2_inode The blocks counter is almost a duplicate of the i_blocks field in the VFS inode. The only difference is that i_blocks can be only 32bits long for 32bit arch without large single file support. Since GFS2 doesn't handle the non-large single file case (for 32 bit anyway) this adds a new config dependency on 64BIT || LSF. This has always been the case, however we've never explicitly said so before. Even if we do add support for the non-LSF case, we will still not require this field to be duplicated since we will not be able to access oversized files anyway. So the net result of all this is that we shave 8 bytes from a gfs2_inode and get our config deps correct. Signed-off-by: Steven Whitehouse commit 30cbf189cd2a1ba13ff3c8c8ee2103dbdb18578a Author: Steven Whitehouse Date: Fri Feb 8 13:18:11 2008 +0000 [GFS2] Add a function to interate over an extent This adds a function (currently the only use is during mapping of already allocated blocks, but watch this space) which iterates over a number of pointers in a block and returns the extent length. If the initial pointer is 0 (i.e. unallocated) it will return the number of unallocated blocks in the extent. If the initial pointer is allocated, then it returns the number of contiguously allocated blocks in the extent. Signed-off-by: Steven Whitehouse commit c85a665f064863cc8a2fe88e5f1eb4def5446e90 Author: Steven Whitehouse Date: Tue Feb 12 12:14:59 2008 +0000 [GFS2] The case of the missing asterisk A dereference was forgotten. This adds it back correctly. Signed-off-by: Steven Whitehouse commit b45e41d7d56dfef1ae9e02e6c59990066ba82e5c Author: Steven Whitehouse Date: Wed Feb 6 10:11:15 2008 +0000 [GFS2] Add extent allocation to block allocator Rather than having to allocate a single block at a time, this patch allows the block allocator to allocate an extent. Since there is no difference (so far as the block allocator is concerned) between data blocks and indirect blocks, it is posible to allocate a single extent and for the caller to unrevoke just the blocks required for indirect blocks. Currently the only bit of GFS2 to make use of this feature is the build height function. The intention is that gfs2_block_map will be changed to make use of this feature in future patches. Signed-off-by: Steven Whitehouse commit 1639431a3f57b43da1e15e9268a1d691ac01ba26 Author: Steven Whitehouse Date: Fri Feb 1 14:52:30 2008 +0000 [GFS2] Merge gfs2_alloc_meta and gfs2_alloc_data Thanks to the preceeding patches, the only difference between these two functions is their name. We can thus merge them and call the new function gfs2_alloc_block to reflect the fact that it can allocate either kind of block. Signed-off-by: Steven Whitehouse commit 5731be53e3d82aedd06e02574f833a57b07a08d2 Author: Steven Whitehouse Date: Fri Feb 1 13:16:55 2008 +0000 [GFS2] Update gfs2_trans_add_unrevoke to accept extents By adding an extra argument to gfs2_trans_add_unrevoke we can now specify an extent length of blocks to unrevoke. This means that we only need to make one pass through the list for each extent rather than each block. Currently the only extent length which is used is 1, but that will change in the future. Also gfs2_trans_add_unrevoke is removed from gfs2_alloc_meta since its the only difference between this and gfs2_alloc_data which is left. This will allow a future patch to merge these two functions into one (i.e. one call to allocate both data and metadata in a single extent in the future). Signed-off-by: Steven Whitehouse commit ac576cc5bed0dd7759e2b196468c7df93d6aeeee Author: Steven Whitehouse Date: Fri Feb 1 10:34:15 2008 +0000 [GFS2] Merge the rd_last_alloc_meta and rd_last_alloc_data fields We don't need to keep track of when we last allocated data and metadata separately since the only thing thats important when searching for a free block is whether its free or not, which is independent from what type of block it is. Signed-off-by: Steven Whitehouse commit ce276b06e8b81845926387e93f77bf81e14b5cc2 Author: Steven Whitehouse Date: Wed Feb 6 09:25:45 2008 +0000 [GFS2] Reduce inode size by merging fields There were three fields being used to keep track of the location of the most recently allocated block for each inode. These have been merged into a single field in order to better keep the data and metadata for an inode close on disk, and also to reduce the space required for storage. Signed-off-by: Steven Whitehouse commit 9feb7c889f2a3b088a7f6583e609bd39997c0f47 Author: Bob Peterson Date: Tue Feb 5 17:11:40 2008 -0600 [GFS2] Remove unused counters This is kind of trivial in the greater scheme of things, but this removes three counters that AFAICT are never used. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 9a0045088d888c9c539c8c626a366cb52c0fbdab Author: Steven Whitehouse Date: Fri Feb 1 09:23:44 2008 +0000 [GFS2] Shrink & rename di_depth This patch forms a pair with the previous patch which shrunk di_height. Like that patch di_depth is renamed i_depth and moved into struct gfs2_inode directly. Also the field goes from 16 bits to 8 bits since it is also limited to a max value which is rather small (17 in this case). In addition we also now validate the field against this maximum value when its read in. Signed-off-by: Steven Whitehouse commit cf45b752c9f23939e40d823b0600bf876e97b0e0 Author: Bob Peterson Date: Thu Jan 31 10:31:39 2008 -0600 [GFS2] Remove rgrp and glock version numbers This patch further reduces GFS2's memory requirements by eliminating the 64-bit version number fields in lieu of a couple bits. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit da755fdb414470d6dce3df12ad188de9131cf96c Author: Steven Whitehouse Date: Wed Jan 30 15:34:04 2008 +0000 [GFS2] Remove lm.[ch] and distribute content The functions in lm.c were just wrappers which were mostly only used in one other file. By moving the functions to the files where they are being used, they can be marked static and also this will usually result in them being inlined since they are often only used from one point in the code. A couple of really trivial functions have been inlined by hand into the function which called them as it makes the code clearer to do that. We also gain from one fewer function call in the glock lock and unlock paths. Signed-off-by: Steven Whitehouse commit ab0d756681c9502a2ab9e2e4ab3685bc0567f4ee Author: Bob Peterson Date: Tue Jan 29 13:56:15 2008 -0600 [GFS2] Eliminate gl_req_bh This patch further reduces the memory needs of GFS2 by eliminating the gl_req_bh variable from struct gfs2_glock. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 110acf38377b5b341b11644bfe98389eccec627d Author: Steven Whitehouse Date: Tue Jan 29 13:30:20 2008 +0000 [GFS2] Add consts to various bits of rgrp.c There are a couple of routines which scan bitmaps where we can mark the bitmaps const, plus a couple of call sites that can be updated too. Signed-off-by: Steven Whitehouse commit dbac6710a6dfcec7fbe7d9571c183d86a4237623 Author: Steven Whitehouse Date: Tue Jan 29 09:12:55 2008 +0000 [GFS2] Introduce array of buffers to struct metapath The reason for doing this is to allow all the block mapping code to share the same array. As a result we can remove two arguments from lookup_metapath since they are now returned via the array. We also add a function to drop all refs to buffer heads when we are done with the metapath. The build_height function shares the struct metapath, but currently still frees its own buffers, and this will change in a future patch. Signed-off-by: Steven Whitehouse commit 11707ea05e85290d10c482b87e195c198f5eb3cf Author: Steven Whitehouse Date: Mon Jan 28 15:10:29 2008 +0000 [GFS2] Move part of gfs2_block_map into a separate function This is required to enable future changes to the block mapping code. Signed-off-by: Steven Whitehouse commit 29d38cd16358dcaef4a6c50866ecee28025b481a Author: Bob Peterson Date: Mon Jan 28 22:31:39 2008 -0600 [GFS2] Get rid of gl_waiters2 This patch reduces memory by replacing the int variable gl_waiters2 by a single bit in the gl_flags. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 42d52e3818751633656fb90df1bd5cb5362fa8cc Author: Bob Peterson Date: Mon Jan 28 18:38:07 2008 -0600 [GFS2] Combine rg_flags and rd_flags This patch reduces the memory required by GFS2 by combining the rd_flags and rg_flags (in core only). Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 6bdd9be628fa5f4dd14eb89ebddc12840d684277 Author: Bob Peterson Date: Mon Jan 28 17:20:26 2008 -0600 [GFS2] Allocate gfs2_rgrpd from slab memory This patch moves the gfs2_rgrpd structure to its own slab memory. This makes it easier to control and monitor, and yields less memory fragmentation. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 3ad62e87cd38817361e165cf4ad496ab76e19e81 Author: Bob Peterson Date: Mon Jan 28 16:35:13 2008 -0600 [GFS2] Plug an unlikely leak Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 048786f1e6042022a8fb2035157a8c8c3a82a4f2 Author: Adrian Bunk Date: Tue Jan 29 00:11:34 2008 +0200 [GFS2] make gfs2_glock_hold() static gfs2_glock_hold() can now become static. Signed-off-by: Adrian Bunk Signed-off-by: Steven Whitehouse commit ef8c441cb7fece75dbbdb1f59d3f82b6a4be7474 Author: Bob Peterson Date: Mon Jan 28 14:54:16 2008 -0600 [GFS2] Only wake the reclaim daemon if we need to This patch only wakes up the glock reclaim daemon if there is actually something to be reclaimed. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 7eabb77e65c559d9c284da232b9ba5354898028a Author: Bob Peterson Date: Mon Jan 28 11:24:35 2008 -0600 [GFS2] Misc fixups This patch contains two small fixups that didn't fit elsewhere. They are: (1) get rid of temp variable in find_metapath. (2) Remove vestigial "ret" variable from gfs2_writepage_common. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit d0109bfa84d6603becac8c2e87b3716f557f2039 Author: Bob Peterson Date: Mon Jan 28 11:20:10 2008 -0600 [GFS2] Only do lo_incore_commit once This patch is performance related. When we're doing a log flush, I noticed we were calling buf_lo_incore_commit twice: once for data bufs and once for metadata bufs. Since this is the same function and does the same thing in both cases, there should be no reason to call it twice. Since we only need to call it once, we can also make it faster by removing it from the generic "lops" code and making it a stand-along static function. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb Author: Bob Peterson Date: Mon Jan 28 11:15:57 2008 -0600 [GFS2] Fix debug inode printing I noticed that the latest change to i_height got rid of the value from the inode dump. This patch adds it back. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit fe6c991c52a0dd07d4a19d392fd65048226cb1bc Author: Bob Peterson Date: Mon Jan 28 11:13:02 2008 -0600 [GFS2] Get rid of unneeded parameter in gfs2_rlist_alloc This patch removed the unnecessary parameter from function gfs2_rlist_alloc. The parameter was always passed in as 0. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit ecc30c79157103e8bd7492043ee992b763443832 Author: Steven Whitehouse Date: Mon Jan 28 10:37:35 2008 +0000 [GFS2] Streamline indirect pointer tree height calculation This patch improves the calculation of the tree height in order to reduce the number of operations which are carried out on each call to gfs2_block_map. In the common case, we now make a single comparison, rather than calculating the required tree height from scratch each time. Also in the case that the tree does need some extra height, we start from the current height rather from zero when we work out what the new height ought to be. In addition the di_height field is moved into the inode proper and reduced in size to a u8 since the value must be between 0 and GFS2_MAX_META_HEIGHT (10). Signed-off-by: Steven Whitehouse commit 941e6d7d09aaf455c0d7ad383f7f5ae67e4ccf16 Author: Steven Whitehouse Date: Mon Jan 28 08:47:38 2008 +0000 [GFS2] Speed up gfs2_write_alloc_required, deprecate gfs2_extent_map This patch removes the call to gfs2_extent_map from gfs2_write_alloc_required, instead we call gfs2_block_map directly. This results in fewer overall calls to gfs2_block_map in the multi-block case. Also, gfs2_extent_map is marked as deprecated so that people know that its going away as soon as all the callers have been converted. Signed-off-by: Steven Whitehouse commit 4cd8dc83581906948ff4cfa65007e64496b5a7c8 Author: Shaohua Li Date: Thu Feb 28 16:09:42 2008 +0800 [IA64] remove duplicate code for register access We have duplicate code to access registers (access_uarea and regset way). They just have different layout, so remove duplicate code. Signed-off-by: Shaohua Li Signed-off-by: Tony Luck commit 6cb53d7a6f40858181facde0f52587731d2e621f Author: Shaohua Li Date: Thu Feb 28 16:09:38 2008 +0800 [IA64] use CORE_DUMP_USE_REGSET After we have regset support, we can use CORE_DUMP_USE_REGSET. Signed-off-by: Shaohua Li Signed-off-by: Tony Luck commit 75529219373e53042fc46c86d991125e616f42dd Author: Shaohua Li Date: Thu Feb 28 16:09:33 2008 +0800 [IA64] regset: 32-bit support This is the 32-bit regset implementation under IA64. Basically register read/write, which is derived from current ptrace register read/write. This version added TLS support. Signed-off-by: Shaohua Li Signed-off-by: Tony Luck commit c70f8f68676866d778564de337bec6b8734c3850 Author: Shaohua Li Date: Thu Feb 28 16:47:50 2008 +0800 [IA64] regset: 64-bit support This is the 64-bit regset implementation under IA64. Basically register read/write, which is derived from current ptrace register read/write. Signed-off-by: Shaohua Li Signed-off-by: Tony Luck commit 4fe01c68eba53c3f324807faff71535218c41e9c Author: Hidetoshi Seto Date: Tue Jan 29 14:39:33 2008 +0900 [IA64] cleanup and improve fsys_gettimeofday This patch does: - Remove outdated comments (which someday I marked with "?"). - Reassemble instructions to fit them in fewer bundles. - If McKinley Errata 9 workaround is not needed, the workaround bundles will be patched out with NOPs. However it also not needed to have a totally NOP bundle (nop * 3) before branch. As a result, this makes the code path 3 (or 2) bundles shorter (and remove 1 unnecessary stop bit). It seems to be 1% faster. (10sec loop test, with nojitter @ Madison 1.5GHz x 4) Before: CPU 0: 0.14 (usecs) (0 errors / 69598875 iterations) CPU 1: 0.14 (usecs) (0 errors / 69630721 iterations) CPU 2: 0.14 (usecs) (0 errors / 69607850 iterations) CPU 3: 0.14 (usecs) (0 errors / 69619832 iterations) After: CPU 0: 0.14 (usecs) (0 errors / 70257728 iterations) CPU 1: 0.14 (usecs) (0 errors / 70309498 iterations) CPU 2: 0.14 (usecs) (0 errors / 70280639 iterations) CPU 3: 0.14 (usecs) (0 errors / 70260682 iterations) Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck commit 15732a1cb5f9078d460a254449eb59391e531ffc Author: Harvey Harrison Date: Wed Mar 5 14:38:22 2008 -0600 jfs: replace __inline with inline Signed-off-by: Harvey Harrison Signed-off-by: Dave Kleikamp commit b64f34cdfe5bef9dfed1304c513220b0f2862eca Author: Hidetoshi Seto Date: Tue Jan 29 14:27:30 2008 +0900 [IA64] VIRT_CPU_ACCOUNTING (accurate cpu time accounting) This patch implements VIRT_CPU_ACCOUNTING for ia64, which enable us to use more accurate cpu time accounting. The VIRT_CPU_ACCOUNTING is an item of kernel config, which s390 and powerpc arch have. By turning this config on, these archs change the mechanism of cpu time accounting from tick-sampling based one to state-transition based one. The state-transition based accounting is done by checking time (cycle counter in processor) at every state-transition point, such as entrance/exit of kernel, interrupt, softirq etc. The difference between point to point is the actual time consumed during in the state. There is no doubt about that this value is more accurate than that of tick-sampling based accounting. Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck commit 891456227881da9c565c455010380a40d385a478 Author: Marcin Slusarz Date: Wed Feb 13 15:34:20 2008 -0600 jfs: le*_add_cpu conversion replace all: little_endian_variable = cpu_to_leX(leX_to_cpu(little_endian_variable) + expression_in_cpu_byteorder); with: leX_add_cpu(&little_endian_variable, expression_in_cpu_byteorder); generated with semantic patch Signed-off-by: Marcin Slusarz Signed-off-by: Dave Kleikamp Cc: jfs-discussion@lists.sourceforge.net