rpms/kernel/F-8 kernel.spec, 1.426, 1.427 linux-2.6-firewire-git-pending.patch, 1.10, 1.11 linux-2.6-firewire-git-update.patch, 1.5, 1.6
Jarod Wilson (jwilson)
fedora-extras-commits at redhat.com
Tue Apr 15 19:18:10 UTC 2008
Author: jwilson
Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32070
Modified Files:
kernel.spec linux-2.6-firewire-git-pending.patch
linux-2.6-firewire-git-update.patch
Log Message:
* Tue Apr 15 2008 Jarod Wilson <jwilson at redhat.com> 2.6.24.4-81
- Resync FireWire drivers with latest upstream git tree:
* Fix dvgrab on buggy TI chipsets (#243081). May fix #435550 too.
* Work-around for buggy 1st-gen JMicron JMB38x controllers
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.426
retrieving revision 1.427
diff -u -r1.426 -r1.427
--- kernel.spec 11 Apr 2008 21:45:53 -0000 1.426
+++ kernel.spec 15 Apr 2008 19:17:32 -0000 1.427
@@ -1388,7 +1388,7 @@
# FireWire updates and fixes
# snap from http://me.in-berlin.de/~s5r6/linux1394/updates/
ApplyPatch linux-2.6-firewire-git-update.patch
-ApplyPatch linux-2.6-firewire-git-pending.patch
+#ApplyPatch linux-2.6-firewire-git-pending.patch
ApplyPatch linux-2.6-thinkpad-key-events.patch
@@ -2019,6 +2019,11 @@
%changelog
+* Tue Apr 15 2008 Jarod Wilson <jwilson at redhat.com> 2.6.24.4-81
+- Resync FireWire drivers with latest upstream git tree:
+ * Fix dvgrab on buggy TI chipsets (#243081). May fix #435550 too.
+ * Work-around for buggy 1st-gen JMicron JMB38x controllers
+
* Fri Apr 11 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.24.4-80
- Prevent sys_io_getevents syscall from clobbering the esi register on x86.
(F9#427707)
linux-2.6-firewire-git-pending.patch:
Index: linux-2.6-firewire-git-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-firewire-git-pending.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- linux-2.6-firewire-git-pending.patch 25 Mar 2008 20:39:39 -0000 1.10
+++ linux-2.6-firewire-git-pending.patch 15 Apr 2008 19:17:32 -0000 1.11
@@ -4,750 +4,3 @@
#
-Increase reconnect management orb timeout.
-
-Signed-off-by: Jarod Wilson <jwilson at redhat.com>
-
----
-
- drivers/firewire/fw-sbp2.c | 15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
-index d6d62c6..da315cf 100644
---- a/drivers/firewire/fw-sbp2.c
-+++ b/drivers/firewire/fw-sbp2.c
-@@ -170,6 +170,7 @@ struct sbp2_target {
- */
- #define SBP2_MIN_LOGIN_ORB_TIMEOUT 5000U /* Timeout in ms */
- #define SBP2_MAX_LOGIN_ORB_TIMEOUT 40000U /* Timeout in ms */
-+#define SBP2_MAX_RECONNECT_ORB_TIMEOUT 10000U /* Timeout in ms */
- #define SBP2_ORB_TIMEOUT 2000U /* Timeout in ms */
- #define SBP2_ORB_NULL 0x80000000
- #define SBP2_MAX_SG_ELEMENT_LENGTH 0xf000
-@@ -538,14 +539,24 @@ sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id,
- orb->request.status_fifo.low =
- cpu_to_be32(lu->address_handler.offset);
-
-- if (function == SBP2_LOGIN_REQUEST) {
-+ switch (function) {
-+
-+ case SBP2_LOGIN_REQUEST:
- /* Ask for 2^2 == 4 seconds reconnect grace period */
- orb->request.misc |= cpu_to_be32(
- MANAGEMENT_ORB_RECONNECT(2) |
- MANAGEMENT_ORB_EXCLUSIVE(sbp2_param_exclusive_login));
- timeout = lu->tgt->mgt_orb_timeout;
-- } else {
-+ break;
-+
-+ case SBP2_RECONNECT_REQUEST:
-+ timeout = min(SBP2_MAX_RECONNECT_ORB_TIMEOUT,
-+ lu->tgt->mgt_orb_timeout);
-+ break;
-+
-+ default:
- timeout = SBP2_ORB_TIMEOUT;
-+ break;
- }
-
- init_completion(&orb->done);
-
-
-
-Adds a goofy routine to dump the configuration ROM as far as it could be
-read, if fw-core failed to get it all.
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
----
-
-We may want to reduce it to printing
- - any encountered Extended ROM keys,
- - the number of quadlets that were successfully read
- (in the last attempt, or in the most successfull attempt?),
- - the return code of the last attempt
-before submitting to mainline.
-
- drivers/firewire/fw-device.c | 126 ++++++++++++++++++++++-------------
- drivers/firewire/fw-device.h | 1
- 2 files changed, 82 insertions(+), 45 deletions(-)
-
-Index: linux/drivers/firewire/fw-device.c
-===================================================================
---- linux.orig/drivers/firewire/fw-device.c
-+++ linux/drivers/firewire/fw-device.c
-@@ -18,6 +18,7 @@
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-+#include <linux/bitops.h>
- #include <linux/module.h>
- #include <linux/wait.h>
- #include <linux/errno.h>
-@@ -422,8 +423,12 @@ read_rom(struct fw_device *device, int g
- return callback_data.rcode;
- }
-
--#define READ_BIB_ROM_SIZE 256
--#define READ_BIB_STACK_SIZE 16
-+#define MAX_CONFIG_ROM_SIZE ((CSR_CONFIG_ROM_END - CSR_CONFIG_ROM) / 4)
-+
-+struct config_rom_image {
-+ u32 rom[MAX_CONFIG_ROM_SIZE];
-+ DECLARE_BITMAP(read, MAX_CONFIG_ROM_SIZE);
-+};
-
- /*
- * Read the bus info block, perform a speed probe, and read all of the rest of
-@@ -432,35 +437,36 @@ read_rom(struct fw_device *device, int g
- * It's better to start all over in this case because the node from which we
- * are reading the ROM may have changed the ROM during the reset.
- */
--static int read_bus_info_block(struct fw_device *device, int generation)
-+static int read_bus_info_block(struct fw_device *device, int generation,
-+ struct config_rom_image *rom_img)
- {
-- u32 *rom, *stack, *old_rom, *new_rom;
-+ u32 *rom, *old_rom, *new_rom;
-+ u32 stack[16];
- u32 sp, key;
-- int i, end, length, ret = -1;
-+ int i, end, length, ret;
-
-- rom = kmalloc(sizeof(*rom) * READ_BIB_ROM_SIZE +
-- sizeof(*stack) * READ_BIB_STACK_SIZE, GFP_KERNEL);
-- if (rom == NULL)
-+ if (rom_img == NULL)
- return -ENOMEM;
--
-- stack = &rom[READ_BIB_ROM_SIZE];
-+ rom = rom_img->rom;
-
- device->max_speed = SCODE_100;
-
- /* First read the bus info block. */
- for (i = 0; i < 5; i++) {
-- if (read_rom(device, generation, i, &rom[i]) != RCODE_COMPLETE)
-- goto out;
-+ ret = read_rom(device, generation, i, &rom[i]);
-+ if (ret != RCODE_COMPLETE)
-+ return ret;
-+ __set_bit(i, rom_img->read);
- /*
- * As per IEEE1212 7.2, during power-up, devices can
- * reply with a 0 for the first quadlet of the config
-- * rom to indicate that they are booting (for example,
-+ * ROM to indicate that they are booting (for example,
- * if the firmware is on the disk of a external
- * harddisk). In that case we just fail, and the
- * retry mechanism will try again later.
- */
- if (i == 0 && rom[i] == 0)
-- goto out;
-+ return -EAGAIN;
- }
-
- device->max_speed = device->node->max_speed;
-@@ -484,15 +490,17 @@ static int read_bus_info_block(struct fw
- device->max_speed = device->card->link_speed;
-
- while (device->max_speed > SCODE_100) {
-- if (read_rom(device, generation, 0, &dummy) ==
-- RCODE_COMPLETE)
-+ ret = read_rom(device, generation, 0, &dummy);
-+ if (ret == RCODE_COMPLETE)
- break;
-+ if (ret == RCODE_GENERATION)
-+ return ret;
- device->max_speed--;
- }
- }
-
- /*
-- * Now parse the config rom. The config rom is a recursive
-+ * Now parse the config ROM. The config ROM is a recursive
- * directory structure so we parse it using a stack of
- * references to the blocks that make up the structure. We
- * push a reference to the root directory on the stack to
-@@ -504,44 +512,49 @@ static int read_bus_info_block(struct fw
- while (sp > 0) {
- /*
- * Pop the next block reference of the stack. The
-- * lower 24 bits is the offset into the config rom,
-+ * lower 24 bits is the offset into the config ROM,
- * the upper 8 bits are the type of the reference the
- * block.
- */
- key = stack[--sp];
- i = key & 0xffffff;
-- if (i >= READ_BIB_ROM_SIZE)
-+ if (i >= MAX_CONFIG_ROM_SIZE) {
- /*
- * The reference points outside the standard
-- * config rom area, something's fishy.
-+ * config ROM area.
- */
-- goto out;
--
-+ if (key >> 24 == (CSR_EXTENDED_ROM | CSR_LEAF))
-+ fw_error("Extended ROM not supported\n");
-+ return -EINVAL;
-+ }
- /* Read header quadlet for the block to get the length. */
-- if (read_rom(device, generation, i, &rom[i]) != RCODE_COMPLETE)
-- goto out;
-+ ret = read_rom(device, generation, i, &rom[i]);
-+ if (ret != RCODE_COMPLETE)
-+ return ret;
-+ __set_bit(i, rom_img->read);
- end = i + (rom[i] >> 16) + 1;
- i++;
-- if (end > READ_BIB_ROM_SIZE)
-+ if (end > MAX_CONFIG_ROM_SIZE) {
- /*
- * This block extends outside standard config
- * area (and the array we're reading it
- * into). That's broken, so ignore this
- * device.
- */
-- goto out;
--
-+ return -EINVAL;
-+ }
- /*
- * Now read in the block. If this is a directory
- * block, check the entries as we read them to see if
- * it references another block, and push it in that case.
- */
- while (i < end) {
-- if (read_rom(device, generation, i, &rom[i]) !=
-- RCODE_COMPLETE)
-- goto out;
-+ ret = read_rom(device, generation, i, &rom[i]);
-+ if (ret != RCODE_COMPLETE)
-+ return ret;
-+ __set_bit(i, rom_img->read);
- if ((key >> 30) == 3 && (rom[i] >> 30) > 1 &&
-- sp < READ_BIB_STACK_SIZE)
-+ sp < ARRAY_SIZE(stack))
- stack[sp++] = i + rom[i];
- i++;
- }
-@@ -552,7 +565,7 @@ static int read_bus_info_block(struct fw
- old_rom = device->config_rom;
- new_rom = kmemdup(rom, length * 4, GFP_KERNEL);
- if (new_rom == NULL)
-- goto out;
-+ return -ENOMEM;
-
- down_write(&fw_device_rwsem);
- device->config_rom = new_rom;
-@@ -560,14 +573,25 @@ static int read_bus_info_block(struct fw
- up_write(&fw_device_rwsem);
-
- kfree(old_rom);
-- ret = 0;
- device->cmc = rom[2] & 1 << 30;
-- out:
-- kfree(rom);
-
-- return ret;
-+ return 0;
-+}
-+
-+static void dump_config_rom(struct config_rom_image *rom_img)
-+{
-+ int i;
-+
-+ if (rom_img == NULL || !test_bit(0, rom_img->read))
-+ return;
-+
-+ fw_notify("config ROM read so far:\n");
-+ for_each_bit(i, rom_img->read, MAX_CONFIG_ROM_SIZE)
-+ printk(KERN_NOTICE "%x: %08x\n",
-+ CSR_CONFIG_ROM + i * 4, rom_img->rom[i]);
- }
-
-+
- static void fw_unit_release(struct device *dev)
- {
- struct fw_unit *unit = fw_unit(dev);
-@@ -697,27 +721,32 @@ static void fw_device_init(struct work_s
- {
- struct fw_device *device =
- container_of(work, struct fw_device, work.work);
-+ struct config_rom_image *rom_img;
- int minor, err;
-
-+ rom_img = kzalloc(sizeof(*rom_img), GFP_KERNEL);
-+
- /*
- * All failure paths here set node->data to NULL, so that we
- * don't try to do device_for_each_child() on a kfree()'d
- * device.
- */
-
-- if (read_bus_info_block(device, device->generation) < 0) {
-+ err = read_bus_info_block(device, device->generation, rom_img);
-+ if (err) {
- if (device->config_rom_retries < MAX_RETRIES &&
- atomic_read(&device->state) == FW_DEVICE_INITIALIZING) {
- device->config_rom_retries++;
- schedule_delayed_work(&device->work, RETRY_DELAY);
- } else {
-- fw_notify("giving up on config rom for node id %x\n",
-- device->node_id);
-+ fw_notify("giving up on config ROM for node id %x "
-+ "(returned %d)\n", device->node_id, err);
-+ dump_config_rom(rom_img);
- if (device->node == device->card->root_node)
- schedule_delayed_work(&device->card->work, 0);
- fw_device_release(&device->device);
- }
-- return;
-+ goto out;
- }
-
- err = -ENOMEM;
-@@ -786,7 +815,7 @@ static void fw_device_init(struct work_s
- if (device->node == device->card->root_node)
- schedule_delayed_work(&device->card->work, 0);
-
-- return;
-+ goto out;
-
- error_with_cdev:
- down_write(&fw_device_rwsem);
-@@ -796,6 +825,8 @@ static void fw_device_init(struct work_s
- fw_device_put(device); /* fw_device_idr's reference */
-
- put_device(&device->device); /* our reference */
-+ out:
-+ kfree(rom_img);
- }
-
- static int update_unit(struct device *dev, void *data)
-@@ -854,6 +885,7 @@ static void fw_device_refresh(struct wor
- container_of(work, struct fw_device, work.work);
- struct fw_card *card = device->card;
- int node_id = device->node_id;
-+ struct config_rom_image *rom_img = NULL;
-
- switch (reread_bus_info_block(device, device->generation)) {
- case REREAD_BIB_ERROR:
-@@ -890,13 +922,15 @@ static void fw_device_refresh(struct wor
- */
- device_for_each_child(&device->device, NULL, shutdown_unit);
-
-- if (read_bus_info_block(device, device->generation) < 0) {
-+ rom_img = kzalloc(sizeof(*rom_img), GFP_KERNEL);
-+
-+ if (read_bus_info_block(device, device->generation, rom_img) != 0) {
- if (device->config_rom_retries < MAX_RETRIES &&
- atomic_read(&device->state) == FW_DEVICE_INITIALIZING) {
- device->config_rom_retries++;
- schedule_delayed_work(&device->work, RETRY_DELAY);
-
-- return;
-+ goto out;
- }
- goto give_up;
- }
-@@ -910,16 +944,18 @@ static void fw_device_refresh(struct wor
-
- fw_notify("refreshed device %s\n", device->device.bus_id);
- device->config_rom_retries = 0;
-- goto out;
-+ goto out_bm;
-
- give_up:
- fw_notify("giving up on refresh of device %s\n", device->device.bus_id);
- gone:
- atomic_set(&device->state, FW_DEVICE_SHUTDOWN);
- fw_device_shutdown(work);
-- out:
-+ out_bm:
- if (node_id == card->root_node->node_id)
- schedule_delayed_work(&card->work, 0);
-+ out:
-+ kfree(rom_img);
- }
-
- void fw_node_event(struct fw_card *card, struct fw_node *node, int event)
-Index: linux/drivers/firewire/fw-device.h
-===================================================================
---- linux.orig/drivers/firewire/fw-device.h
-+++ linux/drivers/firewire/fw-device.h
-@@ -142,6 +142,7 @@ static inline void fw_unit_put(struct fw
- #define CSR_DEPENDENT_INFO 0x14
- #define CSR_MODEL 0x17
- #define CSR_INSTANCE 0x18
-+#define CSR_EXTENDED_ROM 0x1b
- #define CSR_DIRECTORY_ID 0x20
-
- struct fw_csr_iterator {
-
---
-Stefan Richter
--=====-==--- --== -=---
-http://arcgraph.de/sr/
-
-
-Date: Tue, 11 Mar 2008 22:32:03 +0100 (CET)
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Subject: [PATCH] firewire: fw-sbp2: fix for SYM13FW500 bridge (Datafab disk)
-To: linux1394-devel at lists.sourceforge.net
-Cc: linux-kernel at vger.kernel.org
-
-Fix I/O errors due to SYM13FW500's inability to handle larger request
-sizes. Reported by Piergiorgio Sartor <piergiorgio.sartor at nexgo.de> in
-https://bugzilla.redhat.com/show_bug.cgi?id=436879
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
----
- drivers/firewire/fw-sbp2.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-Index: linux/drivers/firewire/fw-sbp2.c
-===================================================================
---- linux.orig/drivers/firewire/fw-sbp2.c
-+++ linux/drivers/firewire/fw-sbp2.c
-@@ -327,6 +327,11 @@ static const struct {
- .model = ~0,
- .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
- },
-+ /* Datafab MD2-FW2 with Symbios/LSILogic SYM13FW500 bridge */ {
-+ .firmware_revision = 0x002600,
-+ .model = ~0,
-+ .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS,
-+ },
-
- /*
- * There are iPods (2nd gen, 3rd gen) with model_id == 0, but
-
---
-Stefan Richter
--=====-==--- --== -=-==
-http://arcgraph.de/sr/
-
-
-Date: Sun, 16 Mar 2008 00:56:41 +0100 (CET)
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Subject: [PATCH] firewire: fix panic in handle_at_packet
-To: linux1394-devel at lists.sourceforge.net
-cc: linux-kernel at vger.kernel.org,
- Johannes Berg <johannes at sipsolutions.net>,
- Jarod Wilson <jwilson at redhat.com>
-
-This fixes a use-after-free bug in the handling of split transactions.
-The AT DMA handler of the request was occasionally executed after the
-AR DMA handler of the response. The AT DMA handler then accessed an
-already freed packet.
-
-Reported by Johannes Berg <johannes at sipsolutions.net>.
-http://bugzilla.kernel.org/show_bug.cgi?id=9617
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Jarod Wilson <jwilson at redhat.com>
----
- drivers/firewire/fw-transaction.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: linux/drivers/firewire/fw-transaction.c
-===================================================================
---- linux.orig/drivers/firewire/fw-transaction.c
-+++ linux/drivers/firewire/fw-transaction.c
-@@ -737,6 +737,12 @@ fw_core_handle_response(struct fw_card *
- break;
- }
-
-+ /*
-+ * The response handler may be executed while the request handler
-+ * is still pending. Cancel the request handler.
-+ */
-+ card->driver->cancel_packet(card, &t->packet);
-+
- t->callback(card, rcode, data, data_length, t->callback_data);
- }
- EXPORT_SYMBOL(fw_core_handle_response);
-
---
-Stefan Richter
--=====-==--- --== =----
-http://arcgraph.de/sr/
-
-
-Oops, some of the important bits got dropped when back-porting to 2.6.24...
-Add 'em back right here. We'll sort out changelog entries later...
-
-diff -Naurp linux.orig/drivers/firewire/fw-ohci.c linux/drivers/firewire/fw-ohci.c
---- linux.orig/drivers/firewire/fw-ohci.c 2008-03-17 16:52:40.000000000 -0400
-+++ linux/drivers/firewire/fw-ohci.c 2008-03-17 16:54:58.000000000 -0400
-@@ -188,7 +188,7 @@ struct fw_ohci {
- struct tasklet_struct bus_reset_tasklet;
- int node_id;
- int generation;
-- int request_generation;
-+ int request_generation; /* for timestamping incoming requests */
- u32 bus_seconds;
- bool old_uninorth;
-
-@@ -292,19 +292,13 @@ static int ar_context_add_page(struct ar
- {
- struct device *dev = ctx->ohci->card.device;
- struct ar_buffer *ab;
-- dma_addr_t ab_bus;
-+ dma_addr_t uninitialized_var(ab_bus);
- size_t offset;
-
-- ab = (struct ar_buffer *) __get_free_page(GFP_ATOMIC);
-+ ab = dma_alloc_coherent(dev, PAGE_SIZE, &ab_bus, GFP_ATOMIC);
- if (ab == NULL)
- return -ENOMEM;
-
-- ab_bus = dma_map_single(dev, ab, PAGE_SIZE, DMA_BIDIRECTIONAL);
-- if (dma_mapping_error(ab_bus)) {
-- free_page((unsigned long) ab);
-- return -ENOMEM;
-- }
--
- memset(&ab->descriptor, 0, sizeof(ab->descriptor));
- ab->descriptor.control = cpu_to_le16(DESCRIPTOR_INPUT_MORE |
- DESCRIPTOR_STATUS |
-@@ -315,8 +309,6 @@ static int ar_context_add_page(struct ar
- ab->descriptor.res_count = cpu_to_le16(PAGE_SIZE - offset);
- ab->descriptor.branch_address = 0;
-
-- dma_sync_single_for_device(dev, ab_bus, PAGE_SIZE, DMA_BIDIRECTIONAL);
--
- ctx->last_buffer->descriptor.branch_address = cpu_to_le32(ab_bus | 1);
- ctx->last_buffer->next = ab;
- ctx->last_buffer = ab;
-@@ -505,6 +497,7 @@ static void ar_context_tasklet(unsigned
-
- if (d->res_count == 0) {
- size_t size, rest, offset;
-+ dma_addr_t buffer_bus;
-
- /*
- * This descriptor is finished and we may have a
-@@ -513,9 +506,7 @@ static void ar_context_tasklet(unsigned
- */
-
- offset = offsetof(struct ar_buffer, data);
-- dma_unmap_single(ohci->card.device,
-- le32_to_cpu(ab->descriptor.data_address) - offset,
-- PAGE_SIZE, DMA_BIDIRECTIONAL);
-+ buffer_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
-
- buffer = ab;
- ab = ab->next;
-@@ -531,7 +522,8 @@ static void ar_context_tasklet(unsigned
- while (buffer < end)
- buffer = handle_ar_packet(ctx, buffer);
-
-- free_page((unsigned long)buffer);
-+ dma_free_coherent(ohci->card.device, PAGE_SIZE,
-+ buffer, buffer_bus);
- ar_context_add_page(ctx);
- } else {
- buffer = ctx->pointer;
-@@ -2376,8 +2368,8 @@ static void pci_remove(struct pci_dev *d
- pci_iounmap(dev, ohci->registers);
- pci_release_region(dev, 0);
- pci_disable_device(dev);
-- ohci_pmac_off(dev);
- kfree(&ohci->card);
-+ ohci_pmac_off(dev);
-
- fw_notify("Removed fw-ohci device.\n");
- }
-diff -Naurp linux.orig/drivers/firewire/fw-sbp2.c linux/drivers/firewire/fw-sbp2.c
---- linux.orig/drivers/firewire/fw-sbp2.c 2008-03-17 16:52:40.000000000 -0400
-+++ linux/drivers/firewire/fw-sbp2.c 2008-03-17 16:53:55.000000000 -0400
-@@ -847,7 +847,7 @@ static void sbp2_set_busy_timeout(struct
- struct fw_device *device = fw_device(lu->tgt->unit->device.parent);
- DECLARE_COMPLETION_ONSTACK(done);
- struct fw_transaction t;
-- static u32 busy_timeout;
-+ static __be32 busy_timeout;
-
- busy_timeout = cpu_to_be32(SBP2_CYCLE_LIMIT | SBP2_RETRY_LIMIT);
-
-diff -Naurp linux.orig/drivers/firewire/fw-transaction.h linux/drivers/firewire/fw-transaction.h
---- linux.orig/drivers/firewire/fw-transaction.h 2008-03-17 16:52:40.000000000 -0400
-+++ linux/drivers/firewire/fw-transaction.h 2008-03-17 16:53:55.000000000 -0400
-@@ -224,8 +224,6 @@ struct fw_card {
-
- int node_id;
- int generation;
-- /* This is the generation used for timestamping incoming requests. */
-- int request_generation;
- int current_tlabel, tlabel_mask;
- struct list_head transaction_list;
- struct timer_list flush_timer;
-
-
-
-Date: Thu, 20 Mar 2008 23:48:23 +0100 (CET)
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Subject: [PATCH] firewire: wait until PHY configuration packet was transmitted
-To: linux1394-devel at lists.sourceforge.net
-cc: linux-kernel at vger.kernel.org,
- Jarod Wilson <jwilson at redhat.com>
-
-We now exit fw_send_phy_config /after/ the PHY config packet has been
-transmitted, instead of before. A subsequent fw_core_initiate_bus_reset
-will therefore not overlap with the transmission. This is meant to make
-the send PHY config packet + reset bus routine more deterministic.
-
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Jarod Wilson <jwilson at redhat.com>
----
- drivers/firewire/fw-transaction.c | 49 ++++++++++++++----------------
- 1 file changed, 24 insertions(+), 25 deletions(-)
-
-Index: linux/drivers/firewire/fw-transaction.c
-===================================================================
---- linux.orig/drivers/firewire/fw-transaction.c
-+++ linux/drivers/firewire/fw-transaction.c
-@@ -18,6 +18,7 @@
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-+#include <linux/completion.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/init.h>
-@@ -294,42 +295,40 @@ fw_send_request(struct fw_card *card, st
- }
- EXPORT_SYMBOL(fw_send_request);
-
-+struct fw_phy_packet {
-+ struct fw_packet packet;
-+ struct completion done;
-+};
-+
- static void
- transmit_phy_packet_callback(struct fw_packet *packet,
- struct fw_card *card, int status)
- {
-- kfree(packet);
--}
--
--static void send_phy_packet(struct fw_card *card, u32 data, int generation)
--{
-- struct fw_packet *packet;
-+ struct fw_phy_packet *p =
-+ container_of(packet, struct fw_phy_packet, packet);
-
-- packet = kzalloc(sizeof(*packet), GFP_ATOMIC);
-- if (packet == NULL)
-- return;
--
-- packet->header[0] = data;
-- packet->header[1] = ~data;
-- packet->header_length = 8;
-- packet->payload_length = 0;
-- packet->speed = SCODE_100;
-- packet->generation = generation;
-- packet->callback = transmit_phy_packet_callback;
--
-- card->driver->send_request(card, packet);
-+ complete(&p->done);
- }
-
- void fw_send_phy_config(struct fw_card *card,
- int node_id, int generation, int gap_count)
- {
-- u32 q;
--
-- q = PHY_IDENTIFIER(PHY_PACKET_CONFIG) |
-- PHY_CONFIG_ROOT_ID(node_id) |
-- PHY_CONFIG_GAP_COUNT(gap_count);
-+ struct fw_phy_packet p;
-+ u32 data = PHY_IDENTIFIER(PHY_PACKET_CONFIG) |
-+ PHY_CONFIG_ROOT_ID(node_id) |
-+ PHY_CONFIG_GAP_COUNT(gap_count);
-+
-+ p.packet.header[0] = data;
-+ p.packet.header[1] = ~data;
-+ p.packet.header_length = 8;
-+ p.packet.payload_length = 0;
-+ p.packet.speed = SCODE_100;
-+ p.packet.generation = generation;
-+ p.packet.callback = transmit_phy_packet_callback;
-+ init_completion(&p.done);
-
-- send_phy_packet(card, q, generation);
-+ card->driver->send_request(card, &p.packet);
-+ wait_for_completion(&p.done);
- }
-
- void fw_flush_transactions(struct fw_card *card)
-
---
-Stefan Richter
--=====-==--- --== =-=--
-http://arcgraph.de/sr/
-
-
-There's a minor memory leak in firewire-ohci's ar_context_tasklet(), in that
-we're not freeing up some of the memory we use for each ar_buffer, due to a
-moving pointer. The problem has been there for a while, but didn't start
-to be noticed until we were doing a coherent allocation for the ar_buffer --
-meaning we have a smaller pool of memory to work with now, so the problem
-crops up sooner. The manifestation of this comes after doing a bunch of I/O to
-a firewire disk, which eventually stalls, and this starts spewing to the
-console:
-
-PCI-DMA: Out of IOMMU space for 53248 bytes at device 0000:04:09.0
-
-The device there is one of my FireWire controllers trying to do I/O. The host
-is a fairly new rev. opteron.
-
-Just need to make sure we're freeing the correct memory range is pass through
-ar_context_tasklet to fix it. Probably something we ought to sneak into 2.6.25
-if its still doable...
-
-Signed-off-by: Jarod Wilson <jwilson at redhat.com>
----
-
- drivers/firewire/fw-ohci.c | 9 +++++----
- 1 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
-index 8ff9059..e1d50f7 100644
---- a/drivers/firewire/fw-ohci.c
-+++ b/drivers/firewire/fw-ohci.c
-@@ -579,7 +579,8 @@ static void ar_context_tasklet(unsigned long data)
-
- if (d->res_count == 0) {
- size_t size, rest, offset;
-- dma_addr_t buffer_bus;
-+ dma_addr_t start_bus;
-+ void *start;
-
- /*
- * This descriptor is finished and we may have a
-@@ -588,9 +589,9 @@ static void ar_context_tasklet(unsigned long data)
- */
-
- offset = offsetof(struct ar_buffer, data);
-- buffer_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
-+ start = buffer = ab;
-+ start_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
-
-- buffer = ab;
- ab = ab->next;
- d = &ab->descriptor;
- size = buffer + PAGE_SIZE - ctx->pointer;
-@@ -605,7 +606,7 @@ static void ar_context_tasklet(unsigned long data)
- buffer = handle_ar_packet(ctx, buffer);
-
- dma_free_coherent(ohci->card.device, PAGE_SIZE,
-- buffer, buffer_bus);
-+ start, start_bus);
- ar_context_add_page(ctx);
- } else {
- buffer = ctx->pointer;
linux-2.6-firewire-git-update.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 linux-2.6-firewire-git-update.patch
Index: linux-2.6-firewire-git-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-firewire-git-update.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- linux-2.6-firewire-git-update.patch 14 Mar 2008 19:36:06 -0000 1.5
+++ linux-2.6-firewire-git-update.patch 15 Apr 2008 19:17:32 -0000 1.6
@@ -1,48 +1,574 @@
-IEEE 1394 updates for Linux 2.6.24 (v669 2008-03-11)
+IEEE 1394 updates for Linux 2.6.24 (v702 2008-04-12)
MAINTAINERS | 4
- drivers/firewire/Kconfig | 50 -
- drivers/firewire/fw-card.c | 99 +--
- drivers/firewire/fw-cdev.c | 33 -
- drivers/firewire/fw-device.c | 360 +++++++++---
- drivers/firewire/fw-device.h | 60 +-
- drivers/firewire/fw-ohci.c | 633 ++++++++++++++++------
- drivers/firewire/fw-sbp2.c | 647 ++++++++++++++++-------
- drivers/firewire/fw-topology.c | 13
+ drivers/firewire/Kconfig | 55 -
+ drivers/firewire/fw-card.c | 111 +--
+ drivers/firewire/fw-cdev.c | 33
+ drivers/firewire/fw-device.c | 360 +++++++---
+ drivers/firewire/fw-device.h | 60 +
+ drivers/firewire/fw-iso.c | 5
+ drivers/firewire/fw-ohci.c | 801 +++++++++++++++++------
+ drivers/firewire/fw-ohci.h | 2
+ drivers/firewire/fw-sbp2.c | 652 +++++++++++++-----
+ drivers/firewire/fw-topology.c | 32
drivers/firewire/fw-topology.h | 11
- drivers/firewire/fw-transaction.c | 17
- drivers/firewire/fw-transaction.h | 12
+ drivers/firewire/fw-transaction.c | 85 +-
+ drivers/firewire/fw-transaction.h | 25
drivers/ieee1394/dma.c | 37 -
- drivers/ieee1394/dv1394.c | 3
+ drivers/ieee1394/dv1394.c | 4
drivers/ieee1394/highlevel.c | 6
drivers/ieee1394/ieee1394_core.c | 2
- drivers/ieee1394/ieee1394_transactions.c | 68 --
+ drivers/ieee1394/ieee1394_transactions.c | 68 -
drivers/ieee1394/nodemgr.c | 6
- drivers/ieee1394/ohci1394.c | 123 ++--
- drivers/ieee1394/pcilynx.c | 12
- drivers/ieee1394/raw1394.c | 5
- drivers/ieee1394/sbp2.c | 71 +-
+ drivers/ieee1394/ohci1394.c | 241 +++---
+ drivers/ieee1394/pcilynx.c | 15
+ drivers/ieee1394/raw1394.c | 6
+ drivers/ieee1394/sbp2.c | 76 +-
drivers/ieee1394/sbp2.h | 3
- drivers/ieee1394/video1394.c | 3
- lib/Kconfig.debug | 11
- 25 files changed, 1511 insertions(+), 778 deletions(-)
+ drivers/ieee1394/video1394.c | 4
+ lib/Kconfig.debug | 12
+ 27 files changed, 1799 insertions(+), 917 deletions(-)
========================================================================
-Date: Mon, 10 Mar 2008 23:28:07 +0100 (CET)
+Date: Sat, 12 Apr 2008 22:31:25 +0200 (CEST)
From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Subject: firewire: debug AT, AR, and selfID-complete events
+Subject: firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more)
+
+Unlike the ohci1394 driver, fw-ohci uses the selfIDGeneration field of
+bus reset packets to determine the generation of incoming requests as
+per OHCI 1.1 clause 8.4.2.3. This is more precise --- provided that the
+controller inserts the correct generation. Texas Instruments chips
+often don't.
+
+This prevented the transmission of response packets, which for example
+broke AV/C transactions as used when communicating with miniDV cameras
+and any other AV/C devices.
+
+There is apparently no way to detect and adjust incorrect generations.
+Therefore we ignore the generation of bus reset packets from TI chips
+and use the generation of the self ID buffer instead. Alas this is
+received at a slightly wrong time. In rare cases, this could cause us
+to not respond to legitimate requests or to respond to expired requests.
+(The latter is less likely because the bus reset packet AR event is
+typically handled before the self ID complete event.)
+
+Bug reported by Mladen Kuntner, who was extraordinarily patient while
+dealing with the driver maintainers.
+https://bugzilla.redhat.com/show_bug.cgi?id=243081
+
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
+---
+ drivers/firewire/fw-ohci.c | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+========================================================================
+Date: Fri, 11 Apr 2008 00:51:15 +0200 (CEST)
+From: Stefan Richter <stefanr at s5r6.in-berlin.de>
+Subject: firewire: fw-ohci: extend logging of bus generations and node ID
+
+Extend the logging of "AR evt_bus_reset, link internal" to "AR
+evt_bus_reset, generation ${selfIDGeneration}". That way we can check
+whether this generation matches the one seen in self ID complete event
+logging. See OHCI 1.1 clause 8.4.2.3.
+
+Also extend logging of "firewire_ohci: * selfIDs, generation *" by
+"local node ID ffc*" in self ID logging to make the local node in AT/AR
+event logs more obvious.
+
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
+---
+ drivers/firewire/fw-ohci.c | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+========================================================================
+Date: Fri, 11 Apr 2008 00:08:08 +0200
+From: Stefan Richter <stefanr at s5r6.in-berlin.de>
+Subject: firewire: fw-ohci: add option for remote debugging - amendment
+
+(reduced backport version for 2.6.24 and older)
+
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
+---
+ lib/Kconfig.debug | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+========================================================================
+Date: Mon, 7 Apr 2008 22:33:35 +0200 (CEST)
+From: Stefan Richter <stefanr at s5r6.in-berlin.de>
+Subject: firewire: fw-ohci: conditionally log busReset interrupts
+
+Add a debug option to watch bus reset interrupt events. Half of this
+patch is taken from Jarod Wilson's first version of the JMicron fix.
+
+BusReset interrupts are only generated if the respective module
+parameter flag was set before the controller is being initialized.
+Else we keep this event masked to reduce IRQ load in normal operation
+and to avoid potential problems with buggy chips.
+
+Note, this is unlike the other IRQ events whose logging can be enabled
+any time after chip initialization. This and the influence on what
+interrupts the chip generates is why I added an extra flag for it.
+
+Also, reorder the debug parameter flags according to their perceived
+usefulness.
+
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
+Signed-off-by: Jarod Wilson <jwilson at redhat.com>
+---
+ drivers/firewire/fw-ohci.c | 28 ++++++++++++++++++++--------
+ 1 file changed, 20 insertions(+), 8 deletions(-)
+
+========================================================================
+Date: Mon, 7 Apr 2008 22:32:33 +0200 (CEST)
+From: Jarod Wilson <jwilson at redhat.com>
+Subject: firewire: fw-ohci: don't append to AT context when it's not active
+
+I finally tracked down the issues with this JMicron PCI-e card in my
+possession to a failure to comply with section 7.2.3.2 of the OHCI 1.1
+specification (thanks to Kristian for the pointer to illustrate that it
+is indeed a flaw in this card, not the driver). The controller should
+simply flush the packets we've appended to its AT queue if a bus reset
+occurs before they've been transmitted and we'll try again, but
+something goes wrong and the controller winds up hung.
+
+However, we can avoid the problem by simply checking if the
+IntEvent.busReset register had been set before we try appending to the
+AT context. When busReset is set, the AT context is completely halted
+until busReset is cleared, so there's no point in appending AT packets
+until the register is cleared. So at_context_queue_packet() now checks
+for busReset being set, and bails with an RCODE_GENERATION packet ack,
+which results in us trying to append the packet again after recognizing
+the fact there has been a bus reset, and clearing busReset.
+
+Signed-off-by: Jarod Wilson <jwilson at redhat.com>
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
+---
+ drivers/firewire/fw-ohci.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+========================================================================
+Date: Thu, 3 Apr 2008 17:18:23 -0400
+From: Jarod Wilson <jwilson at redhat.com>
+Subject: firewire: fw-ohci: log regAccessFail events
+
+While trying to debug this piece of crap JMicron PCI-e controller in my
+possession, one thought was that perhaps I was encountering register access
+failures. I'm not, but logging them would be good, so we can see if they
+are a real problem we should be taking into account anywhere in the code.
+
+Signed-off-by: Jarod Wilson <jwilson at redhat.com>
+Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> (added list contact)
+---
+ drivers/firewire/fw-ohci.c | 13 ++++++++++---
+ drivers/firewire/fw-ohci.h | 1 +
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+========================================================================
+Date: Fri, 28 Mar 2008 10:02:50 -0400
+From: Jarod Wilson <jwilson at redhat.com>
+Subject: firewire: fw-ohci: make sure HCControl register LPS bit is set
[...2571 lines suppressed...]
*/
card->bm_generation = generation;
@@ -5599,7 +6837,7 @@
/*
* FIXME: I suppose we should set the cmstr bit in the
* STATE_CLEAR register of this node, as described in
-@@ -332,7 +345,7 @@ fw_card_bm_work(struct work_struct *work
+@@ -332,7 +343,7 @@ fw_card_bm_work(struct work_struct *work
* successfully read the config rom, but it's not
* cycle master capable.
*/
@@ -5608,7 +6846,7 @@
}
pick_me:
-@@ -341,8 +354,8 @@ fw_card_bm_work(struct work_struct *work
+@@ -341,20 +352,20 @@ fw_card_bm_work(struct work_struct *work
* the typically much larger 1394b beta repeater delays though.
*/
if (!card->beta_repeaters_present &&
@@ -5619,7 +6857,22 @@
else
gap_count = 63;
-@@ -364,6 +377,11 @@ fw_card_bm_work(struct work_struct *work
+ /*
+- * Finally, figure out if we should do a reset or not. If we've
+- * done less that 5 resets with the same physical topology and we
++ * Finally, figure out if we should do a reset or not. If we have
++ * done less than 5 resets with the same physical topology and we
+ * have either a new root or a new gap count setting, let's do it.
+ */
+
+ if (card->bm_retries++ < 5 &&
+ (card->gap_count != gap_count || new_root_id != root_id))
+- do_reset = 1;
++ do_reset = true;
+
+ spin_unlock_irqrestore(&card->lock, flags);
+
+@@ -364,6 +375,11 @@ fw_card_bm_work(struct work_struct *work
fw_send_phy_config(card, new_root_id, generation, gap_count);
fw_core_initiate_bus_reset(card, 1);
}
@@ -5631,7 +6884,7 @@
}
static void
-@@ -380,7 +398,7 @@ fw_card_initialize(struct fw_card *card,
+@@ -380,7 +396,7 @@ fw_card_initialize(struct fw_card *card,
{
static atomic_t index = ATOMIC_INIT(-1);
@@ -5640,7 +6893,7 @@
card->index = atomic_inc_return(&index);
card->driver = driver;
card->device = device;
-@@ -410,12 +428,6 @@ fw_card_add(struct fw_card *card,
+@@ -410,12 +426,6 @@ fw_card_add(struct fw_card *card,
card->link_speed = link_speed;
card->guid = guid;
@@ -5653,7 +6906,7 @@
mutex_lock(&card_mutex);
config_rom = generate_config_rom(card, &length);
list_add_tail(&card->link, &card_list);
-@@ -511,44 +523,19 @@ fw_core_remove_card(struct fw_card *card
+@@ -511,44 +521,19 @@ fw_core_remove_card(struct fw_card *card
card->driver = &dummy_driver;
fw_destroy_nodes(card);
@@ -5709,16 +6962,17 @@
===================================================================
--- linux-2.6.24.orig/lib/Kconfig.debug
+++ linux-2.6.24/lib/Kconfig.debug
-@@ -517,4 +517,15 @@ config FAULT_INJECTION_STACKTRACE_FILTER
+@@ -517,4 +517,16 @@ config FAULT_INJECTION_STACKTRACE_FILTER
help
Provide stacktrace filter for fault-injection capabilities
+config FIREWIRE_OHCI_REMOTE_DMA
-+ bool "Remote debugging via firewire-ohci"
++ bool "Remote debugging over FireWire with firewire-ohci"
+ depends on FIREWIRE_OHCI
+ help
-+ This option lets you use the FireWire bus for remote debugging.
-+ It enables unfiltered remote DMA in the firewire-ohci driver.
++ This option lets you use the FireWire bus for remote debugging
++ with help of the firewire-ohci driver. It enables unfiltered
++ remote DMA in firewire-ohci.
+ See Documentation/debugging-via-ohci1394.txt in linux-2.6.25 or
+ later for more information.
+
@@ -5847,6 +7101,16 @@
return -1;
}
+@@ -738,8 +738,7 @@ static int lynx_devctl(struct hpsb_host
+ spin_lock_irqsave(&lynx->async.queue_lock, flags);
+
+ reg_write(lynx, DMA_CHAN_CTRL(CHANNEL_ASYNC_SEND), 0);
+- list_splice(&lynx->async.queue, &packet_list);
+- INIT_LIST_HEAD(&lynx->async.queue);
++ list_splice_init(&lynx->async.queue, &packet_list);
+
+ if (list_empty(&lynx->async.pcl_queue)) {
+ spin_unlock_irqrestore(&lynx->async.queue_lock, flags);
Index: linux-2.6.24/drivers/firewire/Kconfig
===================================================================
--- linux-2.6.24.orig/drivers/firewire/Kconfig
@@ -5886,7 +7150,7 @@
config FIREWIRE_OHCI
tristate "Support for OHCI FireWire host controllers"
-@@ -57,8 +35,24 @@ config FIREWIRE_OHCI
+@@ -57,8 +35,29 @@ config FIREWIRE_OHCI
NOTE:
@@ -5910,10 +7174,15 @@
+ If you have an old modprobe which doesn't implement the blacklist
+ directive, use "install modulename /bin/true" for the modules to be
+ blacklisted.
++
++config FIREWIRE_OHCI_DEBUG
++ bool
++ depends on FIREWIRE_OHCI
++ default y
config FIREWIRE_SBP2
tristate "Support for storage devices (SBP-2 protocol driver)"
-@@ -75,9 +69,3 @@ config FIREWIRE_SBP2
+@@ -75,9 +74,3 @@ config FIREWIRE_SBP2
You should also enable support for disks, CD-ROMs, etc. in the SCSI
configuration section.
@@ -5923,3 +7192,62 @@
- If you also build sbp2 of the classic stack, blacklist either sbp2
- or firewire-sbp2 to let hotplug load only the desired driver.
-
+Index: linux-2.6.24/drivers/firewire/fw-ohci.h
+===================================================================
+--- linux-2.6.24.orig/drivers/firewire/fw-ohci.h
++++ linux-2.6.24/drivers/firewire/fw-ohci.h
+@@ -30,6 +30,7 @@
+ #define OHCI1394_HCControl_softReset 0x00010000
+ #define OHCI1394_SelfIDBuffer 0x064
+ #define OHCI1394_SelfIDCount 0x068
++#define OHCI1394_SelfIDCount_selfIDError 0x80000000
+ #define OHCI1394_IRMultiChanMaskHiSet 0x070
+ #define OHCI1394_IRMultiChanMaskHiClear 0x074
+ #define OHCI1394_IRMultiChanMaskLoSet 0x078
+@@ -124,6 +125,7 @@
+ #define OHCI1394_lockRespErr 0x00000200
+ #define OHCI1394_selfIDComplete 0x00010000
+ #define OHCI1394_busReset 0x00020000
++#define OHCI1394_regAccessFail 0x00040000
+ #define OHCI1394_phy 0x00080000
+ #define OHCI1394_cycleSynch 0x00100000
+ #define OHCI1394_cycle64Seconds 0x00200000
+Index: linux-2.6.24/drivers/firewire/fw-iso.c
+===================================================================
+--- linux-2.6.24.orig/drivers/firewire/fw-iso.c
++++ linux-2.6.24/drivers/firewire/fw-iso.c
+@@ -126,7 +126,6 @@ fw_iso_context_create(struct fw_card *ca
+
+ return ctx;
+ }
+-EXPORT_SYMBOL(fw_iso_context_create);
+
+ void fw_iso_context_destroy(struct fw_iso_context *ctx)
+ {
+@@ -134,14 +133,12 @@ void fw_iso_context_destroy(struct fw_is
+
+ card->driver->free_iso_context(ctx);
+ }
+-EXPORT_SYMBOL(fw_iso_context_destroy);
+
+ int
+ fw_iso_context_start(struct fw_iso_context *ctx, int cycle, int sync, int tags)
+ {
+ return ctx->card->driver->start_iso(ctx, cycle, sync, tags);
+ }
+-EXPORT_SYMBOL(fw_iso_context_start);
+
+ int
+ fw_iso_context_queue(struct fw_iso_context *ctx,
+@@ -153,11 +150,9 @@ fw_iso_context_queue(struct fw_iso_conte
+
+ return card->driver->queue_iso(ctx, packet, buffer, payload);
+ }
+-EXPORT_SYMBOL(fw_iso_context_queue);
+
+ int
+ fw_iso_context_stop(struct fw_iso_context *ctx)
+ {
+ return ctx->card->driver->stop_iso(ctx);
+ }
+-EXPORT_SYMBOL(fw_iso_context_stop);
More information about the fedora-extras-commits
mailing list