)]}'
{
  "commit": "12f188f2e59394ec1f1c8c0a4439f48ec16bc336",
  "tree": "af7ccd94ab4173dad997d0ff0a45c852799f639a",
  "parents": [
    "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
  ],
  "author": {
    "name": "Dan Williams",
    "email": "dcbw@redhat.com",
    "time": "Sun Dec 19 08:17:50 2010 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Dec 28 13:41:41 2010 -0800"
  },
  "message": "ueagle-atm: fix PHY signal initialization race\n\nA race exists when initializing ueagle-atm devices where the generic atm\ndevice may not yet be created before the driver attempts to initialize\nit\u0027s PHY signal state, which checks whether the atm device has been\ncreated or not.  This often causes the sysfs \u0027carrier\u0027 attribute to be\n\u00271\u0027 even though no signal has actually been found.\n\nuea_probe\n   usbatm_usb_probe\n      driver-\u003ebind (uea_bind)\n         uea_boot\n            kthread_run(uea_kthread)     uea_kthread\n      usbatm_atm_init                       uea_start_reset\n         atm_dev_register                      UPDATE_ATM_SIGNAL\n\nUPDATE_ATM_SIGNAL checks whether the ATM device has been created and if\nnot, will not update the PHY signal state.  Because of the race that\ndoes not always happen in time, and the PHY signal state remains\nATM_PHY_SIG_FOUND even though no signal exists.\n\nTo fix the race, just create the kthread during initialization, and only\nafter initialization is complete, start the thread that reboots the\ndevice and initializes PHY state.\n\n[ 3030.490931] uea_probe: calling usbatm_usb_probe\n[ 3030.490946] ueagle-atm 8-2:1.0: usbatm_usb_probe: trying driver ueagle-atm with vendor\u003d1110, product\u003d9031, ifnum  0\n[ 3030.493691] uea_bind: setting usbatm\n[ 3030.496932] usb 8-2: [ueagle-atm] using iso mode\n[ 3030.497283] ueagle-atm 8-2:1.0: usbatm_usb_probe: using 3021 byte buffer for rx channel 0xffff880125953508\n   \u003ckthread already started before usbatm_usb_probe() has returned\u003e\n[ 3030.497292] usb 8-2: [ueagle-atm] (re)booting started\n   \u003cUPDATE_ATM_SIGNAL checks whether ATM device has been created yet before setting PHY state\u003e\n[ 3030.497298] uea_start_reset: atm dev (null)\n   \u003cand since it hasn\u0027t been created yet PHY state is not set\u003e\n[ 3030.497306] ueagle-atm 8-2:1.0: usbatm_usb_probe: using 3392 byte buffer for tx channel 0xffff8801259535b8\n[ 3030.497374] usbatm_usb_probe: about to init\n[ 3030.497379] usbatm_usb_probe: calling usbatm_atm_init\n   \u003catm device finally gets created\u003e\n[ 3030.497384] usbatm_atm_init: creating atm device!\n\nSigned-off-by: Dan Williams \u003cdcbw@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "44447f54942f6d6e1c7c7e2a777b4c882f6b546d",
      "old_mode": 33188,
      "old_path": "drivers/usb/atm/ueagle-atm.c",
      "new_id": "99ac70e32556f841b83c909108767dedf444237e",
      "new_mode": 33188,
      "new_path": "drivers/usb/atm/ueagle-atm.c"
    }
  ]
}
