Showing error 625

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


Source:

 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 **/
Show full sources