From a7c64ec4420987efe8214225fdc78f29584f51fb Mon Sep 17 00:00:00 2001 From: Michal Piotrowski Date: Wed, 1 Aug 2007 21:50:44 -0700 Subject: [PATCH] --- yaml --- r: 63607 b: refs/heads/master c: 2f0812350e0e34f583919470b0517c2e368ee048 h: refs/heads/master i: 63605: 00cb2ed3e198e2717c3a8d604fc3018efca4f2af 63603: d2e2cc08f70b85334a7f9f09e3a1d3e684dc6581 63599: 67041ebbc096055535b93915120987b8139cb087 v: v3 --- [refs] | 2 +- trunk/drivers/firewire/fw-ohci.c | 20 +++++++------------- trunk/drivers/firewire/fw-sbp2.c | 5 +---- trunk/drivers/firewire/fw-transaction.c | 4 ++-- trunk/drivers/firewire/fw-transaction.h | 2 +- trunk/drivers/ieee1394/Kconfig | 2 +- trunk/drivers/ieee1394/sbp2.c | 5 +++++ trunk/net/wanrouter/wanmain.c | 1 - 8 files changed, 18 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index a48f66a41746..7885ac00c01f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3ff42e4f13095f5351fe651b8a591e67aabbb1a6 +refs/heads/master: 2f0812350e0e34f583919470b0517c2e368ee048 diff --git a/trunk/drivers/firewire/fw-ohci.c b/trunk/drivers/firewire/fw-ohci.c index 7e427b4c74b5..db703758db98 100644 --- a/trunk/drivers/firewire/fw-ohci.c +++ b/trunk/drivers/firewire/fw-ohci.c @@ -907,8 +907,6 @@ static void bus_reset_tasklet(unsigned long data) int self_id_count, i, j, reg; int generation, new_generation; unsigned long flags; - void *free_rom = NULL; - dma_addr_t free_rom_bus = 0; reg = reg_read(ohci, OHCI1394_NodeID); if (!(reg & OHCI1394_NodeID_idValid)) { @@ -972,8 +970,8 @@ static void bus_reset_tasklet(unsigned long data) */ if (ohci->next_config_rom != NULL) { - free_rom = ohci->config_rom; - free_rom_bus = ohci->config_rom_bus; + dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, + ohci->config_rom, ohci->config_rom_bus); ohci->config_rom = ohci->next_config_rom; ohci->config_rom_bus = ohci->next_config_rom_bus; ohci->next_config_rom = NULL; @@ -992,10 +990,6 @@ static void bus_reset_tasklet(unsigned long data) spin_unlock_irqrestore(&ohci->lock, flags); - if (free_rom) - dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, - free_rom, free_rom_bus); - fw_core_handle_bus_reset(&ohci->card, ohci->node_id, generation, self_id_count, ohci->self_id_buffer); } @@ -1192,7 +1186,7 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) { struct fw_ohci *ohci; unsigned long flags; - int retval = -EBUSY; + int retval = 0; __be32 *next_config_rom; dma_addr_t next_config_rom_bus; @@ -1246,7 +1240,10 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) reg_write(ohci, OHCI1394_ConfigROMmap, ohci->next_config_rom_bus); - retval = 0; + } else { + dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, + next_config_rom, next_config_rom_bus); + retval = -EBUSY; } spin_unlock_irqrestore(&ohci->lock, flags); @@ -1260,9 +1257,6 @@ ohci_set_config_rom(struct fw_card *card, u32 *config_rom, size_t length) */ if (retval == 0) fw_core_initiate_bus_reset(&ohci->card, 1); - else - dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, - next_config_rom, next_config_rom_bus); return retval; } diff --git a/trunk/drivers/firewire/fw-sbp2.c b/trunk/drivers/firewire/fw-sbp2.c index ba816ef6def1..3e4a369d0057 100644 --- a/trunk/drivers/firewire/fw-sbp2.c +++ b/trunk/drivers/firewire/fw-sbp2.c @@ -984,7 +984,6 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) struct fw_unit *unit = sd->unit; struct fw_device *device = fw_device(unit->device.parent); struct sbp2_command_orb *orb; - unsigned max_payload; /* * Bidirectional commands are not yet implemented, and unknown @@ -1018,10 +1017,8 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) * specifies the max payload size as 2 ^ (max_payload + 2), so * if we set this to max_speed + 7, we get the right value. */ - max_payload = min(device->max_speed + 7, - device->card->max_receive - 1); orb->request.misc = - COMMAND_ORB_MAX_PAYLOAD(max_payload) | + COMMAND_ORB_MAX_PAYLOAD(device->max_speed + 7) | COMMAND_ORB_SPEED(device->max_speed) | COMMAND_ORB_NOTIFY; diff --git a/trunk/drivers/firewire/fw-transaction.c b/trunk/drivers/firewire/fw-transaction.c index 3e1cb12e43cd..3ce8e2fbe15f 100644 --- a/trunk/drivers/firewire/fw-transaction.c +++ b/trunk/drivers/firewire/fw-transaction.c @@ -734,7 +734,7 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p) } EXPORT_SYMBOL(fw_core_handle_response); -static const struct fw_address_region topology_map_region = +const struct fw_address_region topology_map_region = { .start = 0xfffff0001000ull, .end = 0xfffff0001400ull, }; static void @@ -772,7 +772,7 @@ static struct fw_address_handler topology_map = { .address_callback = handle_topology_map, }; -static const struct fw_address_region registers_region = +const struct fw_address_region registers_region = { .start = 0xfffff0000000ull, .end = 0xfffff0000400ull, }; static void diff --git a/trunk/drivers/firewire/fw-transaction.h b/trunk/drivers/firewire/fw-transaction.h index fa7967b57408..5ceaccd10564 100644 --- a/trunk/drivers/firewire/fw-transaction.h +++ b/trunk/drivers/firewire/fw-transaction.h @@ -231,7 +231,7 @@ struct fw_card { unsigned long reset_jiffies; unsigned long long guid; - unsigned max_receive; + int max_receive; int link_speed; int config_rom_generation; diff --git a/trunk/drivers/ieee1394/Kconfig b/trunk/drivers/ieee1394/Kconfig index 545663ef820b..8012b3b0ce75 100644 --- a/trunk/drivers/ieee1394/Kconfig +++ b/trunk/drivers/ieee1394/Kconfig @@ -97,7 +97,7 @@ config IEEE1394_SBP2 config IEEE1394_SBP2_PHYS_DMA bool "Enable replacement for physical DMA in SBP2" - depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL + depends on IEEE1394 && IEEE1394_SBP2 && EXPERIMENTAL && (X86_32 || PPC_32) help This builds sbp2 for use with non-OHCI host adapters which do not support physical DMA or for when ohci1394 is run with phys_dma=0. diff --git a/trunk/drivers/ieee1394/sbp2.c b/trunk/drivers/ieee1394/sbp2.c index 47dbe8f17e82..e882cb951b47 100644 --- a/trunk/drivers/ieee1394/sbp2.c +++ b/trunk/drivers/ieee1394/sbp2.c @@ -773,6 +773,11 @@ static struct sbp2_lu *sbp2_alloc_device(struct unit_directory *ud) SBP2_ERR("failed to register lower 4GB address range"); goto failed_alloc; } +#else + if (dma_set_mask(hi->host->device.parent, DMA_32BIT_MASK)) { + SBP2_ERR("failed to set 4GB DMA mask"); + goto failed_alloc; + } #endif } diff --git a/trunk/net/wanrouter/wanmain.c b/trunk/net/wanrouter/wanmain.c index 849cc06bd914..9ab31a3ce3ad 100644 --- a/trunk/net/wanrouter/wanmain.c +++ b/trunk/net/wanrouter/wanmain.c @@ -46,7 +46,6 @@ #include #include /* return codes */ #include -#include #include /* support for loadable modules */ #include /* kmalloc(), kfree() */ #include