IrDA patches on the way...

Jean Tourrilhes (jt@bougret.hpl.hp.com)
Thu, 18 Apr 2002 19:27:10 -0700


Hi Jeff,

Would you mind to push the following batch of patches to Linus ?
The first two patches feature a partial rewrite of the TTP
layer that fixes lots of things. Has been on my web page for over a
month and tested intensively.
The remaining patches are less interesting. You may have
followed discussions about the wait_event stuff ;-)
Regards,

Jean

--------------------------------------------------------

[FEATURE] : Add a new feature to the IrDA stack
[CORRECT] : Fix to have the correct/expected behaviour
[CRITICA] : Fix potential kernel crash

ir258_flow_sched_lap_lmp-6.diff :
-------------------------------
<Won't compile without ir258_flow_sched_ttp-6.diff>
o [FEATURE] Reduce LAP Tx queue to 2 packets (from 10)
Improve latency, reduce buffer usage
o [FEATURE] LAP Tx queue not full notification (flow start)
Poll higher layer to fill synchronously LAP window (7 packets)
o [FEATURE] LMP LSAP scheduler
Ensure Tx fairness between LSAPs (sockets, IrCOMM, IrNET...)

ir258_flow_sched_ttp-6.diff :
---------------------------
<Won't compile without ir258_flow_sched_lap_lmp-6.diff>
o [CORRECT] Fix race condition when starting todo timer
o [CORRECT] Fix race condition when stopping higher layer
Higher layer would think it is stopped and us it is started
o [CORRECT] Give credit even if packets in Tx queue
If Tx queue was stopped, could starve peer and deadlock
o [CORRECT] Protect Rx credit update with spinlock
o [CORRECT] Calculate properly self->avail_credit
Didn't take into account queued Rx fragments
Incremented even if Rx frame not delivered to higher layer
-> would never stop the peer (i.e. not flow control)
-> could become infinite
o [CORRECT] Send credit when higher layer reenable receive
Peer wouldn't restart Tx to us if flow stopped
o [FEATURE] Implement LAP queue not full notification
Lower latency, ...
o [FEATURE] Reduce Tx queue to 8 packets (from 10)
But make sure we can always send a full LAP window (7)
o [FEATURE] Fix and optimise TTP flow control
Make sure peer can always send a full LAP window (7)
Minimise explicit credit updates (give_credit)
o [FEATURE] Remove need for todo timer in Tx/Rx paths
Less potential races, lower latency, lower context switches
Could not use tasklet because broken API, better anyway ;-)

ir258_wait_event_fixes-2.diff :
-----------------------------
<Following patch from Martin Diehl, mangled by me>
o [FEATURE] Replace interruptible_sleep_on() with wait_event().
Most races were taken care off, but cleaner anyway

ir258_mcp2120_driver.diff :
-------------------------
<Following patch from Felix Tang>
o [FEATURE] Dongle driver for mcp2120/crystal hardware

ir258_dongle_locking.diff :
-------------------------
o [CORRECT] Load dongle module with irq disabled in irtty
<Same fix need to go in irport, but irport doesn't work for me>

ir258_lsap_lap_close-2.diff :
---------------------------
<apply after ir258_flow_sched_lap_lmp-6.diff to avoid fuzz>
o [CORRECT] Cancel LSAP watchdog when putting socket back to listen
o [CORRECT] Try to close LAP when closing LSAP still active
<Following patch from Felix Tang>
o [CORRECT] Header fix for compile on Alpha architecture

ir258_irnet_simult_race-2.diff :
------------------------------
o [CORRECT] Prevent dealock on simultaneous peer IrNET connections
Only the primary peer will accept the IrNET connection
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/