[ { "PEBS": "1", "EventCode": "0xF7", "Counter": "0,1,2,3", "UMask": "0x1", "EventName": "FP_ASSIST.ALL", "SampleAfterValue": "20000", "BriefDescription": "X87 Floating point assists (Precise Event)" }, { "PEBS": "1", "EventCode": "0xF7", "Counter": "0,1,2,3", "UMask": "0x4", "EventName": "FP_ASSIST.INPUT", "SampleAfterValue": "20000", "BriefDescription": "X87 Floating poiint assists for invalid input value (Precise Event)" }, { "PEBS": "1", "EventCode": "0xF7", "Counter": "0,1,2,3", "UMask": "0x2", "EventName": "FP_ASSIST.OUTPUT", "SampleAfterValue": "20000", "BriefDescription": "X87 Floating point assists for invalid output value (Precise Event)" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x2", "EventName": "FP_COMP_OPS_EXE.MMX", "SampleAfterValue": "2000000", "BriefDescription": "MMX Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x80", "EventName": "FP_COMP_OPS_EXE.SSE_DOUBLE_PRECISION", "SampleAfterValue": "2000000", "BriefDescription": "SSE* FP double precision Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x4", "EventName": "FP_COMP_OPS_EXE.SSE_FP", "SampleAfterValue": "2000000", "BriefDescription": "SSE and SSE2 FP Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x10", "EventName": "FP_COMP_OPS_EXE.SSE_FP_PACKED", "SampleAfterValue": "2000000", "BriefDescription": "SSE FP packed Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x20", "EventName": "FP_COMP_OPS_EXE.SSE_FP_SCALAR", "SampleAfterValue": "2000000", "BriefDescription": "SSE FP scalar Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x40", "EventName": "FP_COMP_OPS_EXE.SSE_SINGLE_PRECISION", "SampleAfterValue": "2000000", "BriefDescription": "SSE* FP single precision Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x8", "EventName": "FP_COMP_OPS_EXE.SSE2_INTEGER", "SampleAfterValue": "2000000", "BriefDescription": "SSE2 integer Uops" }, { "EventCode": "0x10", "Counter": "0,1,2,3", "UMask": "0x1", "EventName": "FP_COMP_OPS_EXE.X87", "SampleAfterValue": "2000000", "BriefDescription": "Computational floating-point operations executed" }, { "EventCode": "0xCC", "Counter": "0,1,2,3", "UMask": "0x3", "EventName": "FP_MMX_TRANS.ANY", "SampleAfterValue": "2000000", "BriefDescription": "All Floating Point to and from MMX transitions" }, { "EventCode": "0xCC", "Counter": "0,1,2,3", "UMask": "0x1", "EventName": "FP_MMX_TRANS.TO_FP", "SampleAfterValue": "2000000", "BriefDescription": "Transitions from MMX to Floating Point instructions" }, { "EventCode": "0xCC", "Counter": "0,1,2,3", "UMask": "0x2", "EventName": "FP_MMX_TRANS.TO_MMX", "SampleAfterValue": "2000000", "BriefDescription": "Transitions from Floating Point to MMX instructions" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x4", "EventName": "SIMD_INT_128.PACK", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer pack operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x20", "EventName": "SIMD_INT_128.PACKED_ARITH", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer arithmetic operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x10", "EventName": "SIMD_INT_128.PACKED_LOGICAL", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer logical operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x1", "EventName": "SIMD_INT_128.PACKED_MPY", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer multiply operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x2", "EventName": "SIMD_INT_128.PACKED_SHIFT", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer shift operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x40", "EventName": "SIMD_INT_128.SHUFFLE_MOVE", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer shuffle/move operations" }, { "EventCode": "0x12", "Counter": "0,1,2,3", "UMask": "0x8", "EventName": "SIMD_INT_128.UNPACK", "SampleAfterValue": "200000", "BriefDescription": "128 bit SIMD integer unpack operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x4", "EventName": "SIMD_INT_64.PACK", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit pack operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x20", "EventName": "SIMD_INT_64.PACKED_ARITH", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit arithmetic operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x10", "EventName": "SIMD_INT_64.PACKED_LOGICAL", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit logical operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x1", "EventName": "SIMD_INT_64.PACKED_MPY", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit packed multiply operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x2", "EventName": "SIMD_INT_64.PACKED_SHIFT", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit shift operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x40", "EventName": "SIMD_INT_64.SHUFFLE_MOVE", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit shuffle/move operations" }, { "EventCode": "0xFD", "Counter": "0,1,2,3", "UMask": "0x8", "EventName": "SIMD_INT_64.UNPACK", "SampleAfterValue": "200000", "BriefDescription": "SIMD integer 64 bit unpack operations" } ]_del() and attempted to dereference > a m_hash.pprev that had been poisioned by another thread. Al Viro observed that the simple fix is to switch from using the namespace_sem to the mount_lock to protect the mountpoint hash table. I have taken Al's suggested patch moved put_mountpoint in pivot_root (instead of taking mount_lock an additional time), and have replaced new_mountpoint with get_mountpoint a function that does the hash table lookup and addition under the mount_lock. The introduction of get_mounptoint ensures that only the mount_lock is needed to manipulate the mountpoint hashtable. d_set_mounted is modified to only set DCACHE_MOUNTED if it is not already set. This allows get_mountpoint to use the setting of DCACHE_MOUNTED to ensure adding a struct mountpoint for a dentry happens exactly once. Cc: stable@vger.kernel.org Fixes: ce07d891a089 ("mnt: Honor MNT_LOCKED when detaching mounts") Reported-by: Krister Johansen <kjlx@templeofstupid.com> Suggested-by: Al Viro <viro@ZenIV.linux.org.uk> Acked-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'sound/firewire/oxfw')