8139cp: Prevent dev_close/cp_interrupt race on MTU change
authorJohn Greene <jogreene@redhat.com>
Wed, 19 Dec 2012 09:47:48 +0000 (09:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Dec 2012 22:30:59 +0000 (14:30 -0800)
commit83c34fd00d0c3989466e95808bf12af9bf87e383
tree477e1bde4443e5708f4c1c7885c9c552dcd7d4d6
parentf8b840344cbf4fa7212223b436adfb7559ca0e1e
8139cp: Prevent dev_close/cp_interrupt race on MTU change

commit:  cb64edb6b89491edfdbae52ba7db9a8b8391d339 upstream

Above commit may introduce a race between cp_interrupt and dev_close
/ change MTU / dev_open up state. Changes cp_interrupt to tolerate
this.  Change spin_locking in cp_interrupt to avoid possible
but unobserved race.

Reported-by: "Francois Romieu" <romieu@fr.zoreil.com>
Tested on virtual hardware, Tx MTU size up to 4096, max tx payload
    was ping -s 4068 for MTU of 4096. No real hardware, need test
    assist.

Signed-off-by: "John Greene" <jogreene@redhat.com>
CC: "David S. Miller" <davem@davemloft.net>
CC: "David Woodhouse" <David.Woodhouse@intel.com>
Tested-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/8139cp.c