From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Jerome Glisse <jglisse@redhat.com>,
Dave Airlie <airlied@linux.ie>
Subject: [048/145] drm/radeon: r6xx/r7xx possible security issue, system ram access
Date: Fri, 12 Mar 2010 16:26:21 -0800 [thread overview]
Message-ID: <20100313002709.425536237@kvm.kroah.org> (raw)
In-Reply-To: <20100313002816.GA18903@kroah.com>
2.6.32-stable review patch. If anyone has any objections, please let me know.
----------------
From: Jerome Glisse <jglisse@redhat.com>
commit c8c15ff1e90bfc4a2db1ba77a01b3b2783e723fc upstream
This patch workaround a possible security issue which can allow
user to abuse drm on r6xx/r7xx hw to access any system ram memory.
This patch doesn't break userspace, it detect "valid" old use of
CB_COLOR[0-7]_FRAG & CB_COLOR[0-7]_TILE registers and overwritte
the address these registers are pointing to with the one of the
last color buffer. This workaround will work for old mesa &
xf86-video-ati and any old user which did use similar register
programming pattern as those (we expect that there is no others
user of those ioctl except possibly a malicious one). This patch
add a warning if it detects such usage, warning encourage people
to update their mesa & xf86-video-ati. New userspace will submit
proper relocation.
Fix for xf86-video-ati / mesa (this kernel patch is enough to
prevent abuse, fix for userspace are to set proper cs stream and
avoid kernel warning) :
http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=95d63e408cc88b6934bec84a0b1ef94dfe8bee7b
http://cgit.freedesktop.org/mesa/mesa/commit/?id=46dc6fd3ed5ef96cda53641a97bc68c3bc104a9f
Abusing this register to perform system ram memory is not easy,
here is outline on how it could be achieve. First attacker must
have access to the drm device and be able to submit command stream
throught cs ioctl. Then attacker must build a proper command stream
for r6xx/r7xx hw which will abuse the FRAG or TILE buffer to
overwrite the GPU GART which is in VRAM. To achieve so attacker
as to setup CB_COLOR[0-7]_FRAG or CB_COLOR[0-7]_TILE to point
to the GPU GART, then it has to find a way to write predictable
value into those buffer (with little cleverness i believe this
can be done but this is an hard task). Once attacker have such
program it can overwritte GPU GART to program GPU gart to point
anywhere in system memory. It then can reusse same method as he
used to reprogram GART to overwritte the system ram through the
GART mapping. In the process the attacker has to be carefull to
not overwritte any sensitive area of the GART table, like ring
or IB gart entry as it will more then likely lead to GPU lockup.
Bottom line is that i think it's very hard to use this flaw
to get system ram access but in theory one can achieve so.
Side note: I am not aware of anyone ever using the GPU as an
attack vector, nevertheless we take great care in the opensource
driver to try to detect and forbid malicious use of GPU. I don't
think the closed source driver are as cautious as we are.
[bwh: Adjusted context for 2.6.32]
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/gpu/drm/radeon/r600_cs.c | 83 +++++++++++++++++++++++++++++++++++++
drivers/gpu/drm/radeon/r600d.h | 26 +++++++++++
drivers/gpu/drm/radeon/radeon.h | 1
drivers/gpu/drm/radeon/radeon_cs.c | 1
4 files changed, 111 insertions(+)
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -36,6 +36,10 @@ static int r600_cs_packet_next_reloc_nom
typedef int (*next_reloc_t)(struct radeon_cs_parser*, struct radeon_cs_reloc**);
static next_reloc_t r600_cs_packet_next_reloc = &r600_cs_packet_next_reloc_mm;
+struct r600_cs_track {
+ u32 cb_color0_base_last;
+};
+
/**
* r600_cs_packet_parse() - parse cp packet and point ib index to next packet
* @parser: parser structure holding parsing context.
@@ -177,6 +181,28 @@ static int r600_cs_packet_next_reloc_nom
}
/**
+ * r600_cs_packet_next_is_pkt3_nop() - test if next packet is packet3 nop for reloc
+ * @parser: parser structure holding parsing context.
+ *
+ * Check next packet is relocation packet3, do bo validation and compute
+ * GPU offset using the provided start.
+ **/
+static inline int r600_cs_packet_next_is_pkt3_nop(struct radeon_cs_parser *p)
+{
+ struct radeon_cs_packet p3reloc;
+ int r;
+
+ r = r600_cs_packet_parse(p, &p3reloc, p->idx);
+ if (r) {
+ return 0;
+ }
+ if (p3reloc.type != PACKET_TYPE3 || p3reloc.opcode != PACKET3_NOP) {
+ return 0;
+ }
+ return 1;
+}
+
+/**
* r600_cs_packet_next_vline() - parse userspace VLINE packet
* @parser: parser structure holding parsing context.
*
@@ -337,6 +363,7 @@ static int r600_packet3_check(struct rad
struct radeon_cs_packet *pkt)
{
struct radeon_cs_reloc *reloc;
+ struct r600_cs_track *track;
volatile u32 *ib;
unsigned idx;
unsigned i;
@@ -344,6 +371,7 @@ static int r600_packet3_check(struct rad
int r;
u32 idx_value;
+ track = (struct r600_cs_track *)p->track;
ib = p->ib->ptr;
idx = pkt->idx + 1;
idx_value = radeon_get_ib_value(p, idx);
@@ -503,9 +531,60 @@ static int r600_packet3_check(struct rad
for (i = 0; i < pkt->count; i++) {
reg = start_reg + (4 * i);
switch (reg) {
+ /* This register were added late, there is userspace
+ * which does provide relocation for those but set
+ * 0 offset. In order to avoid breaking old userspace
+ * we detect this and set address to point to last
+ * CB_COLOR0_BASE, note that if userspace doesn't set
+ * CB_COLOR0_BASE before this register we will report
+ * error. Old userspace always set CB_COLOR0_BASE
+ * before any of this.
+ */
+ case R_0280E0_CB_COLOR0_FRAG:
+ case R_0280E4_CB_COLOR1_FRAG:
+ case R_0280E8_CB_COLOR2_FRAG:
+ case R_0280EC_CB_COLOR3_FRAG:
+ case R_0280F0_CB_COLOR4_FRAG:
+ case R_0280F4_CB_COLOR5_FRAG:
+ case R_0280F8_CB_COLOR6_FRAG:
+ case R_0280FC_CB_COLOR7_FRAG:
+ case R_0280C0_CB_COLOR0_TILE:
+ case R_0280C4_CB_COLOR1_TILE:
+ case R_0280C8_CB_COLOR2_TILE:
+ case R_0280CC_CB_COLOR3_TILE:
+ case R_0280D0_CB_COLOR4_TILE:
+ case R_0280D4_CB_COLOR5_TILE:
+ case R_0280D8_CB_COLOR6_TILE:
+ case R_0280DC_CB_COLOR7_TILE:
+ if (!r600_cs_packet_next_is_pkt3_nop(p)) {
+ if (!track->cb_color0_base_last) {
+ dev_err(p->dev, "Broken old userspace ? no cb_color0_base supplied before trying to write 0x%08X\n", reg);
+ return -EINVAL;
+ }
+ ib[idx+1+i] = track->cb_color0_base_last;
+ printk_once(KERN_WARNING "You have old & broken userspace "
+ "please consider updating mesa & xf86-video-ati\n");
+ } else {
+ r = r600_cs_packet_next_reloc(p, &reloc);
+ if (r) {
+ dev_err(p->dev, "bad SET_CONTEXT_REG 0x%04X\n", reg);
+ return -EINVAL;
+ }
+ ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
+ }
+ break;
case DB_DEPTH_BASE:
case DB_HTILE_DATA_BASE:
case CB_COLOR0_BASE:
+ r = r600_cs_packet_next_reloc(p, &reloc);
+ if (r) {
+ DRM_ERROR("bad SET_CONTEXT_REG "
+ "0x%04X\n", reg);
+ return -EINVAL;
+ }
+ ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
+ track->cb_color0_base_last = ib[idx+1+i];
+ break;
case CB_COLOR1_BASE:
case CB_COLOR2_BASE:
case CB_COLOR3_BASE:
@@ -678,8 +757,11 @@ static int r600_packet3_check(struct rad
int r600_cs_parse(struct radeon_cs_parser *p)
{
struct radeon_cs_packet pkt;
+ struct r600_cs_track *track;
int r;
+ track = kzalloc(sizeof(*track), GFP_KERNEL);
+ p->track = track;
do {
r = r600_cs_packet_parse(p, &pkt, p->idx);
if (r) {
@@ -757,6 +839,7 @@ int r600_cs_legacy(struct drm_device *de
/* initialize parser */
memset(&parser, 0, sizeof(struct radeon_cs_parser));
parser.filp = filp;
+ parser.dev = &dev->pdev->dev;
parser.rdev = NULL;
parser.family = family;
parser.ib = &fake_ib;
--- a/drivers/gpu/drm/radeon/r600d.h
+++ b/drivers/gpu/drm/radeon/r600d.h
@@ -674,4 +674,30 @@
#define S_000E60_SOFT_RESET_TSC(x) (((x) & 1) << 16)
#define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17)
+#define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480
+
+#define R_0280E0_CB_COLOR0_FRAG 0x0280E0
+#define S_0280E0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0)
+#define G_0280E0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF)
+#define C_0280E0_BASE_256B 0x00000000
+#define R_0280E4_CB_COLOR1_FRAG 0x0280E4
+#define R_0280E8_CB_COLOR2_FRAG 0x0280E8
+#define R_0280EC_CB_COLOR3_FRAG 0x0280EC
+#define R_0280F0_CB_COLOR4_FRAG 0x0280F0
+#define R_0280F4_CB_COLOR5_FRAG 0x0280F4
+#define R_0280F8_CB_COLOR6_FRAG 0x0280F8
+#define R_0280FC_CB_COLOR7_FRAG 0x0280FC
+#define R_0280C0_CB_COLOR0_TILE 0x0280C0
+#define S_0280C0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0)
+#define G_0280C0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF)
+#define C_0280C0_BASE_256B 0x00000000
+#define R_0280C4_CB_COLOR1_TILE 0x0280C4
+#define R_0280C8_CB_COLOR2_TILE 0x0280C8
+#define R_0280CC_CB_COLOR3_TILE 0x0280CC
+#define R_0280D0_CB_COLOR4_TILE 0x0280D0
+#define R_0280D4_CB_COLOR5_TILE 0x0280D4
+#define R_0280D8_CB_COLOR6_TILE 0x0280D8
+#define R_0280DC_CB_COLOR7_TILE 0x0280DC
+
+
#endif
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -448,6 +448,7 @@ struct radeon_cs_chunk {
};
struct radeon_cs_parser {
+ struct device *dev;
struct radeon_device *rdev;
struct drm_file *filp;
/* chunks */
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -230,6 +230,7 @@ int radeon_cs_ioctl(struct drm_device *d
memset(&parser, 0, sizeof(struct radeon_cs_parser));
parser.filp = filp;
parser.rdev = rdev;
+ parser.dev = rdev->dev;
r = radeon_cs_parser_init(&parser, data);
if (r) {
DRM_ERROR("Failed to initialize parser !\n");
next prev parent reply other threads:[~2010-03-13 0:56 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-13 0:28 [000/145] 2.6.32.10-stable review Greg KH
2010-03-13 0:25 ` [001/145] fix LOOKUP_FOLLOW on automount "symlinks" Greg KH
2010-03-13 0:25 ` [002/145] ARM: 5944/1: scsi: fix timer setup in fas216.c Greg KH
2010-03-13 0:25 ` [003/145] V4L/DVB: dvb: l64781.ko broken with gcc 4.5 Greg KH
2010-03-13 0:25 ` [004/145] [WATCHDOG] bfin: fix max timeout calculation Greg KH
2010-03-13 0:25 ` [005/145] V4L/DVB: Video : pwc : Fix regression in pwc_set_shutter_speed caused by bad constant => sizeof conversion Greg KH
2010-03-13 0:25 ` [006/145] V4L/DVB: bttv: Move I2C IR initialization Greg KH
2010-03-13 0:25 ` [007/145] V4L/DVB: cxusb: Select all required frontend and tuner modules Greg KH
2010-03-13 3:48 ` Ben Hutchings
2010-03-15 15:48 ` Greg KH
2010-03-13 0:25 ` [008/145] memcg: fix oom killing a child process in an other cgroup Greg KH
2010-03-13 0:25 ` [009/145] fs/exec.c: fix initial stack reservation Greg KH
2010-03-13 0:25 ` [010/145] iwlwifi: error checking for number of tfds in queue Greg KH
2010-03-13 0:25 ` [011/145] iwlwifi: set HT flags after channel in rxon Greg KH
2010-03-13 0:25 ` [012/145] iwlwifi: sanity check before counting number of tfds can be free Greg KH
2010-03-13 0:25 ` [013/145] netlabel: fix export of SELinux categories > 127 Greg KH
2010-03-13 0:25 ` [014/145] ahci: disable FPDMA auto-activate optimization on NVIDIA AHCI Greg KH
2010-03-13 0:25 ` [015/145] PCI hotplug: ibmphp: read the length of ebda and map entire ebda region Greg KH
2010-03-13 0:25 ` [016/145] PCI hotplug: check ioremap() return value in ibmphp_ebda.c Greg KH
2010-03-13 0:25 ` [017/145] ACPI: remove Asus P2B-DS from acpi=ht blacklist Greg KH
2010-03-13 0:25 ` [018/145] ACPI: fix "acpi=ht" boot option Greg KH
2010-03-13 0:25 ` [019/145] thinkpad-acpi: wrong thermal attribute_group removed in thermal_exit() Greg KH
2010-03-13 0:25 ` [020/145] ACPI, i915: blacklist Clevo M5x0N bad_lid state Greg KH
2010-03-13 0:25 ` [021/145] ACPI: Be in TS_POLLING state during mwait based C-state entry Greg KH
2010-03-13 0:25 ` [022/145] [SCSI] mpt2sas: Delete volume before HBA detach Greg KH
2010-03-13 0:25 ` [023/145] slab: initialize unused alien cache entry as NULL at alloc_alien_cache() Greg KH
2010-03-13 0:25 ` [024/145] mac80211: quit addba_resp_timer if Tx BA session is torn down Greg KH
2010-03-13 0:25 ` [025/145] V4L/DVB (13991): gspca_mr973010a: Fix cif type 1 cameras not streaming on UHCI controllers Greg KH
2010-03-13 0:25 ` [026/145] vfs: take f_lock on modifying f_mode after open time Greg KH
2010-03-13 0:26 ` [027/145] readahead: introduce FMODE_RANDOM for POSIX_FADV_RANDOM Greg KH
2010-03-13 0:26 ` [028/145] HID: remove TENX iBuddy from blacklist Greg KH
2010-03-13 0:26 ` [029/145] HID: add multi-input quirk for NextWindow Touchscreen Greg KH
2010-03-13 0:26 ` [030/145] HID: usbhid: introduce timeout for stuck ctrl/out URBs Greg KH
2010-03-13 0:26 ` [031/145] airo: fix setting zero length WEP key Greg KH
2010-03-13 0:26 ` [032/145] idr: fix a critical misallocation bug, take#2 Greg KH
2010-03-13 0:26 ` [033/145] Switch proc/self to nd_set_link() Greg KH
2010-03-13 0:26 ` [034/145] sparc: Align clone and signal stacks to 16 bytes Greg KH
2010-03-13 0:26 ` [035/145] sparc32: Fix page_to_phys() Greg KH
2010-03-13 0:26 ` [036/145] sparc32: Fix struct stat uid/gid types Greg KH
2010-03-13 0:26 ` [037/145] sparc: leds_resource.end assigned to itself in clock_board_probe() Greg KH
2010-03-13 0:26 ` [038/145] sparc64: Fix sun4u execute bit check in TSB I-TLB load Greg KH
2010-03-13 0:26 ` [039/145] net: Fix sysctl restarts Greg KH
2010-03-13 0:26 ` [040/145] net-sysfs: Use rtnl_trylock in wireless sysfs methods Greg KH
2010-03-13 0:26 ` [041/145] net: bug fix for vlan + gro issue Greg KH
2010-03-13 0:26 ` [042/145] inet: Remove bogus IGMPv3 report handling Greg KH
2010-03-13 0:26 ` [043/145] ipv6: conntrack: Add member of user to nf_ct_frag6_queue structure Greg KH
2010-03-13 0:26 ` [044/145] drivers/net: ks8851_mll ethernet network driver Greg KH
2010-03-13 0:26 ` [045/145] sky2: fix transmit DMA map leakage Greg KH
2010-03-13 0:26 ` [046/145] drm/radeon/kms: Forbid creation of framebuffer with no valid GEM object Greg KH
2010-03-13 0:26 ` [047/145] drm/radeon/kms: r600/r700 dont test ib if ib initialization fails Greg KH
2010-03-13 0:26 ` Greg KH [this message]
2010-03-13 0:26 ` [049/145] SCSI: qla2xxx: Obtain proper host structure during response-queue processing Greg KH
2010-03-13 0:26 ` [050/145] rtc-core: fix memory leak Greg KH
2010-03-13 0:26 ` [051/145] drm/i915: fix get_core_clock_speed for G33 class desktop chips Greg KH
2010-03-13 0:26 ` [052/145] drm/i915: disable TV hotplug status check Greg KH
2010-03-13 0:26 ` [053/145] offb: Add support for framebuffer handoff to offb Greg KH
2010-03-13 0:26 ` [054/145] tpm_tis: TPM_STS_DATA_EXPECT workaround Greg KH
2010-03-13 0:26 ` [055/145] rndis_wlan: handle NL80211_AUTHTYPE_AUTOMATIC Greg KH
2010-03-13 0:26 ` [056/145] rndis_wlan: fix buffer overflow in rndis_query_oid Greg KH
2010-03-13 0:26 ` [057/145] rndis_wlan: disable stall workaround Greg KH
2010-03-13 0:26 ` [058/145] net/via-rhine: Fix scheduling while atomic bugs Greg KH
2010-03-13 0:26 ` [059/145] clocksource: Fix up a registration/IRQ race in the sh drivers Greg KH
2010-03-13 0:26 ` [060/145] SCSI: qla1280: Drop host_lock while requesting firmware Greg KH
2010-03-13 0:26 ` [061/145] Staging: hv: add a pci device table Greg KH
2010-03-13 0:26 ` [062/145] Staging: hv: match on DMI values to know if we should run Greg KH
2010-03-13 0:26 ` [063/145] Staging: mimio: remove the mimio driver Greg KH
2010-03-13 0:26 ` [064/145] dvb-core: Fix DoS bug in ULE decapsulation code that can be triggered by an invalid Payload Pointer Greg KH
2010-03-13 0:26 ` [065/145] V4L/DVB (13148): uvcvideo: Handle V4L2_CTRL_TYPE_BUTTON control type in VIDIOC_QUERYCTRL Greg KH
2010-03-13 0:26 ` [066/145] PM / Hibernate: Fix preallocating of memory Greg KH
2010-03-13 0:26 ` [067/145] macintosh/therm_adt746x: Fix sysfs attributes lifetime Greg KH
2010-03-13 0:26 ` [068/145] macintosh/hwmon/ams: Fix device removal sequence Greg KH
2010-03-13 0:26 ` [069/145] oprofile/x86: fix perfctr nmi reservation for mulitplexing Greg KH
2010-03-13 0:26 ` [070/145] oprofile: remove tracing build dependency Greg KH
2010-03-13 0:26 ` [071/145] oprofile/x86: remove node check in AMD IBS initialization Greg KH
2010-03-13 0:26 ` [072/145] oprofile/x86: use kzalloc() instead of kmalloc() Greg KH
2010-03-13 0:26 ` [073/145] oprofile/x86: fix msr access to reserved counters Greg KH
2010-03-13 0:26 ` [074/145] ALSA: hda: Use 3stack quirk for Toshiba Satellite L40-10Q Greg KH
2010-03-13 0:26 ` [075/145] ALSA: via82xx: add quirk for D1289 motherboard Greg KH
2010-03-13 0:26 ` [076/145] ALSA: pcm core - fix fifo_size channels interval check Greg KH
2010-03-13 0:26 ` [077/145] ALSA: USB MIDI support for Access Music VirusTI Greg KH
2010-03-13 0:26 ` [078/145] ALSA: hda: Use LPIB for Dell Latitude 131L Greg KH
2010-03-13 0:26 ` [079/145] ALSA: hda: Use LPIB for a Biostar Microtech board Greg KH
2010-03-13 0:26 ` [080/145] ALSA: hda - Add a position_fix quirk for MSI Wind U115 Greg KH
2010-03-13 0:26 ` [081/145] ALSA: hda - Add position_fix quirk for HP dv3 Greg KH
2010-03-13 0:26 ` [082/145] ALSA: hda-intel: Add position_fix quirk for ASUS M2V-MX SE Greg KH
2010-03-13 0:26 ` [083/145] ASoC: fix ak4104 register array access Greg KH
2010-03-13 0:26 ` [084/145] driver-core: fix race condition in get_device_parent() Greg KH
2010-03-13 0:26 ` [085/145] Driver-Core: devtmpfs - reset inode permissions before unlinking Greg KH
2010-03-13 0:26 ` [086/145] tty: Fix the ldisc hangup race Greg KH
2010-03-13 0:27 ` [087/145] serial: imx: fix NULL dereference Oops when pdata == NULL Greg KH
2010-03-13 0:27 ` [088/145] USB: serial: sierra driver indat_callback fix Greg KH
2010-03-13 0:27 ` [089/145] USB: SIS USB2VGA DRIVER: support KAIRENs USB VGA adaptor USB20SVGA-MB-PLUS Greg KH
2010-03-13 0:27 ` [090/145] USB: fix I2C API usage in ohci-pnx4008 Greg KH
2010-03-13 0:27 ` [091/145] p54usb: Add the USB ID for Belkin (Accton) FD7050E ver 1010ec Greg KH
2010-03-13 0:27 ` [092/145] p54pci: handle dma mapping errors Greg KH
2010-03-13 0:27 ` [093/145] gpiolib: Actually set output state in wm831x_gpio_direction_output() Greg KH
2010-03-13 0:27 ` [094/145] hwmon: (tmp421) Fix temperature conversions Greg KH
2010-03-13 0:27 ` [095/145] hwmon: (tmp421) Restore missing inputs Greg KH
2010-03-13 0:27 ` [096/145] pata_hpt3x2n: always stretch UltraDMA timing Greg KH
2010-03-13 0:27 ` [097/145] scm: Only support SCM_RIGHTS on unix domain sockets Greg KH
2010-03-13 0:27 ` [098/145] ath9k: fix beacon timer restart after a card reset Greg KH
2010-03-13 0:27 ` [099/145] ath9k: fix rate control fallback rate selection Greg KH
2010-03-13 0:27 ` [100/145] ath9k: disable RIFS search for AR91xx based chips Greg KH
2010-03-13 0:27 ` [101/145] ath5k: use correct packet type when transmitting Greg KH
2010-03-13 0:27 ` [102/145] b43/b43legacy: Wake queues in wireless_core_start Greg KH
2010-03-13 0:27 ` [103/145] netfilter: xt_recent: fix buffer overflow Greg KH
2010-03-13 0:27 ` [104/145] netfilter: xt_recent: fix false match Greg KH
2010-03-13 6:24 ` [Stable-review] " Willy Tarreau
2010-03-13 14:40 ` Tim Gardner
2010-03-13 17:01 ` Willy Tarreau
2010-03-13 0:27 ` [105/145] sunxvr500: Additional PCI id for sunxvr500 driver Greg KH
2010-03-13 0:27 ` [106/145] thinkpad-acpi: fix poll thread auto-start Greg KH
2010-03-13 0:27 ` [107/145] thinkpad-acpi: R52 brightness_mode has been confirmed Greg KH
2010-03-13 0:27 ` [108/145] thinkpad-acpi: document HKEY event 3006 Greg KH
2010-03-13 0:27 ` [109/145] thinkpad-acpi: make driver events work in NVRAM poll mode Greg KH
2010-03-13 0:27 ` [110/145] thinkpad-acpi: fix bluetooth/wwan resume Greg KH
2010-03-13 0:27 ` [111/145] ocfs2: Only bug out in direct io write for reflinked extent Greg KH
2010-03-13 0:27 ` [112/145] x86, ia32_aout: do not kill argument mapping Greg KH
2010-03-13 0:27 ` [113/145] x86: Add iMac9,1 to pci_reboot_dmi_table Greg KH
2010-03-13 0:27 ` [114/145] x86, xen: Disable highmem PTE allocation even when CONFIG_HIGHPTE=y Greg KH
2010-03-13 0:27 ` [115/145] x86: Avoid race condition in pci_enable_msix() Greg KH
2010-03-13 0:27 ` [116/145] x86: Fix SCI on IOAPIC != 0 Greg KH
2010-03-13 0:27 ` [117/145] USB: xhci: Fix finding extended capabilities registers Greg KH
2010-03-13 0:27 ` [118/145] USB: fix the idProduct value for USB-3.0 root hubs Greg KH
2010-03-13 0:27 ` [119/145] USB: fix crash in uhci_scan_schedule Greg KH
2010-03-13 0:27 ` [120/145] USB: remove debugging message for uevent constructions Greg KH
2010-03-13 0:27 ` [121/145] USB: Move hcd free_dev call into usb_disconnect to fix oops Greg KH
2010-03-13 0:27 ` [122/145] USB: ftdi_sio: isolate all device IDs to new ftdi_sio_ids.h header Greg KH
2010-03-13 0:27 ` [123/145] USB: ftdi_sio: sort PID/VID entries in " Greg KH
2010-03-13 0:27 ` [124/145] USB: ftdi_sio: new device id for papouch AD4USB Greg KH
2010-03-13 0:27 ` [125/145] USB: ftdi_sio: add device IDs (several ELV, one Mindstorms NXT) Greg KH
2010-03-13 0:27 ` [126/145] USB: add new ftdi_sio device ids Greg KH
2010-03-13 0:27 ` [127/145] USB: serial: ftdi: add CONTEC vendor and product id Greg KH
2010-03-13 0:27 ` [128/145] USB: cp210x: Add 81E8 (Zephyr Bioharness) Greg KH
2010-03-13 0:27 ` [129/145] USB: unusual_devs: Add support for multiple Option 3G sticks Greg KH
2010-03-13 0:27 ` [130/145] drm/i915: Use a dmi quirk to skip a broken SDVO TV output Greg KH
2010-03-13 0:27 ` [131/145] drm/ttm: handle OOM in ttm_tt_swapout Greg KH
2010-03-13 0:27 ` [132/145] sunrpc: remove unnecessary svc_xprt_put Greg KH
2010-03-13 0:27 ` [133/145] SUNRPC: Handle EINVAL error returns from the TCP connect operation Greg KH
2010-03-13 0:27 ` [134/145] s3cmci: s3cmci_card_present: Use no_detect to decide whether there is a card detect pin Greg KH
2010-03-13 0:27 ` [135/145] rtc-coh901331: fix braces in resume code Greg KH
2010-03-13 0:27 ` [136/145] NFS: Fix an allocation-under-spinlock bug Greg KH
2010-03-13 0:27 ` [137/145] dm: free dm_io before bio_endio not after Greg KH
2010-03-13 0:27 ` [138/145] KVM: x86 emulator: Add group8 instruction decoding Greg KH
2010-03-13 0:27 ` [139/145] KVM: x86 emulator: Forbid modifying CS segment register by mov instruction Greg KH
2010-03-13 0:27 ` [140/145] KVM: x86 emulator: Add group9 instruction decoding Greg KH
2010-03-13 0:27 ` [141/145] KVM: x86 emulator: Check CPL level during privilege instruction emulation Greg KH
2010-03-13 20:37 ` [Stable-review] " Ben Hutchings
2010-03-13 22:16 ` Greg KH
2010-03-14 18:22 ` Stefan Bader
2010-03-13 0:27 ` [142/145] sched: Fix sched_mv_power_savings for !SMT Greg KH
2010-03-13 0:27 ` [143/145] sched: Fix SMT scheduler regression in find_busiest_queue() Greg KH
2010-03-13 0:27 ` [144/145] sched: Dont use possibly stale sched_class Greg KH
2010-03-13 0:27 ` [145/145] x86, mm: Allow highmem user page tables to be disabled at boot time Greg KH
2010-03-13 2:58 ` [000/145] 2.6.32.10-stable review Grant Coady
2010-03-13 3:27 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100313002709.425536237@kvm.kroah.org \
--to=gregkh@suse.de \
--cc=airlied@linux.ie \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jglisse@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®