User: | Jiri Slaby |
Error type: | Double Unlock |
Error type description: | Some lock is unlocked twice unintentionally in a sequence |
File location: | drivers/net/e1000e/ich8lan.c |
Line in file: | 454 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2011-11-07 22:20:57 UTC |
424 425 if (!timeout) { 426 hw_dbg(hw, "FW or HW has locked the resource for too long.\n"); 427 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; 428 ew32(EXTCNF_CTRL, extcnf_ctrl); 429 nvm_owner = -1; 430 mutex_unlock(&nvm_mutex); 431 return -E1000_ERR_CONFIG; 432 } 433 434 return 0; 435} 436 437/** 438 * e1000_release_swflag_ich8lan - Release software control flag 439 * @hw: pointer to the HW structure 440 * 441 * Releases the software control flag for performing NVM and PHY operations. 442 * This is a function pointer entry point only called by read/write 443 * routines for the PHY and NVM parts. 444 **/ 445static void e1000_release_swflag_ich8lan(struct e1000_hw *hw) 446{ 447 u32 extcnf_ctrl; 448 449 extcnf_ctrl = er32(EXTCNF_CTRL); 450 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; 451 ew32(EXTCNF_CTRL, extcnf_ctrl); 452 453 nvm_owner = -1; 454 mutex_unlock(&nvm_mutex); 455} 456 457/** 458 * e1000_check_mng_mode_ich8lan - Checks management mode 459 * @hw: pointer to the HW structure 460 * 461 * This checks if the adapter has manageability enabled. 462 * This is a function pointer entry point only called by read/write 463 * routines for the PHY and NVM parts. 464 **/