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,
Sarah Sharp <sarah.a.sharp@linux.intel.com>
Subject: [108/136] USB: xhci: Add quirk for Fresco Logic xHCI hardware.
Date: Thu, 01 Oct 2009 18:17:36 -0700 [thread overview]
Message-ID: <20091002012424.189244632@mini.kroah.org> (raw)
In-Reply-To: <20091002012911.GA18542@kroah.com>
[-- Attachment #1: usb-xhci-add-quirk-for-fresco-logic-xhci-hardware.patch --]
[-- Type: text/plain, Size: 13082 bytes --]
2.6.31-stable review patch. If anyone has any objections, please let us know.
------------------
From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
commit ac9d8fe7c6a8041cca5a0738915d2c4e21381421 upstream.
This Fresco Logic xHCI host controller chip revision puts bad data into
the output endpoint context after a Reset Endpoint command. It needs a
Configure Endpoint command (instead of a Set TR Dequeue Pointer command)
after the reset endpoint command.
Set up the input context before issuing the Reset Endpoint command so we
don't copy bad data from the output endpoint context. The HW also can't
handle two commands queued at once, so submit the TRB for the Configure
Endpoint command in the event handler for the Reset Endpoint command.
Devices that stall on control endpoints before a configuration is selected
will not work under this Fresco Logic xHCI host controller revision.
This patch is for prototype hardware that will be given to other companies
for evaluation purposes only, and should not reach consumer hands. Fresco
Logic's next chip rev should have this bug fixed.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/usb/host/xhci-hcd.c | 77 +++++++++++++++++++++++++++++++++++++------
drivers/usb/host/xhci-pci.c | 13 +++++++
drivers/usb/host/xhci-ring.c | 61 ++++++++++++++++++++++++++++++----
drivers/usb/host/xhci.h | 20 +++++++----
4 files changed, 148 insertions(+), 23 deletions(-)
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -929,6 +929,12 @@ struct xhci_td {
union xhci_trb *last_trb;
};
+struct xhci_dequeue_state {
+ struct xhci_segment *new_deq_seg;
+ union xhci_trb *new_deq_ptr;
+ int new_cycle_state;
+};
+
struct xhci_ring {
struct xhci_segment *first_seg;
union xhci_trb *enqueue;
@@ -955,12 +961,6 @@ struct xhci_ring {
u32 cycle_state;
};
-struct xhci_dequeue_state {
- struct xhci_segment *new_deq_seg;
- union xhci_trb *new_deq_ptr;
- int new_cycle_state;
-};
-
struct xhci_erst_entry {
/* 64-bit event ring segment address */
u64 seg_addr;
@@ -1063,6 +1063,7 @@ struct xhci_hcd {
int error_bitmask;
unsigned int quirks;
#define XHCI_LINK_TRB_QUIRK (1 << 0)
+#define XHCI_RESET_EP_QUIRK (1 << 1)
};
/* For testing purposes */
@@ -1170,6 +1171,8 @@ int xhci_alloc_virt_device(struct xhci_h
int xhci_setup_addressable_virt_dev(struct xhci_hcd *xhci, struct usb_device *udev);
unsigned int xhci_get_endpoint_index(struct usb_endpoint_descriptor *desc);
unsigned int xhci_get_endpoint_flag(struct usb_endpoint_descriptor *desc);
+unsigned int xhci_get_endpoint_flag_from_index(unsigned int ep_index);
+unsigned int xhci_last_valid_endpoint(u32 added_ctxs);
void xhci_endpoint_zero(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev, struct usb_host_endpoint *ep);
void xhci_endpoint_copy(struct xhci_hcd *xhci,
struct xhci_virt_device *vdev, unsigned int ep_index);
@@ -1233,8 +1236,11 @@ void xhci_queue_new_dequeue_state(struct
struct xhci_ring *ep_ring, unsigned int slot_id,
unsigned int ep_index, struct xhci_dequeue_state *deq_state);
void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci,
- struct usb_device *udev, struct usb_host_endpoint *ep,
+ struct usb_device *udev,
unsigned int ep_index, struct xhci_ring *ep_ring);
+void xhci_queue_config_ep_quirk(struct xhci_hcd *xhci,
+ unsigned int slot_id, unsigned int ep_index,
+ struct xhci_dequeue_state *deq_state);
/* xHCI roothub code */
int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex,
--- a/drivers/usb/host/xhci-hcd.c
+++ b/drivers/usb/host/xhci-hcd.c
@@ -224,7 +224,7 @@ int xhci_init(struct usb_hcd *hcd)
xhci_dbg(xhci, "QUIRK: Not clearing Link TRB chain bits.\n");
xhci->quirks |= XHCI_LINK_TRB_QUIRK;
} else {
- xhci_dbg(xhci, "xHCI has no QUIRKS\n");
+ xhci_dbg(xhci, "xHCI doesn't need link TRB QUIRK\n");
}
retval = xhci_mem_init(xhci, GFP_KERNEL);
xhci_dbg(xhci, "Finished xhci_init\n");
@@ -567,13 +567,22 @@ unsigned int xhci_get_endpoint_flag(stru
return 1 << (xhci_get_endpoint_index(desc) + 1);
}
+/* Find the flag for this endpoint (for use in the control context). Use the
+ * endpoint index to create a bitmask. The slot context is bit 0, endpoint 0 is
+ * bit 1, etc.
+ */
+unsigned int xhci_get_endpoint_flag_from_index(unsigned int ep_index)
+{
+ return 1 << (ep_index + 1);
+}
+
/* Compute the last valid endpoint context index. Basically, this is the
* endpoint index plus one. For slot contexts with more than valid endpoint,
* we find the most significant bit set in the added contexts flags.
* e.g. ep 1 IN (with epnum 0x81) => added_ctxs = 0b1000
* fls(0b1000) = 4, but the endpoint context index is 3, so subtract one.
*/
-static inline unsigned int xhci_last_valid_endpoint(u32 added_ctxs)
+unsigned int xhci_last_valid_endpoint(u32 added_ctxs)
{
return fls(added_ctxs) - 1;
}
@@ -1230,8 +1239,44 @@ void xhci_reset_bandwidth(struct usb_hcd
xhci_zero_in_ctx(xhci, virt_dev);
}
+void xhci_setup_input_ctx_for_quirk(struct xhci_hcd *xhci,
+ unsigned int slot_id, unsigned int ep_index,
+ struct xhci_dequeue_state *deq_state)
+{
+ struct xhci_container_ctx *in_ctx;
+ struct xhci_input_control_ctx *ctrl_ctx;
+ struct xhci_ep_ctx *ep_ctx;
+ u32 added_ctxs;
+ dma_addr_t addr;
+
+ xhci_endpoint_copy(xhci, xhci->devs[slot_id], ep_index);
+ in_ctx = xhci->devs[slot_id]->in_ctx;
+ ep_ctx = xhci_get_ep_ctx(xhci, in_ctx, ep_index);
+ addr = xhci_trb_virt_to_dma(deq_state->new_deq_seg,
+ deq_state->new_deq_ptr);
+ if (addr == 0) {
+ xhci_warn(xhci, "WARN Cannot submit config ep after "
+ "reset ep command\n");
+ xhci_warn(xhci, "WARN deq seg = %p, deq ptr = %p\n",
+ deq_state->new_deq_seg,
+ deq_state->new_deq_ptr);
+ return;
+ }
+ ep_ctx->deq = addr | deq_state->new_cycle_state;
+
+ xhci_slot_copy(xhci, xhci->devs[slot_id]);
+
+ ctrl_ctx = xhci_get_input_control_ctx(xhci, in_ctx);
+ added_ctxs = xhci_get_endpoint_flag_from_index(ep_index);
+ ctrl_ctx->add_flags = added_ctxs | SLOT_FLAG;
+ ctrl_ctx->drop_flags = added_ctxs;
+
+ xhci_dbg(xhci, "Slot ID %d Input Context:\n", slot_id);
+ xhci_dbg_ctx(xhci, in_ctx, ep_index);
+}
+
void xhci_cleanup_stalled_ring(struct xhci_hcd *xhci,
- struct usb_device *udev, struct usb_host_endpoint *ep,
+ struct usb_device *udev,
unsigned int ep_index, struct xhci_ring *ep_ring)
{
struct xhci_dequeue_state deq_state;
@@ -1241,12 +1286,26 @@ void xhci_cleanup_stalled_ring(struct xh
* or it will attempt to resend it on the next doorbell ring.
*/
xhci_find_new_dequeue_state(xhci, udev->slot_id,
- ep_index, ep_ring->stopped_td, &deq_state);
+ ep_index, ep_ring->stopped_td,
+ &deq_state);
- xhci_dbg(xhci, "Queueing new dequeue state\n");
- xhci_queue_new_dequeue_state(xhci, ep_ring,
- udev->slot_id,
- ep_index, &deq_state);
+ /* HW with the reset endpoint quirk will use the saved dequeue state to
+ * issue a configure endpoint command later.
+ */
+ if (!(xhci->quirks & XHCI_RESET_EP_QUIRK)) {
+ xhci_dbg(xhci, "Queueing new dequeue state\n");
+ xhci_queue_new_dequeue_state(xhci, ep_ring,
+ udev->slot_id,
+ ep_index, &deq_state);
+ } else {
+ /* Better hope no one uses the input context between now and the
+ * reset endpoint completion!
+ */
+ xhci_dbg(xhci, "Setting up input context for "
+ "configure endpoint command\n");
+ xhci_setup_input_ctx_for_quirk(xhci, udev->slot_id,
+ ep_index, &deq_state);
+ }
}
/* Deal with stalled endpoints. The core should have sent the control message
@@ -1293,7 +1352,7 @@ void xhci_endpoint_reset(struct usb_hcd
* command. Better hope that last command worked!
*/
if (!ret) {
- xhci_cleanup_stalled_ring(xhci, udev, ep, ep_index, ep_ring);
+ xhci_cleanup_stalled_ring(xhci, udev, ep_index, ep_ring);
kfree(ep_ring->stopped_td);
xhci_ring_cmd_db(xhci);
}
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -24,6 +24,10 @@
#include "xhci.h"
+/* Device for a quirk */
+#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
+#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
+
static const char hcd_name[] = "xhci_hcd";
/* called after powerup, by probe or system-pm "wakeup" */
@@ -62,6 +66,15 @@ static int xhci_pci_setup(struct usb_hcd
xhci->hcc_params = xhci_readl(xhci, &xhci->cap_regs->hcc_params);
xhci_print_registers(xhci);
+ /* Look for vendor-specific quirks */
+ if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
+ pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
+ pdev->revision == 0x0) {
+ xhci->quirks |= XHCI_RESET_EP_QUIRK;
+ xhci_dbg(xhci, "QUIRK: Fresco Logic xHC needs configure"
+ " endpoint cmd after reset endpoint\n");
+ }
+
/* Make sure the HC is halted. */
retval = xhci_halt(xhci);
if (retval)
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -469,7 +469,6 @@ void xhci_queue_new_dequeue_state(struct
* ring running.
*/
ep_ring->state |= SET_DEQ_PENDING;
- xhci_ring_cmd_db(xhci);
}
/*
@@ -538,6 +537,7 @@ static void handle_stopped_endpoint(stru
if (deq_state.new_deq_ptr && deq_state.new_deq_seg) {
xhci_queue_new_dequeue_state(xhci, ep_ring,
slot_id, ep_index, &deq_state);
+ xhci_ring_cmd_db(xhci);
} else {
/* Otherwise just ring the doorbell to restart the ring */
ring_ep_doorbell(xhci, slot_id, ep_index);
@@ -651,18 +651,31 @@ static void handle_reset_ep_completion(s
{
int slot_id;
unsigned int ep_index;
+ struct xhci_ring *ep_ring;
slot_id = TRB_TO_SLOT_ID(trb->generic.field[3]);
ep_index = TRB_TO_EP_INDEX(trb->generic.field[3]);
+ ep_ring = xhci->devs[slot_id]->ep_rings[ep_index];
/* This command will only fail if the endpoint wasn't halted,
* but we don't care.
*/
xhci_dbg(xhci, "Ignoring reset ep completion code of %u\n",
(unsigned int) GET_COMP_CODE(event->status));
- /* Clear our internal halted state and restart the ring */
- xhci->devs[slot_id]->ep_rings[ep_index]->state &= ~EP_HALTED;
- ring_ep_doorbell(xhci, slot_id, ep_index);
+ /* HW with the reset endpoint quirk needs to have a configure endpoint
+ * command complete before the endpoint can be used. Queue that here
+ * because the HW can't handle two commands being queued in a row.
+ */
+ if (xhci->quirks & XHCI_RESET_EP_QUIRK) {
+ xhci_dbg(xhci, "Queueing configure endpoint command\n");
+ xhci_queue_configure_endpoint(xhci,
+ xhci->devs[slot_id]->in_ctx->dma, slot_id);
+ xhci_ring_cmd_db(xhci);
+ } else {
+ /* Clear our internal halted state and restart the ring */
+ ep_ring->state &= ~EP_HALTED;
+ ring_ep_doorbell(xhci, slot_id, ep_index);
+ }
}
static void handle_cmd_completion(struct xhci_hcd *xhci,
@@ -671,6 +684,10 @@ static void handle_cmd_completion(struct
int slot_id = TRB_TO_SLOT_ID(event->flags);
u64 cmd_dma;
dma_addr_t cmd_dequeue_dma;
+ struct xhci_input_control_ctx *ctrl_ctx;
+ unsigned int ep_index;
+ struct xhci_ring *ep_ring;
+ unsigned int ep_state;
cmd_dma = event->cmd_trb;
cmd_dequeue_dma = xhci_trb_virt_to_dma(xhci->cmd_ring->deq_seg,
@@ -698,8 +715,39 @@ static void handle_cmd_completion(struct
xhci_free_virt_device(xhci, slot_id);
break;
case TRB_TYPE(TRB_CONFIG_EP):
- xhci->devs[slot_id]->cmd_status = GET_COMP_CODE(event->status);
- complete(&xhci->devs[slot_id]->cmd_completion);
+ /*
+ * Configure endpoint commands can come from the USB core
+ * configuration or alt setting changes, or because the HW
+ * needed an extra configure endpoint command after a reset
+ * endpoint command. In the latter case, the xHCI driver is
+ * not waiting on the configure endpoint command.
+ */
+ ctrl_ctx = xhci_get_input_control_ctx(xhci,
+ xhci->devs[slot_id]->in_ctx);
+ /* Input ctx add_flags are the endpoint index plus one */
+ ep_index = xhci_last_valid_endpoint(ctrl_ctx->add_flags) - 1;
+ ep_ring = xhci->devs[slot_id]->ep_rings[ep_index];
+ if (!ep_ring) {
+ /* This must have been an initial configure endpoint */
+ xhci->devs[slot_id]->cmd_status =
+ GET_COMP_CODE(event->status);
+ complete(&xhci->devs[slot_id]->cmd_completion);
+ break;
+ }
+ ep_state = ep_ring->state;
+ xhci_dbg(xhci, "Completed config ep cmd - last ep index = %d, "
+ "state = %d\n", ep_index, ep_state);
+ if (xhci->quirks & XHCI_RESET_EP_QUIRK &&
+ ep_state & EP_HALTED) {
+ /* Clear our internal halted state and restart ring */
+ xhci->devs[slot_id]->ep_rings[ep_index]->state &=
+ ~EP_HALTED;
+ ring_ep_doorbell(xhci, slot_id, ep_index);
+ } else {
+ xhci->devs[slot_id]->cmd_status =
+ GET_COMP_CODE(event->status);
+ complete(&xhci->devs[slot_id]->cmd_completion);
+ }
break;
case TRB_TYPE(TRB_EVAL_CONTEXT):
xhci->devs[slot_id]->cmd_status = GET_COMP_CODE(event->status);
@@ -958,7 +1006,6 @@ static int handle_tx_event(struct xhci_h
xhci_queue_reset_ep(xhci, slot_id, ep_index);
xhci_cleanup_stalled_ring(xhci,
td->urb->dev,
- td->urb->ep,
ep_index, ep_ring);
xhci_ring_cmd_db(xhci);
goto td_cleanup;
next prev parent reply other threads:[~2009-10-02 1:41 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20091002011548.335611824@mini.kroah.org>
2009-10-02 1:29 ` [000/136] 2.6.31.2-stable review Greg KH
2009-10-02 1:15 ` [001/136] KVM: VMX: Fix EPT with WP bit change during paging Greg KH
2009-10-02 1:15 ` [002/136] pata_amd: do not filter out valid modes in nv_mode_filter Greg KH
2009-10-02 1:15 ` [003/136] p54usb: add Zcomax XG-705A usbid Greg KH
2009-10-02 1:15 ` [004/136] x86: Increase MIN_GAP to include randomized stack Greg KH
2009-10-02 1:15 ` [005/136] serial: bfin_5xx: fix building as module when early printk is enabled Greg KH
2009-10-02 1:15 ` [006/136] USB: option.c Add support for ZTE AC2726 EVDO modem Greg KH
2009-10-02 1:15 ` [007/136] USB: option: TELIT UC864G support Greg KH
2009-10-02 1:15 ` [008/136] video: s3c_fb.c: fix build with CONFIG_HOTPLUG=n Greg KH
2009-10-02 1:15 ` [009/136] kbuild: fix cc1 options check to ensure we do not use -fPIC when compiling Greg KH
2009-10-02 1:15 ` [010/136] drivers/mfd/ab3100-core.c: fix powerpc build error Greg KH
2009-10-02 1:15 ` [011/136] thinkpad-acpi: dont ask about brightness_mode for fw. 1V and 1R Greg KH
2009-10-02 1:16 ` [012/136] ACPI: pci_slot.ko wants a 64-bit _SUN Greg KH
2009-10-02 1:16 ` [013/136] fbcon: only unbind from console if successfully registered Greg KH
2009-10-02 1:16 ` [014/136] kallsyms: fix segfault in prefix_underscores_count() Greg KH
2009-10-02 1:16 ` [015/136] sisfb: change SiS_DDC_Port type to SISIOADDRESS Greg KH
2009-10-02 1:16 ` [016/136] mmc_spi: fail gracefully if host or card do not support the switch command Greg KH
2009-10-02 1:16 ` [017/136] alpha: AGP update (fixes compile failure) Greg KH
2009-10-02 1:16 ` [018/136] fs: make sure data stored into inode is properly seen before unlocking new inode Greg KH
2009-10-02 1:16 ` [019/136] eCryptfs: Handle unrecognized tag 3 cipher codes Greg KH
2009-10-02 1:16 ` [020/136] eCryptfs: Check for O_RDONLY lower inodes when opening lower files Greg KH
2009-10-02 1:16 ` [021/136] eCryptfs: Filename encryption only supports password auth tokens Greg KH
2009-10-02 1:16 ` [022/136] eCryptfs: Validate global auth tok keys Greg KH
2009-10-02 1:16 ` [023/136] eCryptfs: Prevent lower dentry from going negative during unlink Greg KH
2009-10-02 1:16 ` [024/136] [CIFS] Re-enable Lanman security Greg KH
2009-10-02 1:16 ` [025/136] xen: make -fstack-protector work under Xen Greg KH
2009-10-02 1:16 ` [026/136] xen: only enable interrupts while actually blocking for spinlock Greg KH
2009-10-02 1:16 ` [027/136] xen: use stronger barrier after unlocking lock Greg KH
2009-10-02 1:16 ` [028/136] xen: check EFER for NX before setting up GDT mapping Greg KH
2009-10-02 1:16 ` [029/136] perf_counter: Fix perf_copy_attr() pointer arithmetic Greg KH
2009-10-02 1:16 ` [030/136] perf tools: Fix buffer allocation Greg KH
2009-10-02 1:16 ` [031/136] tty: serial/pcmcia: add ID for Advantech card Greg KH
2009-10-02 1:16 ` [032/136] PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend() Greg KH
2009-10-02 1:16 ` [033/136] PM / yenta: Fix cardbus suspend/resume regression Greg KH
2009-10-02 1:16 ` [034/136] sony-laptop: check for rfkill hard block at load time Greg KH
2009-10-02 1:16 ` [035/136] nilfs2: fix missing zero-fill initialization of btree node cache Greg KH
2009-10-02 1:16 ` [036/136] ar9170usb: add usbid for TP-Link TL-WN821N v2 Greg KH
2009-10-02 1:16 ` [037/136] mtd: nand: fix ECC Correction bug for SMC ordering for NDFC driver Greg KH
2009-10-02 1:16 ` [038/136] mtd: ofpart: Check availability of reg property instead of name property Greg KH
2009-10-02 1:16 ` [039/136] mtd: cfi_cmdset_0002: add 0xFF intolerance for M29W128G Greg KH
2009-10-02 1:16 ` [040/136] USB: serial: ftdi_sio: new hardware support - hameg power supply Greg KH
2009-10-02 1:16 ` [041/136] USB: add PIDs for FTDI based OpenDCC hardware Greg KH
2009-10-02 1:16 ` [042/136] USB: serial: ftdi: handle gnICE+ JTAG adaptors Greg KH
2009-10-02 1:16 ` [043/136] USB: CDC WDM driver doesnt support non-blocking reads Greg KH
2009-10-02 1:16 ` [044/136] USB: fix cdc-acm regression in open Greg KH
2009-10-02 1:16 ` [045/136] cdc_acm: Fix to use modern speed interfaces Greg KH
2009-10-02 1:16 ` [046/136] tty: remove dtr/rts use from the driver open methods Greg KH
2009-10-02 1:16 ` [047/136] tty: gigaset: really fix chars_in_buffer Greg KH
2009-10-02 1:16 ` [048/136] kaweth: Fix memory leak in kaweth_control() Greg KH
2009-10-02 1:16 ` [049/136] x86: SGI UV: Fix IPI macros Greg KH
2009-10-02 1:16 ` [050/136] USB: serial: pl2303: new hardware support - sanwa multimeter Greg KH
2009-10-02 1:16 ` [051/136] USB: storage: fix a resume path GFP_NOIO must be used Greg KH
2009-10-02 1:16 ` [052/136] USB: usb-storage fails to attach to Huawei Datacard cdrom device Greg KH
2009-10-02 1:16 ` [053/136] USB: usbtmc: sanity checks for DEV_DEP_MSG_IN urbs Greg KH
2009-10-02 1:16 ` [054/136] USB: sl811-hcd: Fix device disconnect: Greg KH
2009-10-02 1:16 ` [055/136] drm/i915: remove restore in resume Greg KH
2009-10-02 1:16 ` [056/136] drm/i915: Only destroy a constructed mmap offset Greg KH
2009-10-02 1:16 ` [057/136] drm/i915: prevent FIFO calculation overflows on 32 bits with high dotclocks Greg KH
2009-10-02 1:16 ` [058/136] drm/i915: Add buffer to inactive list immediately during fault Greg KH
2009-10-02 1:16 ` [059/136] drm/i915: Check that the relocation points to within the target Greg KH
2009-10-02 1:16 ` [060/136] drm/i915: Fix typo for wrong LVDS clock setting on IGDNG Greg KH
2009-10-02 1:16 ` [061/136] drm/i915: Fix SSC frequence for IGDNG Greg KH
2009-10-02 1:16 ` [062/136] drm/i915: Remove DAC disable in CRT force detect on IGDNG Greg KH
2009-10-02 1:16 ` [063/136] drm/i915: Fix LVDS panel fitting on Arrandale Greg KH
2009-10-02 1:16 ` [064/136] drm/I915: Use the CRT DDC to get the EDID for DVI-connector on Mac Greg KH
2009-10-02 1:16 ` [065/136] drm/i915: fix tiling on IGDNG Greg KH
2009-10-02 1:16 ` [066/136] agp/intel: Fix the pre-9xx chipset flush Greg KH
2009-10-02 1:16 ` [067/136] nfsd4: fix null dereference creating nfsv4 callback client Greg KH
2009-10-02 1:16 ` [068/136] can: fix NOHZ local_softirq_pending 08 warning Greg KH
2009-10-02 1:16 ` [069/136] ahci: restore pci_intx() handling Greg KH
2009-10-02 1:16 ` [070/136] [ARM] pxa/sharpsl_pm: zaurus c3000 aka spitz: fix resume Greg KH
2009-10-02 1:16 ` [071/136] net ax25: Fix signed comparison in the sockopt handler Greg KH
2009-10-02 1:17 ` [072/136] net: Make the copy length in af_packet sockopt handler unsigned Greg KH
2009-10-02 1:17 ` [073/136] pty_write: dont do a tty_wakeup() when the buffers are full Greg KH
2009-10-02 1:17 ` [074/136] KVM: fix cpuid E2BIG handling for extended request types Greg KH
2009-10-02 1:17 ` [075/136] KVM: MMU: fix missing locking in alloc_mmu_pages Greg KH
2009-10-02 1:17 ` [076/136] KVM: MMU: fix bogus alloc_mmu_pages assignment Greg KH
2009-10-02 1:17 ` [077/136] KVM: Protect update_cr8_intercept() when running without an apic Greg KH
2009-10-02 1:17 ` [078/136] Revert "KVM: x86: check for cr3 validity in ioctl_set_sregs" Greg KH
2009-10-02 1:17 ` [079/136] [CPUFREQ] Fix NULL ptr regression in powernow-k8 Greg KH
2009-10-03 15:19 ` Herton Ronaldo Krzesinski
2009-10-05 16:08 ` [Stable-review] " Greg KH
2009-10-02 1:17 ` [080/136] perf tools: do not complain if root is owning perf.data Greg KH
2009-10-02 1:17 ` [081/136] netfilter: nf_nat: fix inverted logic for persistent NAT mappings Greg KH
2009-10-02 1:17 ` [082/136] netfilter: nf_conntrack: netns fix re reliable conntrack event delivery Greg KH
2009-10-02 1:17 ` [083/136] netfilter: bridge: refcount fix Greg KH
2009-10-02 1:17 ` [084/136] netfilter: ebt_ulog: fix checkentry return value Greg KH
2009-10-02 1:17 ` [085/136] ath5k: Wakeup fixes Greg KH
2009-10-02 1:17 ` [086/136] ath5k: do not release irq across suspend/resume Greg KH
2009-10-02 1:17 ` [087/136] Driver core: add new device to buss list before probing Greg KH
2009-10-02 1:17 ` [088/136] tty: Add a full port_close function Greg KH
2009-10-02 1:17 ` [089/136] tty: USB hangup is racy Greg KH
2009-10-02 1:17 ` [090/136] tty: USB can now use the shutdown method for kref based freeing of ports Greg KH
2009-10-02 1:17 ` [091/136] hwmon: (asus_atk0110) Add maintainer information Greg KH
2009-10-02 1:17 ` [092/136] tty: USB serial termios bits Greg KH
2009-10-02 1:17 ` [093/136] usb-serial: change referencing of port and serial structures Greg KH
2009-10-02 1:17 ` [094/136] usb-serial: put subroutines in logical order Greg KH
2009-10-02 1:17 ` [095/136] usb-serial: change logic of serial lookups Greg KH
2009-10-02 1:17 ` [096/136] usb-serial: acquire references when a new tty is installed Greg KH
2009-10-02 1:17 ` [097/136] usb-serial: fix termios initialization logic Greg KH
2009-10-02 1:17 ` [098/136] usb-serial: rename subroutines Greg KH
2009-10-02 1:17 ` [099/136] usb-serial: add missing tests and debug lines Greg KH
2009-10-02 1:17 ` [100/136] usb-serial: straighten out serial_open Greg KH
2009-10-02 1:17 ` [101/136] USB serial: update the console driver Greg KH
2009-10-02 1:17 ` [102/136] USB: xhci: Work around for chain bit in link TRBs Greg KH
2009-10-02 1:17 ` [103/136] USB: xhci: Fix slot and endpoint context debugging Greg KH
2009-10-02 1:17 ` [104/136] USB: xhci: Configure endpoint code refactoring Greg KH
2009-10-02 1:17 ` [105/136] USB: xhci: Set correct max packet size for HS/FS control endpoints Greg KH
2009-10-02 1:17 ` [106/136] USB: xhci: Support full speed devices Greg KH
2009-10-02 1:17 ` [107/136] USB: xhci: Handle stalled control endpoints Greg KH
2009-10-02 1:17 ` Greg KH [this message]
2009-10-02 1:17 ` [109/136] USB: xhci: Make TRB completion code comparison readable Greg KH
2009-10-02 16:38 ` David Vrabel
2009-10-02 16:53 ` [stable] " Greg KH
2009-10-02 17:23 ` David Vrabel
2009-10-02 17:35 ` Greg KH
2009-10-02 1:17 ` [110/136] USB: xhci: Handle babbling endpoints correctly Greg KH
2009-10-02 1:17 ` [111/136] USB: xhci: Dont touch xhci_td after its freed Greg KH
2009-10-02 1:17 ` [112/136] USB: xhci: Check URBs actual transfer buffer size Greg KH
2009-10-02 1:17 ` [113/136] USB: xhci: Check URB_SHORT_NOT_OK before setting short packet status Greg KH
2009-10-02 1:17 ` [114/136] USB: xhci: Set -EREMOTEIO when xHC gives bad transfer length Greg KH
2009-10-02 1:17 ` [115/136] USB: xhci: Support interrupt transfers Greg KH
2009-10-02 1:17 ` [116/136] USB: Fix SS endpoint companion descriptor parsing Greg KH
2009-10-02 1:17 ` [117/136] /proc/kcore: work around a BUG() Greg KH
2009-10-02 1:17 ` [118/136] hugetlb: restore interleaving of bootmem huge pages (2.6.31) Greg KH
2009-10-02 1:17 ` [119/136] page-allocator: limit the number of MIGRATE_RESERVE pageblocks per zone Greg KH
2009-10-02 1:17 ` [120/136] mm: munlock use follow_page Greg KH
2009-10-02 16:46 ` Hugh Dickins
2009-10-02 16:54 ` Greg KH
2009-10-02 1:17 ` [121/136] mm: fix anonymous dirtying Greg KH
2009-10-02 16:34 ` Hugh Dickins
2009-10-02 16:55 ` Greg KH
2009-10-02 1:17 ` [122/136] mmap: avoid unnecessary anon_vma lock acquisition in vma_adjust() Greg KH
2009-10-02 16:36 ` Hugh Dickins
2009-10-02 16:54 ` Greg KH
2009-10-02 1:17 ` [123/136] Fix idle time field in /proc/uptime Greg KH
2009-10-02 1:17 ` [124/136] drm/i915: Handle ERESTARTSYS during page fault Greg KH
2009-10-02 1:17 ` [125/136] em28xx: ir-kbd-i2c init data needs a persistent object Greg KH
2009-10-02 1:17 ` [126/136] saa7134: " Greg KH
2009-10-02 1:17 ` [127/136] powerpc/8xx: Fix regression introduced by cache coherency rewrite Greg KH
2009-10-02 1:17 ` [128/136] powerpc: Fix incorrect setting of __HAVE_ARCH_PTE_SPECIAL Greg KH
2009-10-02 1:17 ` [129/136] HID: completely remove apple mightymouse from blacklist Greg KH
2009-10-02 1:17 ` [130/136] [SCSI] mptsas : PAE Kernel more than 4 GB kernel panic Greg KH
2009-10-02 1:17 ` [131/136] NOMMU: Fix MAP_PRIVATE mmap() of objects where the data can be mapped directly Greg KH
2009-10-02 1:18 ` [132/136] iwlwifi: Handle new firmware file with ucode build number in header Greg KH
2009-10-02 1:18 ` [133/136] iwlwifi: update 1000 series API version to match firmware Greg KH
2009-10-02 1:18 ` [134/136] iwlagn: modify digital SVR for 1000 Greg KH
2009-10-02 1:18 ` [135/136] iwlwifi: traverse linklist to find the valid OTP block Greg KH
2009-10-02 1:18 ` [136/136] iwlwifi: fix unloading driver while scanning Greg KH
2009-10-02 5:01 ` [000/136] 2.6.31.2-stable review Eric W. Biederman
2009-10-02 5:10 ` Greg KH
2009-10-02 5:34 ` Eric W. Biederman
2009-10-02 6:06 ` Eric W. Biederman
2009-10-06 0:12 ` Daisuke Nishimura
2009-10-09 22:30 ` [Stable-review] " 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=20091002012424.189244632@mini.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=sarah.a.sharp@linux.intel.com \
--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