···11/* orinoco_nortel.c22 * 33 * Driver for Prism II devices which would usually be driven by orinoco_cs,44+ * but are connected to the PCI bus by a PCI-to-PCMCIA adapter used in55+ * Nortel emobility, Symbol LA-4113 and Symbol LA-4123.46 * but are connected to the PCI bus by a Nortel PCI-PCMCIA-Adapter. 57 *68 * Copyright (C) 2002 Tobias Hoffmann···167165 goto fail_resources;168166 }169167170170- iomem = pci_iomap(pdev, 3, 0);168168+ iomem = pci_iomap(pdev, 2, 0);171169 if (!iomem) {172170 err = -ENOMEM;173171 goto fail_map_io;···267265static struct pci_device_id nortel_pci_id_table[] = {268266 /* Nortel emobility PCI */269267 {0x126c, 0x8030, PCI_ANY_ID, PCI_ANY_ID,},268268+ /* Symbol LA-4123 PCI */269269+ {0x1562, 0x0001, PCI_ANY_ID, PCI_ANY_ID,},270270 {0,},271271};272272
+2-1
drivers/s390/net/qeth_eddp.c
···6262 for (i = 0; i < ctx->num_pages; ++i)6363 free_page((unsigned long)ctx->pages[i]);6464 kfree(ctx->pages);6565- kfree(ctx->elements);6565+ if (ctx->elements != NULL)6666+ kfree(ctx->elements);6667 kfree(ctx);6768}6869
+29-32
drivers/s390/net/qeth_main.c
···11/*22 *33- * linux/drivers/s390/net/qeth_main.c ($Revision: 1.242 $)33+ * linux/drivers/s390/net/qeth_main.c ($Revision: 1.251 $)44 *55 * Linux on zSeries OSA Express and HiperSockets support66 *···1212 * Frank Pavlic (fpavlic@de.ibm.com) and1313 * Thomas Spatzier <tspat@de.ibm.com>1414 *1515- * $Revision: 1.242 $ $Date: 2005/05/04 20:19:18 $1515+ * $Revision: 1.251 $ $Date: 2005/05/04 20:19:18 $1616 *1717 * This program is free software; you can redistribute it and/or modify1818 * it under the terms of the GNU General Public License as published by···7272#include "qeth_eddp.h"7373#include "qeth_tso.h"74747575-#define VERSION_QETH_C "$Revision: 1.242 $"7575+#define VERSION_QETH_C "$Revision: 1.251 $"7676static const char *version = "qeth S/390 OSA-Express driver";77777878/**···518518519519 QETH_DBF_TEXT(setup, 3, "setoffl");520520 QETH_DBF_HEX(setup, 3, &card, sizeof(void *));521521-521521+522522+ netif_carrier_off(card->dev);522523 recover_flag = card->state;523524 if (qeth_stop_card(card, recovery_mode) == -ERESTARTSYS){524525 PRINT_WARN("Stopping card %s interrupted by user!\n",···10211020qeth_schedule_recovery(struct qeth_card *card)10221021{10231022 QETH_DBF_TEXT(trace,2,"startrec");10241024-10251023 if (qeth_set_thread_start_bit(card, QETH_RECOVER_THREAD) == 0)10261024 schedule_work(&card->kernel_thread_starter);10271025}···17101710 "IP address reset.\n",17111711 QETH_CARD_IFNAME(card),17121712 card->info.chpid);17131713- netif_carrier_on(card->dev);17141713 qeth_schedule_recovery(card);17151714 return NULL;17161715 case IPA_CMD_MODCCID:···19581959{19591960 u16 s1, s2;1960196119611961-QETH_DBF_TEXT(trace,4,"osndipa");19621962+ QETH_DBF_TEXT(trace,4,"osndipa");1962196319631964 qeth_prepare_ipa_cmd(card, iob, QETH_PROT_OSN2);19641965 s1 = (u16)(IPA_PDU_HEADER_SIZE + data_len);···22022203}2203220422042205static inline int22052205-qeth_check_for_inbound_error(struct qeth_qdio_buffer *buf,22062206- unsigned int qdio_error,22072207- unsigned int siga_error)22062206+qeth_check_qdio_errors(struct qdio_buffer *buf, unsigned int qdio_error,22072207+ unsigned int siga_error, const char *dbftext)22082208{22092209- int rc = 0;22102210-22112209 if (qdio_error || siga_error) {22122212- QETH_DBF_TEXT(trace, 2, "qdinerr");22132213- QETH_DBF_TEXT(qerr, 2, "qdinerr");22102210+ QETH_DBF_TEXT(trace, 2, dbftext);22112211+ QETH_DBF_TEXT(qerr, 2, dbftext);22142212 QETH_DBF_TEXT_(qerr, 2, " F15=%02X",22152215- buf->buffer->element[15].flags & 0xff);22132213+ buf->element[15].flags & 0xff);22162214 QETH_DBF_TEXT_(qerr, 2, " F14=%02X",22172217- buf->buffer->element[14].flags & 0xff);22152215+ buf->element[14].flags & 0xff);22182216 QETH_DBF_TEXT_(qerr, 2, " qerr=%X", qdio_error);22192217 QETH_DBF_TEXT_(qerr, 2, " serr=%X", siga_error);22202220- rc = 1;22182218+ return 1;22212219 }22222222- return rc;22202220+ return 0;22232221}2224222222252223static inline struct sk_buff *···27652769 for (i = first_element; i < (first_element + count); ++i) {27662770 index = i % QDIO_MAX_BUFFERS_PER_Q;27672771 buffer = &card->qdio.in_q->bufs[index];27682768- if (!((status == QDIO_STATUS_LOOK_FOR_ERROR) &&27692769- qeth_check_for_inbound_error(buffer, qdio_err, siga_err)))27722772+ if (!((status & QDIO_STATUS_LOOK_FOR_ERROR) &&27732773+ qeth_check_qdio_errors(buffer->buffer, 27742774+ qdio_err, siga_err,"qinerr")))27702775 qeth_process_inbound_buffer(card, buffer, index);27712776 /* clear buffer and give back to hardware */27722777 qeth_put_buffer_pool_entry(card, buffer->pool_entry);···27822785static inline int27832786qeth_handle_send_error(struct qeth_card *card,27842787 struct qeth_qdio_out_buffer *buffer,27852785- int qdio_err, int siga_err)27882788+ unsigned int qdio_err, unsigned int siga_err)27862789{27872790 int sbalf15 = buffer->buffer->element[15].flags & 0xff;27882791 int cc = siga_err & 3;2789279227902793 QETH_DBF_TEXT(trace, 6, "hdsnderr");27942794+ qeth_check_qdio_errors(buffer->buffer, qdio_err, siga_err, "qouterr");27912795 switch (cc) {27922796 case 0:27932797 if (qdio_err){···30453047 for(i = first_element; i < (first_element + count); ++i){30463048 buffer = &queue->bufs[i % QDIO_MAX_BUFFERS_PER_Q];30473049 /*we only handle the KICK_IT error by doing a recovery */30483048- if (qeth_handle_send_error(card, buffer, qdio_error, siga_error)30503050+ if (qeth_handle_send_error(card, buffer,30513051+ qdio_error, siga_error)30493052 == QETH_SEND_ERROR_KICK_IT){30503053 netif_stop_queue(card->dev);30513054 qeth_schedule_recovery(card);···32883289 card->qdio.in_buf_pool.buf_count = card->qdio.init_pool.buf_count;32893290 INIT_LIST_HEAD(&card->qdio.in_buf_pool.entry_list);32903291 INIT_LIST_HEAD(&card->qdio.init_pool.entry_list);32913291- /* outbound */32923292}3293329332943294static int···37293731 break;37303732 }37313733 }37343734+ if (rc && !(VLAN_DEV_INFO(dev)->real_dev->priv == (void *)card))37353735+ return 0;37363736+37323737#endif37333738 return rc;37343739}···38083807 card->data.state = CH_STATE_UP;38093808 card->state = CARD_STATE_UP;3810380938113811- if (!card->lan_online){38123812- if (netif_carrier_ok(dev))38133813- netif_carrier_off(dev);38143814- }38103810+ if (!card->lan_online && netif_carrier_ok(dev))38113811+ netif_carrier_off(dev);38153812 return 0;38163813}38173814···58695870 struct inet6_dev *in6_dev;5870587158715872 QETH_DBF_TEXT(trace,4,"chkmcv6");58725872- if ((card->options.layer2 == 0) &&58735873- (!qeth_is_supported(card, IPA_IPV6)) )58735873+ if (!qeth_is_supported(card, IPA_IPV6)) 58745874 return ;58755875-58765875 in6_dev = in6_dev_get(card->dev);58775876 if (in6_dev == NULL)58785877 return;···79337936 QETH_DBF_TEXT_(setup, 2, "6err%d", rc);79347937 goto out_remove;79357938 }79367936-/*maybe it was set offline without ifconfig down79377937- * we can also use this state for recovery purposes*/79397939+ netif_carrier_on(card->dev);79407940+79387941 qeth_set_allowed_threads(card, 0xffffffff, 0);79397942 if (recover_flag == CARD_STATE_RECOVER)79407943 qeth_start_again(card, recovery_mode);