2.5.40 - random fixes
Subsystems (8)
PATCH 1/1 2.5.40 - random fixes
drivers/block/DAC960.h +34 -1
@@ -2569,7 +2569,40 @@spin_unlock_irqrestore (Controller->RequestQueue->queue_lock, *ProcessorFlags); } -#error I am a non-portable driver, please convert me to use the Documentation/DMA-mapping.txt interfaces +#warning I am a non-portable driver, please convert me to use the Documentation/DMA-mapping.txt interfaces + +/* +Virtual_to_Bus32 maps from Kernel Virtual Addresses to 32 Bit PCI Bus +Addresses. +*/ + +static inline DAC960_BusAddress32_T Virtual_to_Bus32 (void *VirtualAddress) +{ +return (DAC960_BusAddress32_T )virt_to_bus (VirtualAddress); +} + + +/* +Bus32_to_Virtual maps from 32 Bit PCI Bus Addresses to Kernel Virtual +Addresses. +*/ + +static inline void *Bus32_to_Virtual (DAC960_BusAddress32_T BusAddress) +{ +return (void *)bus_to_virt (BusAddress); +} + + +/* +Virtual_to_Bus64 maps from Kernel Virtual Addresses to 64 Bit PCI Bus +Addresses. +*/ + +static inline DAC960_BusAddress64_T Virtual_to_Bus64 (void *VirtualAddress) +{ +return (DAC960_BusAddress64_T )virt_to_bus (VirtualAddress); +} +/* Define the DAC960 BA Series Controller Interface Register Offsets.
drivers/char/drm/gamma_dma.c +1 -2
@@ -128,8 +128,7 @@clear_bit (0 , &dev->dma_flag);/* Dispatch new buffer */ -queue_task (&dev->tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&dev->tq); } }
drivers/ieee1394/ieee1394_core.c +6 -6
@@ -378,7 +378,7 @@ packet->state = hpsb_complete;up (&packet->state_change);up (&packet->state_change); -run_task_queue (&packet->complete_tq); +flush_scheduled_tasks ();return ; }
@@ -390,7 +390,7 @@spin_unlock_irqrestore (&host->pending_pkt_lock, flags);up (&packet->state_change); -queue_task (&host->timeout_tq, &tq_timer); +schedule_task (&host->timeout_tq); }/**
@@ -528,7 +528,7 @@ packet->state = hpsb_complete;up (&packet->state_change); -run_task_queue (&packet->complete_tq); +flush_scheduled_tasks (); }
@@ -748,7 +748,7 @@ packet->state = hpsb_complete; packet->ack_code =ACKX_ABORTED ;up (&packet->state_change); -run_task_queue (&packet->complete_tq); +flush_scheduled_tasks (); } }
@@ -781,7 +781,7 @@ }if (!list_empty (&host->pending_packets)) { -queue_task (&host->timeout_tq, &tq_timer); +schedule_task (&host->timeout_tq); }spin_unlock_irqrestore (&host->pending_pkt_lock, flags);
@@ -790,7 +790,7 @@ packet->state = hpsb_complete; packet->ack_code =ACKX_TIMEOUT ;up (&packet->state_change); -run_task_queue (&packet->complete_tq); +flush_scheduled_tasks (); } }
drivers/ieee1394/ieee1394_core.h +1 -1
@@ -69,7 +69,7 @@/* Very core internal, don't care. */ struct semaphore state_change; -task_queue complete_tq; +struct list_head complete_tq;/* Store jiffies for implementing bus timeouts. */ unsigned long sendtime;
drivers/isdn/act2000/act2000.h +3 -6
@@ -179,20 +179,17 @@extern __inline__void act2000_schedule_tx (act2000_card *card) { -queue_task (&card->snd_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->snd_tq); }extern __inline__void act2000_schedule_rx (act2000_card *card) { -queue_task (&card->rcv_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->rcv_tq); }extern __inline__void act2000_schedule_poll (act2000_card *card) { -queue_task (&card->poll_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->poll_tq); }extern char *act2000_find_eaz (act2000_card *,char );
drivers/isdn/eicon/eicon.h +3 -6
@@ -349,20 +349,17 @@extern __inline__void eicon_schedule_tx (eicon_card *card) { -queue_task (&card->snd_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->snd_tq); }extern __inline__void eicon_schedule_rx (eicon_card *card) { -queue_task (&card->rcv_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->rcv_tq); }extern __inline__void eicon_schedule_ack (eicon_card *card) { -queue_task (&card->ack_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->ack_tq); }extern int eicon_addcard (int ,int ,int ,char *,int );
drivers/isdn/eicon/linsys.c +2 -4
@@ -84,8 +84,7 @@ DivasTask.routine = DivasDoDpc; DivasTask.data = (void *)0 ; -queue_task (&DivasTask, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&DivasTask);return 0 ; }
@@ -97,8 +96,7 @@ DivasTask.routine = DivasDoRequestDpc; DivasTask.data = (void *)0 ; -queue_task (&DivasTask, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&DivasTask);return 0 ; }
drivers/isdn/hisax/amd7930_fn.c +1 -2
@@ -277,8 +277,7 @@ }test_and_set_bit (event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); } static void
drivers/isdn/hisax/avm_pci.c +1 -2
@@ -200,8 +200,7 @@ hdlc_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }void
drivers/isdn/hisax/config.c +2 -4
@@ -1818,8 +1818,7 @@static void hisax_sched_event (struct IsdnCardState *cs,int event) { cs->event |=1 << event; -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }static void hisax_bh (struct IsdnCardState *cs)
@@ -1845,8 +1844,7 @@static void hisax_b_sched_event (struct BCState *bcs,int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }static inline void D_L2L1 (struct hisax_d_if *d_if,int pr,void *arg)
drivers/isdn/hisax/hfc_2bds0.c +2 -4
@@ -202,8 +202,7 @@ hfc_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } static struct sk_buff
@@ -646,8 +645,7 @@ sched_event_D(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); } static
drivers/isdn/hisax/hfc_2bs0.c +1 -2
@@ -86,8 +86,7 @@ hfc_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } static void
drivers/isdn/hisax/hfc_pci.c +2 -4
@@ -194,8 +194,7 @@ sched_event_D_pci(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }/*********************************/
@@ -205,8 +204,7 @@ hfcpci_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }/************************************************/
drivers/isdn/hisax/hfc_sx.c +2 -4
@@ -464,8 +464,7 @@ sched_event_D_sx(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }/*********************************/
@@ -475,8 +474,7 @@ hfcsx_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }/************************************************/
drivers/isdn/hisax/hscx.c +1 -2
@@ -95,8 +95,7 @@ hscx_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }void
drivers/isdn/hisax/icc.c +1 -2
@@ -191,8 +191,7 @@ icc_sched_event(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }void
drivers/isdn/hisax/ipacx.c +2 -4
@@ -304,8 +304,7 @@ dch_sched_event(struct IsdnCardState *cs, int event) { set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }//----------------------------------------------------------
@@ -593,8 +592,7 @@ bch_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); }//----------------------------------------------------------
drivers/isdn/hisax/isac.c +1 -2
@@ -195,8 +195,7 @@ isac_sched_event(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }void
drivers/isdn/hisax/isar.c +1 -2
@@ -447,8 +447,7 @@ isar_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } static inline void
drivers/isdn/hisax/jade.c +1 -2
@@ -138,8 +138,7 @@ jade_sched_event(struct BCState *bcs, int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } static void
drivers/isdn/hisax/netjet.c +2 -4
@@ -434,8 +434,7 @@skb_queue_tail (&bcs->rqueue, skb); } bcs->event |=1 <<B_RCVBUFREADY ; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue);if (bcs->cs->debug &L1_DEB_RECEIVE_FRAME )printframe (bcs->cs, bcs->hw.tiger.rcvbuf, count,"rec" );
@@ -791,8 +790,7 @@ cnt - s_cnt); } bcs->event |=1 <<B_XMTBUFREADY ; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } } }else if (test_and_clear_bit (BC_FLG_NOFRAME , &bcs->Flag)) {
drivers/isdn/hisax/w6692.c +2 -4
@@ -135,16 +135,14 @@ W6692_sched_event(struct IsdnCardState *cs, int event) { test_and_set_bit(event, &cs->event); -queue_task (&cs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&cs->tqueue); }static void W6692B_sched_event (struct BCState *bcs,int event) { bcs->event |=1 << event; -queue_task (&bcs->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&bcs->tqueue); } static void
drivers/isdn/hysdn/boardergo.c +4 -6
@@ -59,10 +59,9 @@ b |= dpr->ToHyInt;/* and for champ */ /* start kernel task immediately after leaving all interrupts */ -if (!card->hw_lock) { -queue_task (&card->irq_queue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); - } +if (!card->hw_lock) +schedule_task (&card->irq_queue); +restore_flags (flags); }/* ergo_interrupt */
@@ -177,8 +176,7 @@ card->err_log_state =ERRLOG_STATE_STOP ;/* request stop */ restore_flags (flags); -queue_task (&card->irq_queue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->irq_queue); }/* ergo_set_errlog_state */ /******************************************/
drivers/isdn/hysdn/hysdn_net.c +3 -4
@@ -168,10 +168,9 @@spin_unlock_irq (&lp->lock); -if (lp->sk_count <=3 ) { -queue_task (&((hysdn_card *) dev->priv)->irq_queue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); - } +if (lp->sk_count <=3 ) +schedule_task (&((hysdn_card *) dev->priv)->irq_queue); +return (0 );/* success */ }/* net_send_packet */
drivers/isdn/hysdn/hysdn_sched.c +2 -2
@@ -175,8 +175,8 @@ card->async_busy =1 ;/* request transfer */ /* now queue the task */ -queue_task (&card->irq_queue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&card->irq_queue); +sti ();if (card->debug_flags &LOG_SCHED_ASYN )
drivers/isdn/i4l/isdn_concap.c +2 -0
@@ -19,7 +19,9 @@#include "isdn_net.h" #include <linux/concap.h> #include "isdn_concap.h" +#include <linux/if_arp.h> +#ifdef CONFIG_ISDN_X25 /* The following set of device service operations are for encapsulation protocols that require for reliable datalink semantics. That means:
drivers/isdn/i4l/isdn_net.c +2 -4
@@ -161,8 +161,7 @@if (!(isdn_net_device_busy (lp))) {if (!skb_queue_empty (&lp->super_tx_queue)) { -queue_task (&lp->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&lp->tqueue); }else {isdn_net_device_wake_queue (lp); }
@@ -852,8 +851,7 @@// we can't grab the lock from irq context, // so we just queue the packet skb_queue_tail (&lp->super_tx_queue, skb); -queue_task (&lp->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&lp->tqueue);return ; }
drivers/isdn/i4l/isdn_tty.c +3 -3
@@ -101,7 +101,7 @@#endif if (info->emu.mdmreg[REG_CPPP ] &BIT_CPPP ) tty->flip.flag_buf_ptr[len -1 ] =0xff ; -queue_task (&tty->flip.tqueue, &tq_timer); +schedule_task (&tty->flip.tqueue);kfree_skb (skb);return 1 ; }
@@ -153,7 +153,7 @@ tty->flip.flag_buf_ptr += r; tty->flip.char_buf_ptr += r;if (r) -queue_task (&tty->flip.tqueue, &tq_timer); +schedule_task (&tty->flip.tqueue);restore_flags (flags); } }else
@@ -2498,7 +2498,7 @@ }else {restore_flags (flags); -queue_task (&tty->flip.tqueue, &tq_timer); +schedule_task (&tty->flip.tqueue); } }
drivers/message/fusion/mptlan.c +1 -8
@@ -875,14 +875,7 @@struct mpt_lan_priv *priv = dev->priv;if (test_and_set_bit (0 , &priv->post_buckets_active) ==0 ) { -if (priority) { -queue_task (&priv->post_buckets_task, &tq_immediate); -mark_bh (IMMEDIATE_BH ); - }else { -queue_task (&priv->post_buckets_task, &tq_timer); - dioprintk((KERN_INFO MYNAM ": post_buckets queued on " - "timer.\n")); - } +schedule_task (&priv->post_buckets_task); dioprintk((KERN_INFO MYNAM ": %s/%s: Queued post_buckets task.\n", IOC_AND_NETDEV_NAMES_s_s(dev) )); }
drivers/message/fusion/mptscsih.c +1 -1
@@ -2023,7 +2023,7 @@ mptscsih_dvTask.routine = mptscsih_domainValidation; mptscsih_dvTask.data = (void *) hd; -SCHEDULE_TASK (&mptscsih_dvTask); +schedule_task (&mptscsih_dvTask); }else {spin_unlock_irqrestore (&dvtaskQ_lock, lflags); }
drivers/mtd/mtdblock_ro.c +1 -0
@@ -15,6 +15,7 @@#include <linux/mtd/mtd.h> #include <linux/mtd/compatmac.h> +#include <linux/genhd.h> #define LOCAL_END_REQUEST #define MAJOR_NR MTD_BLOCK_MAJOR
drivers/net/fc/iph5526.c +2 -0
@@ -35,6 +35,8 @@static const char *version ="iph5526.c:v1.0 07.08.99 Vineet Abraham ([email protected])\n" ; +#error Convert me to understand page+offset based scatterlists +#include <linux/module.h> #include <linux/kernel.h> #include <linux/sched.h>
drivers/net/hamradio/baycom_epp.c +2 -2
@@ -928,7 +928,7 @@ bc->debug_vals.mod_cycles = time2 - time1; bc->debug_vals.demod_cycles = time3 - time2;#endif /* BAYCOM_DEBUG */ -queue_task (&bc->run_bh, &tq_timer); +schedule_task (&bc->run_bh);if (!bc->skb)netif_wake_queue (dev);return ;
@@ -1121,7 +1121,7 @@ bc->hdlctx.slotcnt = bc->ch_params.slottime; bc->hdlctx.calibrate =0 ;/* start the bottom half stuff */ -queue_task (&bc->run_bh, &tq_timer); +schedule_task (&bc->run_bh);netif_start_queue (dev);MOD_INC_USE_COUNT ;return 0 ;
drivers/net/hamradio/dmascc.c +1 -2
@@ -1073,8 +1073,7 @@ priv->rx_head = (priv->rx_head +1 ) %NUM_RX_BUF ; priv->rx_count++;/* Mark bottom half handler */ -queue_task (&priv->rx_task, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&priv->rx_task); }else { priv->stats.rx_errors++; priv->stats.rx_over_errors++;
drivers/net/plip.c +11 -16
@@ -378,10 +378,8 @@ {struct net_local *nl = (struct net_local *)dev->priv; -if (nl->is_deferred) { -queue_task (&nl->immediate, &tq_immediate); -mark_bh (IMMEDIATE_BH ); - } +if (nl->is_deferred) +schedule_task (&nl->immediate); }/* Forward declarations of internal routines */
@@ -432,7 +430,7 @@if ((r = (*f)(dev, nl, snd, rcv)) !=OK && (r =plip_bh_timeout_error (dev, nl, snd, rcv, r)) !=OK ) { nl->is_deferred =1 ; -queue_task (&nl->deferred, &tq_timer); +schedule_task (&nl->deferred); } }
@@ -444,7 +442,7 @@if (!(atomic_read (&nl->kill_timer))) {plip_interrupt (-1 , dev,NULL ); -queue_task (&nl->timer, &tq_timer); +schedule_task (&nl->timer); }else {up (&nl->killed_timer_sem);
@@ -665,7 +663,7 @@ rcv->state =PLIP_PK_DONE ; nl->is_deferred =1 ; nl->connection =PLIP_CN_SEND ; -queue_task (&nl->deferred, &tq_timer); +schedule_task (&nl->deferred);enable_parport_interrupts (dev);ENABLE (dev->irq);return OK ;
@@ -740,8 +738,7 @@if (snd->state !=PLIP_PK_DONE ) { nl->connection =PLIP_CN_SEND ;spin_unlock_irq (&nl->lock); -queue_task (&nl->immediate, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&nl->immediate);enable_parport_interrupts (dev);ENABLE (dev->irq);return OK ;
@@ -909,7 +906,7 @@printk (KERN_DEBUG "%s: send end\n" , dev->name); nl->connection =PLIP_CN_CLOSING ; nl->is_deferred =1 ; -queue_task (&nl->deferred, &tq_timer); +schedule_task (&nl->deferred);enable_parport_interrupts (dev);ENABLE (dev->irq);return OK ;
@@ -953,7 +950,7 @@netif_wake_queue (dev); }else { nl->is_deferred =1 ; -queue_task (&nl->deferred, &tq_timer); +schedule_task (&nl->deferred); }return OK ;
@@ -997,8 +994,7 @@ rcv->state =PLIP_PK_TRIGGER ; nl->connection =PLIP_CN_RECEIVE ; nl->timeout_count =0 ; -queue_task (&nl->immediate, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&nl->immediate);break ;case PLIP_CN_RECEIVE :
@@ -1051,8 +1047,7 @@ nl->connection =PLIP_CN_SEND ; nl->timeout_count =0 ; } -queue_task (&nl->immediate, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&nl->immediate);spin_unlock_irq (&nl->lock);return 0 ;
@@ -1131,7 +1126,7 @@if (dev->irq ==-1 ) {atomic_set (&nl->kill_timer,0 ); -queue_task (&nl->timer, &tq_timer); +schedule_task (&nl->timer); }/* Initialize the state machine. */
drivers/scsi/aha152x.c +1 -2
@@ -1941,8 +1941,7 @@/* Poke the BH handler */ HOSTDATA (shpnt)->service++; aha152x_tq.routine = (void *) run; -queue_task (&aha152x_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&aha152x_tq); }/*
drivers/scsi/fdomain.c +3 -0
@@ -271,6 +271,9 @@**************************************************************************/ + +#error Please convert me to Documentation/DMA-mapping.txt +#include <linux/module.h> #ifdef PCMCIA
drivers/scsi/imm.c +3 -3
@@ -898,7 +898,7 @@if (imm_engine (tmp, cmd)) { tmp->imm_tq.data = (void *) tmp; tmp->imm_tq.sync =0 ; -queue_task (&tmp->imm_tq, &tq_timer); +schedule_task (&tmp->imm_tq);return ; }/* Command must of completed hence it is safe to let go... */
@@ -1105,8 +1105,8 @@ imm_hosts[host_no].imm_tq.data = imm_hosts + host_no; imm_hosts[host_no].imm_tq.sync =0 ; -queue_task (&imm_hosts[host_no].imm_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); + +schedule_task (&imm_hosts[host_no].imm_tq);return 0 ; }
drivers/scsi/in2000.c +2 -0
@@ -104,6 +104,8 @@* */ +#error Please convert me to Documentation/DMA-mapping.txt +#include <linux/module.h> #include <asm/system.h>
drivers/scsi/pci2000.c +3 -0
@@ -35,6 +35,9 @@****************************************************************************/ #define PCI2000_VERSION "1.20" +#error Please convert me to Documentation/DMA-mapping.txt +#error Convert me to understand page+offset based scatterlists +#include <linux/module.h> #include <linux/kernel.h>
drivers/scsi/ppa.c +4 -4
@@ -110,7 +110,7 @@int ppa_detect (Scsi_Host_Template * host) { -struct Scsi_Host *hreg; +struct Scsi_Host *hreg =NULL ;int ports;int i, nhosts, try_again;struct parport *pb;
@@ -801,7 +801,7 @@if (ppa_engine (tmp, cmd)) { tmp->ppa_tq.data = (void *) tmp; tmp->ppa_tq.sync =0 ; -queue_task (&tmp->ppa_tq, &tq_timer); +schedule_task (&tmp->ppa_tq);return ; }/* Command must of completed hence it is safe to let go... */
@@ -986,8 +986,8 @@ ppa_hosts[host_no].ppa_tq.data = ppa_hosts + host_no; ppa_hosts[host_no].ppa_tq.sync =0 ; -queue_task (&ppa_hosts[host_no].ppa_tq, &tq_immediate); -mark_bh (IMMEDIATE_BH ); + +schedule_task (&ppa_hosts[host_no].ppa_tq);return 0 ; }
drivers/scsi/seagate.c +2 -0
@@ -87,6 +87,8 @@* the CONTROL an DATA registers. */ +#error Please convert me to Documentation/DMA-mapping.txt +#include <linux/module.h> #include <asm/io.h>
drivers/telephony/ixj.c +3 -3
@@ -274,8 +274,8 @@#include "ixj.h" -#define TYPE (dev) (MINOR(dev) >> 4) -#define NUM (dev) (MINOR(dev) & 0xf) +#define TYPE (dev) (minor(dev) >> 4) +#define NUM (dev) (minor(dev) & 0xf)static int ixjdebug;static int hertz =HZ ;
@@ -6202,7 +6202,7 @@IXJ_FILTER_RAW jfr;unsigned int raise, mant; -unsigned int minor =MINOR (inode->i_rdev); +unsigned int minor =minor (inode->i_rdev);int board =NUM (inode->i_rdev);IXJ *j =get_ixj (NUM (inode->i_rdev));
drivers/telephony/ixj.h +1 -1
@@ -1199,7 +1199,7 @@unsigned char cid_play_flag;char play_mode;IXJ_FLAGS flags; -unsigned int busyflags; +unsigned long busyflags;unsigned int rec_frame_size;unsigned int play_frame_size;unsigned int cid_play_frame_size;
include/asm-i386/system.h +21 -0
@@ -323,6 +323,27 @@/* For spinlocks etc */ #define local_irq_save(x) __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (x): /* no input */ :"memory") +#ifdef CONFIG_SMP + +extern void __global_cli (void ); +extern void __global_sti (void ); +extern unsigned long __global_save_flags (void ); +extern void __global_restore_flags (unsigned long ); +#define cli () __global_cli() +#define sti () __global_sti() +#define save_flags (x) ((x)=__global_save_flags()) +#define restore_flags (x) __global_restore_flags(x) + +#else + +#define cli () local_irq_disable() +#define sti () local_irq_enable() +#define save_flags (x) local_save_flags(x) +#define restore_flags (x) local_irq_restore(x) + +#endif + +/* * disable hlt during certain critical i/o operations */
include/linux/interrupt.h +0 -12
@@ -25,18 +25,6 @@#include <asm/hardirq.h> #include <asm/softirq.h> -/* -* Temporary defines for UP kernels, until all code gets fixed. -*/ -#if !CONFIG_SMP -# define cli () local_irq_disable() -# define sti () local_irq_enable() -# define save_flags (x) local_save_flags(x) -# define restore_flags (x) local_irq_restore(x) -# define save_and_cli (x) local_irq_save(x) -#endif - -/* PLEASE, avoid to allocate new softirqs, if you need not _really_ high frequency threaded job scheduling. For almost all the purposes tasklets are more than enough. F.e. all serial device BHs et
net/irda/ircomm/ircomm_param.c +1 -2
@@ -166,8 +166,7 @@if (flush) {/* ircomm_tty_do_softint will take care of the rest */ -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue); }return count;
net/irda/ircomm/ircomm_tty.c +4 -8
@@ -632,8 +632,7 @@* Let do_softint() do this to avoid race condition with * do_softint() ;-) */ -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue); }/*
@@ -806,8 +805,7 @@* its 256 byte tx buffer). We will then defragment and send out * all this data as one single packet. */ -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue);return len; }
@@ -1132,8 +1130,7 @@/* Wake up processes blocked on open */ wake_up_interruptible (&self->open_wait); -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue);return ; } }else {
@@ -1246,8 +1243,7 @@ tty->hw_stopped =0 ;/* ircomm_tty_do_softint will take care of the rest */ -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue);break ;default :/* If we get here, something is very wrong, better stop */ case FLOW_STOP :
net/irda/ircomm/ircomm_tty_attach.c +1 -2
@@ -535,8 +535,7 @@wake_up_interruptible (&self->open_wait); } -queue_task (&self->tqueue, &tq_immediate); -mark_bh (IMMEDIATE_BH ); +schedule_task (&self->tqueue); }/*
----
http://www.techlinux.com.br/~carlos/tmp/2.5.40-1.diff
Signature · 6 lines
_________________________ Carlos E Gorges ([email protected]) Tech informática LTDA Brazil _________________________
[...]
The DAC960 driver is still broken, due to the deprecation of major parts of the genhd code, including register_disk().
- David McIlwraith
PATCH 1/1 2.5.40 (-ac5) - fix unresolved symbols
drivers/cdrom/mcdx.c +1 -1
@@ -1040,7 +1040,7 @@kfree (stuffp); } -if (devfs_unregister_blkdev (MAJOR_NR ,"mcdx" ) !=0 ) { +if (unregister_blkdev (MAJOR_NR ,"mcdx" ) !=0 ) {xwarn ("cleanup() unregister_blkdev() failed\n" ); }blk_cleanup_queue (BLK_DEFAULT_QUEUE (MAJOR_NR ));
drivers/ieee1394/raw1394.c +2 -2
@@ -743,7 +743,7 @@ } req->tq.data = req; -queue_task (&req->tq, &packet->complete_tq); +schedule_task (&req->tq);spin_lock_irq (&fi->reqlists_lock);list_add_tail (&req->list, &fi->req_pending);
@@ -786,7 +786,7 @@ req->tq.data = req; req->tq.routine = (void (*)(void *))queue_complete_req; req->req.length =0 ; -queue_task (&req->tq, &packet->complete_tq); +schedule_task (&req->tq);spin_lock_irq (&fi->reqlists_lock);list_add_tail (&req->list, &fi->req_pending);
--
http://www.techlinux.com.br/~carlos/tmp/2.5.40-2.diff
Signature · 6 lines
_________________________ Carlos E Gorges ([email protected]) Tech informática LTDA Brazil _________________________
Re: [PATCH] 2.5.40 (-ac5) - fix unresolved symbols
Em Sun, Oct 06, 2002 at 09:10:27PM -0300, Carlos E Gorges escreveu:
drivers/ieee1394/raw1394.c line 789
Quoted 8 lines
drivers/ieee1394/raw1394.c +1
-1@@ -786,7 +786,7 @@ req->tq.data = req; req->tq.routine = (void (*)(void *))queue_complete_req; req->req.length =0 ; -queue_task (&req->tq, &packet->complete_tq); +schedule_task (&req->tq);
Shouldn't INIT_WORK be used?
- Arnaldo