From: David Howells Date: Wed, 6 Dec 2006 15:01:18 +0000 (+0000) Subject: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 X-Git-Tag: v2.6.20-rc1~34^2~20^2~33^2~1 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4796b71fbb907ce6b8a9acf1852d3646a80b4576;p=linux-2.6 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: drivers/pcmcia/ds.c Fix up merge failures with Linus's head and fix new compile failures. Signed-Off-By: David Howells --- 4796b71fbb907ce6b8a9acf1852d3646a80b4576 diff --cc drivers/pcmcia/ds.c index ff14fd8f0c,45df12eda3..7355eb455a --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c @@@ -698,12 -675,13 +675,14 @@@ static int pcmcia_card_add(struct pcmci } - static void pcmcia_delayed_add_pseudo_device(struct work_struct *work) -static void pcmcia_delayed_add_device(void *data) ++static void pcmcia_delayed_add_device(struct work_struct *work) { - struct pcmcia_socket *s = data; + struct pcmcia_socket *s = + container_of(work, struct pcmcia_socket, device_add); - pcmcia_device_add(s, 0); + ds_dbg(1, "adding additional device to %d\n", s->sock); + pcmcia_device_add(s, s->pcmcia_state.mfc_pfc); s->pcmcia_state.device_add_pending = 0; + s->pcmcia_state.mfc_pfc = 0; } static int pcmcia_requery(struct device *dev, void * _data) @@@ -1247,7 -1349,7 +1350,7 @@@ static int __devinit pcmcia_bus_add_soc init_waitqueue_head(&socket->queue); #endif INIT_LIST_HEAD(&socket->devices_list); - INIT_WORK(&socket->device_add, pcmcia_delayed_add_pseudo_device); - INIT_WORK(&socket->device_add, pcmcia_delayed_add_device, socket); ++ INIT_WORK(&socket->device_add, pcmcia_delayed_add_device); memset(&socket->pcmcia_state, 0, sizeof(u8)); socket->device_count = 0; diff --cc drivers/scsi/qla4xxx/ql4_os.c index bbbc9d039b,db9d88e7be..969c9e4310 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c @@@ -1011,19 -961,14 +961,15 @@@ static int qla4xxx_recover_adapter(stru * the mid-level tries to sleep when it reaches the driver threshold * "host->can_queue". This can cause a panic if we were in our interrupt code. **/ -static void qla4xxx_do_dpc(void *data) +static void qla4xxx_do_dpc(struct work_struct *work) { - struct scsi_qla_host *ha = (struct scsi_qla_host *) data; + struct scsi_qla_host *ha = + container_of(work, struct scsi_qla_host, dpc_work); struct ddb_entry *ddb_entry, *dtemp; - DEBUG2(printk("scsi%ld: %s: DPC handler waking up.\n", - ha->host_no, __func__)); - - DEBUG2(printk("scsi%ld: %s: ha->flags = 0x%08lx\n", - ha->host_no, __func__, ha->flags)); - DEBUG2(printk("scsi%ld: %s: ha->dpc_flags = 0x%08lx\n", - ha->host_no, __func__, ha->dpc_flags)); + DEBUG2(printk("scsi%ld: %s: DPC handler waking up." + "flags = 0x%08lx, dpc_flags = 0x%08lx\n", + ha->host_no, __func__, ha->flags, ha->dpc_flags)); /* Initialization not yet finished. Don't do anything yet. */ if (!test_bit(AF_INIT_DONE, &ha->flags))